diff --git a/build/patches/00AdblockPlus.patch b/build/patches/00AdblockPlus.patch index 056f6d32..2d8e023e 100644 --- a/build/patches/00AdblockPlus.patch +++ b/build/patches/00AdblockPlus.patch @@ -1,6 +1,6 @@ From: AUTOMATED -Date: Wed, 29 Mar 2023 07:32:52 +0000 -Subject: Diff from 112.0.5615.37 +Date: Thu, 27 Apr 2023 07:56:33 +0000 +Subject: Diff from 113.0.5672.62 --- DEPS | 22 + @@ -14,19 +14,10 @@ Subject: Diff from 112.0.5615.37 chrome/browser/adblock/README.md | 3 + .../adblock/adblock_content_browser_client.cc | 372 +++ .../adblock/adblock_content_browser_client.h | 110 + - ...lock_content_browser_client_browsertest.cc | 122 + ...adblock_content_browser_client_unittest.cc | 197 ++ - .../adblock/adblock_controller_factory.cc | 108 + + .../adblock/adblock_controller_factory.cc | 110 + .../adblock/adblock_controller_factory.h | 52 + - .../adblock/adblock_debug_url_browsertest.cc | 299 +++ - .../adblock_filter_list_browsertest.cc | 215 ++ - ...ck_filtering_configurations_browsertest.cc | 355 +++ - ...ock_frame_hierarchy_builder_browsertest.cc | 310 +++ - .../adblock_multiple_tabs_browsertests.cc | 155 ++ - .../adblock/adblock_non_ascii_browsertest.cc | 77 + - ...dblock_subscription_service_browsertest.cc | 204 ++ - .../adblock_telemetry_service_browsertest.cc | 255 ++ - .../adblock_telemetry_service_factory.cc | 138 + + .../adblock_telemetry_service_factory.cc | 127 + .../adblock_telemetry_service_factory.h | 56 + ...ontent_security_policy_injector_factory.cc | 69 + ...content_security_policy_injector_factory.h | 49 + @@ -42,6 +33,16 @@ Subject: Diff from 112.0.5615.37 ...subscription_persistent_metadata_factory.h | 49 + .../adblock/subscription_service_factory.cc | 216 ++ .../adblock/subscription_service_factory.h | 63 + + ...lock_content_browser_client_browsertest.cc | 122 + + .../test/adblock_debug_url_browsertest.cc | 299 +++ + .../test/adblock_filter_list_browsertest.cc | 215 ++ + ...ck_filtering_configurations_browsertest.cc | 355 +++ + ...ock_frame_hierarchy_builder_browsertest.cc | 310 +++ + .../test/adblock_multiple_tabs_browsertest.cc | 155 ++ + .../test/adblock_non_ascii_browsertest.cc | 77 + + ...dblock_subscription_service_browsertest.cc | 204 ++ + .../adblock_telemetry_service_browsertest.cc | 255 ++ + .../test/adblock_web_bundle_browsertest.cc | 390 +++ chrome/browser/android/adblock/adblock_jni.cc | 295 +++ chrome/browser/android/adblock/adblock_jni.h | 52 + .../android/adblock/adblock_jni_factory.cc | 72 + @@ -55,35 +56,39 @@ Subject: Diff from 112.0.5615.37 ...lassification_notifier_bindings_factory.cc | 71 + ...classification_notifier_bindings_factory.h | 52 + .../client_hints/client_hints_browsertest.cc | 10 +- - chrome/browser/extensions/BUILD.gn | 7 + + chrome/browser/extensions/BUILD.gn | 9 + chrome/browser/extensions/api/BUILD.gn | 5 + - .../adblock_private/adblock_private_api.cc | 743 ++++++ - .../api/adblock_private/adblock_private_api.h | 446 ++++ - .../adblock_private_apitest.cc | 762 ++++++ - ...browser_context_keyed_service_factories.cc | 6 + + .../adblock_private/adblock_private_api.cc | 797 ++++++ + .../api/adblock_private/adblock_private_api.h | 430 +++ + .../adblock_private_apitest.cc | 942 +++++++ + ...browser_context_keyed_service_factories.cc | 8 + + .../eyeo_filtering_private_api.cc | 738 ++++++ + .../eyeo_filtering_private_api.h | 341 +++ + .../eyeo_filtering_private_apitest.cc | 154 ++ .../api/settings_private/prefs_util.cc | 19 + ...browser_context_keyed_service_factories.cc | 4 + + .../extension_function_registration_test.cc | 10 + chrome/browser/net/errorpage_browsertest.cc | 8 + ..._page_load_metrics_observer_browsertest.cc | 7 +- chrome/browser/preferences/BUILD.gn | 5 + - .../prefs/chrome_command_line_pref_store.cc | 6 + .../prefs/chrome_pref_service_factory.cc | 11 + - ...hrome_browser_main_extra_parts_profiles.cc | 24 + - .../profile_keyed_service_browsertest.cc | 24 +- + ...hrome_browser_main_extra_parts_profiles.cc | 28 + + .../profile_keyed_service_browsertest.cc | 25 +- chrome/browser/resources/settings/route.ts | 1 - .../safe_browsing_blocking_page_test.cc | 8 +- - ...subresource_filter_browser_test_harness.cc | 10 +- + ...subresource_filter_browser_test_harness.cc | 8 +- chrome/browser/ui/BUILD.gn | 5 + chrome/browser/ui/prefs/pref_watcher.cc | 13 + chrome/browser/ui/tab_helpers.cc | 19 + chrome/common/BUILD.gn | 3 + - .../common/extensions/api/_api_features.json | 14 + - .../extensions/api/_permission_features.json | 8 + - .../common/extensions/api/adblock_private.idl | 184 ++ - chrome/common/extensions/api/api_sources.gni | 5 + - .../permissions/chrome_api_permissions.cc | 6 + - .../permissions/permission_set_unittest.cc | 7 + - chrome/test/BUILD.gn | 29 + + .../common/extensions/api/_api_features.json | 24 + + .../extensions/api/_permission_features.json | 12 + + .../common/extensions/api/adblock_private.idl | 197 ++ + chrome/common/extensions/api/api_sources.gni | 6 + + .../extensions/api/eyeo_filtering_private.idl | 191 ++ + .../permissions/chrome_api_permissions.cc | 8 + + .../permissions/permission_set_unittest.cc | 8 + + chrome/test/BUILD.gn | 33 + chrome/test/base/chrome_test_launcher.cc | 7 +- chrome/test/base/in_process_browser_test.cc | 17 +- .../filterlist_that_allows_resource.txt | 7 + @@ -98,16 +103,51 @@ Subject: Diff from 112.0.5615.37 chrome/test/data/adblock/popup_parent.html | 8 + chrome/test/data/adblock/resource.png | Bin 0 -> 47293 bytes chrome/test/data/adblock/tab-restore.html | 16 + + .../fetch_result_1_blocked_bundle.json | 1 + + .../fetch_result_2_blocked_bundle.json | 1 + + .../fetch_result_2_subresource_loading.json | 1 + + .../green_subresource_loading.css | 1 + + .../green_subresource_loading.png | Bin 0 -> 772 bytes + .../purple_subresource_loading.css | 1 + + .../purple_subresource_loading.png | Bin 0 -> 773 bytes + .../xhr_result_2_subresource_loading.json | 1 + + .../by_resource/blue_subresource_loading.css | 1 + + .../by_resource/blue_subresource_loading.png | Bin 0 -> 773 bytes + .../fetch_result_1_subresource_loading.json | 1 + + .../by_resource/red_subresource_loading.css | 1 + + .../by_resource/red_subresource_loading.png | Bin 0 -> 772 bytes + .../xhr_result_1_subresource_loading.json | 1 + + .../fetch_result_3_subresource_loading.json | 1 + + .../by_scope/orange_subresource_loading.css | 1 + + .../by_scope/orange_subresource_loading.png | Bin 0 -> 774 bytes + .../wbn/by_scope/pink_subresource_loading.css | 1 + + .../wbn/by_scope/pink_subresource_loading.png | Bin 0 -> 775 bytes + .../xhr_result_3_subresource_loading.json | 1 + + .../test/data/adblock/wbn/index.html.mustache | 181 ++ + .../index.html.mustache | 45 + + .../skyblue_subresource_loading.css | 1 + + .../skyblue_subresource_loading.png | Bin 0 -> 775 bytes + .../yellowgreen_subresource_loading.css | 1 + + .../yellowgreen_subresource_loading.png | Bin 0 -> 775 bytes + .../index.html.mustache | 42 + + .../navy_subresource_loading.css | 1 + + .../navy_subresource_loading.png | Bin 0 -> 774 bytes + .../orangered_subresource_loading.css | 1 + + .../orangered_subresource_loading.png | Bin 0 -> 774 bytes .../api_test/adblock_private/empty.js | 0 .../api_test/adblock_private/main.html | 29 + - .../api_test/adblock_private/manifest.json | 28 + + .../api_test/adblock_private/manifest.json | 29 + .../api_test/adblock_private/test.html | 8 + - .../api_test/adblock_private/test.js | 594 +++++ + .../api_test/adblock_private/test.js | 737 ++++++ + .../api_test/eyeo_filtering_private/empty.js | 0 + .../api_test/eyeo_filtering_private/main.html | 29 + + .../eyeo_filtering_private/manifest.json | 28 + + .../api_test/eyeo_filtering_private/test.js | 448 ++++ components/BUILD.gn | 15 + - components/adblock/CHANGELOG.md | 570 +++++ + components/adblock/CHANGELOG.md | 570 ++++ components/adblock/LICENSE | 674 +++++ components/adblock/README.md | 80 + - components/adblock/android/BUILD.gn | 168 ++ + components/adblock/android/BUILD.gn | 169 ++ components/adblock/android/README.md | 13 + .../adblock/android/adblock_strings.grd | 222 ++ .../fragment_adblock_custom_item_add.png | Bin 0 -> 490 bytes @@ -140,7 +180,7 @@ Subject: Diff from 112.0.5615.37 .../adblock/FilteringConfiguration.java | 245 ++ .../ResourceClassificationNotifier.java | 186 ++ .../AdblockAllowedDomainsFragment.java | 77 + - .../AdblockCustomFilterListsFragment.java | 107 + + .../AdblockCustomFilterListsFragment.java | 118 + .../AdblockCustomFiltersFragment.java | 76 + .../settings/AdblockCustomItemFragment.java | 166 ++ .../settings/AdblockFilterListsAdapter.java | 115 + @@ -151,22 +191,23 @@ Subject: Diff from 112.0.5615.37 .../adblock/AdblockFilterFragmentTest.java | 73 + .../adblock/AdblockPopupInfoBarTest.java | 127 + .../adblock/AdblockPopupMessageTest.java | 112 + - .../adblock/FilteringConfigurationTest.java | 382 +++ - .../ResourceClassificationNotifierTest.java | 144 ++ - .../adblock/TestAdBlockedObserver.java | 168 ++ - .../adblock/TestPagesCircumventionTest.java | 89 + - .../components/adblock/TestPagesCspTest.java | 123 + - .../adblock/TestPagesElemhideEmuInvTest.java | 140 + - .../adblock/TestPagesElemhideEmuTest.java | 190 ++ - .../adblock/TestPagesElemhideTest.java | 214 ++ - .../adblock/TestPagesExceptionTest.java | 216 ++ - .../adblock/TestPagesFilterTest.java | 280 ++ - .../adblock/TestPagesHeaderFilterTest.java | 140 + - .../adblock/TestPagesRewriteTest.java | 157 ++ - .../adblock/TestPagesSiteKeyTest.java | 79 + - .../adblock/TestPagesSnippetsTest.java | 467 ++++ - .../adblock/TestPagesTestsHelper.java | 273 ++ - .../adblock/TestPagesWebsocketTest.java | 79 + + .../adblock/FilteringConfigurationTest.java | 366 +++ + .../ResourceClassificationNotifierTest.java | 143 + + .../adblock/TestAdBlockedObserver.java | 183 ++ + .../adblock/TestPagesCircumventionTest.java | 90 + + .../components/adblock/TestPagesCspTest.java | 136 + + .../adblock/TestPagesElemhideEmuInvTest.java | 158 ++ + .../adblock/TestPagesElemhideEmuTest.java | 217 ++ + .../adblock/TestPagesElemhideTest.java | 237 ++ + .../adblock/TestPagesExceptionTest.java | 229 ++ + .../adblock/TestPagesFilterTest.java | 311 +++ + .../adblock/TestPagesHeaderFilterTest.java | 150 ++ + .../adblock/TestPagesRewriteTest.java | 177 ++ + .../adblock/TestPagesSiteKeyTest.java | 82 + + .../adblock/TestPagesSnippetsTest.java | 545 ++++ + .../adblock/TestPagesTestsHelper.java | 201 ++ + .../adblock/TestPagesWebsocketTest.java | 77 + + .../adblock/TestVerificationUtils.java | 158 ++ .../translations/adblock_strings_af.xtb | 4 + .../translations/adblock_strings_am.xtb | 13 + .../translations/adblock_strings_ar.xtb | 13 + @@ -250,7 +291,7 @@ Subject: Diff from 112.0.5615.37 components/adblock/content/BUILD.gn | 22 + components/adblock/content/browser/BUILD.gn | 123 + .../content/browser/adblock_filter_match.h | 30 + - .../browser/adblock_url_loader_factory.cc | 679 +++++ + .../browser/adblock_url_loader_factory.cc | 683 +++++ .../browser/adblock_url_loader_factory.h | 91 + .../adblock_url_loader_factory_for_test.cc | 372 +++ .../adblock_url_loader_factory_for_test.h | 70 + @@ -265,10 +306,10 @@ Subject: Diff from 112.0.5615.37 .../browser/frame_hierarchy_builder.cc | 89 + .../content/browser/frame_hierarchy_builder.h | 63 + .../browser/resource_classification_runner.h | 105 + - .../resource_classification_runner_impl.cc | 429 ++++ + .../resource_classification_runner_impl.cc | 429 +++ .../resource_classification_runner_impl.h | 153 ++ - .../content/browser/session_stats_impl.cc | 86 + - .../content/browser/session_stats_impl.h | 69 + + .../content/browser/session_stats_impl.cc | 83 + + .../content/browser/session_stats_impl.h | 67 + .../test/adblock_url_loader_factory_test.cc | 334 +++ .../test/adblock_webcontents_observer_test.cc | 159 ++ ...tent_security_policy_injector_impl_test.cc | 177 ++ @@ -283,7 +324,7 @@ Subject: Diff from 112.0.5615.37 .../mock_resource_classification_runner.cc | 49 + .../mock_resource_classification_runner.h | 96 + ...esource_classification_runner_impl_test.cc | 387 +++ - .../browser/test/session_stats_impl_test.cc | 91 + + .../browser/test/session_stats_impl_test.cc | 74 + components/adblock/core/BUILD.gn | 191 ++ .../activeping_telemetry_topic_provider.cc | 241 ++ .../activeping_telemetry_topic_provider.h | 83 + @@ -304,14 +345,14 @@ Subject: Diff from 112.0.5615.37 .../test/resource_classifier_impl_test.cc | 504 ++++ .../test/resource_classifier_perftest.cc | 235 ++ components/adblock/core/common/BUILD.gn | 82 + - .../adblock/core/common/adblock_constants.cc | 152 ++ - .../adblock/core/common/adblock_constants.h | 40 + + .../adblock/core/common/adblock_constants.cc | 154 ++ + .../adblock/core/common/adblock_constants.h | 41 + .../adblock/core/common/adblock_prefs.cc | 122 + .../adblock/core/common/adblock_prefs.h | 46 + .../adblock/core/common/adblock_utils.cc | 168 ++ .../adblock/core/common/adblock_utils.h | 80 + - .../adblock/core/common/content_type.cc | 87 + - components/adblock/core/common/content_type.h | 47 + + .../adblock/core/common/content_type.cc | 91 + + components/adblock/core/common/content_type.h | 48 + .../adblock/core/common/flatbuffer_data.cc | 90 + .../adblock/core/common/flatbuffer_data.h | 85 + .../adblock/core/common/header_filter_data.h | 38 + @@ -324,7 +365,7 @@ Subject: Diff from 112.0.5615.37 .../core/common/test/flatbuffer_data_test.cc | 78 + .../adblock/core/configuration/BUILD.gn | 57 + .../configuration/filtering_configuration.h | 90 + - .../persistent_filtering_configuration.cc | 231 ++ + .../persistent_filtering_configuration.cc | 232 ++ .../persistent_filtering_configuration.h | 80 + ...persistent_filtering_configuration_test.cc | 239 ++ .../test/fake_filtering_configuration.cc | 114 + @@ -336,26 +377,26 @@ Subject: Diff from 112.0.5615.37 .../core/converter/flatbuffer_converter.cc | 134 + .../core/converter/flatbuffer_converter.h | 55 + .../adblock/core/converter/parser/BUILD.gn | 66 + - .../core/converter/parser/content_filter.cc | 64 + + .../core/converter/parser/content_filter.cc | 68 + .../core/converter/parser/content_filter.h | 50 + - .../core/converter/parser/domain_option.cc | 92 + - .../core/converter/parser/domain_option.h | 58 + + .../core/converter/parser/domain_option.cc | 115 + + .../core/converter/parser/domain_option.h | 59 + .../converter/parser/filter_classifier.cc | 39 + .../core/converter/parser/filter_classifier.h | 46 + - .../adblock/core/converter/parser/metadata.cc | 144 ++ + .../adblock/core/converter/parser/metadata.cc | 144 + .../adblock/core/converter/parser/metadata.h | 64 + .../core/converter/parser/snippet_filter.cc | 63 + .../core/converter/parser/snippet_filter.h | 46 + .../converter/parser/snippet_tokenizer.cc | 102 + .../core/converter/parser/snippet_tokenizer.h | 51 + - .../parser/test/content_filter_test.cc | 177 ++ - .../parser/test/domain_option_test.cc | 111 + + .../parser/test/content_filter_test.cc | 195 ++ + .../parser/test/domain_option_test.cc | 129 + .../converter/parser/test/metadata_test.cc | 198 ++ .../parser/test/snippet_filter_test.cc | 78 + .../parser/test/snippet_tokenizer_test.cc | 142 + .../parser/test/url_filter_options_test.cc | 255 ++ - .../converter/parser/test/url_filter_test.cc | 132 + - .../core/converter/parser/url_filter.cc | 145 ++ + .../converter/parser/test/url_filter_test.cc | 149 ++ + .../core/converter/parser/url_filter.cc | 216 ++ .../core/converter/parser/url_filter.h | 48 + .../converter/parser/url_filter_options.cc | 263 ++ .../converter/parser/url_filter_options.h | 122 + @@ -367,13 +408,13 @@ Subject: Diff from 112.0.5615.37 .../core/converter/serializer/serializer.h | 41 + .../test/filter_keyword_extractor_test.cc | 68 + .../test/flatbuffer_converter_perftest.cc | 64 + - .../test/flatbuffer_converter_test.cc | 2280 +++++++++++++++++ + .../test/flatbuffer_converter_test.cc | 2338 +++++++++++++++++ components/adblock/core/features.cc | 25 + components/adblock/core/features.h | 31 + - .../core/schema/filter_list_schema.fbs | 166 ++ - components/adblock/core/session_stats.h | 44 + + .../core/schema/filter_list_schema.fbs | 167 ++ + components/adblock/core/session_stats.h | 42 + components/adblock/core/sitekey_storage.h | 53 + - .../adblock/core/sitekey_storage_impl.cc | 144 ++ + .../adblock/core/sitekey_storage_impl.cc | 144 + .../adblock/core/sitekey_storage_impl.h | 59 + components/adblock/core/subscription/BUILD.gn | 178 ++ .../core/subscription/conversion_executors.h | 50 + @@ -387,9 +428,9 @@ Subject: Diff from 112.0.5615.37 .../installed_subscription_impl.cc | 569 ++++ .../installed_subscription_impl.h | 149 ++ .../ongoing_subscription_request.h | 50 + - .../ongoing_subscription_request_impl.cc | 171 ++ - .../ongoing_subscription_request_impl.h | 67 + - .../core/subscription/pattern_matcher.cc | 257 ++ + .../ongoing_subscription_request_impl.cc | 199 ++ + .../ongoing_subscription_request_impl.h | 77 + + .../core/subscription/pattern_matcher.cc | 261 ++ .../core/subscription/pattern_matcher.h | 34 + .../preloaded_subscription_provider.h | 56 + .../preloaded_subscription_provider_impl.cc | 120 + @@ -397,29 +438,29 @@ Subject: Diff from 112.0.5615.37 .../core/subscription/regex_matcher.cc | 163 ++ .../adblock/core/subscription/regex_matcher.h | 74 + .../adblock/core/subscription/subscription.cc | 24 + - .../adblock/core/subscription/subscription.h | 76 + + .../adblock/core/subscription/subscription.h | 78 + .../subscription/subscription_collection.h | 95 + - .../subscription_collection_impl.cc | 437 ++++ + .../subscription_collection_impl.cc | 437 +++ .../subscription_collection_impl.h | 92 + .../core/subscription/subscription_config.cc | 320 +++ .../core/subscription/subscription_config.h | 121 + .../subscription/subscription_downloader.h | 66 + - .../subscription_downloader_impl.cc | 289 +++ + .../subscription_downloader_impl.cc | 289 ++ .../subscription_downloader_impl.h | 102 + .../subscription_persistent_metadata.h | 86 + - .../subscription_persistent_metadata_impl.cc | 166 ++ + .../subscription_persistent_metadata_impl.cc | 164 ++ .../subscription_persistent_metadata_impl.h | 61 + .../subscription_persistent_storage.h | 60 + .../subscription_persistent_storage_impl.cc | 228 ++ .../subscription_persistent_storage_impl.h | 79 + - .../core/subscription/subscription_service.h | 74 + - .../subscription/subscription_service_impl.cc | 146 ++ - .../subscription/subscription_service_impl.h | 90 + + .../core/subscription/subscription_service.h | 79 + + .../subscription/subscription_service_impl.cc | 191 ++ + .../subscription/subscription_service_impl.h | 91 + .../core/subscription/subscription_updater.h | 35 + .../subscription/subscription_updater_impl.cc | 65 + .../subscription/subscription_updater_impl.h | 52 + .../subscription/subscription_validator.h | 59 + - .../subscription_validator_impl.cc | 146 ++ + .../subscription_validator_impl.cc | 146 + .../subscription_validator_impl.h | 52 + ...ring_configuration_maintainer_impl_test.cc | 845 ++++++ .../test/installed_subscription_impl_test.cc | 111 + @@ -440,16 +481,16 @@ Subject: Diff from 112.0.5615.37 .../mock_subscription_persistent_metadata.cc | 27 + .../mock_subscription_persistent_metadata.h | 76 + .../test/mock_subscription_service.cc | 36 + - .../test/mock_subscription_service.h | 65 + + .../test/mock_subscription_service.h | 69 + .../test/mock_subscription_updater.cc | 25 + .../test/mock_subscription_updater.h | 38 + - .../ongoing_subscription_request_impl_test.cc | 287 +++ + .../ongoing_subscription_request_impl_test.cc | 337 +++ .../test/pattern_matcher_perftest.cc | 69 + .../subscription/test/pattern_matcher_test.cc | 340 +++ ...eloaded_subscription_provider_impl_test.cc | 149 ++ .../test/regex_matcher_perftest.cc | 83 + .../test/subscription_collection_impl_test.cc | 1174 +++++++++ - .../test/subscription_downloader_impl_test.cc | 578 +++++ + .../test/subscription_downloader_impl_test.cc | 578 ++++ ...scription_persistent_metadata_impl_test.cc | 213 ++ ...bscription_persistent_storage_impl_test.cc | 334 +++ .../test/subscription_service_impl_test.cc | 246 ++ @@ -490,7 +531,7 @@ Subject: Diff from 112.0.5615.37 .../adblock/docs/initialization-sequence.png | Bin 0 -> 129976 bytes .../adblock/docs/initialization-sequence.txt | 27 + components/adblock/docs/integration-how-to.md | 220 ++ - components/adblock/docs/settings/README.md | 21 + + components/adblock/docs/settings/README.md | 46 + .../docs/settings/user-setting-sequence.png | Bin 0 -> 61104 bytes .../docs/settings/user-setting-sequence.txt | 14 + components/adblock/features.gni | 44 + @@ -499,17 +540,17 @@ Subject: Diff from 112.0.5615.37 .../libadblockplus_reference_database.h | 98 + .../adblock_comparison/test_request_reader.cc | 109 + .../adblock_comparison/test_request_reader.h | 54 + - .../verify_flatbuffer_adblocking.cc | 287 +++ + .../verify_flatbuffer_adblocking.cc | 287 ++ components/resources/BUILD.gn | 9 + components/resources/adblock_resources.grdp | 23 + components/resources/adblocking/.gitignore | 1 + components/resources/adblocking/BUILD.gn | 70 + - components/resources/adblocking/anticv.txt.gz | Bin 0 -> 58121 bytes - .../resources/adblocking/easylist.txt.gz | Bin 0 -> 142775 bytes + components/resources/adblocking/anticv.txt.gz | Bin 0 -> 59354 bytes + .../resources/adblocking/easylist.txt.gz | Bin 0 -> 141330 bytes components/resources/adblocking/elemhide.js | 43 + .../adblocking/elemhide_for_selector.jst | 53 + - .../resources/adblocking/elemhideemu.jst | 1436 +++++++++++ - .../adblocking/exceptionrules.txt.gz | Bin 0 -> 696362 bytes + .../resources/adblocking/elemhideemu.jst | 1436 ++++++++++ + .../adblocking/exceptionrules.txt.gz | Bin 0 -> 698391 bytes components/resources/adblocking/update.sh | 33 + components/resources/components_resources.grd | 1 + .../data/adblock/40_regex_patterns.txt.gz | Bin 0 -> 904 bytes @@ -528,9 +569,8 @@ Subject: Diff from 112.0.5615.37 content/public/test/fake_local_frame.cc | 7 + content/public/test/fake_local_frame.h | 5 + ...web_request_proxying_url_loader_factory.cc | 5 + - .../browser/extension_event_histogram_value.h | 13 + - .../extension_function_histogram_value.h | 31 + - .../common/mojom/api_permission_id.mojom | 5 + + .../browser/extension_event_histogram_value.h | 7 +- + .../common/mojom/api_permission_id.mojom | 6 + gclient/.gclient | 25 + gclient/.gclient_ci_android | 22 + gclient/.gclient_ci_linux | 21 + @@ -544,25 +584,18 @@ Subject: Diff from 112.0.5615.37 .../core/frame/local_frame_mojo_handler.h | 5 + .../url_loader/mojo_url_loader_client.cc | 6 +- tools/adblock/interdiff.py | 87 + - tools/metrics/histograms/enums.xml | 36 + + tools/metrics/histograms/enums.xml | 5 +- tools/perf/benchmarks/eyeo.py | 668 +++++ tools/perf/page_sets/eyeo_page_set.py | 980 +++++++ - 544 files changed, 52473 insertions(+), 21 deletions(-) + .../definitions/adblock_private.d.ts | 191 ++ + .../definitions/eyeo_filtering_private.d.ts | 228 ++ + 586 files changed, 56530 insertions(+), 23 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h - create mode 100644 chrome/browser/adblock/adblock_content_browser_client_browsertest.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client_unittest.cc create mode 100644 chrome/browser/adblock/adblock_controller_factory.cc create mode 100644 chrome/browser/adblock/adblock_controller_factory.h - create mode 100644 chrome/browser/adblock/adblock_debug_url_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_filter_list_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_filtering_configurations_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc - create mode 100644 chrome/browser/adblock/adblock_non_ascii_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_subscription_service_browsertest.cc - create mode 100644 chrome/browser/adblock/adblock_telemetry_service_browsertest.cc create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h create mode 100644 chrome/browser/adblock/content_security_policy_injector_factory.cc @@ -579,6 +612,16 @@ Subject: Diff from 112.0.5615.37 create mode 100644 chrome/browser/adblock/subscription_persistent_metadata_factory.h create mode 100644 chrome/browser/adblock/subscription_service_factory.cc create mode 100644 chrome/browser/adblock/subscription_service_factory.h + create mode 100644 chrome/browser/adblock/test/adblock_content_browser_client_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_debug_url_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_filter_list_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_filtering_configurations_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_telemetry_service_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc create mode 100644 chrome/browser/android/adblock/adblock_jni.cc create mode 100644 chrome/browser/android/adblock/adblock_jni.h create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.cc @@ -594,7 +637,11 @@ Subject: Diff from 112.0.5615.37 create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.cc create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.h create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc + create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc + create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h + create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc create mode 100644 chrome/common/extensions/api/adblock_private.idl + create mode 100644 chrome/common/extensions/api/eyeo_filtering_private.idl create mode 100644 chrome/test/data/adblock/filterlist_that_allows_resource.txt create mode 100644 chrome/test/data/adblock/filterlist_that_blocks_resource.txt create mode 100644 chrome/test/data/adblock/filterlist_that_hides_resource.txt @@ -607,11 +654,46 @@ Subject: Diff from 112.0.5615.37 create mode 100644 chrome/test/data/adblock/popup_parent.html create mode 100644 chrome/test/data/adblock/resource.png create mode 100644 chrome/test/data/adblock/tab-restore.html + create mode 100644 chrome/test/data/adblock/wbn/blocked_bundle/fetch_result_1_blocked_bundle.json + create mode 100644 chrome/test/data/adblock/wbn/blocked_bundle/fetch_result_2_blocked_bundle.json + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/fetch_result_2_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/green_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/green_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/purple_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/purple_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_bundle_file/xhr_result_2_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/by_resource/blue_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_resource/blue_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_resource/fetch_result_1_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/by_resource/red_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_resource/red_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_resource/xhr_result_1_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/by_scope/fetch_result_3_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/by_scope/orange_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_scope/orange_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_scope/pink_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/by_scope/pink_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/by_scope/xhr_result_3_subresource_loading.json + create mode 100644 chrome/test/data/adblock/wbn/index.html.mustache + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_resource/index.html.mustache + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_scope/index.html.mustache + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.png + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.css + create mode 100644 chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.png create mode 100644 chrome/test/data/extensions/api_test/adblock_private/empty.js create mode 100644 chrome/test/data/extensions/api_test/adblock_private/main.html create mode 100644 chrome/test/data/extensions/api_test/adblock_private/manifest.json create mode 100644 chrome/test/data/extensions/api_test/adblock_private/test.html create mode 100644 chrome/test/data/extensions/api_test/adblock_private/test.js + create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js + create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html + create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json + create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE create mode 100644 components/adblock/README.md @@ -675,6 +757,7 @@ Subject: Diff from 112.0.5615.37 create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java create mode 100644 components/adblock/android/translations/adblock_strings_af.xtb create mode 100644 components/adblock/android/translations/adblock_strings_am.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ar.xtb @@ -1033,11 +1116,13 @@ Subject: Diff from 112.0.5615.37 create mode 100755 tools/adblock/interdiff.py create mode 100644 tools/perf/benchmarks/eyeo.py create mode 100644 tools/perf/page_sets/eyeo_page_set.py + create mode 100644 tools/typescript/definitions/adblock_private.d.ts + create mode 100644 tools/typescript/definitions/eyeo_filtering_private.d.ts diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -169,6 +169,10 @@ vars = { +@@ -163,6 +163,10 @@ vars = { # flag is set True. 'checkout_wpr_archives': False, @@ -1048,7 +1133,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -287,6 +291,8 @@ vars = { +@@ -291,6 +295,8 @@ vars = { 'checkout_rust_toolchain_deps': False, 'android_git': 'https://android.googlesource.com', @@ -1056,10 +1141,10 @@ diff --git a/DEPS b/DEPS + 'eyeo_snippets_gitlab': 'https://gitlab.com/eyeo/snippets.git', 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', - 'chromium_git': 'https://chromium.googlesource.com', -@@ -488,6 +494,11 @@ vars = { + 'chrome_git': 'https://chrome-internal.googlesource.com', +@@ -493,6 +499,11 @@ vars = { # and whatever else without interference from each other. - 'ffmpeg_revision': 'ee0c52d52036ecadfd38affec86c04937480bedb', + 'ffmpeg_revision': 'a51c75b09b3f54ab2d3efe583dcc89ba84d24c0d', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -1068,8 +1153,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': 'e136ec5032a5e5d97e988ce66e8c269a80ff54c4', -@@ -768,6 +779,10 @@ deps = { + 'libcxx_revision': '5622befaf8a9d539bc94c9f1341b8e76065334db', +@@ -794,6 +805,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -1078,9 +1163,9 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '182a630499559e1403237d14e2bc6302d384ed39', + 'url': Var('chromium_git') + '/website.git' + '@' + '049c271a3726ba530df735240bddd8cc5d63ba14', }, -@@ -917,6 +932,13 @@ deps = { +@@ -943,6 +958,13 @@ deps = { 'dep_type': 'cipd', }, @@ -1127,7 +1212,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca #ifndef BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ #define BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ -@@ -87,6 +91,7 @@ +@@ -86,6 +90,7 @@ X("exo") \ X("extensions") \ X("explore_sites") \ @@ -1149,7 +1234,7 @@ diff --git a/build/install-build-deps.sh b/build/install-build-deps.sh # Script to install everything needed to build chromium (well, ideally, anyway) # including items requiring sudo privileges. # See https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md -@@ -576,9 +580,11 @@ fi +@@ -577,9 +581,11 @@ fi if package_exists libinput-dev; then dev_list="${dev_list} libinput-dev" fi @@ -1178,7 +1263,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -149,6 +153,7 @@ if (current_toolchain == default_toolchain) { +@@ -143,6 +147,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/toolbar:java_resources", "//chrome/browser/ui/android/webid/internal:java_resources", "//chrome/browser/ui/messages/android:java_resources", @@ -1186,7 +1271,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java_resources", "//components/autofill/android:autofill_payments_java_resources", "//components/blocked_content/android:java_resources", -@@ -365,6 +370,7 @@ if (current_toolchain == default_toolchain) { +@@ -357,6 +362,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/webapps/android:java", "//chrome/browser/webauthn/android:java", "//chrome/browser/xsurface:java", @@ -1194,7 +1279,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/autofill/android:prefeditor_autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", -@@ -1486,6 +1492,7 @@ if (current_toolchain == default_toolchain) { +@@ -1480,6 +1486,7 @@ if (current_toolchain == default_toolchain) { "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_test_pagecontroller", "//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java", @@ -1202,7 +1287,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/autofill/android:prefeditor_autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", -@@ -1668,6 +1675,7 @@ if (current_toolchain == default_toolchain) { +@@ -1663,6 +1670,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -1210,12 +1295,12 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3641,6 +3649,7 @@ group("jni_headers") { +@@ -3628,6 +3636,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", + "//components/adblock/android:jni_headers", - "//components/digital_asset_links/android:jni_headers", + "//components/content_relationship_verification/android:jni_headers", "//components/image_fetcher:jni_headers", "//components/media_router/browser/android:jni_headers", diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml @@ -1297,7 +1382,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" #include "chrome/browser/defaults.h" -@@ -1713,7 +1718,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1683,7 +1688,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -1346,7 +1431,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -2050,6 +2073,8 @@ static_library("browser") { +@@ -2006,6 +2029,8 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -1355,7 +1440,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/assist_ranker", "//components/autofill/content/browser", "//components/autofill/core/browser", -@@ -2547,6 +2572,18 @@ static_library("browser") { +@@ -2517,6 +2542,18 @@ static_library("browser") { if (is_android) { sources += [ "after_startup_task_utils_android.cc", @@ -1374,7 +1459,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/android_theme_resources.h", "android/autocomplete/tab_matcher_android.cc", "android/autocomplete/tab_matcher_android.h", -@@ -3245,6 +3282,7 @@ static_library("browser") { +@@ -3206,6 +3243,7 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.cc", "webauthn/android/webauthn_request_delegate_android.h", ] @@ -1882,133 +1967,6 @@ new file mode 100644 +}; + +#endif // CHROME_BROWSER_ADBLOCK_ADBLOCK_CONTENT_BROWSER_CLIENT_H_ -diff --git a/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc b/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_content_browser_client_browsertest.cc -@@ -0,0 +1,122 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "chrome/browser/adblock/adblock_content_browser_client.h" -+ -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/browser/ui/browser_commands.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/common/adblock_prefs.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "components/adblock/core/subscription/test/mock_subscription_service.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+#include "net/test/spawned_test_server/spawned_test_server.h" -+#include "net/test/test_data_directory.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace adblock { -+ -+class AdblockContentBrowserClientBrowserTest : public InProcessBrowserTest { -+ public: -+ void SetUpOnMainThread() override { -+ watcher_ = std::make_unique( -+ browser()->tab_strip_model()->GetActiveWebContents(), u"PASS"); -+ watcher_->AlsoWaitForTitle(u"FAIL"); -+ embedded_test_server()->ServeFilesFromSourceDirectory( -+ net::GetWebSocketTestDataDirectory()); -+ ASSERT_TRUE(embedded_test_server()->Start()); -+ } -+ -+ void TearDownOnMainThread() override { watcher_.reset(); } -+ -+ void NavigateToHTTP(const std::string& path) { -+ // Visit a HTTPS page for testing. -+ GURL::Replacements replacements; -+ replacements.SetSchemeStr("http"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), ws_server_.GetURL(path).ReplaceComponents(replacements))); -+ } -+ -+ std::string WaitAndGetTitle() { -+ return base::UTF16ToUTF8(watcher_->WaitAndGetTitle()); -+ } -+ -+ net::SpawnedTestServer ws_server_{net::SpawnedTestServer::TYPE_WS, -+ net::GetWebSocketTestDataDirectory()}; -+ -+ private: -+ std::unique_ptr watcher_; -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, -+ WebSocketConnectionNotInterrupted) { -+ // Launch a WebSocket server. -+ ASSERT_TRUE(ws_server_.Start()); -+ -+ // Disable ad-filtering. -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) -+ ->SetAdblockEnabled(false); -+ -+ NavigateToHTTP("split_packet_check.html"); -+ -+ // WebSocket connected. -+ EXPECT_EQ("PASS", WaitAndGetTitle()); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, -+ WebSocketConnectionInterruptedButNotBlocked) { -+ // Launch a WebSocket server. -+ ASSERT_TRUE(ws_server_.Start()); -+ -+ // Enable ad-filtering. -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) -+ ->SetAdblockEnabled(true); -+ -+ NavigateToHTTP("split_packet_check.html"); -+ -+ // WebSocket connected, there were no blocking filters. -+ EXPECT_EQ("PASS", WaitAndGetTitle()); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, -+ WebSocketConnectionInterruptedAndBlocked) { -+ // Launch a WebSocket server. -+ ASSERT_TRUE(ws_server_.Start()); -+ -+ // Intercept WebSocket and block connection via a filter. -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->SetAdblockEnabled(true); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ controller->AddCustomFilter({"$websocket"}); -+ -+ NavigateToHTTP("split_packet_check.html"); -+ -+ // WebSocket did not connect. -+ EXPECT_EQ("FAIL", WaitAndGetTitle()); -+} -+ -+} // namespace adblock diff --git a/chrome/browser/adblock/adblock_content_browser_client_unittest.cc b/chrome/browser/adblock/adblock_content_browser_client_unittest.cc new file mode 100644 --- /dev/null @@ -2215,7 +2173,7 @@ diff --git a/chrome/browser/adblock/adblock_controller_factory.cc b/chrome/brows new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_controller_factory.cc -@@ -0,0 +1,108 @@ +@@ -0,0 +1,110 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2244,6 +2202,7 @@ new file mode 100644 +#include "chrome/browser/profiles/profile.h" +#include "components/adblock/core/adblock_controller_impl.h" +#include "components/adblock/core/adblock_switches.h" ++#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/configuration/persistent_filtering_configuration.h" +#include "components/adblock/core/subscription/subscription_config.h" @@ -2279,7 +2238,8 @@ new file mode 100644 + content::BrowserContext* context) const { + auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); + auto adblock_filtering_configuration = -+ std::make_unique(prefs, "adblock"); ++ std::make_unique( ++ prefs, kAdblockFilteringConfigurationName); + + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + adblock::switches::kDisableAcceptableAds)) { @@ -2381,1921 +2341,11 @@ new file mode 100644 +} // namespace adblock + +#endif // CHROME_BROWSER_ADBLOCK_ADBLOCK_CONTROLLER_FACTORY_H_ -diff --git a/chrome/browser/adblock/adblock_debug_url_browsertest.cc b/chrome/browser/adblock/adblock_debug_url_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_debug_url_browsertest.cc -@@ -0,0 +1,299 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include -+ -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/content/browser/adblock_url_loader_factory_for_test.h" -+#include "content/public/test/browser_test.h" -+#include "testing/gmock/include/gmock/gmock.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+using testing::_; -+using testing::HasSubstr; -+using testing::Mock; -+using testing::Return; -+using testing::StartsWith; -+ -+namespace adblock { -+ -+class AdblockDebugUrlTest : public InProcessBrowserTest { -+ public: -+ AdblockDebugUrlTest() {} -+ ~AdblockDebugUrlTest() override = default; -+ AdblockDebugUrlTest(const AdblockDebugUrlTest&) = delete; -+ AdblockDebugUrlTest& operator=(const AdblockDebugUrlTest&) = delete; -+ -+ protected: -+ std::string ExecuteScriptAndExtractString(const std::string& js_code) const { -+ content::WebContents* web_contents = -+ browser()->tab_strip_model()->GetActiveWebContents(); -+ return content::EvalJs(web_contents->GetPrimaryMainFrame(), js_code) -+ .ExtractString(); -+ } -+ -+ const std::string kReadPageBodyScript = -+ "document.getElementsByTagName('body')[0].firstChild.innerHTML"; -+ -+ const std::string kAdblockDebugUrl = -+ "http://" + -+ adblock::AdblockURLLoaderFactoryForTest::kAdblockDebugDataHostName; -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestInvalidUrls) { -+ GURL no_command1(kAdblockDebugUrl); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), no_command1)); -+ ASSERT_EQ("INVALID_COMMAND", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL no_command2(kAdblockDebugUrl + "/"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), no_command2)); -+ ASSERT_EQ("INVALID_COMMAND", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL invalid_command_url(kAdblockDebugUrl + "/some_invalid_command"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_command_url)); -+ ASSERT_EQ("INVALID_COMMAND", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL invalid_topic(kAdblockDebugUrl + "/filter/add/%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_topic)); -+ ASSERT_EQ("INVALID_COMMAND", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL invalid_command(kAdblockDebugUrl + "/filters/ad/%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_command)); -+ ASSERT_EQ("INVALID_COMMAND", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestFilterCommands) { -+ GURL clear_filters_url(kAdblockDebugUrl + "/filters/clear"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL list_filters_url(kAdblockDebugUrl + "/filters/list"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ std::string expected_no_filters = "OK"; -+ ASSERT_EQ(expected_no_filters, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL add_filters_url(kAdblockDebugUrl + -+ "/filters/add/%2FadsPlugin%2F%2A%0A%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); -+ ASSERT_THAT(response, StartsWith("OK\n\n")); -+ ASSERT_THAT(response, HasSubstr("adsPlugin/*")); -+ ASSERT_THAT(response, HasSubstr("adsponsor.")); -+ -+ GURL remove_filter_url(kAdblockDebugUrl + "/filters/remove/%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_filter_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ std::string expected_one_filter = "OK\n\n/adsPlugin/*\n"; -+ ASSERT_EQ(expected_one_filter, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ ASSERT_EQ(expected_no_filters, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestDomainCommands) { -+ GURL clear_domains_url(kAdblockDebugUrl + "/domains/clear"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_domains_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL list_domains_url(kAdblockDebugUrl + "/domains/list"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); -+ std::string expected_no_domains = "OK"; -+ ASSERT_EQ(expected_no_domains, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL add_domain_url(kAdblockDebugUrl + -+ "/domains/add/example.com%0Adomain.org"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_domain_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); -+ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); -+ ASSERT_THAT(response, StartsWith("OK\n\n")); -+ ASSERT_THAT(response, HasSubstr("example.com")); -+ ASSERT_THAT(response, HasSubstr("domain.org")); -+ -+ GURL remove_domain_url(kAdblockDebugUrl + "/domains/remove/example.com"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_domain_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); -+ std::string expected_one_domain = "OK\n\ndomain.org\n"; -+ ASSERT_EQ(expected_one_domain, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_domains_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); -+ ASSERT_EQ(expected_no_domains, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestSubscriptionCommands) { -+ GURL clear_subscriptions_url(kAdblockDebugUrl + "/subscriptions/clear"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_subscriptions_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL list_subscriptions_url(kAdblockDebugUrl + "/subscriptions/list"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); -+ std::string expected_no_subscriptions = "OK"; -+ ASSERT_EQ(expected_no_subscriptions, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL add_subscription_url(kAdblockDebugUrl + -+ "/subscriptions/add/" -+ "https%3A%2F%2Fexample.com%2Flist1.txt%0Ahttps%3A%" -+ "2F%2Fwww.domain.org%2Flist2.txt"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_subscription_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); -+ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); -+ ASSERT_THAT(response, StartsWith("OK\n\n")); -+ ASSERT_THAT(response, HasSubstr("https://example.com/list1.txt")); -+ ASSERT_THAT(response, HasSubstr("https://www.domain.org/list2.txt")); -+ -+ GURL remove_subscription_url( -+ kAdblockDebugUrl + -+ "/subscriptions/remove/https%3A%2F%2Fwww.domain.org%2Flist2.txt"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_subscription_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); -+ std::string expected_one_subscription = -+ "OK\n\nhttps://example.com/list1.txt\n"; -+ ASSERT_EQ(expected_one_subscription, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_subscriptions_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); -+ ASSERT_EQ(expected_no_subscriptions, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAdblockCommands) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ -+ GURL enable_adblock__url(kAdblockDebugUrl + "/adblock/enable"); -+ GURL disable_adblock_url(kAdblockDebugUrl + "/adblock/disable"); -+ GURL adblock_state_url(kAdblockDebugUrl + "/adblock/state"); -+ -+ ASSERT_TRUE(controller->IsAdblockEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); -+ ASSERT_EQ("OK\n\nenabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_adblock_url)); -+ ASSERT_FALSE(controller->IsAdblockEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); -+ ASSERT_EQ("OK\n\ndisabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_adblock__url)); -+ ASSERT_TRUE(controller->IsAdblockEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); -+ ASSERT_EQ("OK\n\nenabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAACommands) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ -+ GURL enable_aa_url(kAdblockDebugUrl + "/aa/enable"); -+ GURL disable_aa_url(kAdblockDebugUrl + "/aa/disable"); -+ GURL aa_state_url(kAdblockDebugUrl + "/aa/state"); -+ -+ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); -+ ASSERT_EQ("OK\n\nenabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_aa_url)); -+ ASSERT_FALSE(controller->IsAcceptableAdsEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); -+ ASSERT_EQ("OK\n\ndisabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_aa_url)); -+ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); -+ ASSERT_EQ("OK\n\nenabled", -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestFilterCommandsInOldFormat) { -+ GURL clear_filters_url(kAdblockDebugUrl + "/filters/clear"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL list_filters_url(kAdblockDebugUrl + "/filters/list"); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ std::string expected_no_filters = "OK"; -+ ASSERT_EQ(expected_no_filters, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ GURL add_filters_url(kAdblockDebugUrl + -+ "/add?payload=%2FadsPlugin%2F%2A%0A%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); -+ ASSERT_THAT(response, StartsWith("OK\n\n")); -+ ASSERT_THAT(response, HasSubstr("adsPlugin/*")); -+ ASSERT_THAT(response, HasSubstr("adsponsor.")); -+ -+ GURL remove_filter_url(kAdblockDebugUrl + "/remove?payload=%2Fadsponsor."); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_filter_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ std::string expected_one_filter = "OK\n\n/adsPlugin/*\n"; -+ ASSERT_EQ(expected_one_filter, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); -+ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); -+ ASSERT_EQ(expected_no_filters, -+ ExecuteScriptAndExtractString(kReadPageBodyScript)); -+} -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_filter_list_browsertest.cc b/chrome/browser/adblock/adblock_filter_list_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_filter_list_browsertest.cc -@@ -0,0 +1,215 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "components/adblock/core/adblock_switches.h" -+#include "components/adblock/core/subscription/subscription_config.h" -+#include "components/version_info/version_info.h" -+#include "content/public/browser/browser_task_traits.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+ -+namespace adblock { -+ -+class AdblockFilterListDownloadTestBase : public InProcessBrowserTest { -+ public: -+ AdblockFilterListDownloadTestBase() -+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {} -+ // We need to set server and request handler asap -+ void SetUpInProcessBrowserTestFixture() override { -+ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); -+ host_resolver()->AddRule("easylist-downloads.adblockplus.org", "127.0.0.1"); -+ https_server_.RegisterRequestHandler( -+ base::BindRepeating(&AdblockFilterListDownloadTestBase::RequestHandler, -+ base::Unretained(this))); -+ net::EmbeddedTestServer::ServerCertificateConfig cert_config; -+ cert_config.dns_names = {"easylist-downloads.adblockplus.org"}; -+ https_server_.SetSSLConfig(cert_config); -+ ASSERT_TRUE(https_server_.Start()); -+ SetFilterListServerPortForTesting(https_server_.port()); -+ } -+ -+ void CheckRequestParams(const net::test_server::HttpRequest& request, -+ std::string expected_disabled_value) { -+ std::string os; -+ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", -+ &os); -+ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("platform=" + os) != -+ std::string::npos); -+ EXPECT_TRUE( -+ request.relative_url.find("disabled=" + expected_disabled_value) != -+ std::string::npos); -+ } -+ -+ virtual std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) { -+ if (request.method == net::test_server::HttpMethod::METHOD_GET && -+ (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || -+ base::StartsWith(request.relative_url, "/easylist.txt") || -+ base::StartsWith(request.relative_url, "/exceptionrules.txt"))) { -+ CheckRequestParams(request, "false"); -+ default_lists_.insert(request.relative_url.substr( -+ 1, request.relative_url.find_first_of("?") - 1)); -+ } -+ -+ // Unhandled requests result in the Embedded test server sending a 404. -+ return nullptr; -+ } -+ -+ void CloseBrowserFromAnyThread() { -+ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) -+ ->PostTask( -+ FROM_HERE, -+ base::BindOnce( -+ &AdblockFilterListDownloadTestBase::CloseBrowserAsynchronously, -+ base::Unretained(this), browser())); -+ } -+ -+ protected: -+ net::EmbeddedTestServer https_server_; -+ std::set default_lists_; -+}; -+ -+class AdblockEnabledFilterListDownloadTest -+ : public AdblockFilterListDownloadTestBase { -+ public: -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) override { -+ auto return_value = -+ AdblockFilterListDownloadTestBase::RequestHandler(request); -+ // If we get all expected requests we simply finish the test by closing -+ // the browser, otherwise test will fail with a timeout. -+ if (default_lists_.size() == 3) { -+ CloseBrowserFromAnyThread(); -+ } -+ -+ return return_value; -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockEnabledFilterListDownloadTest, -+ TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); -+} -+ -+class AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest -+ : public AdblockFilterListDownloadTestBase { -+ public: -+ AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest() { -+ const auto testing_interval = base::Seconds(1); -+ SubscriptionServiceFactory::SetUpdateCheckAndDelayIntervalsForTesting( -+ testing_interval, testing_interval); -+ } -+ -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) override { -+ // If we get expected HEAD request we simply finish the test by closing -+ // the browser, otherwise test will fail with a timeout. -+ if (request.method == net::test_server::HttpMethod::METHOD_HEAD && -+ base::StartsWith(request.relative_url, "/exceptionrules.txt")) { -+ CheckRequestParams(request, "true"); -+ CloseBrowserFromAnyThread(); -+ } -+ -+ return nullptr; -+ } -+ -+ void SetUpCommandLine(base::CommandLine* command_line) override { -+ command_line->AppendSwitch(adblock::switches::kDisableAcceptableAds); -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F( -+ AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest, -+ TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); -+} -+ -+class AdblockDisabledFilterListDownloadTest -+ : public AdblockFilterListDownloadTestBase { -+ public: -+ void SetUpCommandLine(base::CommandLine* command_line) override { -+ command_line->AppendSwitch(adblock::switches::kDisableAdblock); -+ } -+ -+ void VerifyNoDownloads() { -+ ASSERT_EQ(0u, default_lists_.size()); -+ CloseBrowserFromAnyThread(); -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockDisabledFilterListDownloadTest, -+ TestInitialDownloads) { -+ // This test assumes that inital downloads (for adblock enabled) will happen -+ // within 10 seconds. When tested locally it always happens within 3 seconds. -+ base::OneShotTimer timer; -+ timer.Start( -+ FROM_HERE, base::Seconds(10), -+ base::BindOnce(&AdblockDisabledFilterListDownloadTest::VerifyNoDownloads, -+ base::Unretained(this))); -+ RunUntilBrowserProcessQuits(); -+} -+ -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -+class AdblockPtLocaleFilterListDownloadTest -+ : public AdblockFilterListDownloadTestBase { -+ public: -+ AdblockPtLocaleFilterListDownloadTest() -+ : AdblockFilterListDownloadTestBase() { -+ setenv("LANGUAGE", "pt_PT", 1); -+ } -+ -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) override { -+ EXPECT_FALSE(base::StartsWith(request.relative_url, "/easylist.txt")); -+ if (request.method == net::test_server::HttpMethod::METHOD_GET && -+ (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || -+ base::StartsWith(request.relative_url, -+ "/easylistportuguese+easylist.txt") || -+ base::StartsWith(request.relative_url, "/exceptionrules.txt"))) { -+ CheckRequestParams(request, "false"); -+ default_lists_.insert(request.relative_url.substr( -+ 1, request.relative_url.find_first_of("?") - 1)); -+ } -+ -+ // If we get all expected requests we simply finish the test by closing -+ // the browser, otherwise test will fail with a timeout. -+ if (default_lists_.size() == 3) { -+ CloseBrowserFromAnyThread(); -+ } -+ -+ // Unhandled requests result in the Embedded test server sending a 404. -+ return nullptr; -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockPtLocaleFilterListDownloadTest, -+ TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); -+} -+#endif -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_filtering_configurations_browsertest.cc b/chrome/browser/adblock/adblock_filtering_configurations_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_filtering_configurations_browsertest.cc -@@ -0,0 +1,355 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+#include -+#include "base/ranges/algorithm.h" -+#include "base/run_loop.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/configuration/filtering_configuration.h" -+#include "components/adblock/core/configuration/persistent_filtering_configuration.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "components/version_info/version_info.h" -+#include "content/public/browser/browser_task_traits.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "gmock/gmock.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+#include "url/gurl.h" -+ -+namespace adblock { -+ -+class SubscriptionInstalledWaiter -+ : public SubscriptionService::SubscriptionObserver { -+ public: -+ explicit SubscriptionInstalledWaiter( -+ SubscriptionService* subscription_service) -+ : subscription_service_(subscription_service) { -+ subscription_service_->AddObserver(this); -+ } -+ -+ ~SubscriptionInstalledWaiter() override { -+ subscription_service_->RemoveObserver(this); -+ } -+ -+ void WaitUntilSubscriptionsInstalled(std::vector subscriptions) { -+ awaited_subscriptions_ = std::move(subscriptions); -+ run_loop_.Run(); -+ } -+ -+ void OnSubscriptionInstalled(const GURL& subscription_url) override { -+ awaited_subscriptions_.erase( -+ base::ranges::remove(awaited_subscriptions_, subscription_url), -+ awaited_subscriptions_.end()); -+ if (awaited_subscriptions_.empty()) -+ run_loop_.Quit(); -+ } -+ -+ protected: -+ SubscriptionService* subscription_service_; -+ base::RunLoop run_loop_; -+ std::vector awaited_subscriptions_; -+}; -+ -+class AdblockFilteringConfigurationBrowserTest : public InProcessBrowserTest { -+ public: -+ void SetUpInProcessBrowserTestFixture() override { -+ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); -+ host_resolver()->AddRule("*", "127.0.0.1"); -+ embedded_test_server()->ServeFilesFromSourceDirectory( -+ "chrome/test/data/adblock"); -+ ASSERT_TRUE(embedded_test_server()->Start()); -+ } -+ -+ void SetUpOnMainThread() override { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ } -+ -+ GURL BlockingFilterListUrl() { -+ return embedded_test_server()->GetURL( -+ "/filterlist_that_blocks_resource.txt"); -+ } -+ -+ GURL ElementHidingFilterListUrl() { -+ return embedded_test_server()->GetURL( -+ "/filterlist_that_hides_resource.txt"); -+ } -+ -+ GURL AllowingFilterListUrl() { -+ return embedded_test_server()->GetURL( -+ "/filterlist_that_allows_resource.txt"); -+ } -+ -+ GURL GetPageUrl() { -+ return embedded_test_server()->GetURL("test.org", "/innermost_frame.html"); -+ } -+ -+ void NavigateToPage() { -+ ASSERT_TRUE(NavigateToURL( -+ browser()->tab_strip_model()->GetActiveWebContents(), GetPageUrl())); -+ } -+ -+ std::unique_ptr MakeConfiguration( -+ std::string name) { -+ return std::make_unique( -+ browser()->profile()->GetPrefs(), name); -+ } -+ -+ void InstallFilteringConfiguration( -+ std::unique_ptr configuration) { -+ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) -+ ->InstallFilteringConfiguration(std::move(configuration)); -+ } -+ -+ void WaitUntilSubscriptionsInstalled(std::vector subscriptions) { -+ SubscriptionInstalledWaiter waiter( -+ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile())); -+ waiter.WaitUntilSubscriptionsInstalled(std::move(subscriptions)); -+ } -+ -+ std::string GetResourcesComputedStyle() { -+ const std::string javascript = -+ "window.getComputedStyle(document.getElementById('subresource'))." -+ "display"; -+ return content::EvalJs(browser() -+ ->tab_strip_model() -+ ->GetActiveWebContents() -+ ->GetPrimaryMainFrame(), -+ javascript) -+ .ExtractString(); -+ } -+ -+ void ExpectResourceBlocked() { -+ EXPECT_EQ("none", GetResourcesComputedStyle()); -+ } -+ -+ void ExpectResourceShown() { -+ EXPECT_EQ("inline", GetResourcesComputedStyle()); -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ NoBlockingByDefault) { -+ auto configuration = MakeConfiguration("config"); -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ResourceBlockedByFilteringConfigurationsList) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddFilterList(BlockingFilterListUrl()); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl()}); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ResourceHiddenByFilteringConfigurationsList) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddFilterList(ElementHidingFilterListUrl()); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ WaitUntilSubscriptionsInstalled({ElementHidingFilterListUrl()}); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ResourceAllowedByFilteringConfigurationsList) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddFilterList(BlockingFilterListUrl()); -+ configuration->AddFilterList(ElementHidingFilterListUrl()); -+ configuration->AddFilterList(AllowingFilterListUrl()); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl(), -+ AllowingFilterListUrl(), -+ ElementHidingFilterListUrl()}); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ BlockingTakesPrecedenceBetweenConfigurations) { -+ auto blocking_configuration = MakeConfiguration("blocking"); -+ blocking_configuration->AddFilterList(BlockingFilterListUrl()); -+ -+ auto allowing_configuration = MakeConfiguration("allowing"); -+ allowing_configuration->AddFilterList(AllowingFilterListUrl()); -+ -+ InstallFilteringConfiguration(std::move(blocking_configuration)); -+ InstallFilteringConfiguration(std::move(allowing_configuration)); -+ -+ WaitUntilSubscriptionsInstalled( -+ {BlockingFilterListUrl(), AllowingFilterListUrl()}); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ElementBlockedByCustomFilter) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddCustomFilter("*resource.png"); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ElementAllowedByCustomFilter) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddCustomFilter("*resource.png"); -+ configuration->AddCustomFilter("@@*resource.png"); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ElementAllowedByAllowedDomain) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddCustomFilter("*resource.png"); -+ configuration->AddAllowedDomain(GetPageUrl().host()); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ PRE_CustomFiltersPersist) { -+ auto configuration = MakeConfiguration("persistent"); -+ // This custom filter will survive browser restart. -+ configuration->AddCustomFilter("*resource.png"); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ CustomFiltersPersist) { -+ auto configuration = MakeConfiguration("persistent"); -+ EXPECT_THAT(configuration->GetCustomFilters(), -+ testing::UnorderedElementsAre("*resource.png")); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ DisabledConfigurationDoesNotBlock) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->AddCustomFilter("*resource.png"); -+ configuration->SetEnabled(false); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ConfigurationCanBeUsedAfterInstalling) { -+ auto configuration = MakeConfiguration("config"); -+ auto* configuration_ptr = configuration.get(); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ configuration_ptr->AddCustomFilter("*resource.png"); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ ConfigurationCanBeDisabledAfterInstalling) { -+ auto configuration = MakeConfiguration("config"); -+ auto* configuration_ptr = configuration.get(); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ configuration_ptr->AddCustomFilter("*resource.png"); -+ configuration_ptr->SetEnabled(false); -+ -+ NavigateToPage(); -+ ExpectResourceShown(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ SubscriptionsDownloadedAfterConfigurationEnabled) { -+ auto configuration = MakeConfiguration("config"); -+ configuration->SetEnabled(false); -+ configuration->AddFilterList(BlockingFilterListUrl()); -+ configuration->AddFilterList(ElementHidingFilterListUrl()); -+ configuration->AddFilterList(AllowingFilterListUrl()); -+ auto* configuration_ptr = configuration.get(); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ configuration_ptr->SetEnabled(true); -+ -+ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl(), -+ AllowingFilterListUrl(), -+ ElementHidingFilterListUrl()}); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ PRE_DownloadedSubscriptionsPersistOnDisk) { -+ auto configuration = MakeConfiguration("config"); -+ // This filter list setting will survive browser restart. -+ configuration->AddFilterList(BlockingFilterListUrl()); -+ -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ // This downloaded subscription won't need to be re-downloaded after restart. -+ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl()}); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, -+ DownloadedSubscriptionsPersistOnDisk) { -+ auto configuration = MakeConfiguration("config"); -+ InstallFilteringConfiguration(std::move(configuration)); -+ -+ NavigateToPage(); -+ ExpectResourceBlocked(); -+} -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc b/chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_frame_hierarchy_builder_browsertest.cc -@@ -0,0 +1,310 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include -+ -+#include "base/ranges/algorithm.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/adblock/resource_classification_runner_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/content/browser/adblock_filter_match.h" -+#include "components/adblock/content/browser/frame_hierarchy_builder.h" -+#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/blocked_content/popup_blocker_tab_helper.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace adblock { -+ -+class ResourceClassificationRunnerObserver -+ : public ResourceClassificationRunner::Observer { -+ public: -+ ~ResourceClassificationRunnerObserver() override { -+ VerifyNoUnexpectedNotifications(); -+ } -+ // ResourceClassificationRunner::Observer: -+ void OnAdMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const std::vector& parent_frame_urls, -+ ContentType content_type, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override { -+ if (match_result == FilterMatchResult::kAllowRule) { -+ allowed_ads_notifications.push_back(url); -+ } else { -+ blocked_ads_notifications.push_back(url); -+ } -+ } -+ -+ void OnPageAllowed(const GURL& url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override { -+ allowed_pages_notifications.push_back(url); -+ } -+ -+ void OnPopupMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const GURL& opener_url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override { -+ if (match_result == FilterMatchResult::kAllowRule) { -+ allowed_popups_notifications.push_back(url); -+ } else { -+ blocked_popups_notifications.push_back(url); -+ } -+ } -+ -+ void VerifyNotificationSent(base::StringPiece path, std::vector& list) { -+ auto it = base::ranges::find(list, path, &GURL::ExtractFileName); -+ ASSERT_FALSE(it == list.end()) << "Path " << path << " not on list"; -+ // Remove expected notifications so that we can verify there are no -+ // unexpected notifications left by the end of each test. -+ list.erase(it); -+ } -+ -+ void VerifyNoUnexpectedNotifications() { -+ EXPECT_TRUE(blocked_ads_notifications.empty()); -+ EXPECT_TRUE(allowed_ads_notifications.empty()); -+ EXPECT_TRUE(blocked_popups_notifications.empty()); -+ EXPECT_TRUE(allowed_popups_notifications.empty()); -+ EXPECT_TRUE(allowed_pages_notifications.empty()); -+ } -+ -+ std::vector blocked_ads_notifications; -+ std::vector allowed_ads_notifications; -+ std::vector blocked_popups_notifications; -+ std::vector allowed_popups_notifications; -+ std::vector allowed_pages_notifications; -+}; -+ -+// Simulated setup: -+// http://outer.com/outermost_frame.html -+// has an iframe: http://middle.com/middle_frame.html -+// has an iframe: http://inner.com/innermost_frame.html -+// has a subresource http://inner.com/resource.png -+// -+// All of these files are in chrome/test/data/adblock. Cross-domain distribution -+// is simulated via SetupCrossSiteRedirector. -+// innermost_frame.html reports whether resource.png is visible via -+// window.top.postMessage to outermost_frame.html, which stores a global -+// subresource_visible JS variable. -+class AdblockFrameHierarchyBrowserTest : public InProcessBrowserTest { -+ public: -+ void SetUpOnMainThread() override { -+ InProcessBrowserTest::SetUpOnMainThread(); -+ host_resolver()->AddRule("*", "127.0.0.1"); -+ embedded_test_server()->ServeFilesFromSourceDirectory( -+ "chrome/test/data/adblock"); -+ content::SetupCrossSiteRedirector(embedded_test_server()); -+ ASSERT_TRUE(embedded_test_server()->Start()); -+ auto* classification_runner = -+ ResourceClassificationRunnerFactory::GetForBrowserContext( -+ browser()->profile()); -+ classification_runner->AddObserver(&observer); -+ } -+ -+ void TearDownOnMainThread() override { -+ auto* classification_runner = -+ ResourceClassificationRunnerFactory::GetForBrowserContext( -+ browser()->profile()); -+ classification_runner->RemoveObserver(&observer); -+ InProcessBrowserTest::TearDownOnMainThread(); -+ } -+ -+ void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); -+ } -+ } -+ -+ void NavigateToOutermostFrame() { -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), embedded_test_server()->GetURL( -+ "/cross-site/outer.com/outermost_frame.html"))); -+ } -+ -+ void NavigateToPopupParentFrame() { -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), embedded_test_server()->GetURL( -+ "/cross-site/outer.com/popup_parent.html"))); -+ } -+ -+ void VerifyTargetResourceShown(bool expected_shown) { -+ EXPECT_EQ( -+ expected_shown, -+ content::EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), -+ "subresource_visible === true")); -+ } -+ -+ int NumberOfOpenTabs() { return browser()->tab_strip_model()->GetTabCount(); } -+ -+ ResourceClassificationRunnerObserver observer; -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ SubresourceShownWithNoFilters) { -+ SetFilters({}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(true); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, SubresourceBlocked) { -+ SetFilters({"/resource.png"}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(false); -+ observer.VerifyNotificationSent("resource.png", -+ observer.blocked_ads_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ SubresourceAllowedViaInnerFrame) { -+ SetFilters({"/resource.png", "@@||inner.com^$document"}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(true); -+ observer.VerifyNotificationSent("resource.png", -+ observer.allowed_ads_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ SubresourceAllowedViaMiddleFrame) { -+ SetFilters({"/resource.png", "@@||middle.com^$document"}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(true); -+ observer.VerifyNotificationSent("resource.png", -+ observer.allowed_ads_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ SubresourceAllowedViaOutermostFrame) { -+ SetFilters({"/resource.png", "@@||outer.com^$document"}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(true); -+ observer.VerifyNotificationSent("resource.png", -+ observer.allowed_ads_notifications); -+ observer.VerifyNotificationSent("outermost_frame.html", -+ observer.allowed_pages_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ SubresourceBlockedWhenInvalidAllowRule) { -+ SetFilters({"/resource.png", "@@||bogus.com^$document"}); -+ NavigateToOutermostFrame(); -+ VerifyTargetResourceShown(false); -+ observer.VerifyNotificationSent("resource.png", -+ observer.blocked_ads_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ PopupHandledByChromiumWithoutFilters) { -+ // Without any popup-specific filters, blocking popups is handed over to -+ // Chromium, which has it's own heuristics that are not based on filters. -+ SetFilters({}); -+ NavigateToPopupParentFrame(); -+ // The popup was not opened: -+ EXPECT_EQ(1, NumberOfOpenTabs()); -+ // Because Chromium's built-in popup blocker stopped it: -+ EXPECT_EQ(1u, blocked_content::PopupBlockerTabHelper::FromWebContents( -+ browser()->tab_strip_model()->GetActiveWebContents()) -+ ->GetBlockedPopupsCount()); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, PopupBlockedByFilter) { -+ SetFilters({"popup.html$popup"}); -+ NavigateToPopupParentFrame(); -+ EXPECT_EQ(1, NumberOfOpenTabs()); -+ // Observer was notified about blocked popup: -+ observer.VerifyNotificationSent("popup.html", -+ observer.blocked_popups_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, PopupAllowedByFilter) { -+ SetFilters({"popup.html$popup", "@@popup.html$popup"}); -+ NavigateToPopupParentFrame(); -+ // Popup was allowed to open in a new tab -+ EXPECT_EQ(2, NumberOfOpenTabs()); -+ observer.VerifyNotificationSent("popup.html", -+ observer.allowed_popups_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ PopupAllowedByDomainSpecificFilter) { -+ // The frame that wants to open the popup is hosted on middle.com. -+ // The $popup allow rule applies to that frame. -+ SetFilters({"popup.html$popup", "@@popup.html$popup,domain=middle.com"}); -+ NavigateToPopupParentFrame(); -+ // Popup was allowed to open in a new tab -+ EXPECT_EQ(2, NumberOfOpenTabs()); -+ observer.VerifyNotificationSent("popup.html", -+ observer.allowed_popups_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ PopupNotAllowedByDomainSpecificFilter) { -+ // The frame that wants to open the popup is hosted on middle.com. -+ // The $popup allow rule does not apply because it is specific to outer.com. -+ // outer.com is not the frame that is opening the popup. -+ SetFilters({"popup.html$popup", "@@popup.html$popup,domain=outer.com"}); -+ NavigateToPopupParentFrame(); -+ EXPECT_EQ(1, NumberOfOpenTabs()); -+ // Observer was notified about blocked popup: -+ observer.VerifyNotificationSent("popup.html", -+ observer.blocked_popups_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ PopupAllowedByParentDocument) { -+ // The outermost frame has a blanket allowing rule of $document type. -+ SetFilters({"popup.html$popup", "@@||outer.com^$document,domain=outer.com"}); -+ NavigateToPopupParentFrame(); -+ // Popup was allowed to open in a new tab -+ EXPECT_EQ(2, NumberOfOpenTabs()); -+ observer.VerifyNotificationSent("popup.html", -+ observer.allowed_popups_notifications); -+ observer.VerifyNotificationSent("popup_parent.html", -+ observer.allowed_pages_notifications); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, -+ PopupAllowedByIntermediateParentDocument) { -+ // The middle frame has a blanket allowing rule of $document type. -+ SetFilters( -+ {"popup.html$popup", "@@||middle.com^$document,domain=middle.com"}); -+ NavigateToPopupParentFrame(); -+ // Popup was allowed to open in a new tab -+ EXPECT_EQ(2, NumberOfOpenTabs()); -+ observer.VerifyNotificationSent("popup.html", -+ observer.allowed_popups_notifications); -+ observer.VerifyNotificationSent("popup.html", -+ observer.allowed_pages_notifications); -+} -+ -+// More tests can be added / parametrized, e.g.: -+// - elemhide blocking filters (in conjunction with $elemhide allow rules) -+// - $subdocument-based allow rules -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc b/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_multiple_tabs_browsertests.cc -@@ -0,0 +1,155 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/adblock/resource_classification_runner_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/browser/ui/browser_list.h" -+#include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/sessions/content/session_tab_helper.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+ -+namespace adblock { -+ -+class AdblockMultipleTabsBrowserTest -+ : public InProcessBrowserTest, -+ public ResourceClassificationRunner::Observer { -+ public: -+ void SetUpOnMainThread() override { -+ host_resolver()->AddRule(kTestDomain, "127.0.0.1"); -+ embedded_test_server()->ServeFilesFromSourceDirectory( -+ "chrome/test/data/adblock"); -+ ASSERT_TRUE(embedded_test_server()->Start()); -+ ResourceClassificationRunnerFactory::GetForBrowserContext( -+ browser()->profile()) -+ ->AddObserver(this); -+ SetFilters({"blocked.png", "allowed.png", "@@allowed.png"}); -+ } -+ -+ void TearDownInProcessBrowserTestFixture() override { -+ ASSERT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); -+ ASSERT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); -+ } -+ -+ void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); -+ } -+ } -+ -+ void RestoreTabs(Browser* browser) { -+ content::DOMMessageQueue queue; -+ RecentTabsSubMenuModel menu(nullptr, browser); -+ menu.ExecuteCommand(menu.GetFirstRecentTabsCommandId(), 0); -+ for (int i = 0; i < kTabsCount; ++i) { -+ std::string message; -+ EXPECT_TRUE(queue.WaitForMessage(&message)); -+ EXPECT_EQ("\"READY\"", message); -+ } -+ } -+ -+ // ResourceClassificationRunner::Observer: -+ void OnAdMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const std::vector& parent_frame_urls, -+ ContentType content_type, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override { -+ const content::WebContents* wc = -+ content::WebContents::FromRenderFrameHost(render_frame_host); -+ if (match_result == FilterMatchResult::kBlockRule && -+ url.path() == "/blocked.png") { -+ tabs_with_blocked_resource_.insert( -+ sessions::SessionTabHelper::IdForTab(wc).id()); -+ } else if (match_result == FilterMatchResult::kAllowRule && -+ url.path() == "/allowed.png") { -+ tabs_with_allowed_resource_.insert( -+ sessions::SessionTabHelper::IdForTab(wc).id()); -+ } -+ } -+ -+ void OnPageAllowed(const GURL& url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override {} -+ -+ void OnPopupMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const GURL& opener_url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription) override {} -+ -+ protected: -+ const int kTabsCount = 4; -+ const char* kTestDomain = "example.com"; -+ std::set tabs_with_blocked_resource_; -+ std::set tabs_with_allowed_resource_; -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, PRE_OpenManyTabs) { -+ // Load page in already opened tab -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), -+ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"))); -+ // Open more tabs -+ for (int i = 0; i < kTabsCount - 1; ++i) { -+ ASSERT_TRUE(ui_test_utils::NavigateToURLWithDisposition( -+ browser(), -+ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"), -+ WindowOpenDisposition::NEW_FOREGROUND_TAB, -+ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP)); -+ } -+ EXPECT_EQ(kTabsCount, browser()->tab_strip_model()->count()); -+ EXPECT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); -+ EXPECT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); -+ -+ // Open a new browser instance -+ ui_test_utils::NavigateToURLWithDisposition( -+ browser(), GURL(url::kAboutBlankURL), WindowOpenDisposition::NEW_WINDOW, -+ ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); -+ BrowserList* active_browser_list = BrowserList::GetInstance(); -+ EXPECT_EQ(2u, active_browser_list->size()); -+ -+ // Close the 1st browser and clear tabs test data -+ CloseBrowserSynchronously(browser()); -+ EXPECT_EQ(1u, active_browser_list->size()); -+ tabs_with_blocked_resource_.clear(); -+ tabs_with_allowed_resource_.clear(); -+ -+ Browser* browser = active_browser_list->get(0); -+ // Restore tabs from1 st browser instance (already closed) in 2nd instance -+ RestoreTabs(browser); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, OpenManyTabs) { -+ ASSERT_EQ(0u, tabs_with_blocked_resource_.size()); -+ ASSERT_EQ(0u, tabs_with_allowed_resource_.size()); -+ // Restore tabs from previous session (previous test) -+ RestoreTabs(browser()); -+} -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_non_ascii_browsertest.cc b/chrome/browser/adblock/adblock_non_ascii_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_non_ascii_browsertest.cc -@@ -0,0 +1,77 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace adblock { -+ -+class AdblockNonASCIIBrowserTest : public InProcessBrowserTest { -+ public: -+ void SetUpOnMainThread() override { -+ host_resolver()->AddRule("xn----dtbfdbwspgnceulm.xn--p1ai", "127.0.0.1"); -+ embedded_test_server()->ServeFilesFromSourceDirectory( -+ "chrome/test/data/adblock"); -+ content::SetupCrossSiteRedirector(embedded_test_server()); -+ ASSERT_TRUE(embedded_test_server()->Start()); -+ } -+ -+ void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); -+ } -+ } -+ -+ std::string ExecuteScriptAndExtractString(const std::string& js_code) const { -+ content::WebContents* web_contents = -+ browser()->tab_strip_model()->GetActiveWebContents(); -+ return content::EvalJs(web_contents->GetPrimaryMainFrame(), js_code) -+ .ExtractString(); -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockNonASCIIBrowserTest, BlockNonASCII) { -+ static constexpr char kCheckVisibility[] = -+ R"(getComputedStyle(document.getElementsByClassName("форум")[0]).display)"; -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), -+ embedded_test_server()->GetURL("форум-трейдеров.рф", "/non-ascii.html"))); -+ EXPECT_EQ("block", ExecuteScriptAndExtractString(kCheckVisibility)); -+ -+ SetFilters({"xn----dtbfdbwspgnceulm.xn--p1ai##.форум"}); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL( -+ browser(), -+ embedded_test_server()->GetURL("форум-трейдеров.рф", "/non-ascii.html"))); -+ -+ EXPECT_EQ("none", ExecuteScriptAndExtractString(kCheckVisibility)); -+} -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_subscription_service_browsertest.cc b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_subscription_service_browsertest.cc -@@ -0,0 +1,204 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "base/files/file_util.h" -+#include "base/files/scoped_temp_dir.h" -+#include "base/ranges/algorithm.h" -+#include "base/run_loop.h" -+#include "base/strings/string_split.h" -+#include "base/test/bind.h" -+#include "base/threading/thread_restrictions.h" -+#include "base/time/time.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/adblock/subscription_persistent_metadata_factory.h" -+#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/subscription/subscription_config.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "components/version_info/version_info.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/http/http_request_headers.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+ -+namespace adblock { -+ -+class AdblockSubscriptionServiceBrowserTest -+ : public InProcessBrowserTest, -+ public SubscriptionService::SubscriptionObserver { -+ public: -+ AdblockSubscriptionServiceBrowserTest() { -+ SubscriptionServiceFactory::SetUpdateCheckAndDelayIntervalsForTesting( -+ base::Seconds(1), base::Seconds(1)); -+ } -+ void SetUpOnMainThread() override { -+ InProcessBrowserTest::SetUpOnMainThread(); -+ https_server_ = std::make_unique( -+ net::EmbeddedTestServer::TYPE_HTTPS); -+ https_server_->SetSSLConfig(net::EmbeddedTestServer::CERT_OK); -+ } -+ -+ bool RequestHeadersContainAcceptLanguage( -+ const net::test_server::HttpRequest& request) { -+ const auto accept_language_it = -+ request.headers.find(net::HttpRequestHeaders::kAcceptLanguage); -+ return accept_language_it != request.headers.end() && -+ !accept_language_it->second.empty(); -+ } -+ -+ bool RequestHeadersContainAcceptEncodingBrotli( -+ const net::test_server::HttpRequest& request) { -+ const auto accept_encoding_it = -+ request.headers.find(net::HttpRequestHeaders::kAcceptEncoding); -+ if (accept_encoding_it == request.headers.end()) { -+ return false; -+ } -+ const auto split_encodings = -+ base::SplitString(accept_encoding_it->second, ",", -+ base::WhitespaceHandling::TRIM_WHITESPACE, -+ base::SplitResult::SPLIT_WANT_NONEMPTY); -+ return base::ranges::find(split_encodings, "br") != split_encodings.end(); -+ } -+ -+ std::unique_ptr -+ HandleSubscriptionUpdateRequestWithUrlCheck( -+ std::string expected_url_part, -+ const net::test_server::HttpRequest& request) { -+ static const char kSubscriptionHeader[] = -+ "[Adblock Plus 2.0]\n" -+ "! Checksum: X5A8vtJDBW2a9EgS9glqbg\n" -+ "! Version: 202202061935\n" -+ "! Last modified: 06 Feb 2022 19:35 UTC\n" -+ "! Expires: 1 days (update frequency)\n\n"; -+ if (base::StartsWith(request.relative_url, kSubscription, -+ base::CompareCase::SENSITIVE) && -+ !request_already_handled_) { -+ request_already_handled_ = true; -+ EXPECT_TRUE(RequestHeadersContainAcceptLanguage(request)); -+ EXPECT_TRUE(RequestHeadersContainAcceptEncodingBrotli(request)); -+ std::string os; -+ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", -+ &os); -+ EXPECT_TRUE(request.relative_url.find(expected_url_part) != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != -+ std::string::npos); -+ EXPECT_TRUE(request.relative_url.find("platform=" + os) != -+ std::string::npos); -+ auto http_response = -+ std::make_unique(); -+ http_response->set_code(net::HTTP_OK); -+ http_response->set_content(kSubscriptionHeader); -+ http_response->set_content_type("text/plain"); -+ return std::move(http_response); -+ } -+ -+ // Unhandled requests result in the Embedded test server sending a 404. -+ return nullptr; -+ } -+ -+ void ExpectFilterListRequestMadeWithLastVersion(std::string last_version) { -+ https_server_->RegisterRequestHandler( -+ base::BindRepeating(&AdblockSubscriptionServiceBrowserTest:: -+ HandleSubscriptionUpdateRequestWithUrlCheck, -+ base::Unretained(this), last_version)); -+ ASSERT_TRUE(https_server_->Start(kPort)); -+ } -+ -+ // adblock::SubscriptionService::SubscriptionObserver -+ void OnSubscriptionInstalled(const GURL& url) override { -+ if (base::StartsWith(url.spec(), -+ https_server_->GetURL(kSubscription).spec())) { -+ // In order to ensure next run requests an update, mark the subscription -+ // as almost expired. -+ SubscriptionPersistentMetadataFactory::GetForBrowserContext( -+ browser()->profile()) -+ ->SetExpirationInterval(url, base::Milliseconds(1)); -+ CloseBrowserAsynchronously(browser()); -+ } -+ } -+ -+ std::unique_ptr https_server_; -+ bool request_already_handled_ = false; -+ static const std::string kSubscription; -+ // Port is hardcoded so the server url is the same across tests -+ static const int kPort = 65432; -+}; -+ -+const std::string AdblockSubscriptionServiceBrowserTest::kSubscription = -+ "/subscription.txt"; -+ -+IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, PRE_LastVersion) { -+ ExpectFilterListRequestMadeWithLastVersion("&lastVersion=0&"); -+ // Downloading a filter list and setting its expiry time to almost zero, so -+ // the next run will have to update it ASAP. -+ -+ auto* subscription_service = -+ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()); -+ subscription_service->AddObserver(this); -+ // Using a custom subscription URL here because before test sets -+ // up the server then SubscriptionService already started fetching default -+ // subscriptions. -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->InstallSubscription(https_server_->GetURL(kSubscription)); -+ // Wait until subscription is downloaded and stored. -+ RunUntilBrowserProcessQuits(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, LastVersion) { -+ ExpectFilterListRequestMadeWithLastVersion("&lastVersion=202202061935&"); -+ auto* subscription_service = -+ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()); -+ subscription_service->AddObserver(this); -+ // Wait for subscription update to trigger a network request. -+ RunUntilBrowserProcessQuits(); -+} -+ -+IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, -+ FilterFileDeletedAfterConversion) { -+ base::ScopedAllowBlockingForTesting allow_blocking; -+ ConversionExecutors* conversion_executors = -+ SubscriptionServiceFactory::GetInstance(); -+ DCHECK(conversion_executors); -+ base::ScopedTempDir temp_dir; -+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); -+ const auto filter_list_path = temp_dir.GetPath().AppendASCII("easylist.txt"); -+ std::vector filter_list_contents = { -+ "[\"Adblock Plus 2.0\"]\n", "invalid file"}; -+ for (const auto& file_content : filter_list_contents) { -+ base::WriteFile(filter_list_path, file_content); -+ ASSERT_TRUE(base::PathExists(filter_list_path)); -+ base::RunLoop run_loop; -+ conversion_executors->ConvertFilterListFile( -+ DefaultSubscriptionUrl(), filter_list_path, -+ base::BindLambdaForTesting( -+ [&run_loop](ConversionResult result) { run_loop.Quit(); })); -+ run_loop.Run(); -+ ASSERT_FALSE(base::PathExists(filter_list_path)); -+ } -+} -+ -+} // namespace adblock -diff --git a/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc b/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/adblock/adblock_telemetry_service_browsertest.cc -@@ -0,0 +1,255 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+#include "base/json/json_reader.h" -+#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/in_process_browser_test.h" -+#include "components/adblock/core/activeping_telemetry_topic_provider.h" -+#include "content/public/browser/browser_task_traits.h" -+#include "content/public/test/browser_test.h" -+#include "content/public/test/browser_test_utils.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+ -+namespace adblock { -+ -+class AdblockTelemetryServiceBrowserTestBase : public InProcessBrowserTest { -+ public: -+ // We need to set server and request handler asap -+ void SetUpInProcessBrowserTestFixture() override { -+ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); -+ host_resolver()->AddRule( -+ ActivepingTelemetryTopicProvider::DefaultBaseUrl().host(), "127.0.0.1"); -+ http_server_.RegisterRequestHandler(base::BindRepeating( -+ &AdblockTelemetryServiceBrowserTestBase::RequestHandler, -+ base::Unretained(this))); -+ ASSERT_TRUE(http_server_.Start()); -+ ActivepingTelemetryTopicProvider::SetHttpPortForTesting( -+ http_server_.port()); -+ auto testing_interval = base::Seconds(2); -+ ActivepingTelemetryTopicProvider::SetIntervalsForTesting(testing_interval); -+ AdblockTelemetryServiceFactory::GetInstance() -+ ->SetCheckAndDelayIntervalsForTesting(testing_interval, -+ testing_interval); -+ } -+ -+ base::Value* GetFirstPing(absl::optional& parsed) { -+ return GetPayload(parsed)->Find("first_ping"); -+ } -+ -+ base::Value* GetLastPing(absl::optional& parsed) { -+ return GetPayload(parsed)->Find("last_ping"); -+ } -+ -+ base::Value* GetLastPingTag(absl::optional& parsed) { -+ return GetPayload(parsed)->Find("last_ping_tag"); -+ } -+ -+ base::Value* GetPreviousLastPing(absl::optional& parsed) { -+ return GetPayload(parsed)->Find("previous_last_ping"); -+ } -+ -+ void CloseBrowserFromAnyThread() { -+ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) -+ ->PostTask(FROM_HERE, -+ base::BindOnce(&AdblockTelemetryServiceBrowserTestBase:: -+ CloseBrowserAsynchronously, -+ base::Unretained(this), browser())); -+ } -+ -+ std::unique_ptr CreateResponse( -+ const std::string& token) { -+ auto http_response = -+ std::make_unique(); -+ http_response->set_code(net::HTTP_OK); -+ http_response->set_content("{\"token\": \"" + token + "\"}"); -+ http_response->set_content_type("text/plain"); -+ return std::move(http_response); -+ } -+ -+ virtual std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) = 0; -+ -+ private: -+ base::Value::Dict* GetPayload(absl::optional& parsed) { -+ EXPECT_TRUE(parsed && parsed->is_dict()); -+ base::Value::Dict* parsed_dict = parsed->GetIfDict(); -+ EXPECT_TRUE(parsed_dict); -+ base::Value::Dict* payload = parsed_dict->FindDict("payload"); -+ EXPECT_TRUE(payload); -+ return payload; -+ } -+ -+ net::EmbeddedTestServer http_server_; -+}; -+ -+// Test three initial pings each after startup and each fails for the 1st time -+class AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest -+ : public AdblockTelemetryServiceBrowserTestBase { -+ public: -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) override { -+ EXPECT_TRUE(base::StartsWith(request.relative_url, -+ "/topic/eyeochromium_activeping/version/1")); -+ EXPECT_TRUE(request.has_content); -+ absl::optional parsed = -+ base::JSONReader::Read(request.content); -+ base::Value* first_ping = GetFirstPing(parsed); -+ base::Value* last_ping = GetLastPing(parsed); -+ base::Value* previous_last_ping = GetPreviousLastPing(parsed); -+ -+ if (expected_first_ping_.empty()) { -+ EXPECT_FALSE(first_ping); -+ } else { -+ EXPECT_EQ(expected_first_ping_, *first_ping); -+ } -+ -+ if (expected_last_ping_.empty()) { -+ EXPECT_FALSE(last_ping); -+ } else { -+ EXPECT_EQ(expected_last_ping_, *last_ping); -+ } -+ -+ if (expected_previous_last_ping_.empty()) { -+ EXPECT_FALSE(previous_last_ping); -+ } else { -+ EXPECT_EQ(expected_previous_last_ping_, *previous_last_ping); -+ } -+ -+ if (!attempt_++) { -+ // Force retry by 404 response but 1st save last_ping_tag if any -+ base::Value* last_ping_tag = GetLastPingTag(parsed); -+ if (last_ping_tag) { -+ previous_last_ping_tag_ = last_ping_tag->GetString(); -+ } -+ return nullptr; -+ } -+ -+ // Verifies that retried ping has the same last_ping_tag -+ if (!previous_last_ping_tag_.empty()) { -+ base::Value* last_ping_tag = GetLastPingTag(parsed); -+ EXPECT_EQ(previous_last_ping_tag_, *last_ping_tag); -+ } -+ -+ // If we get expected telemetry ping with retry we simply finish the test -+ // by closing the browser, otherwise test will fail with a timeout. -+ CloseBrowserFromAnyThread(); -+ -+ // This will be still processed before CloseBrowserFromAnyThread() applies -+ return CreateResponse(server_response_); -+ } -+ -+ void TearDownInProcessBrowserTestFixture() override { -+ // Make sure we called RequestHandler exactly twice: 1st ping failed, 2nd -+ // was successful -+ EXPECT_EQ(2, attempt_); -+ } -+ -+ protected: -+ std::string server_response_; -+ std::string expected_first_ping_; -+ std::string expected_last_ping_; -+ std::string expected_previous_last_ping_; -+ -+ private: -+ int attempt_ = 0; -+ std::string previous_last_ping_tag_ = ""; -+}; -+ -+IN_PROC_BROWSER_TEST_F( -+ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, -+ PRE_PRE_TestPing) { -+ // Sets the ping to be returned by the server and checked in the next test -+ server_response_ = "11111"; -+ RunUntilBrowserProcessQuits(); -+} -+ -+IN_PROC_BROWSER_TEST_F( -+ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, -+ PRE_TestPing) { -+ // Sets the ping to be returned by the server and checked in the next test -+ server_response_ = "22222"; -+ expected_first_ping_ = expected_last_ping_ = "11111"; -+ RunUntilBrowserProcessQuits(); -+} -+ -+IN_PROC_BROWSER_TEST_F( -+ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, -+ TestPing) { -+ expected_first_ping_ = "11111"; -+ expected_last_ping_ = "22222"; -+ expected_previous_last_ping_ = "11111"; -+ RunUntilBrowserProcessQuits(); -+} -+ -+// Test three inital pings -+class AdblockTelemetryServiceSubsequentPingsBrowserTest -+ : public AdblockTelemetryServiceBrowserTestBase { -+ public: -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) override { -+ EXPECT_TRUE(base::StartsWith(request.relative_url, -+ "/topic/eyeochromium_activeping/version/1")); -+ EXPECT_TRUE(request.has_content); -+ absl::optional parsed = -+ base::JSONReader::Read(request.content); -+ base::Value* first_ping = GetFirstPing(parsed); -+ base::Value* last_ping = GetLastPing(parsed); -+ base::Value* previous_last_ping = GetPreviousLastPing(parsed); -+ -+ if (count_ == 1) { -+ // No ping payload in the very 1st ping -+ EXPECT_FALSE(first_ping); -+ EXPECT_FALSE(last_ping); -+ } else if (count_ == 2) { -+ // For 2nd ping `first_ping` == `last_ping` -+ EXPECT_EQ(first_ping_, *first_ping); -+ EXPECT_EQ(first_ping_, *last_ping); -+ } else if (count_ == 3) { -+ // From 3rd ping onward `first_ping` != `last_ping` and we also get -+ // `previous_last_ping` -+ EXPECT_EQ(first_ping_, *first_ping); -+ EXPECT_EQ(second_ping_, *last_ping); -+ EXPECT_EQ(first_ping_, *previous_last_ping); -+ } -+ -+ // If we get three expected telemetry pings we simply finish the test by -+ // closing the browser, otherwise test will fail with a timeout. -+ if (count_ == 3) { -+ CloseBrowserFromAnyThread(); -+ return nullptr; -+ } -+ return CreateResponse(count_++ == 1 ? first_ping_ : second_ping_); -+ } -+ -+ void TearDownInProcessBrowserTestFixture() override { -+ // Make sure we called RequestHandler exactly three times -+ EXPECT_EQ(3, count_); -+ } -+ -+ private: -+ const std::string first_ping_ = "11111"; -+ const std::string second_ping_ = "22222"; -+ int count_ = 1; -+}; -+ -+IN_PROC_BROWSER_TEST_F(AdblockTelemetryServiceSubsequentPingsBrowserTest, -+ TestPing) { -+ RunUntilBrowserProcessQuits(); -+} -+ -+} // namespace adblock diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.cc b/chrome/browser/adblock/adblock_telemetry_service_factory.cc new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_telemetry_service_factory.cc -@@ -0,0 +1,138 @@ +@@ -0,0 +1,127 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4334,7 +2384,6 @@ new file mode 100644 +namespace { +std::optional g_check_interval_for_testing; +std::optional g_initial_delay_for_testing; -+constexpr base::StringPiece kAdblockFilteringConfigurationName = "adblock"; + +base::TimeDelta GetInitialDelay() { + static base::TimeDelta kInitialDelay = @@ -4350,17 +2399,6 @@ new file mode 100644 + return kCheckInterval; +} + -+FilteringConfiguration* GetAdblockFilteringConfiguration( -+ content::BrowserContext* context) { -+ auto filtering_configurations = -+ SubscriptionServiceFactory::GetForBrowserContext(context) -+ ->GetInstalledFilteringConfigurations(); -+ const auto it = base::ranges::find(filtering_configurations, -+ kAdblockFilteringConfigurationName, -+ &FilteringConfiguration::GetName); -+ DCHECK(it != filtering_configurations.end()); -+ return *it; -+} +} // namespace + +// static @@ -4397,8 +2435,9 @@ new file mode 100644 + ->GetURLLoaderFactoryForBrowserProcess(); + auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); + auto service = std::make_unique( -+ GetAdblockFilteringConfiguration(context), url_loader_factory, -+ GetInitialDelay(), GetCheckInterval()); ++ SubscriptionServiceFactory::GetForBrowserContext(context) ++ ->GetAdblockFilteringConfiguration(), ++ url_loader_factory, GetInitialDelay(), GetCheckInterval()); + service->AddTopicProvider(std::make_unique( + utils::GetAppInfo(), prefs, + AdblockControllerFactory::GetForBrowserContext(context), @@ -5521,6 +3560,2438 @@ new file mode 100644 +} // namespace adblock + +#endif // CHROME_BROWSER_ADBLOCK_SUBSCRIPTION_SERVICE_FACTORY_H_ +diff --git a/chrome/browser/adblock/test/adblock_content_browser_client_browsertest.cc b/chrome/browser/adblock/test/adblock_content_browser_client_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_content_browser_client_browsertest.cc +@@ -0,0 +1,122 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "chrome/browser/adblock/adblock_content_browser_client.h" ++ ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/browser/ui/browser_commands.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/adblock/core/subscription/test/mock_subscription_service.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "net/test/spawned_test_server/spawned_test_server.h" ++#include "net/test/test_data_directory.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class AdblockContentBrowserClientBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ watcher_ = std::make_unique( ++ browser()->tab_strip_model()->GetActiveWebContents(), u"PASS"); ++ watcher_->AlsoWaitForTitle(u"FAIL"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ net::GetWebSocketTestDataDirectory()); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ } ++ ++ void TearDownOnMainThread() override { watcher_.reset(); } ++ ++ void NavigateToHTTP(const std::string& path) { ++ // Visit a HTTPS page for testing. ++ GURL::Replacements replacements; ++ replacements.SetSchemeStr("http"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ws_server_.GetURL(path).ReplaceComponents(replacements))); ++ } ++ ++ std::string WaitAndGetTitle() { ++ return base::UTF16ToUTF8(watcher_->WaitAndGetTitle()); ++ } ++ ++ net::SpawnedTestServer ws_server_{net::SpawnedTestServer::TYPE_WS, ++ net::GetWebSocketTestDataDirectory()}; ++ ++ private: ++ std::unique_ptr watcher_; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionNotInterrupted) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Disable ad-filtering. ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) ++ ->SetAdblockEnabled(false); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket connected. ++ EXPECT_EQ("PASS", WaitAndGetTitle()); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionInterruptedButNotBlocked) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Enable ad-filtering. ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) ++ ->SetAdblockEnabled(true); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket connected, there were no blocking filters. ++ EXPECT_EQ("PASS", WaitAndGetTitle()); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockContentBrowserClientBrowserTest, ++ WebSocketConnectionInterruptedAndBlocked) { ++ // Launch a WebSocket server. ++ ASSERT_TRUE(ws_server_.Start()); ++ ++ // Intercept WebSocket and block connection via a filter. ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->SetAdblockEnabled(true); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ controller->AddCustomFilter({"*$websocket"}); ++ ++ NavigateToHTTP("split_packet_check.html"); ++ ++ // WebSocket did not connect. ++ EXPECT_EQ("FAIL", WaitAndGetTitle()); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_debug_url_browsertest.cc b/chrome/browser/adblock/test/adblock_debug_url_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_debug_url_browsertest.cc +@@ -0,0 +1,299 @@ ++// This file is part of eyeo Chromium SDK, ++// Copyright (C) 2006-present eyeo GmbH ++// ++// eyeo Chromium SDK is free software: you can redistribute it and/or modify ++// it under the terms of the GNU General Public License version 3 as ++// published by the Free Software Foundation. ++// ++// eyeo Chromium SDK is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License ++// along with eyeo Chromium SDK. If not, see . ++ ++#include ++ ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/content/browser/adblock_url_loader_factory_for_test.h" ++#include "content/public/test/browser_test.h" ++#include "testing/gmock/include/gmock/gmock.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++using testing::_; ++using testing::HasSubstr; ++using testing::Mock; ++using testing::Return; ++using testing::StartsWith; ++ ++namespace adblock { ++ ++class AdblockDebugUrlTest : public InProcessBrowserTest { ++ public: ++ AdblockDebugUrlTest() {} ++ ~AdblockDebugUrlTest() override = default; ++ AdblockDebugUrlTest(const AdblockDebugUrlTest&) = delete; ++ AdblockDebugUrlTest& operator=(const AdblockDebugUrlTest&) = delete; ++ ++ protected: ++ std::string ExecuteScriptAndExtractString(const std::string& js_code) const { ++ content::WebContents* web_contents = ++ browser()->tab_strip_model()->GetActiveWebContents(); ++ return content::EvalJs(web_contents->GetPrimaryMainFrame(), js_code) ++ .ExtractString(); ++ } ++ ++ const std::string kReadPageBodyScript = ++ "document.getElementsByTagName('body')[0].firstChild.innerHTML"; ++ ++ const std::string kAdblockDebugUrl = ++ "http://" + ++ adblock::AdblockURLLoaderFactoryForTest::kAdblockDebugDataHostName; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestInvalidUrls) { ++ GURL no_command1(kAdblockDebugUrl); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), no_command1)); ++ ASSERT_EQ("INVALID_COMMAND", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL no_command2(kAdblockDebugUrl + "/"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), no_command2)); ++ ASSERT_EQ("INVALID_COMMAND", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL invalid_command_url(kAdblockDebugUrl + "/some_invalid_command"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_command_url)); ++ ASSERT_EQ("INVALID_COMMAND", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL invalid_topic(kAdblockDebugUrl + "/filter/add/%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_topic)); ++ ASSERT_EQ("INVALID_COMMAND", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL invalid_command(kAdblockDebugUrl + "/filters/ad/%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), invalid_command)); ++ ASSERT_EQ("INVALID_COMMAND", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestFilterCommands) { ++ GURL clear_filters_url(kAdblockDebugUrl + "/filters/clear"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL list_filters_url(kAdblockDebugUrl + "/filters/list"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ std::string expected_no_filters = "OK"; ++ ASSERT_EQ(expected_no_filters, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL add_filters_url(kAdblockDebugUrl + ++ "/filters/add/%2FadsPlugin%2F%2A%0A%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); ++ ASSERT_THAT(response, StartsWith("OK\n\n")); ++ ASSERT_THAT(response, HasSubstr("adsPlugin/*")); ++ ASSERT_THAT(response, HasSubstr("adsponsor.")); ++ ++ GURL remove_filter_url(kAdblockDebugUrl + "/filters/remove/%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_filter_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ std::string expected_one_filter = "OK\n\n/adsPlugin/*\n"; ++ ASSERT_EQ(expected_one_filter, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ ASSERT_EQ(expected_no_filters, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestDomainCommands) { ++ GURL clear_domains_url(kAdblockDebugUrl + "/domains/clear"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_domains_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL list_domains_url(kAdblockDebugUrl + "/domains/list"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); ++ std::string expected_no_domains = "OK"; ++ ASSERT_EQ(expected_no_domains, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL add_domain_url(kAdblockDebugUrl + ++ "/domains/add/example.com%0Adomain.org"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_domain_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); ++ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); ++ ASSERT_THAT(response, StartsWith("OK\n\n")); ++ ASSERT_THAT(response, HasSubstr("example.com")); ++ ASSERT_THAT(response, HasSubstr("domain.org")); ++ ++ GURL remove_domain_url(kAdblockDebugUrl + "/domains/remove/example.com"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_domain_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); ++ std::string expected_one_domain = "OK\n\ndomain.org\n"; ++ ASSERT_EQ(expected_one_domain, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_domains_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_domains_url)); ++ ASSERT_EQ(expected_no_domains, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestSubscriptionCommands) { ++ GURL clear_subscriptions_url(kAdblockDebugUrl + "/subscriptions/clear"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_subscriptions_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL list_subscriptions_url(kAdblockDebugUrl + "/subscriptions/list"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); ++ std::string expected_no_subscriptions = "OK"; ++ ASSERT_EQ(expected_no_subscriptions, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL add_subscription_url(kAdblockDebugUrl + ++ "/subscriptions/add/" ++ "https%3A%2F%2Fexample.com%2Flist1.txt%0Ahttps%3A%" ++ "2F%2Fwww.domain.org%2Flist2.txt"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_subscription_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); ++ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); ++ ASSERT_THAT(response, StartsWith("OK\n\n")); ++ ASSERT_THAT(response, HasSubstr("https://example.com/list1.txt")); ++ ASSERT_THAT(response, HasSubstr("https://www.domain.org/list2.txt")); ++ ++ GURL remove_subscription_url( ++ kAdblockDebugUrl + ++ "/subscriptions/remove/https%3A%2F%2Fwww.domain.org%2Flist2.txt"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_subscription_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); ++ std::string expected_one_subscription = ++ "OK\n\nhttps://example.com/list1.txt\n"; ++ ASSERT_EQ(expected_one_subscription, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_subscriptions_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_subscriptions_url)); ++ ASSERT_EQ(expected_no_subscriptions, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAdblockCommands) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ ++ GURL enable_adblock__url(kAdblockDebugUrl + "/adblock/enable"); ++ GURL disable_adblock_url(kAdblockDebugUrl + "/adblock/disable"); ++ GURL adblock_state_url(kAdblockDebugUrl + "/adblock/state"); ++ ++ ASSERT_TRUE(controller->IsAdblockEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); ++ ASSERT_EQ("OK\n\nenabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_adblock_url)); ++ ASSERT_FALSE(controller->IsAdblockEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); ++ ASSERT_EQ("OK\n\ndisabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_adblock__url)); ++ ASSERT_TRUE(controller->IsAdblockEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); ++ ASSERT_EQ("OK\n\nenabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAACommands) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ ++ GURL enable_aa_url(kAdblockDebugUrl + "/aa/enable"); ++ GURL disable_aa_url(kAdblockDebugUrl + "/aa/disable"); ++ GURL aa_state_url(kAdblockDebugUrl + "/aa/state"); ++ ++ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); ++ ASSERT_EQ("OK\n\nenabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_aa_url)); ++ ASSERT_FALSE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); ++ ASSERT_EQ("OK\n\ndisabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_aa_url)); ++ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); ++ ASSERT_EQ("OK\n\nenabled", ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestFilterCommandsInOldFormat) { ++ GURL clear_filters_url(kAdblockDebugUrl + "/filters/clear"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL list_filters_url(kAdblockDebugUrl + "/filters/list"); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ std::string expected_no_filters = "OK"; ++ ASSERT_EQ(expected_no_filters, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ GURL add_filters_url(kAdblockDebugUrl + ++ "/add?payload=%2FadsPlugin%2F%2A%0A%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), add_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ auto response = ExecuteScriptAndExtractString(kReadPageBodyScript); ++ ASSERT_THAT(response, StartsWith("OK\n\n")); ++ ASSERT_THAT(response, HasSubstr("adsPlugin/*")); ++ ASSERT_THAT(response, HasSubstr("adsponsor.")); ++ ++ GURL remove_filter_url(kAdblockDebugUrl + "/remove?payload=%2Fadsponsor."); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), remove_filter_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ std::string expected_one_filter = "OK\n\n/adsPlugin/*\n"; ++ ASSERT_EQ(expected_one_filter, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), clear_filters_url)); ++ ASSERT_EQ("OK", ExecuteScriptAndExtractString(kReadPageBodyScript)); ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), list_filters_url)); ++ ASSERT_EQ(expected_no_filters, ++ ExecuteScriptAndExtractString(kReadPageBodyScript)); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_filter_list_browsertest.cc b/chrome/browser/adblock/test/adblock_filter_list_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_filter_list_browsertest.cc +@@ -0,0 +1,215 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "components/adblock/core/adblock_switches.h" ++#include "components/adblock/core/subscription/subscription_config.h" ++#include "components/version_info/version_info.h" ++#include "content/public/browser/browser_task_traits.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockFilterListDownloadTestBase : public InProcessBrowserTest { ++ public: ++ AdblockFilterListDownloadTestBase() ++ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {} ++ // We need to set server and request handler asap ++ void SetUpInProcessBrowserTestFixture() override { ++ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); ++ host_resolver()->AddRule("easylist-downloads.adblockplus.org", "127.0.0.1"); ++ https_server_.RegisterRequestHandler( ++ base::BindRepeating(&AdblockFilterListDownloadTestBase::RequestHandler, ++ base::Unretained(this))); ++ net::EmbeddedTestServer::ServerCertificateConfig cert_config; ++ cert_config.dns_names = {"easylist-downloads.adblockplus.org"}; ++ https_server_.SetSSLConfig(cert_config); ++ ASSERT_TRUE(https_server_.Start()); ++ SetFilterListServerPortForTesting(https_server_.port()); ++ } ++ ++ void CheckRequestParams(const net::test_server::HttpRequest& request, ++ std::string expected_disabled_value) { ++ std::string os; ++ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", ++ &os); ++ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platform=" + os) != ++ std::string::npos); ++ EXPECT_TRUE( ++ request.relative_url.find("disabled=" + expected_disabled_value) != ++ std::string::npos); ++ } ++ ++ virtual std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) { ++ if (request.method == net::test_server::HttpMethod::METHOD_GET && ++ (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || ++ base::StartsWith(request.relative_url, "/easylist.txt") || ++ base::StartsWith(request.relative_url, "/exceptionrules.txt"))) { ++ CheckRequestParams(request, "false"); ++ default_lists_.insert(request.relative_url.substr( ++ 1, request.relative_url.find_first_of("?") - 1)); ++ } ++ ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return nullptr; ++ } ++ ++ void CloseBrowserFromAnyThread() { ++ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) ++ ->PostTask( ++ FROM_HERE, ++ base::BindOnce( ++ &AdblockFilterListDownloadTestBase::CloseBrowserAsynchronously, ++ base::Unretained(this), browser())); ++ } ++ ++ protected: ++ net::EmbeddedTestServer https_server_; ++ std::set default_lists_; ++}; ++ ++class AdblockEnabledFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ auto return_value = ++ AdblockFilterListDownloadTestBase::RequestHandler(request); ++ // If we get all expected requests we simply finish the test by closing ++ // the browser, otherwise test will fail with a timeout. ++ if (default_lists_.size() == 3) { ++ CloseBrowserFromAnyThread(); ++ } ++ ++ return return_value; ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockEnabledFilterListDownloadTest, ++ TestInitialDownloads) { ++ RunUntilBrowserProcessQuits(); ++} ++ ++class AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest() { ++ const auto testing_interval = base::Seconds(1); ++ SubscriptionServiceFactory::SetUpdateCheckAndDelayIntervalsForTesting( ++ testing_interval, testing_interval); ++ } ++ ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ // If we get expected HEAD request we simply finish the test by closing ++ // the browser, otherwise test will fail with a timeout. ++ if (request.method == net::test_server::HttpMethod::METHOD_HEAD && ++ base::StartsWith(request.relative_url, "/exceptionrules.txt")) { ++ CheckRequestParams(request, "true"); ++ CloseBrowserFromAnyThread(); ++ } ++ ++ return nullptr; ++ } ++ ++ void SetUpCommandLine(base::CommandLine* command_line) override { ++ command_line->AppendSwitch(adblock::switches::kDisableAcceptableAds); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest, ++ TestInitialDownloads) { ++ RunUntilBrowserProcessQuits(); ++} ++ ++class AdblockDisabledFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ void SetUpCommandLine(base::CommandLine* command_line) override { ++ command_line->AppendSwitch(adblock::switches::kDisableAdblock); ++ } ++ ++ void VerifyNoDownloads() { ++ ASSERT_EQ(0u, default_lists_.size()); ++ CloseBrowserFromAnyThread(); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockDisabledFilterListDownloadTest, ++ TestInitialDownloads) { ++ // This test assumes that inital downloads (for adblock enabled) will happen ++ // within 10 seconds. When tested locally it always happens within 3 seconds. ++ base::OneShotTimer timer; ++ timer.Start( ++ FROM_HERE, base::Seconds(10), ++ base::BindOnce(&AdblockDisabledFilterListDownloadTest::VerifyNoDownloads, ++ base::Unretained(this))); ++ RunUntilBrowserProcessQuits(); ++} ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++class AdblockPtLocaleFilterListDownloadTest ++ : public AdblockFilterListDownloadTestBase { ++ public: ++ AdblockPtLocaleFilterListDownloadTest() ++ : AdblockFilterListDownloadTestBase() { ++ setenv("LANGUAGE", "pt_PT", 1); ++ } ++ ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_FALSE(base::StartsWith(request.relative_url, "/easylist.txt")); ++ if (request.method == net::test_server::HttpMethod::METHOD_GET && ++ (base::StartsWith(request.relative_url, "/abp-filters-anti-cv.txt") || ++ base::StartsWith(request.relative_url, ++ "/easylistportuguese+easylist.txt") || ++ base::StartsWith(request.relative_url, "/exceptionrules.txt"))) { ++ CheckRequestParams(request, "false"); ++ default_lists_.insert(request.relative_url.substr( ++ 1, request.relative_url.find_first_of("?") - 1)); ++ } ++ ++ // If we get all expected requests we simply finish the test by closing ++ // the browser, otherwise test will fail with a timeout. ++ if (default_lists_.size() == 3) { ++ CloseBrowserFromAnyThread(); ++ } ++ ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return nullptr; ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockPtLocaleFilterListDownloadTest, ++ TestInitialDownloads) { ++ RunUntilBrowserProcessQuits(); ++} ++#endif ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_filtering_configurations_browsertest.cc b/chrome/browser/adblock/test/adblock_filtering_configurations_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_filtering_configurations_browsertest.cc +@@ -0,0 +1,355 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include ++#include "base/ranges/algorithm.h" ++#include "base/run_loop.h" ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "components/adblock/core/configuration/persistent_filtering_configuration.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/version_info/version_info.h" ++#include "content/public/browser/browser_task_traits.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "gmock/gmock.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "url/gurl.h" ++ ++namespace adblock { ++ ++class SubscriptionInstalledWaiter ++ : public SubscriptionService::SubscriptionObserver { ++ public: ++ explicit SubscriptionInstalledWaiter( ++ SubscriptionService* subscription_service) ++ : subscription_service_(subscription_service) { ++ subscription_service_->AddObserver(this); ++ } ++ ++ ~SubscriptionInstalledWaiter() override { ++ subscription_service_->RemoveObserver(this); ++ } ++ ++ void WaitUntilSubscriptionsInstalled(std::vector subscriptions) { ++ awaited_subscriptions_ = std::move(subscriptions); ++ run_loop_.Run(); ++ } ++ ++ void OnSubscriptionInstalled(const GURL& subscription_url) override { ++ awaited_subscriptions_.erase( ++ base::ranges::remove(awaited_subscriptions_, subscription_url), ++ awaited_subscriptions_.end()); ++ if (awaited_subscriptions_.empty()) ++ run_loop_.Quit(); ++ } ++ ++ protected: ++ SubscriptionService* subscription_service_; ++ base::RunLoop run_loop_; ++ std::vector awaited_subscriptions_; ++}; ++ ++class AdblockFilteringConfigurationBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpInProcessBrowserTestFixture() override { ++ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); ++ host_resolver()->AddRule("*", "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ } ++ ++ void SetUpOnMainThread() override { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ } ++ ++ GURL BlockingFilterListUrl() { ++ return embedded_test_server()->GetURL( ++ "/filterlist_that_blocks_resource.txt"); ++ } ++ ++ GURL ElementHidingFilterListUrl() { ++ return embedded_test_server()->GetURL( ++ "/filterlist_that_hides_resource.txt"); ++ } ++ ++ GURL AllowingFilterListUrl() { ++ return embedded_test_server()->GetURL( ++ "/filterlist_that_allows_resource.txt"); ++ } ++ ++ GURL GetPageUrl() { ++ return embedded_test_server()->GetURL("test.org", "/innermost_frame.html"); ++ } ++ ++ void NavigateToPage() { ++ ASSERT_TRUE(NavigateToURL( ++ browser()->tab_strip_model()->GetActiveWebContents(), GetPageUrl())); ++ } ++ ++ std::unique_ptr MakeConfiguration( ++ std::string name) { ++ return std::make_unique( ++ browser()->profile()->GetPrefs(), name); ++ } ++ ++ void InstallFilteringConfiguration( ++ std::unique_ptr configuration) { ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->InstallFilteringConfiguration(std::move(configuration)); ++ } ++ ++ void WaitUntilSubscriptionsInstalled(std::vector subscriptions) { ++ SubscriptionInstalledWaiter waiter( ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile())); ++ waiter.WaitUntilSubscriptionsInstalled(std::move(subscriptions)); ++ } ++ ++ std::string GetResourcesComputedStyle() { ++ const std::string javascript = ++ "window.getComputedStyle(document.getElementById('subresource'))." ++ "display"; ++ return content::EvalJs(browser() ++ ->tab_strip_model() ++ ->GetActiveWebContents() ++ ->GetPrimaryMainFrame(), ++ javascript) ++ .ExtractString(); ++ } ++ ++ void ExpectResourceBlocked() { ++ EXPECT_EQ("none", GetResourcesComputedStyle()); ++ } ++ ++ void ExpectResourceShown() { ++ EXPECT_EQ("inline", GetResourcesComputedStyle()); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ NoBlockingByDefault) { ++ auto configuration = MakeConfiguration("config"); ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ResourceBlockedByFilteringConfigurationsList) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddFilterList(BlockingFilterListUrl()); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl()}); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ResourceHiddenByFilteringConfigurationsList) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddFilterList(ElementHidingFilterListUrl()); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ WaitUntilSubscriptionsInstalled({ElementHidingFilterListUrl()}); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ResourceAllowedByFilteringConfigurationsList) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddFilterList(BlockingFilterListUrl()); ++ configuration->AddFilterList(ElementHidingFilterListUrl()); ++ configuration->AddFilterList(AllowingFilterListUrl()); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl(), ++ AllowingFilterListUrl(), ++ ElementHidingFilterListUrl()}); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ BlockingTakesPrecedenceBetweenConfigurations) { ++ auto blocking_configuration = MakeConfiguration("blocking"); ++ blocking_configuration->AddFilterList(BlockingFilterListUrl()); ++ ++ auto allowing_configuration = MakeConfiguration("allowing"); ++ allowing_configuration->AddFilterList(AllowingFilterListUrl()); ++ ++ InstallFilteringConfiguration(std::move(blocking_configuration)); ++ InstallFilteringConfiguration(std::move(allowing_configuration)); ++ ++ WaitUntilSubscriptionsInstalled( ++ {BlockingFilterListUrl(), AllowingFilterListUrl()}); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ElementBlockedByCustomFilter) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddCustomFilter("*resource.png"); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ElementAllowedByCustomFilter) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddCustomFilter("*resource.png"); ++ configuration->AddCustomFilter("@@*resource.png"); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ElementAllowedByAllowedDomain) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddCustomFilter("*resource.png"); ++ configuration->AddAllowedDomain(GetPageUrl().host()); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ PRE_CustomFiltersPersist) { ++ auto configuration = MakeConfiguration("persistent"); ++ // This custom filter will survive browser restart. ++ configuration->AddCustomFilter("*resource.png"); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ CustomFiltersPersist) { ++ auto configuration = MakeConfiguration("persistent"); ++ EXPECT_THAT(configuration->GetCustomFilters(), ++ testing::UnorderedElementsAre("*resource.png")); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ DisabledConfigurationDoesNotBlock) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->AddCustomFilter("*resource.png"); ++ configuration->SetEnabled(false); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ConfigurationCanBeUsedAfterInstalling) { ++ auto configuration = MakeConfiguration("config"); ++ auto* configuration_ptr = configuration.get(); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ configuration_ptr->AddCustomFilter("*resource.png"); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ ConfigurationCanBeDisabledAfterInstalling) { ++ auto configuration = MakeConfiguration("config"); ++ auto* configuration_ptr = configuration.get(); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ configuration_ptr->AddCustomFilter("*resource.png"); ++ configuration_ptr->SetEnabled(false); ++ ++ NavigateToPage(); ++ ExpectResourceShown(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ SubscriptionsDownloadedAfterConfigurationEnabled) { ++ auto configuration = MakeConfiguration("config"); ++ configuration->SetEnabled(false); ++ configuration->AddFilterList(BlockingFilterListUrl()); ++ configuration->AddFilterList(ElementHidingFilterListUrl()); ++ configuration->AddFilterList(AllowingFilterListUrl()); ++ auto* configuration_ptr = configuration.get(); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ configuration_ptr->SetEnabled(true); ++ ++ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl(), ++ AllowingFilterListUrl(), ++ ElementHidingFilterListUrl()}); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ PRE_DownloadedSubscriptionsPersistOnDisk) { ++ auto configuration = MakeConfiguration("config"); ++ // This filter list setting will survive browser restart. ++ configuration->AddFilterList(BlockingFilterListUrl()); ++ ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ // This downloaded subscription won't need to be re-downloaded after restart. ++ WaitUntilSubscriptionsInstalled({BlockingFilterListUrl()}); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFilteringConfigurationBrowserTest, ++ DownloadedSubscriptionsPersistOnDisk) { ++ auto configuration = MakeConfiguration("config"); ++ InstallFilteringConfiguration(std::move(configuration)); ++ ++ NavigateToPage(); ++ ExpectResourceBlocked(); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc b/chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc +@@ -0,0 +1,310 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include ++ ++#include "base/ranges/algorithm.h" ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/content/browser/adblock_filter_match.h" ++#include "components/adblock/content/browser/frame_hierarchy_builder.h" ++#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/blocked_content/popup_blocker_tab_helper.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class ResourceClassificationRunnerObserver ++ : public ResourceClassificationRunner::Observer { ++ public: ++ ~ResourceClassificationRunnerObserver() override { ++ VerifyNoUnexpectedNotifications(); ++ } ++ // ResourceClassificationRunner::Observer: ++ void OnAdMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const std::vector& parent_frame_urls, ++ ContentType content_type, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override { ++ if (match_result == FilterMatchResult::kAllowRule) { ++ allowed_ads_notifications.push_back(url); ++ } else { ++ blocked_ads_notifications.push_back(url); ++ } ++ } ++ ++ void OnPageAllowed(const GURL& url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override { ++ allowed_pages_notifications.push_back(url); ++ } ++ ++ void OnPopupMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const GURL& opener_url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override { ++ if (match_result == FilterMatchResult::kAllowRule) { ++ allowed_popups_notifications.push_back(url); ++ } else { ++ blocked_popups_notifications.push_back(url); ++ } ++ } ++ ++ void VerifyNotificationSent(base::StringPiece path, std::vector& list) { ++ auto it = base::ranges::find(list, path, &GURL::ExtractFileName); ++ ASSERT_FALSE(it == list.end()) << "Path " << path << " not on list"; ++ // Remove expected notifications so that we can verify there are no ++ // unexpected notifications left by the end of each test. ++ list.erase(it); ++ } ++ ++ void VerifyNoUnexpectedNotifications() { ++ EXPECT_TRUE(blocked_ads_notifications.empty()); ++ EXPECT_TRUE(allowed_ads_notifications.empty()); ++ EXPECT_TRUE(blocked_popups_notifications.empty()); ++ EXPECT_TRUE(allowed_popups_notifications.empty()); ++ EXPECT_TRUE(allowed_pages_notifications.empty()); ++ } ++ ++ std::vector blocked_ads_notifications; ++ std::vector allowed_ads_notifications; ++ std::vector blocked_popups_notifications; ++ std::vector allowed_popups_notifications; ++ std::vector allowed_pages_notifications; ++}; ++ ++// Simulated setup: ++// http://outer.com/outermost_frame.html ++// has an iframe: http://middle.com/middle_frame.html ++// has an iframe: http://inner.com/innermost_frame.html ++// has a subresource http://inner.com/resource.png ++// ++// All of these files are in chrome/test/data/adblock. Cross-domain distribution ++// is simulated via SetupCrossSiteRedirector. ++// innermost_frame.html reports whether resource.png is visible via ++// window.top.postMessage to outermost_frame.html, which stores a global ++// subresource_visible JS variable. ++class AdblockFrameHierarchyBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ InProcessBrowserTest::SetUpOnMainThread(); ++ host_resolver()->AddRule("*", "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ content::SetupCrossSiteRedirector(embedded_test_server()); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ auto* classification_runner = ++ ResourceClassificationRunnerFactory::GetForBrowserContext( ++ browser()->profile()); ++ classification_runner->AddObserver(&observer); ++ } ++ ++ void TearDownOnMainThread() override { ++ auto* classification_runner = ++ ResourceClassificationRunnerFactory::GetForBrowserContext( ++ browser()->profile()); ++ classification_runner->RemoveObserver(&observer); ++ InProcessBrowserTest::TearDownOnMainThread(); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ for (auto& filter : filters) { ++ controller->AddCustomFilter(filter); ++ } ++ } ++ ++ void NavigateToOutermostFrame() { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), embedded_test_server()->GetURL( ++ "/cross-site/outer.com/outermost_frame.html"))); ++ } ++ ++ void NavigateToPopupParentFrame() { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), embedded_test_server()->GetURL( ++ "/cross-site/outer.com/popup_parent.html"))); ++ } ++ ++ void VerifyTargetResourceShown(bool expected_shown) { ++ EXPECT_EQ( ++ expected_shown, ++ content::EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), ++ "subresource_visible === true")); ++ } ++ ++ int NumberOfOpenTabs() { return browser()->tab_strip_model()->GetTabCount(); } ++ ++ ResourceClassificationRunnerObserver observer; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ SubresourceShownWithNoFilters) { ++ SetFilters({}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(true); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, SubresourceBlocked) { ++ SetFilters({"/resource.png"}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(false); ++ observer.VerifyNotificationSent("resource.png", ++ observer.blocked_ads_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ SubresourceAllowedViaInnerFrame) { ++ SetFilters({"/resource.png", "@@||inner.com^$document"}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(true); ++ observer.VerifyNotificationSent("resource.png", ++ observer.allowed_ads_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ SubresourceAllowedViaMiddleFrame) { ++ SetFilters({"/resource.png", "@@||middle.com^$document"}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(true); ++ observer.VerifyNotificationSent("resource.png", ++ observer.allowed_ads_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ SubresourceAllowedViaOutermostFrame) { ++ SetFilters({"/resource.png", "@@||outer.com^$document"}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(true); ++ observer.VerifyNotificationSent("resource.png", ++ observer.allowed_ads_notifications); ++ observer.VerifyNotificationSent("outermost_frame.html", ++ observer.allowed_pages_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ SubresourceBlockedWhenInvalidAllowRule) { ++ SetFilters({"/resource.png", "@@||bogus.com^$document"}); ++ NavigateToOutermostFrame(); ++ VerifyTargetResourceShown(false); ++ observer.VerifyNotificationSent("resource.png", ++ observer.blocked_ads_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ PopupHandledByChromiumWithoutFilters) { ++ // Without any popup-specific filters, blocking popups is handed over to ++ // Chromium, which has it's own heuristics that are not based on filters. ++ SetFilters({}); ++ NavigateToPopupParentFrame(); ++ // The popup was not opened: ++ EXPECT_EQ(1, NumberOfOpenTabs()); ++ // Because Chromium's built-in popup blocker stopped it: ++ EXPECT_EQ(1u, blocked_content::PopupBlockerTabHelper::FromWebContents( ++ browser()->tab_strip_model()->GetActiveWebContents()) ++ ->GetBlockedPopupsCount()); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, PopupBlockedByFilter) { ++ SetFilters({"popup.html$popup"}); ++ NavigateToPopupParentFrame(); ++ EXPECT_EQ(1, NumberOfOpenTabs()); ++ // Observer was notified about blocked popup: ++ observer.VerifyNotificationSent("popup.html", ++ observer.blocked_popups_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, PopupAllowedByFilter) { ++ SetFilters({"popup.html$popup", "@@popup.html$popup"}); ++ NavigateToPopupParentFrame(); ++ // Popup was allowed to open in a new tab ++ EXPECT_EQ(2, NumberOfOpenTabs()); ++ observer.VerifyNotificationSent("popup.html", ++ observer.allowed_popups_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ PopupAllowedByDomainSpecificFilter) { ++ // The frame that wants to open the popup is hosted on middle.com. ++ // The $popup allow rule applies to that frame. ++ SetFilters({"popup.html$popup", "@@popup.html$popup,domain=middle.com"}); ++ NavigateToPopupParentFrame(); ++ // Popup was allowed to open in a new tab ++ EXPECT_EQ(2, NumberOfOpenTabs()); ++ observer.VerifyNotificationSent("popup.html", ++ observer.allowed_popups_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ PopupNotAllowedByDomainSpecificFilter) { ++ // The frame that wants to open the popup is hosted on middle.com. ++ // The $popup allow rule does not apply because it is specific to outer.com. ++ // outer.com is not the frame that is opening the popup. ++ SetFilters({"popup.html$popup", "@@popup.html$popup,domain=outer.com"}); ++ NavigateToPopupParentFrame(); ++ EXPECT_EQ(1, NumberOfOpenTabs()); ++ // Observer was notified about blocked popup: ++ observer.VerifyNotificationSent("popup.html", ++ observer.blocked_popups_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ PopupAllowedByParentDocument) { ++ // The outermost frame has a blanket allowing rule of $document type. ++ SetFilters({"popup.html$popup", "@@||outer.com^$document,domain=outer.com"}); ++ NavigateToPopupParentFrame(); ++ // Popup was allowed to open in a new tab ++ EXPECT_EQ(2, NumberOfOpenTabs()); ++ observer.VerifyNotificationSent("popup.html", ++ observer.allowed_popups_notifications); ++ observer.VerifyNotificationSent("popup_parent.html", ++ observer.allowed_pages_notifications); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockFrameHierarchyBrowserTest, ++ PopupAllowedByIntermediateParentDocument) { ++ // The middle frame has a blanket allowing rule of $document type. ++ SetFilters( ++ {"popup.html$popup", "@@||middle.com^$document,domain=middle.com"}); ++ NavigateToPopupParentFrame(); ++ // Popup was allowed to open in a new tab ++ EXPECT_EQ(2, NumberOfOpenTabs()); ++ observer.VerifyNotificationSent("popup.html", ++ observer.allowed_popups_notifications); ++ observer.VerifyNotificationSent("popup.html", ++ observer.allowed_pages_notifications); ++} ++ ++// More tests can be added / parametrized, e.g.: ++// - elemhide blocking filters (in conjunction with $elemhide allow rules) ++// - $subdocument-based allow rules ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc b/chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc +@@ -0,0 +1,155 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/browser/ui/browser_list.h" ++#include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/sessions/content/session_tab_helper.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockMultipleTabsBrowserTest ++ : public InProcessBrowserTest, ++ public ResourceClassificationRunner::Observer { ++ public: ++ void SetUpOnMainThread() override { ++ host_resolver()->AddRule(kTestDomain, "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ ResourceClassificationRunnerFactory::GetForBrowserContext( ++ browser()->profile()) ++ ->AddObserver(this); ++ SetFilters({"blocked.png", "allowed.png", "@@allowed.png"}); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ ASSERT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); ++ ASSERT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ for (auto& filter : filters) { ++ controller->AddCustomFilter(filter); ++ } ++ } ++ ++ void RestoreTabs(Browser* browser) { ++ content::DOMMessageQueue queue; ++ RecentTabsSubMenuModel menu(nullptr, browser); ++ menu.ExecuteCommand(menu.GetFirstRecentTabsCommandId(), 0); ++ for (int i = 0; i < kTabsCount; ++i) { ++ std::string message; ++ EXPECT_TRUE(queue.WaitForMessage(&message)); ++ EXPECT_EQ("\"READY\"", message); ++ } ++ } ++ ++ // ResourceClassificationRunner::Observer: ++ void OnAdMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const std::vector& parent_frame_urls, ++ ContentType content_type, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override { ++ const content::WebContents* wc = ++ content::WebContents::FromRenderFrameHost(render_frame_host); ++ if (match_result == FilterMatchResult::kBlockRule && ++ url.path() == "/blocked.png") { ++ tabs_with_blocked_resource_.insert( ++ sessions::SessionTabHelper::IdForTab(wc).id()); ++ } else if (match_result == FilterMatchResult::kAllowRule && ++ url.path() == "/allowed.png") { ++ tabs_with_allowed_resource_.insert( ++ sessions::SessionTabHelper::IdForTab(wc).id()); ++ } ++ } ++ ++ void OnPageAllowed(const GURL& url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override {} ++ ++ void OnPopupMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const GURL& opener_url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription) override {} ++ ++ protected: ++ const int kTabsCount = 4; ++ const char* kTestDomain = "example.com"; ++ std::set tabs_with_blocked_resource_; ++ std::set tabs_with_allowed_resource_; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, PRE_OpenManyTabs) { ++ // Load page in already opened tab ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ++ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"))); ++ // Open more tabs ++ for (int i = 0; i < kTabsCount - 1; ++i) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURLWithDisposition( ++ browser(), ++ embedded_test_server()->GetURL(kTestDomain, "/tab-restore.html"), ++ WindowOpenDisposition::NEW_FOREGROUND_TAB, ++ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP)); ++ } ++ EXPECT_EQ(kTabsCount, browser()->tab_strip_model()->count()); ++ EXPECT_EQ(kTabsCount, static_cast(tabs_with_blocked_resource_.size())); ++ EXPECT_EQ(kTabsCount, static_cast(tabs_with_allowed_resource_.size())); ++ ++ // Open a new browser instance ++ ui_test_utils::NavigateToURLWithDisposition( ++ browser(), GURL(url::kAboutBlankURL), WindowOpenDisposition::NEW_WINDOW, ++ ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); ++ BrowserList* active_browser_list = BrowserList::GetInstance(); ++ EXPECT_EQ(2u, active_browser_list->size()); ++ ++ // Close the 1st browser and clear tabs test data ++ CloseBrowserSynchronously(browser()); ++ EXPECT_EQ(1u, active_browser_list->size()); ++ tabs_with_blocked_resource_.clear(); ++ tabs_with_allowed_resource_.clear(); ++ ++ Browser* browser = active_browser_list->get(0); ++ // Restore tabs from1 st browser instance (already closed) in 2nd instance ++ RestoreTabs(browser); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockMultipleTabsBrowserTest, OpenManyTabs) { ++ ASSERT_EQ(0u, tabs_with_blocked_resource_.size()); ++ ASSERT_EQ(0u, tabs_with_allowed_resource_.size()); ++ // Restore tabs from previous session (previous test) ++ RestoreTabs(browser()); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc b/chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc +@@ -0,0 +1,77 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class AdblockNonASCIIBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ host_resolver()->AddRule("xn----dtbfdbwspgnceulm.xn--p1ai", "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ content::SetupCrossSiteRedirector(embedded_test_server()); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ for (auto& filter : filters) { ++ controller->AddCustomFilter(filter); ++ } ++ } ++ ++ std::string ExecuteScriptAndExtractString(const std::string& js_code) const { ++ content::WebContents* web_contents = ++ browser()->tab_strip_model()->GetActiveWebContents(); ++ return content::EvalJs(web_contents->GetPrimaryMainFrame(), js_code) ++ .ExtractString(); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockNonASCIIBrowserTest, BlockNonASCII) { ++ static constexpr char kCheckVisibility[] = ++ R"(getComputedStyle(document.getElementsByClassName("форум")[0]).display)"; ++ ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ++ embedded_test_server()->GetURL("форум-трейдеров.рф", "/non-ascii.html"))); ++ EXPECT_EQ("block", ExecuteScriptAndExtractString(kCheckVisibility)); ++ ++ SetFilters({"xn----dtbfdbwspgnceulm.xn--p1ai##.форум"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL( ++ browser(), ++ embedded_test_server()->GetURL("форум-трейдеров.рф", "/non-ascii.html"))); ++ ++ EXPECT_EQ("none", ExecuteScriptAndExtractString(kCheckVisibility)); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc b/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc +@@ -0,0 +1,204 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "base/files/file_util.h" ++#include "base/files/scoped_temp_dir.h" ++#include "base/ranges/algorithm.h" ++#include "base/run_loop.h" ++#include "base/strings/string_split.h" ++#include "base/test/bind.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/time/time.h" ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_persistent_metadata_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/subscription/subscription_config.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/version_info/version_info.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/http/http_request_headers.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockSubscriptionServiceBrowserTest ++ : public InProcessBrowserTest, ++ public SubscriptionService::SubscriptionObserver { ++ public: ++ AdblockSubscriptionServiceBrowserTest() { ++ SubscriptionServiceFactory::SetUpdateCheckAndDelayIntervalsForTesting( ++ base::Seconds(1), base::Seconds(1)); ++ } ++ void SetUpOnMainThread() override { ++ InProcessBrowserTest::SetUpOnMainThread(); ++ https_server_ = std::make_unique( ++ net::EmbeddedTestServer::TYPE_HTTPS); ++ https_server_->SetSSLConfig(net::EmbeddedTestServer::CERT_OK); ++ } ++ ++ bool RequestHeadersContainAcceptLanguage( ++ const net::test_server::HttpRequest& request) { ++ const auto accept_language_it = ++ request.headers.find(net::HttpRequestHeaders::kAcceptLanguage); ++ return accept_language_it != request.headers.end() && ++ !accept_language_it->second.empty(); ++ } ++ ++ bool RequestHeadersContainAcceptEncodingBrotli( ++ const net::test_server::HttpRequest& request) { ++ const auto accept_encoding_it = ++ request.headers.find(net::HttpRequestHeaders::kAcceptEncoding); ++ if (accept_encoding_it == request.headers.end()) { ++ return false; ++ } ++ const auto split_encodings = ++ base::SplitString(accept_encoding_it->second, ",", ++ base::WhitespaceHandling::TRIM_WHITESPACE, ++ base::SplitResult::SPLIT_WANT_NONEMPTY); ++ return base::ranges::find(split_encodings, "br") != split_encodings.end(); ++ } ++ ++ std::unique_ptr ++ HandleSubscriptionUpdateRequestWithUrlCheck( ++ std::string expected_url_part, ++ const net::test_server::HttpRequest& request) { ++ static const char kSubscriptionHeader[] = ++ "[Adblock Plus 2.0]\n" ++ "! Checksum: X5A8vtJDBW2a9EgS9glqbg\n" ++ "! Version: 202202061935\n" ++ "! Last modified: 06 Feb 2022 19:35 UTC\n" ++ "! Expires: 1 days (update frequency)\n\n"; ++ if (base::StartsWith(request.relative_url, kSubscription, ++ base::CompareCase::SENSITIVE) && ++ !request_already_handled_) { ++ request_already_handled_ = true; ++ EXPECT_TRUE(RequestHeadersContainAcceptLanguage(request)); ++ EXPECT_TRUE(RequestHeadersContainAcceptEncodingBrotli(request)); ++ std::string os; ++ base::ReplaceChars(version_info::GetOSType(), base::kWhitespaceASCII, "", ++ &os); ++ EXPECT_TRUE(request.relative_url.find(expected_url_part) != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonName=eyeo-chromium-sdk") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("addonVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platformVersion=1.0") != ++ std::string::npos); ++ EXPECT_TRUE(request.relative_url.find("platform=" + os) != ++ std::string::npos); ++ auto http_response = ++ std::make_unique(); ++ http_response->set_code(net::HTTP_OK); ++ http_response->set_content(kSubscriptionHeader); ++ http_response->set_content_type("text/plain"); ++ return std::move(http_response); ++ } ++ ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return nullptr; ++ } ++ ++ void ExpectFilterListRequestMadeWithLastVersion(std::string last_version) { ++ https_server_->RegisterRequestHandler( ++ base::BindRepeating(&AdblockSubscriptionServiceBrowserTest:: ++ HandleSubscriptionUpdateRequestWithUrlCheck, ++ base::Unretained(this), last_version)); ++ ASSERT_TRUE(https_server_->Start(kPort)); ++ } ++ ++ // adblock::SubscriptionService::SubscriptionObserver ++ void OnSubscriptionInstalled(const GURL& url) override { ++ if (base::StartsWith(url.spec(), ++ https_server_->GetURL(kSubscription).spec())) { ++ // In order to ensure next run requests an update, mark the subscription ++ // as almost expired. ++ SubscriptionPersistentMetadataFactory::GetForBrowserContext( ++ browser()->profile()) ++ ->SetExpirationInterval(url, base::Milliseconds(1)); ++ CloseBrowserAsynchronously(browser()); ++ } ++ } ++ ++ std::unique_ptr https_server_; ++ bool request_already_handled_ = false; ++ static const std::string kSubscription; ++ // Port is hardcoded so the server url is the same across tests ++ static const int kPort = 65432; ++}; ++ ++const std::string AdblockSubscriptionServiceBrowserTest::kSubscription = ++ "/subscription.txt"; ++ ++IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, PRE_LastVersion) { ++ ExpectFilterListRequestMadeWithLastVersion("&lastVersion=0&"); ++ // Downloading a filter list and setting its expiry time to almost zero, so ++ // the next run will have to update it ASAP. ++ ++ auto* subscription_service = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()); ++ subscription_service->AddObserver(this); ++ // Using a custom subscription URL here because before test sets ++ // up the server then SubscriptionService already started fetching default ++ // subscriptions. ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->InstallSubscription(https_server_->GetURL(kSubscription)); ++ // Wait until subscription is downloaded and stored. ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, LastVersion) { ++ ExpectFilterListRequestMadeWithLastVersion("&lastVersion=202202061935&"); ++ auto* subscription_service = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()); ++ subscription_service->AddObserver(this); ++ // Wait for subscription update to trigger a network request. ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockSubscriptionServiceBrowserTest, ++ FilterFileDeletedAfterConversion) { ++ base::ScopedAllowBlockingForTesting allow_blocking; ++ ConversionExecutors* conversion_executors = ++ SubscriptionServiceFactory::GetInstance(); ++ DCHECK(conversion_executors); ++ base::ScopedTempDir temp_dir; ++ ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); ++ const auto filter_list_path = temp_dir.GetPath().AppendASCII("easylist.txt"); ++ std::vector filter_list_contents = { ++ "[\"Adblock Plus 2.0\"]\n", "invalid file"}; ++ for (const auto& file_content : filter_list_contents) { ++ base::WriteFile(filter_list_path, file_content); ++ ASSERT_TRUE(base::PathExists(filter_list_path)); ++ base::RunLoop run_loop; ++ conversion_executors->ConvertFilterListFile( ++ DefaultSubscriptionUrl(), filter_list_path, ++ base::BindLambdaForTesting( ++ [&run_loop](ConversionResult result) { run_loop.Quit(); })); ++ run_loop.Run(); ++ ASSERT_FALSE(base::PathExists(filter_list_path)); ++ } ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_telemetry_service_browsertest.cc b/chrome/browser/adblock/test/adblock_telemetry_service_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_telemetry_service_browsertest.cc +@@ -0,0 +1,255 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++#include "base/json/json_reader.h" ++#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "components/adblock/core/activeping_telemetry_topic_provider.h" ++#include "content/public/browser/browser_task_traits.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++ ++namespace adblock { ++ ++class AdblockTelemetryServiceBrowserTestBase : public InProcessBrowserTest { ++ public: ++ // We need to set server and request handler asap ++ void SetUpInProcessBrowserTestFixture() override { ++ InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); ++ host_resolver()->AddRule( ++ ActivepingTelemetryTopicProvider::DefaultBaseUrl().host(), "127.0.0.1"); ++ http_server_.RegisterRequestHandler(base::BindRepeating( ++ &AdblockTelemetryServiceBrowserTestBase::RequestHandler, ++ base::Unretained(this))); ++ ASSERT_TRUE(http_server_.Start()); ++ ActivepingTelemetryTopicProvider::SetHttpPortForTesting( ++ http_server_.port()); ++ auto testing_interval = base::Seconds(2); ++ ActivepingTelemetryTopicProvider::SetIntervalsForTesting(testing_interval); ++ AdblockTelemetryServiceFactory::GetInstance() ++ ->SetCheckAndDelayIntervalsForTesting(testing_interval, ++ testing_interval); ++ } ++ ++ base::Value* GetFirstPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("first_ping"); ++ } ++ ++ base::Value* GetLastPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("last_ping"); ++ } ++ ++ base::Value* GetLastPingTag(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("last_ping_tag"); ++ } ++ ++ base::Value* GetPreviousLastPing(absl::optional& parsed) { ++ return GetPayload(parsed)->Find("previous_last_ping"); ++ } ++ ++ void CloseBrowserFromAnyThread() { ++ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) ++ ->PostTask(FROM_HERE, ++ base::BindOnce(&AdblockTelemetryServiceBrowserTestBase:: ++ CloseBrowserAsynchronously, ++ base::Unretained(this), browser())); ++ } ++ ++ std::unique_ptr CreateResponse( ++ const std::string& token) { ++ auto http_response = ++ std::make_unique(); ++ http_response->set_code(net::HTTP_OK); ++ http_response->set_content("{\"token\": \"" + token + "\"}"); ++ http_response->set_content_type("text/plain"); ++ return std::move(http_response); ++ } ++ ++ virtual std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) = 0; ++ ++ private: ++ base::Value::Dict* GetPayload(absl::optional& parsed) { ++ EXPECT_TRUE(parsed && parsed->is_dict()); ++ base::Value::Dict* parsed_dict = parsed->GetIfDict(); ++ EXPECT_TRUE(parsed_dict); ++ base::Value::Dict* payload = parsed_dict->FindDict("payload"); ++ EXPECT_TRUE(payload); ++ return payload; ++ } ++ ++ net::EmbeddedTestServer http_server_; ++}; ++ ++// Test three initial pings each after startup and each fails for the 1st time ++class AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest ++ : public AdblockTelemetryServiceBrowserTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_TRUE(base::StartsWith(request.relative_url, ++ "/topic/eyeochromium_activeping/version/1")); ++ EXPECT_TRUE(request.has_content); ++ absl::optional parsed = ++ base::JSONReader::Read(request.content); ++ base::Value* first_ping = GetFirstPing(parsed); ++ base::Value* last_ping = GetLastPing(parsed); ++ base::Value* previous_last_ping = GetPreviousLastPing(parsed); ++ ++ if (expected_first_ping_.empty()) { ++ EXPECT_FALSE(first_ping); ++ } else { ++ EXPECT_EQ(expected_first_ping_, *first_ping); ++ } ++ ++ if (expected_last_ping_.empty()) { ++ EXPECT_FALSE(last_ping); ++ } else { ++ EXPECT_EQ(expected_last_ping_, *last_ping); ++ } ++ ++ if (expected_previous_last_ping_.empty()) { ++ EXPECT_FALSE(previous_last_ping); ++ } else { ++ EXPECT_EQ(expected_previous_last_ping_, *previous_last_ping); ++ } ++ ++ if (!attempt_++) { ++ // Force retry by 404 response but 1st save last_ping_tag if any ++ base::Value* last_ping_tag = GetLastPingTag(parsed); ++ if (last_ping_tag) { ++ previous_last_ping_tag_ = last_ping_tag->GetString(); ++ } ++ return nullptr; ++ } ++ ++ // Verifies that retried ping has the same last_ping_tag ++ if (!previous_last_ping_tag_.empty()) { ++ base::Value* last_ping_tag = GetLastPingTag(parsed); ++ EXPECT_EQ(previous_last_ping_tag_, *last_ping_tag); ++ } ++ ++ // If we get expected telemetry ping with retry we simply finish the test ++ // by closing the browser, otherwise test will fail with a timeout. ++ CloseBrowserFromAnyThread(); ++ ++ // This will be still processed before CloseBrowserFromAnyThread() applies ++ return CreateResponse(server_response_); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ // Make sure we called RequestHandler exactly twice: 1st ping failed, 2nd ++ // was successful ++ EXPECT_EQ(2, attempt_); ++ } ++ ++ protected: ++ std::string server_response_; ++ std::string expected_first_ping_; ++ std::string expected_last_ping_; ++ std::string expected_previous_last_ping_; ++ ++ private: ++ int attempt_ = 0; ++ std::string previous_last_ping_tag_ = ""; ++}; ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ PRE_PRE_TestPing) { ++ // Sets the ping to be returned by the server and checked in the next test ++ server_response_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ PRE_TestPing) { ++ // Sets the ping to be returned by the server and checked in the next test ++ server_response_ = "22222"; ++ expected_first_ping_ = expected_last_ping_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++IN_PROC_BROWSER_TEST_F( ++ AdblockTelemetryServiceFirstPingAfterRestartWithRetryBrowserTest, ++ TestPing) { ++ expected_first_ping_ = "11111"; ++ expected_last_ping_ = "22222"; ++ expected_previous_last_ping_ = "11111"; ++ RunUntilBrowserProcessQuits(); ++} ++ ++// Test three inital pings ++class AdblockTelemetryServiceSubsequentPingsBrowserTest ++ : public AdblockTelemetryServiceBrowserTestBase { ++ public: ++ std::unique_ptr RequestHandler( ++ const net::test_server::HttpRequest& request) override { ++ EXPECT_TRUE(base::StartsWith(request.relative_url, ++ "/topic/eyeochromium_activeping/version/1")); ++ EXPECT_TRUE(request.has_content); ++ absl::optional parsed = ++ base::JSONReader::Read(request.content); ++ base::Value* first_ping = GetFirstPing(parsed); ++ base::Value* last_ping = GetLastPing(parsed); ++ base::Value* previous_last_ping = GetPreviousLastPing(parsed); ++ ++ if (count_ == 1) { ++ // No ping payload in the very 1st ping ++ EXPECT_FALSE(first_ping); ++ EXPECT_FALSE(last_ping); ++ } else if (count_ == 2) { ++ // For 2nd ping `first_ping` == `last_ping` ++ EXPECT_EQ(first_ping_, *first_ping); ++ EXPECT_EQ(first_ping_, *last_ping); ++ } else if (count_ == 3) { ++ // From 3rd ping onward `first_ping` != `last_ping` and we also get ++ // `previous_last_ping` ++ EXPECT_EQ(first_ping_, *first_ping); ++ EXPECT_EQ(second_ping_, *last_ping); ++ EXPECT_EQ(first_ping_, *previous_last_ping); ++ } ++ ++ // If we get three expected telemetry pings we simply finish the test by ++ // closing the browser, otherwise test will fail with a timeout. ++ if (count_ == 3) { ++ CloseBrowserFromAnyThread(); ++ return nullptr; ++ } ++ return CreateResponse(count_++ == 1 ? first_ping_ : second_ping_); ++ } ++ ++ void TearDownInProcessBrowserTestFixture() override { ++ // Make sure we called RequestHandler exactly three times ++ EXPECT_EQ(3, count_); ++ } ++ ++ private: ++ const std::string first_ping_ = "11111"; ++ const std::string second_ping_ = "22222"; ++ int count_ = 1; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockTelemetryServiceSubsequentPingsBrowserTest, ++ TestPing) { ++ RunUntilBrowserProcessQuits(); ++} ++ ++} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc b/chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc +@@ -0,0 +1,390 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include ++#include ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_temp_dir.h" ++#include "base/functional/bind.h" ++#include "base/path_service.h" ++#include "base/strings/string_util.h" ++#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/web_package/web_bundle_builder.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "net/test/embedded_test_server/request_handler_util.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class AdblockWebBundleBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ InProcessBrowserTest::SetUpOnMainThread(); ++ host_resolver()->AddRule("*", "127.0.0.1"); ++ embedded_test_server()->RegisterDefaultHandler( ++ base::BindRepeating(&AdblockWebBundleBrowserTest::HandleFileRequest, ++ base::Unretained(this))); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ PrepareTempDirWithContent(); ++ } ++ ++ void TearDownOnMainThread() override { ++ InProcessBrowserTest::TearDownOnMainThread(); ++ } ++ ++ void PrepareTempDirWithContent() { ++ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); ++ CreateIndexFile(); ++ CreateByResourceWebBundle(); ++ CreateByBundleFileWebBundle(); ++ CreateByScopeFileWebBundle(); ++ } ++ ++ std::string GetFileContent(base::FilePath::StringType relative_path) { ++ base::FilePath root; ++ CHECK(base::PathService::Get(base::DIR_SOURCE_ROOT, &root)); ++ root = root.AppendASCII(FILE_PATH_LITERAL("chrome/test/data/adblock/wbn")); ++ std::string content; ++ CHECK(base::ReadFileToString(root.Append(relative_path), &content)); ++ return content; ++ } ++ ++ // In order for an html file to use absolute URLs in 'src' attributes to ++ // resources hosted by the embedded_test_server(), we need to replace ++ // {{{baseUrl}}} with the server's URL. It changes for every run. ++ std::string GetHtmlContentWithReplacements( ++ base::FilePath::StringType relative_path) { ++ std::string content = GetFileContent(relative_path); ++ base::ReplaceSubstringsAfterOffset( ++ &content, 0, "{{{baseUrl}}}", ++ embedded_test_server()->GetURL("example.org", "/").spec()); ++ return content; ++ } ++ ++ void CreateByResourceWebBundle() { ++ web_package::WebBundleBuilder builder; ++ builder.AddExchange("by_resource/blue_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/blue_subresource_loading.css"))); ++ builder.AddExchange("by_resource/blue_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/blue_subresource_loading.png"))); ++ builder.AddExchange("by_resource/red_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/red_subresource_loading.css"))); ++ builder.AddExchange("by_resource/red_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/red_subresource_loading.png"))); ++ builder.AddExchange( ++ "by_resource/xhr_result_1_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/xhr_result_1_subresource_loading.json"))); ++ builder.AddExchange( ++ "by_resource/fetch_result_1_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_resource/fetch_result_1_subresource_loading.json"))); ++ builder.AddPrimaryURL(embedded_test_server()->GetURL("example.org", "/")); ++ const auto binary_data = builder.CreateBundle(); ++ ASSERT_TRUE(base::WriteFile( ++ temp_dir_.GetPath().AppendASCII("by_resource.wbn"), binary_data)); ++ } ++ ++ void CreateByBundleFileWebBundle() { ++ web_package::WebBundleBuilder builder; ++ builder.AddExchange("by_bundle_file/green_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/green_subresource_loading.css"))); ++ builder.AddExchange("by_bundle_file/green_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/green_subresource_loading.png"))); ++ builder.AddExchange("by_bundle_file/purple_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/purple_subresource_loading.css"))); ++ builder.AddExchange("by_bundle_file/purple_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/purple_subresource_loading.png"))); ++ builder.AddExchange( ++ "by_bundle_file/xhr_result_2_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/xhr_result_2_subresource_loading.json"))); ++ builder.AddExchange( ++ "by_bundle_file/fetch_result_2_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_bundle_file/fetch_result_2_subresource_loading.json"))); ++ builder.AddPrimaryURL(embedded_test_server()->GetURL("example.org", "/")); ++ const auto binary_data = builder.CreateBundle(); ++ ASSERT_TRUE(base::WriteFile( ++ temp_dir_.GetPath().AppendASCII("by_bundle_file.wbn"), binary_data)); ++ } ++ ++ void CreateByScopeFileWebBundle() { ++ web_package::WebBundleBuilder builder; ++ builder.AddExchange("by_scope/orange_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/orange_subresource_loading.css"))); ++ builder.AddExchange("by_scope/orange_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/orange_subresource_loading.png"))); ++ builder.AddExchange("by_scope/pink_subresource_loading.css", ++ {{":status", "200"}, {"content-type", "text/css"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/pink_subresource_loading.css"))); ++ builder.AddExchange("by_scope/pink_subresource_loading.png", ++ {{":status", "200"}, {"content-type", "image/png"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/pink_subresource_loading.png"))); ++ builder.AddExchange( ++ "by_scope/xhr_result_3_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/xhr_result_3_subresource_loading.json"))); ++ builder.AddExchange( ++ "by_scope/fetch_result_3_subresource_loading.json", ++ {{":status", "200"}, {"content-type", "application/json"}}, ++ GetFileContent(FILE_PATH_LITERAL( ++ "by_scope/fetch_result_3_subresource_loading.json"))); ++ builder.AddPrimaryURL(embedded_test_server()->GetURL("example.org", "/")); ++ const auto binary_data = builder.CreateBundle(); ++ ASSERT_TRUE(base::WriteFile(temp_dir_.GetPath().AppendASCII("by_scope.wbn"), ++ binary_data)); ++ } ++ ++ void CreateIndexFile() { ++ const auto html = GetHtmlContentWithReplacements( ++ FILE_PATH_LITERAL("index.html.mustache")); ++ ASSERT_TRUE( ++ base::WriteFile(temp_dir_.GetPath().AppendASCII("index.html"), html)); ++ } ++ ++ std::unique_ptr HandleFileRequest( ++ const net::test_server::HttpRequest& request) { ++ auto response = ++ net::test_server::HandleFileRequest(temp_dir_.GetPath(), request); ++ if (response) { ++ auto* basic = ++ static_cast(response.get()); ++ if (temp_dir_.GetPath() ++ .AppendASCII(request.GetURL().path().substr(1)) ++ .MatchesExtension(FILE_PATH_LITERAL(".wbn"))) { ++ basic->set_content_type("application/webbundle"); ++ } ++ basic->AddCustomHeader("X-Content-Type-Options", "nosniff"); ++ basic->AddCustomHeader("Access-Control-Allow-Origin", "*"); ++ } ++ return response; ++ } ++ ++ GURL GetUrl() { ++ return embedded_test_server()->GetURL("example.org", "/index.html"); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* controller = ++ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); ++ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ for (auto& filter : filters) { ++ controller->AddCustomFilter(filter); ++ } ++ } ++ ++ bool EvaluateJs(std::string value) { ++ return content::EvalJs(browser() ++ ->tab_strip_model() ++ ->GetActiveWebContents() ++ ->GetPrimaryMainFrame(), ++ value) ++ .ExtractBool(); ++ } ++ ++ bool IsImageLoaded(std::string selector) { ++ return EvaluateJs( ++ "(function(){ node = document.querySelector('" + selector + ++ "'); return node.complete && node.naturalHeight !== 0; })()"); ++ } ++ ++ bool IsCssBlocked(std::string selector) { ++ // On the test page, a box with this |id| is grey if element-specific CSS ++ // was blocked. Grey is the default color for divs, and gets overridden ++ // to element-specific colors by blockable CSS files. ++ return EvaluateJs( ++ "(function(){ return " ++ "window.getComputedStyle(document.querySelector('" + ++ selector + "')).backgroundColor == 'rgb(128, 128, 128)'; })()"); ++ } ++ ++ // Waits until the textContent of the selected item stops being "Pending" and ++ // returns whatever it's final value is. ++ // This asynchronous wait is because scripts that change the textContent may ++ // execute with a delay. ++ std::string GetSelectorTextContent(std::string selector) { ++ return content::EvalJs(browser() ++ ->tab_strip_model() ++ ->GetActiveWebContents() ++ ->GetPrimaryMainFrame(), ++ R"( ++ (async function (selector) { ++ return new Promise(resolve => { ++ if (!document.querySelector(selector).textContent.includes('Pending')) { ++ return resolve(document.querySelector(selector).textContent); ++ } ++ ++ const observer = new MutationObserver(mutations => { ++ if (!document.querySelector(selector).textContent.includes('Pending')) { ++ resolve(document.querySelector(selector).textContent); ++ observer.disconnect(); ++ } ++ }); ++ ++ observer.observe(document.body, { ++ childList: true, ++ subtree: true ++ }); ++ }); ++})(' )" + selector + "');") ++ .ExtractString(); ++ } ++ ++ bool IsXhrOrFetchRequestBlocked(std::string selector) { ++ return GetSelectorTextContent(selector).find("Error") != std::string::npos; ++ } ++ ++ bool IsXhrOrFetchRequestAllowed(std::string selector) { ++ return GetSelectorTextContent(selector).find("succeeded") != ++ std::string::npos; ++ } ++ ++ base::ScopedTempDir temp_dir_; ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockImageByResource) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ const auto* blocked_image_selector = ++ R"(img[src="by_resource/blue_subresource_loading.png"])"; ++ const auto* other_image_selector = ++ R"(img[src="by_resource/red_subresource_loading.png"])"; ++ EXPECT_TRUE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_TRUE(IsImageLoaded(other_image_selector)); ++ SetFilters({"/blue_subresource_loading.png"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_FALSE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_TRUE(IsImageLoaded(other_image_selector)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockCssByResource) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_FALSE(IsCssBlocked("div.blue")); ++ SetFilters({"blue_subresource_loading.css"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_TRUE(IsCssBlocked("div.blue")); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockXhrByResource) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ const auto* blocked_selector = "code#xhr_result_by_resource"; ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed(blocked_selector)); ++ SetFilters({"/xhr_result_1_subresource_loading.json"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_TRUE(IsXhrOrFetchRequestBlocked(blocked_selector)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockFetchByResource) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ const auto* blocked_selector = "code#fetch_result_by_resource"; ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed(blocked_selector)); ++ SetFilters({"/fetch_result_1_subresource_loading.json"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_TRUE(IsXhrOrFetchRequestBlocked(blocked_selector)); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockByBundle) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ const auto* blocked_image_selector = ++ R"(img[src="by_bundle_file/green_subresource_loading.png"])"; ++ EXPECT_TRUE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_FALSE(IsCssBlocked("div.green")); ++ EXPECT_FALSE(IsCssBlocked("div.purple")); ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed("code#xhr_result_by_bundle_file")); ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed("code#fetch_result_by_bundle_file")); ++ ++ SetFilters({"by_bundle_file.wbn$webbundle"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_FALSE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_TRUE(IsCssBlocked("div.green")); ++ EXPECT_TRUE(IsCssBlocked("div.purple")); ++ // FIXME the following two expectations fail because the state of the requests ++ // is "pending" rather than allowed or blocked: DPD-1887 ++ // EXPECT_TRUE(IsXhrOrFetchRequestBlocked("code#xhr_result_by_bundle_file")); ++ // EXPECT_TRUE(IsXhrOrFetchRequestBlocked("code#fetch_result_by_bundle_file")); ++} ++ ++IN_PROC_BROWSER_TEST_F(AdblockWebBundleBrowserTest, BlockByScope) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ const auto* blocked_image_selector = ++ R"(img[src="by_scope/orange_subresource_loading.png"])"; ++ EXPECT_TRUE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_FALSE(IsCssBlocked("div.orange")); ++ EXPECT_FALSE(IsCssBlocked("div.pink")); ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed("code#xhr_result_by_scope")); ++ EXPECT_TRUE(IsXhrOrFetchRequestAllowed("code#fetch_result_by_scope")); ++ ++ SetFilters({"by_scope/"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl())); ++ EXPECT_FALSE(IsImageLoaded(blocked_image_selector)); ++ EXPECT_TRUE(IsCssBlocked("div.orange")); ++ EXPECT_TRUE(IsCssBlocked("div.pink")); ++ EXPECT_TRUE(IsXhrOrFetchRequestBlocked("code#xhr_result_by_scope")); ++ EXPECT_TRUE(IsXhrOrFetchRequestBlocked("code#fetch_result_by_scope")); ++} ++ ++// TODO: ++// - Implement the two "inside opaque origin iframe" variants. This is tricky ++// because inspecting the iframe's content via ++// document.querySelector('iframe[src="uuid-in-package:429fcc4e-0696-4bad-b099-ee9175f023ae"]').contentWindow.document ++// throws a cross-origin access error. ++// - Mixed origins ++// - Signed bundles. including case of navigation between signed and unsigned ++// content. ++// - If you block the whole bundle, all resources requests to components ++// declared in ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++

Chromium Web bundles test

++ ++

Identified by resource

++ ++
    ++
  • Resources in by_resource.wbn ++
      ++
    • Shows blue box with by_resource/blue_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_resource/blue_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows red box with by_resource/red_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_resource/red_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows xhr result for by_resource/xhr_result_1_subresource_loading.json: ++
      Pending
    • ++
    • Shows fetch result for by_resource/fetch_result_1_subresource_loading.json: ++
      Pending
    • ++
    ++
  • ++
++ ++

Identified by bundle file

++ ++
    ++
  • Resources in by_bundle_file.wbn (Please click here to check fetch behavior with blocked bundle) ++
      ++
    • Shows green box with by_bundle_file/green_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_bundle_file/green_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows purple box with by_bundle_file/purple_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_bundle_file/purple_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows xhr result for by_bundle_file/xhr_result_2_subresource_loading.json: ++
      Pending
    • ++
    • Shows fetch result for by_bundle_file/fetch_result_2_subresource_loading.json: ++
      Pending
    • ++
    ++
  • ++
++ ++

Identified by scope

++ ++
    ++
  • Resources in by_scope.wbn ++
      ++
    • Shows orange box with by_scope/orange_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_scope/orange_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows pink box with by_scope/pink_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows by_scope/pink_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows xhr result for by_scope/xhr_result_3_subresource_loading.json: ++
      Pending
    • ++
    • Shows fetch result for by_scope/fetch_result_3_subresource_loading.json: ++
      Pending
    • ++
    ++
  • ++
++ ++
++ ++ ++ ++
++ ++ ++ ++

++To navigate to {{{navigation_to_unsigned_bundles_baseUrl}}} within a bundle file, download the bundle file by clicking here. ++

++ ++ +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/index.html.mustache b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/index.html.mustache +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/index.html.mustache +@@ -0,0 +1,45 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++

Identified by resource inside opaque origin iframe

++ ++
    ++
  • Resources in uuid_in_package_by_resource.wbn ++
      ++
    • Shows skyblue box with uuid_in_package_by_resource/skyblue_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows uuid_in_package_by_resource/skyblue_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows yellowgreen box with uuid_in_package_by_resource/yellowgreen_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows uuid_in_package_by_resource/yellowgreen_subresource_loading.png, nothing after the png blocked: ++
    • ++
    ++
  • ++
++ +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.css b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.css +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.css +@@ -0,0 +1 @@ ++.skyblue { background-color: skyblue } +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.png b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/skyblue_subresource_loading.png +new file mode 100644 +index 0000000000000000000000000000000000000000..5782a6730fbcb5269ec3f9d1f5c95afb5db2f4f3 +GIT binary patch +literal 775 +zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLmUHx3vIVCg!08Q%O6aWAK + +literal 0 +HcmV?d00001 + +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.css b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.css +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.css +@@ -0,0 +1 @@ ++.yellowgreen { background-color: yellowgreen } +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.png b/chrome/test/data/adblock/wbn/uuid_in_package_by_resource/yellowgreen_subresource_loading.png +new file mode 100644 +index 0000000000000000000000000000000000000000..f2ee8b50a76d1132bf27f405160bf108cc0e5638 +GIT binary patch +literal 775 +zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm ++ ++ ++ ++ ++ ++ ++ ++

Identified by scope inside opaque origin iframe

++ ++
    ++
  • Resources in uuid_in_package_by_scope.wbn ++
      ++
    • Shows navy box with uuid_in_package_by_scope/navy_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows uuid_in_package_by_scope/navy_subresource_loading.png, nothing after the png blocked: ++
    • ++
    • Shows orangered box with uuid_in_package_by_scope/orangered_subresource_loading.css, grey box after the css blocked: ++
    • ++
    • Shows uuid_in_package_by_scope/orangered_subresource_loading.png, nothing after the png blocked: ++
    • ++
    ++
  • ++
++ +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.css b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.css +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.css +@@ -0,0 +1 @@ ++.navy { background-color: navy } +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.png b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/navy_subresource_loading.png +new file mode 100644 +index 0000000000000000000000000000000000000000..b8d64acdf745dd8b1be84346efd7ff03bf4fece4 +GIT binary patch +literal 774 +zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm4zn0Nj2SZ76wWd%k!&zw +no{+|HX;g4DKn6T9Y~inKX8vt0{5ukuuo*mE{an^LB{Ts5mg3#x + +literal 0 +HcmV?d00001 + +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.css b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.css +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.css +@@ -0,0 +1 @@ ++.orangered { background-color: orangered } +diff --git a/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.png b/chrome/test/data/adblock/wbn/uuid_in_package_by_scope/orangered_subresource_loading.png +new file mode 100644 +index 0000000000000000000000000000000000000000..a95dd790854750625abfaee3c8342c58883c464c +GIT binary patch +literal 774 +zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm``tAF + +literal 0 +HcmV?d00001 + diff --git a/chrome/test/data/extensions/api_test/adblock_private/empty.js b/chrome/test/data/extensions/api_test/adblock_private/empty.js new file mode 100644 diff --git a/chrome/test/data/extensions/api_test/adblock_private/main.html b/chrome/test/data/extensions/api_test/adblock_private/main.html @@ -11000,7 +13751,7 @@ diff --git a/chrome/test/data/extensions/api_test/adblock_private/manifest.json new file mode 100644 --- /dev/null +++ b/chrome/test/data/extensions/api_test/adblock_private/manifest.json -@@ -0,0 +1,28 @@ +@@ -0,0 +1,29 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// eyeo Chromium SDK is free software: you can redistribute it and/or modify @@ -11026,6 +13777,7 @@ new file mode 100644 + "description": "Test of chrome.adblockPrivate interface", + "permissions": [ + "adblockPrivate", ++ "eyeoFilteringPrivate", + "" + ] +} @@ -11046,7 +13798,7 @@ diff --git a/chrome/test/data/extensions/api_test/adblock_private/test.js b/chro new file mode 100644 --- /dev/null +++ b/chrome/test/data/extensions/api_test/adblock_private/test.js -@@ -0,0 +1,594 @@ +@@ -0,0 +1,737 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -11062,6 +13814,61 @@ new file mode 100644 +// You should have received a copy of the GNU General Public License +// along with eyeo Chromium SDK. If not, see . + ++'use strict'; ++ ++const urlParams = new URLSearchParams(window.location.search); ++ ++// This class binds 1st argument for chrome.eyeoFilteringPrivate to 'adblock' ++// configuration and redirects methods renamed in chrome.eyeoFilteringPrivate ++// (eg. `onAdAllowed` => `onRequestAllowed`) which allows test code to ++// seamlessly call the same methods on chrome.adblockPrivate and on ++// chrome.eyeoFilteringPrivate. ++class FilteringPrivateBoundWithAdblock { ++ constructor() { ++ this.delegate = chrome.eyeoFilteringPrivate; ++ this.configuration = 'adblock'; ++ this.getSessionAllowedAdsCount = ++ this.delegate.getSessionAllowedRequestsCount; ++ this.getSessionBlockedAdsCount = ++ this.delegate.getSessionBlockedRequestsCount; ++ this.onAdAllowed = this.delegate.onRequestAllowed; ++ this.onAdBlocked = this.delegate.onRequestBlocked; ++ this.onSubscriptionUpdated = this.delegate.onSubscriptionUpdated; ++ this.onAllowedDomainsUpdated = this.delegate.onAllowedDomainsUpdated; ++ const methodsToBind = [ ++ 'isEnabled', 'setEnabled', 'getAllowedDomains', 'addAllowedDomain', ++ 'removeAllowedDomain', 'getCustomFilters', 'addCustomFilter', ++ 'removeCustomFilter' ++ ]; ++ for (const method of methodsToBind) { ++ this[method] = function() { ++ const args = Array.from(arguments); ++ args.unshift(this.configuration); ++ this.delegate[method].apply(this.delegate, args); ++ } ++ } ++ const methodsToBindRenamed = new Map([ ++ ['installSubscription', 'subscribeToFilterList'], ++ ['uninstallSubscription', 'unsubscribeFromFilterList'], ++ ['getInstalledSubscriptions', 'getFilterLists'], ++ ]); ++ methodsToBindRenamed.forEach((value, key) => { ++ this[key] = ++ function() { ++ const args = Array.from(arguments); ++ args.unshift(this.configuration); ++ this.delegate[value].apply(this.delegate, args); ++ } ++ }); ++ } ++}; ++ ++// Set API object for tests, defaults to chrome.adblockPrivate ++let apiObject = chrome.adblockPrivate; ++if (urlParams.get('api') === 'eyeoFilteringPrivate') { ++ apiObject = new FilteringPrivateBoundWithAdblock; ++} ++ +function findEnglishEasyList(item) { + console.log(item.title + ' ' + item.url + ' ' + item.languages); + return item.title.toLowerCase().includes('easylist') && @@ -11113,24 +13920,41 @@ new file mode 100644 + } +} + -+var availableTests = [ ++function arrayEquals(a, b) { ++ if (a === b) ++ return true; ++ if (a === null || b === null) ++ return false; ++ if (a.length !== b.length) ++ return false; ++ for (var i = 0; i < a.length; i++) { ++ if (a[i] !== b[i]) ++ return false; ++ } ++ return true; ++}; ++ ++const availableTests = [ + function setEnabled_isEnabled() { -+ chrome.adblockPrivate.setEnabled(true); -+ chrome.adblockPrivate.isEnabled(function(enabled) { ++ apiObject.setEnabled(false); ++ apiObject.isEnabled(function(enabled) { ++ if (enabled) ++ chrome.test.fail('Failed: ad blocking should NOT be enabled'); ++ }); ++ apiObject.setEnabled(true); ++ apiObject.isEnabled(function(enabled) { + if (enabled) + chrome.test.succeed(); + else -+ chrome.test.fail('Failed: Adblocking should be enabled'); -+ }); -+ chrome.adblockPrivate.setEnabled(false); -+ chrome.adblockPrivate.isEnabled(function(enabled) { -+ if (!enabled) -+ chrome.test.succeed(); -+ else -+ chrome.test.fail('Failed: Adblocking should be enabled'); ++ chrome.test.fail('Failed: ad blocking should be enabled'); + }); + }, + function setAAEnabled_isAAEnabled() { ++ chrome.adblockPrivate.setAcceptableAdsEnabled(false); ++ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { ++ if (enabled) ++ chrome.test.fail('Failed: AA should NOT be enabled'); ++ }); + chrome.adblockPrivate.setAcceptableAdsEnabled(true); + chrome.adblockPrivate.getSelectedBuiltInSubscriptions(function(selected) { + if (!containsSubscription( @@ -11145,24 +13969,31 @@ new file mode 100644 + else + chrome.test.fail('Failed: AA should be enabled'); + }); -+ chrome.adblockPrivate.setAcceptableAdsEnabled(false); -+ chrome.adblockPrivate.getSelectedBuiltInSubscriptions(function(selected) { -+ if (containsSubscription( -+ selected, -+ 'https://easylist-downloads.adblockplus.org/exceptionrules.txt')) { -+ chrome.test.fail('Failed: AA subscription should NOT be on the list'); -+ } -+ }); -+ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { -+ if (!enabled) -+ chrome.test.succeed(); -+ else -+ chrome.test.fail('Failed: AA should be enabled'); ++ }, ++ function setAAEnabled_isAAEnabled_newAPI() { ++ const default_config = 'adblock'; ++ chrome.eyeoFilteringPrivate.getAcceptableAdsUrl(function(aa_url) { ++ chrome.eyeoFilteringPrivate.unsubscribeFromFilterList( ++ default_config, aa_url); ++ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { ++ if (enabled) ++ chrome.test.fail('Failed: AA should NOT be enabled'); ++ }); ++ chrome.eyeoFilteringPrivate.getAcceptableAdsUrl(function(aa_url) { ++ chrome.eyeoFilteringPrivate.subscribeToFilterList( ++ default_config, aa_url); ++ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { ++ if (enabled) ++ chrome.test.succeed(); ++ else ++ chrome.test.fail('Failed: AA should be enabled'); ++ }); ++ }); + }); + }, + function getBuiltInSubscriptions() { + chrome.adblockPrivate.getBuiltInSubscriptions(function(recommended) { -+ let found = recommended.find(findEnglishEasyList); ++ const found = recommended.find(findEnglishEasyList); + if (found) { + chrome.test.succeed(); + } else { @@ -11224,10 +14055,9 @@ new file mode 100644 + }); + }, + function builtInSubscriptionsManagement() { -+ const urlParams = new URLSearchParams(window.location.search); -+ let kEasylist = urlParams.get('easylist'); -+ let kExceptionrules = urlParams.get('exceptions'); -+ let kABPFilters = urlParams.get('snippets'); ++ const kEasylist = urlParams.get('easylist'); ++ const kExceptionrules = urlParams.get('exceptions'); ++ const kABPFilters = urlParams.get('snippets'); + + function containsDefaultSubscriptions(subscriptions) { + return containsSubscription(subscriptions, kEasylist) && @@ -11302,17 +14132,22 @@ new file mode 100644 + // This test works because at the beginning getInstalledSubscriptions returns + // just default entries from recommended subscriptions. + function installedSubscriptionsDataSchema() { -+ chrome.adblockPrivate.getInstalledSubscriptions(function(installed) { ++ const disabled = !!urlParams.get('disabled'); ++ if (disabled) { ++ apiObject.setEnabled(false); ++ } ++ apiObject.getInstalledSubscriptions(function(installed) { + for (const subscription of installed) { -+ if (!subscription.current_version) -+ chrome.test.fail('Failed: Must contain "current_version" property'); -+ if (!subscription.installation_state) ++ if (!(subscription.installation_state == 'Unknown' && disabled || ++ subscription.installation_state != 'Unknown' && !disabled)) + chrome.test.fail( -+ 'Failed: Must contain "installation_state" property'); -+ if (!subscription.last_installation_time) ++ 'Failed: Must contain valid "installation_state" property'); ++ if (!subscription.current_version && !disabled) ++ chrome.test.fail('Failed: Must contain "current_version" property'); ++ if (!subscription.last_installation_time && !disabled) + chrome.test.fail( + 'Failed: Must contain "last_installation_time" property'); -+ if (!subscription.title) ++ if (!subscription.title && !disabled) + chrome.test.fail('Failed: Must contain "title" property'); + if (!subscription.url) + chrome.test.fail('Failed: Must contain "url" property'); @@ -11321,7 +14156,7 @@ new file mode 100644 + }); + }, + function installSubscriptionInvalidURL() { -+ chrome.adblockPrivate.installSubscription('http://', function() { ++ apiObject.installSubscription('http://', function() { + if (!chrome.runtime.lastError) + chrome.test.fail('Failed: invalid input accepted'); + else @@ -11329,7 +14164,7 @@ new file mode 100644 + }); + }, + function uninstallSubscriptionInvalidURL() { -+ chrome.adblockPrivate.uninstallSubscription('http://', function() { ++ apiObject.uninstallSubscription('http://', function() { + if (!chrome.runtime.lastError) + chrome.test.fail('Failed: invalid input accepted'); + else @@ -11337,11 +14172,10 @@ new file mode 100644 + }); + }, + function subscriptionsManagement() { -+ const urlParams = new URLSearchParams(window.location.search); -+ let kEasylist = urlParams.get('easylist'); -+ let kExceptionrules = urlParams.get('exceptions'); -+ let kABPFilters = urlParams.get('snippets'); -+ let kCustom = 'https://example.com/subscription.txt'; ++ const kEasylist = urlParams.get('easylist'); ++ const kExceptionrules = urlParams.get('exceptions'); ++ const kABPFilters = urlParams.get('snippets'); ++ const kCustom = 'https://example.com/subscription.txt'; + + function containsDefaultSubscriptions(subscriptions) { + return containsSubscription(subscriptions, kEasylist) && @@ -11349,26 +14183,30 @@ new file mode 100644 + containsSubscription(subscriptions, kABPFilters); + } + -+ chrome.adblockPrivate.getInstalledSubscriptions(function(installed) { ++ if (urlParams.get('disabled')) { ++ apiObject.setEnabled(false); ++ } ++ ++ apiObject.getInstalledSubscriptions(function(installed) { + if (installed.length) { + if (!containsDefaultSubscriptions(installed)) { + chrome.test.fail('Failed: Should contain all default subscriptions'); + } + for (const subscription of installed) { -+ chrome.adblockPrivate.uninstallSubscription(subscription.url); ++ apiObject.uninstallSubscription(subscription.url); + } + } else { + chrome.test.fail('Failed: Should contain default subscriptions'); + } -+ chrome.adblockPrivate.getInstalledSubscriptions(function(installed) { ++ apiObject.getInstalledSubscriptions(function(installed) { + if (installed.length) { + chrome.test.fail( + 'Failed: There shouldn\'t be any installed subscriptions'); + } -+ chrome.adblockPrivate.installSubscription(kEasylist); -+ chrome.adblockPrivate.installSubscription(kExceptionrules); -+ chrome.adblockPrivate.installSubscription(kABPFilters); -+ chrome.adblockPrivate.getInstalledSubscriptions(function(installed) { ++ apiObject.installSubscription(kEasylist); ++ apiObject.installSubscription(kExceptionrules); ++ apiObject.installSubscription(kABPFilters); ++ apiObject.getInstalledSubscriptions(function(installed) { + if (installed.length) { + if (!containsDefaultSubscriptions(installed)) { + chrome.test.fail( @@ -11377,14 +14215,13 @@ new file mode 100644 + } else { + chrome.test.fail('Failed: Should contain default subscriptions'); + } -+ chrome.adblockPrivate.installSubscription(kCustom); -+ chrome.adblockPrivate.getInstalledSubscriptions(function(installed) { ++ apiObject.installSubscription(kCustom); ++ apiObject.getInstalledSubscriptions(function(installed) { + if (!containsSubscription(installed, kCustom)) { + chrome.test.fail('Failed: Should contain custom subscription'); + } -+ chrome.adblockPrivate.uninstallSubscription(kCustom); -+ chrome.adblockPrivate.getInstalledSubscriptions(function( -+ installed) { ++ apiObject.uninstallSubscription(kCustom); ++ apiObject.getInstalledSubscriptions(function(installed) { + if (containsSubscription(installed, kCustom)) { + chrome.test.fail( + 'Failed: Should not contain custom subscription'); @@ -11469,21 +14306,21 @@ new file mode 100644 + }); + }, + function allowedDomainsManagement() { -+ chrome.adblockPrivate.getAllowedDomains(function(domains) { ++ apiObject.getAllowedDomains(function(domains) { + if (domains.length) { + for (const domain of domains) -+ chrome.adblockPrivate.removeAllowedDomain(domain); ++ apiObject.removeAllowedDomain(domain); + } + -+ chrome.adblockPrivate.getAllowedDomains(function(domains) { ++ apiObject.getAllowedDomains(function(domains) { + if (domains.length) { + chrome.test.fail('Failed: There shouldn\'t be any allowed domains'); + return; + } + -+ chrome.adblockPrivate.addAllowedDomain('foo.bar'); -+ chrome.adblockPrivate.addAllowedDomain('bar.baz'); -+ chrome.adblockPrivate.getAllowedDomains(function(domains) { ++ apiObject.addAllowedDomain('foo.bar'); ++ apiObject.addAllowedDomain('bar.baz'); ++ apiObject.getAllowedDomains(function(domains) { + if (domains.length != 2) { + chrome.test.fail('Failed: There should be 2 allowed domains'); + return; @@ -11495,10 +14332,10 @@ new file mode 100644 + return; + } + -+ chrome.adblockPrivate.removeAllowedDomain('foo.bar'); -+ chrome.adblockPrivate.removeAllowedDomain('bar.baz'); ++ apiObject.removeAllowedDomain('foo.bar'); ++ apiObject.removeAllowedDomain('bar.baz'); + -+ chrome.adblockPrivate.getAllowedDomains(function(domains) { ++ apiObject.getAllowedDomains(function(domains) { + if (domains.length) + chrome.test.fail('Failed: Still have allowed domains'); + else @@ -11509,21 +14346,21 @@ new file mode 100644 + }); + }, + function customFiltersManagement() { -+ chrome.adblockPrivate.getCustomFilters(function(filters) { ++ apiObject.getCustomFilters(function(filters) { + if (filters.length) { + for (const filter of filters) -+ chrome.adblockPrivate.removeCustomFilter(filter); ++ apiObject.removeCustomFilter(filter); + } + -+ chrome.adblockPrivate.getCustomFilters(function(filters) { ++ apiObject.getCustomFilters(function(filters) { + if (filters.length) { + chrome.test.fail('Failed: There shouldn\'t be any custom filters'); + return; + } + -+ chrome.adblockPrivate.addCustomFilter('foo.bar'); -+ chrome.adblockPrivate.addCustomFilter('bar.baz'); -+ chrome.adblockPrivate.getCustomFilters(function(filters) { ++ apiObject.addCustomFilter('foo.bar'); ++ apiObject.addCustomFilter('bar.baz'); ++ apiObject.getCustomFilters(function(filters) { + if (filters.length != 2) { + chrome.test.fail('Failed: There should be 2 custom filters'); + return; @@ -11535,10 +14372,10 @@ new file mode 100644 + return; + } + -+ chrome.adblockPrivate.removeCustomFilter('foo.bar'); -+ chrome.adblockPrivate.removeCustomFilter('bar.baz'); ++ apiObject.removeCustomFilter('foo.bar'); ++ apiObject.removeCustomFilter('bar.baz'); + -+ chrome.adblockPrivate.getCustomFilters(function(filters) { ++ apiObject.getCustomFilters(function(filters) { + if (filters.length) + chrome.test.fail('Failed: Still have custom filters'); + else @@ -11549,97 +14386,677 @@ new file mode 100644 + }); + }, + function adBlockedEvents() { -+ const urlParams = new URLSearchParams(window.location.search); -+ let expectedSubscription = urlParams.get('subscription_url'); -+ chrome.adblockPrivate.onSubscriptionUpdated.addListener(function( -+ subscription) { ++ const expectedSubscription = urlParams.get('subscription_url'); ++ apiObject.onSubscriptionUpdated.addListener(function(subscription) { + if (subscription !== expectedSubscription) + chrome.test.fail('Failed: Unexpected subscription: ' + subscription); + -+ chrome.adblockPrivate.onAdBlocked.addListener(function(e) { ++ apiObject.onAdBlocked.addListener(function(e) { + verifyEventData(e, expectedSubscription); + if (e.url.includes('test1.png')) { + chrome.test.succeed(); + } + }); -+ let request = new XMLHttpRequest(); -+ let handler = function() {}; ++ const request = new XMLHttpRequest(); ++ const handler = function() {}; + request.onload = handler; + request.onerror = handler; + request.open('GET', 'https://example.com/test1.png', true); + request.send(); + }); -+ chrome.adblockPrivate.installSubscription(expectedSubscription); ++ apiObject.installSubscription(expectedSubscription); + }, + function adAllowedEvents() { -+ const urlParams = new URLSearchParams(window.location.search); -+ let expectedSubscription = urlParams.get('subscription_url'); -+ chrome.adblockPrivate.onSubscriptionUpdated.addListener(function( -+ subscription) { ++ const expectedSubscription = urlParams.get('subscription_url'); ++ apiObject.onSubscriptionUpdated.addListener(function(subscription) { + if (subscription !== expectedSubscription) + chrome.test.fail('Failed: Unexpected subscription: ' + subscription); + -+ chrome.adblockPrivate.onAdAllowed.addListener(function(e) { ++ apiObject.onAdAllowed.addListener(function(e) { + verifyEventData(e, expectedSubscription); + if (e.url.includes('test2.png')) { + chrome.test.succeed(); + } + }); -+ let request = new XMLHttpRequest(); -+ let handler = function() {}; ++ const request = new XMLHttpRequest(); ++ const handler = function() {}; + request.onload = handler; + request.onerror = handler; + request.open('GET', 'https://example.com/test2.png', true); + request.send(); + }); -+ chrome.adblockPrivate.installSubscription(expectedSubscription); ++ apiObject.installSubscription(expectedSubscription); + }, + function sessionStats() { -+ const urlParams = new URLSearchParams(window.location.search); -+ let expectedSubscription = urlParams.get('subscription_url'); ++ const expectedSubscription = urlParams.get('subscription_url'); + // Verify that subscription was downloaded and update event triggered, + // then verify correct number of a session blocked and allowed ads count + // for this subscription. -+ chrome.adblockPrivate.onSubscriptionUpdated.addListener(function( -+ subscription) { ++ apiObject.onSubscriptionUpdated.addListener(function(subscription) { + if (subscription !== expectedSubscription) + chrome.test.fail('Failed: Unexpected subscription: ' + subscription); + -+ let handler = function() { -+ chrome.adblockPrivate.getSessionBlockedAdsCount(function(sessionStats) { ++ const handler = function() { ++ apiObject.getSessionBlockedAdsCount(function(sessionStats) { + verifySessionStats(sessionStats, expectedSubscription); -+ let handler = function() { -+ chrome.adblockPrivate.getSessionAllowedAdsCount(function( -+ sessionStats) { ++ const handler = function() { ++ apiObject.getSessionAllowedAdsCount(function(sessionStats) { + verifySessionStats(sessionStats, expectedSubscription); + chrome.test.succeed(); + }); + }; -+ let request = new XMLHttpRequest(); ++ const request = new XMLHttpRequest(); + request.onload = handler; + request.onerror = handler; + request.open('GET', 'https://example.com/test4.png', true); + request.send(); + }); + }; -+ let request = new XMLHttpRequest(); ++ const request = new XMLHttpRequest(); + request.onload = handler; + request.onerror = handler; + request.open('GET', 'https://example.com/test3.png', true); + request.send(); + }); -+ chrome.adblockPrivate.installSubscription(expectedSubscription); ++ apiObject.installSubscription(expectedSubscription); ++ }, ++ function allowedDomainsEvent() { ++ const domain = 'domain.com'; ++ let data = [domain]; ++ let attempts = 2; ++ chrome.adblockPrivate.onAllowedDomainsChanged.addListener(function() { ++ chrome.adblockPrivate.getAllowedDomains(function(domains) { ++ if (!arrayEquals(data, domains)) { ++ chrome.test.fail('Unexpected domain list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.adblockPrivate.addAllowedDomain(domain); ++ data = []; ++ chrome.adblockPrivate.removeAllowedDomain(domain); ++ }, ++ function enabledStateEvent() { ++ let state = false; ++ let attempts = 2; ++ chrome.adblockPrivate.onEnabledStateChanged.addListener(function() { ++ chrome.adblockPrivate.isEnabled(function(enabled) { ++ if (enabled !== state) { ++ chrome.test.fail('Unexpected enabled state'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.adblockPrivate.setEnabled(false); ++ state = true; ++ chrome.adblockPrivate.setEnabled(true); ++ }, ++ function filterListsEvent() { ++ const domain = 'http://domain.com/'; ++ let data = [domain]; ++ let attempts = 2; ++ chrome.adblockPrivate.onFilterListsChanged.addListener(function() { ++ chrome.adblockPrivate.getCustomSubscriptions(function(custom) { ++ if (!arrayEquals(data, custom)) { ++ chrome.test.fail('Unexpected subscription list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.adblockPrivate.addCustomSubscription(domain); ++ data = []; ++ chrome.adblockPrivate.removeCustomSubscription(domain); ++ }, ++ function customFiltersEvent() { ++ const filter = 'foo.bar'; ++ let data = [filter]; ++ let attempts = 2; ++ chrome.adblockPrivate.onCustomFiltersChanged.addListener(function() { ++ chrome.adblockPrivate.getCustomFilters(function(filters) { ++ if (!arrayEquals(data, filters)) { ++ chrome.test.fail('Unexpected custom filter list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.adblockPrivate.addCustomFilter(filter); ++ data = []; ++ chrome.adblockPrivate.removeCustomFilter(filter); + }, +]; + -+var testToRun; -+if (window.location.search.indexOf('&') > 1) -+ testToRun = -+ window.location.search.substring(1, window.location.search.indexOf('&')); -+else -+ testToRun = window.location.search.substring(1); +chrome.test.runTests(availableTests.filter(function(op) { -+ return op.name == testToRun; ++ return op.name == urlParams.get('subtest'); ++})); +diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js b/chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js +new file mode 100644 +diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html b/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html +@@ -0,0 +1,29 @@ ++ ++ ++ ++ ++ ++ ++ Eyeo filtering private API test ++ ++ ++ ++

chrome.eyeoFilteringPrivate.* tests

++ ++ ++ +diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json b/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json +@@ -0,0 +1,28 @@ ++// This file is part of eyeo Chromium SDK, ++// Copyright (C) 2006-present eyeo GmbH ++// eyeo Chromium SDK is free software: you can redistribute it and/or modify ++// it under the terms of the GNU General Public License version 3 as ++// published by the Free Software Foundation. ++// eyeo Chromium SDK is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// You should have received a copy of the GNU General Public License ++// along with eyeo Chromium SDK. If not, see . ++{ ++ "name": "eyeoFilteringPrivate API test", ++ "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRxyv6tzqVnC+2gR3QxaN32fynw6GBZd9CXH8huHopx5xZ0fE1gScXnnjna7YW2sc6dhZZv326lRwmsJRwJN+RZpxBQbTD4CuCiqfUo+Xdyigh91QqyScLLRmg3SPsBBF9X/M50LO/6MD2eETiWbQQRy1TXNz52lt6NtjXKmS2lVZzR/jnGyAA96vMOmxeNIJmSYHFOHlSIphAJr/Erd0v1ZcBjJnZxqSrKZwUTHHc/FxcN1YqJkU/6O6gjMLNo3Uv33bqRAYmGUq+TTftwLg2hzEE1OllThcF9VVmQ3HZ5eTqqw/XP/tiQ/vUBflKer2mSVk708VBNpktao44kAtQIDAQAB", ++ "version": "0.1", ++ "incognito": "split", ++ "manifest_version": 3, ++ "background": { ++ "service_worker": "empty.js" ++ }, ++ "description": "Test of chrome.eyeoFilteringPrivate interface", ++ "host_permissions": [ ++ "" ++ ], ++ "permissions": [ ++ "eyeoFilteringPrivate" ++ ] ++} +diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js b/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js +@@ -0,0 +1,448 @@ ++// This file is part of eyeo Chromium SDK, ++// Copyright (C) 2006-present eyeo GmbH ++// ++// eyeo Chromium SDK is free software: you can redistribute it and/or modify ++// it under the terms of the GNU General Public License version 3 as ++// published by the Free Software Foundation. ++// ++// eyeo Chromium SDK is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License ++// along with eyeo Chromium SDK. If not, see . ++ ++'use strict'; ++ ++const custom_config = 'custom'; ++ ++async function pollUntil(predicate, pollEveryMs) { ++ return new Promise(r => { ++ const id = setInterval(() => { ++ let ret; ++ if (ret = predicate()) { ++ clearInterval(id); ++ r(ret); ++ } ++ }, pollEveryMs); ++ }); ++} ++ ++function containsSubscription(subscriptions, url) { ++ for (const subscription of subscriptions) { ++ if (subscription.url === url) { ++ return true; ++ } ++ } ++ return false; ++} ++ ++function arrayEquals(a, b) { ++ if (a === b) ++ return true; ++ if (a === null || b === null) ++ return false; ++ if (a.length !== b.length) ++ return false; ++ for (var i = 0; i < a.length; i++) { ++ if (a[i] !== b[i]) ++ return false; ++ } ++ return true; ++}; ++ ++const availableTests = [ ++ function createAndGetConfigurations() { ++ chrome.eyeoFilteringPrivate.getConfigurations(function(configs) { ++ if (configs.includes(custom_config)) { ++ chrome.test.fail('Failed: There should NOT be a custom configuration'); ++ } ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.getConfigurations(function(configs) { ++ if (!configs.includes(custom_config)) { ++ chrome.test.fail('Failed: There should be a custom configuration'); ++ } ++ chrome.test.succeed(); ++ }); ++ }); ++ }, ++ function createAndGetConfigurationsWithPromises() { ++ chrome.eyeoFilteringPrivate.getConfigurations().then(configs => { ++ if (configs.includes(custom_config)) { ++ chrome.test.fail('Failed: There should NOT be a custom configuration'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.getConfigurations().then(configs => { ++ if (!configs.includes(custom_config)) { ++ chrome.test.fail('Failed: There should be a custom configuration'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ function enableAndDisableConfiguration() { ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { ++ if (!enabled) { ++ chrome.test.fail('Failed: Configuration should be enabled'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { ++ if (enabled) { ++ chrome.test.fail('Failed: Configuration should NOT be enabled'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { ++ if (!enabled) { ++ chrome.test.fail('Failed: Configuration should be enabled'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ function enableAndDisableConfigurationWithPromises() { ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config).then(enabled => { ++ if (!enabled) { ++ chrome.test.fail('Failed: Configuration should be enabled'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config) ++ .then(enabled => { ++ if (enabled) { ++ chrome.test.fail('Failed: Configuration should NOT be enabled'); ++ } ++ }) ++ .catch(error => chrome.test.fail(error)); ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config).then(enabled => { ++ if (!enabled) { ++ chrome.test.fail('Failed: Configuration should be enabled'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ function addAllowedDomainToCustomConfiguration() { ++ const domain = 'domain.com'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain); ++ chrome.eyeoFilteringPrivate.getAllowedDomains( ++ custom_config, function(domains) { ++ if (domains.length != 1) { ++ chrome.test.fail('Failed: There should be a custom domain'); ++ } ++ if (domains.indexOf(domain) == -1) { ++ chrome.test.fail('Failed: Didn\'t find expected custom domain'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.removeAllowedDomain(custom_config, domain); ++ chrome.eyeoFilteringPrivate.getAllowedDomains( ++ custom_config, function(domains) { ++ if (domains.length) { ++ chrome.test.fail('Failed: Still have custom domain(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ async function addAllowedDomainToCustomConfigurationWithPromises() { ++ const domain = 'domain.com'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ await chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain); ++ chrome.eyeoFilteringPrivate.getAllowedDomains(custom_config) ++ .then(domains => { ++ if (domains.length != 1) { ++ chrome.test.fail('Failed: There should be a custom domain'); ++ } ++ if (domains.indexOf(domain) == -1) { ++ chrome.test.fail('Failed: Didn\'t find expected custom domain'); ++ } ++ }); ++ await chrome.eyeoFilteringPrivate.removeAllowedDomain( ++ custom_config, domain); ++ chrome.eyeoFilteringPrivate.getAllowedDomains(custom_config) ++ .then(domains => { ++ if (domains.length) { ++ chrome.test.fail('Failed: Still have custom domain(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ function addCustomFilterToCustomConfiguration() { ++ const filter = '||foo.bar'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter); ++ chrome.eyeoFilteringPrivate.getCustomFilters( ++ custom_config, function(filters) { ++ if (filters.length != 1) { ++ chrome.test.fail('Failed: There should be a custom filter'); ++ } ++ if (filters.indexOf(filter) == -1) { ++ chrome.test.fail('Failed: Didn\'t find expected custom filter'); ++ } ++ }); ++ chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); ++ chrome.eyeoFilteringPrivate.getCustomFilters( ++ custom_config, function(filters) { ++ if (filters.length) { ++ chrome.test.fail('Failed: Still have custom filter(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ async function addCustomFilterToCustomConfigurationWithPromises() { ++ const filter = '||foo.bar'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ await chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter); ++ chrome.eyeoFilteringPrivate.getCustomFilters(custom_config) ++ .then(filters => { ++ if (filters.length != 1) { ++ chrome.test.fail('Failed: There should be a custom filter'); ++ } ++ if (filters.indexOf(domain) == -1) { ++ chrome.test.fail('Failed: Didn\'t find expected custom filter'); ++ } ++ }); ++ await chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); ++ chrome.eyeoFilteringPrivate.getCustomFilters(custom_config) ++ .then(filters => { ++ if (filters.length) { ++ chrome.test.fail('Failed: Still have custom filter(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ function subscribeToFilterListInCustomConfiguration() { ++ const subscription = 'https://example.com/subscription.txt'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.subscribeToFilterList( ++ custom_config, subscription, function() { ++ chrome.eyeoFilteringPrivate.getFilterLists( ++ custom_config, function(subscriptions) { ++ if (subscriptions.length != 1) { ++ chrome.test.fail( ++ 'Failed: There should be a custom subscription'); ++ return; ++ } ++ if (!containsSubscription(subscriptions, subscription)) { ++ chrome.test.fail( ++ 'Failed: Didn\'t find expected custom subscription'); ++ return; ++ } ++ chrome.eyeoFilteringPrivate.unsubscribeFromFilterList( ++ custom_config, subscription, function() { ++ chrome.eyeoFilteringPrivate.getFilterLists( ++ custom_config, function(subscriptions) { ++ if (subscriptions.length) { ++ chrome.test.fail( ++ 'Failed: Still have custom subscription(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }); ++ }); ++ }); ++ }, ++ async function subscribeToFilterListInCustomConfigurationWithPromises() { ++ const subscription = 'https://example.com/subscription.txt'; ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ await chrome.eyeoFilteringPrivate.subscribeToFilterList( ++ custom_config, subscription); ++ chrome.eyeoFilteringPrivate.getFilterLists(custom_config) ++ .then(subscriptions => { ++ if (subscriptions.length != 1) { ++ chrome.test.fail('Failed: There should be a custom subscription'); ++ return; ++ } ++ if (!containsSubscription(subscriptions, subscription)) { ++ chrome.test.fail( ++ 'Failed: Didn\'t find expected custom subscription'); ++ return; ++ } ++ }); ++ await chrome.eyeoFilteringPrivate.unsubscribeFromFilterList( ++ custom_config, subscription); ++ chrome.eyeoFilteringPrivate.getFilterLists(custom_config) ++ .then(subscriptions => { ++ if (subscriptions.length) { ++ chrome.test.fail('Failed: Still have custom subscription(s)'); ++ } ++ chrome.test.succeed(); ++ }); ++ }, ++ async function missingConfiguration() { ++ const input = 'https://dummy.com'; ++ const expectedError = 'Configuration with name \'custom\' does not exist!'; ++ const setters = [ ++ 'subscribeToFilterList', 'unsubscribeFromFilterList', 'addAllowedDomain', ++ 'removeAllowedDomain', 'addCustomFilter', 'removeCustomFilter' ++ ]; ++ const getters = [ ++ 'isEnabled', 'getFilterLists', 'getAllowedDomains', 'getCustomFilters' ++ ]; ++ const allMethodsCount = 1 + setters.length + getters.length; ++ let counter = 0; ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false, function() { ++ if (!chrome.runtime.lastError) { ++ chrome.test.fail('Failed: missing configuration accepted'); ++ } ++ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); ++ ++counter; ++ }); ++ for (const method of setters) { ++ chrome.eyeoFilteringPrivate[method](custom_config, input, function() { ++ if (!chrome.runtime.lastError) { ++ chrome.test.fail('Failed: missing configuration accepted'); ++ } ++ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); ++ ++counter; ++ }); ++ } ++ for (const method of getters) { ++ chrome.eyeoFilteringPrivate[method](custom_config, function(result) { ++ if (!chrome.runtime.lastError) { ++ chrome.test.fail('Failed: missing configuration accepted'); ++ } ++ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); ++ ++counter; ++ }); ++ } ++ await pollUntil(() => counter === allMethodsCount, 100); ++ chrome.test.succeed(); ++ }, ++ async function missingConfigurationWithPromises() { ++ const input = 'https://dummy.com'; ++ const expectedError = ++ 'Error: Configuration with name \'custom\' does not exist!' ++ const setters = [ ++ 'subscribeToFilterList', 'unsubscribeFromFilterList', 'addAllowedDomain', ++ 'removeAllowedDomain', 'addCustomFilter', 'removeCustomFilter' ++ ]; ++ const getters = [ ++ 'isEnabled', 'getFilterLists', 'getAllowedDomains', 'getCustomFilters' ++ ]; ++ const allMethodsCount = 1 + setters.length + getters.length; ++ let counter = 0; ++ const errorHandler = function(error) { ++ chrome.test.assertEq(expectedError, error.toString()); ++ ++counter; ++ }; ++ await chrome.eyeoFilteringPrivate.setEnabled(custom_config, false) ++ .catch(error => errorHandler(error)); ++ for (const method of setters) { ++ await chrome.eyeoFilteringPrivate[method](custom_config, input) ++ .catch(error => errorHandler(error)); ++ } ++ for (const method of getters) { ++ await chrome.eyeoFilteringPrivate[method](custom_config) ++ .catch(error => errorHandler(error)); ++ } ++ if (counter == allMethodsCount) { ++ chrome.test.succeed(); ++ } else { ++ chrome.test.fail('Failed: expected missing configuration for every call'); ++ } ++ }, ++ function allowedDomainsEvent() { ++ const domain = 'domain.com'; ++ let data = [domain]; ++ let attempts = 2; ++ chrome.eyeoFilteringPrivate.onAllowedDomainsChanged.addListener(function( ++ config_name) { ++ if (config_name != custom_config) { ++ chrome.test.fail('Failed: Wrong config name'); ++ } ++ chrome.eyeoFilteringPrivate.getAllowedDomains( ++ custom_config, function(domains) { ++ if (!arrayEquals(data, domains)) { ++ chrome.test.fail('Unexpected domain list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain); ++ data = []; ++ chrome.eyeoFilteringPrivate.removeAllowedDomain(custom_config, domain); ++ }, ++ function enabledStateEvent() { ++ let state = false; ++ let attempts = 2; ++ chrome.eyeoFilteringPrivate.onEnabledStateChanged.addListener(function( ++ config_name) { ++ if (config_name != custom_config) { ++ chrome.test.fail('Failed: Wrong config name'); ++ } ++ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { ++ if (enabled !== state) { ++ chrome.test.fail('Unexpected enabled state'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); ++ state = true; ++ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); ++ }, ++ function filterListsEvent() { ++ const domain = 'http://domain.com/'; ++ let data = [domain]; ++ let attempts = 2; ++ chrome.eyeoFilteringPrivate.onFilterListsChanged.addListener(function( ++ config_name) { ++ if (config_name != custom_config) { ++ chrome.test.fail('Failed: Wrong config name'); ++ } ++ chrome.eyeoFilteringPrivate.getFilterLists( ++ custom_config, function(custom) { ++ if (!arrayEquals(data, custom)) { ++ chrome.test.fail('Unexpected subscription list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.subscribeToFilterList(custom_config, domain); ++ data = []; ++ chrome.eyeoFilteringPrivate.unsubscribeFromFilterList( ++ custom_config, domain); ++ }, ++ function customFiltersEvent() { ++ const filter = 'foo.bar'; ++ let data = [filter]; ++ let attempts = 2; ++ chrome.eyeoFilteringPrivate.onCustomFiltersChanged.addListener(function( ++ config_name) { ++ if (config_name != custom_config) { ++ chrome.test.fail('Failed: Wrong config name'); ++ } ++ chrome.eyeoFilteringPrivate.getCustomFilters( ++ custom_config, function(filters) { ++ if (!arrayEquals(data, filters)) { ++ chrome.test.fail('Unexpected custom filter list'); ++ } ++ if (--attempts == 0) { ++ chrome.test.succeed(); ++ } ++ }); ++ }); ++ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); ++ chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter); ++ data = []; ++ chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); ++ }, ++]; ++ ++const urlParams = new URLSearchParams(window.location.search); ++chrome.test.runTests(availableTests.filter(function(op) { ++ return op.name == urlParams.get('subtest'); +})); diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn @@ -11669,7 +15086,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", "//components/assist_ranker:unit_tests", -@@ -327,6 +338,7 @@ test("components_unittests") { +@@ -330,6 +341,7 @@ test("components_unittests") { ] } else { #!is_ios deps += [ @@ -11677,7 +15094,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser:unit_tests", "//components/autofill/content/renderer:unit_tests", "//components/autofill/core/common/mojom:unit_tests", -@@ -1001,6 +1013,9 @@ if (!is_ios) { +@@ -1008,6 +1020,9 @@ if (!is_ios) { deps = [ "//base", @@ -13031,7 +16448,7 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU new file mode 100644 --- /dev/null +++ b/components/adblock/android/BUILD.gn -@@ -0,0 +1,168 @@ +@@ -0,0 +1,169 @@ +# This file is part of eyeo Chromium SDK, +# Copyright (C) 2006-present eyeo GmbH +# eyeo Chromium SDK is free software: you can redistribute it and/or modify @@ -13159,6 +16576,7 @@ new file mode 100644 + "javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java", + "javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java", + "javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java", ++ "javatests/src/org/chromium/components/adblock/TestVerificationUtils.java", + ] + + ### Android UI patch start @@ -13431,7 +16849,7 @@ new file mode 100644 + Add custom filter lists + + -+ http://example.org/myFilterList.txt ++ https://example.org/myFilterList.txt + + + Custom Filters @@ -15293,7 +18711,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java -@@ -0,0 +1,107 @@ +@@ -0,0 +1,118 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -15316,7 +18734,9 @@ new file mode 100644 +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; ++import android.view.Gravity; +import android.webkit.URLUtil; ++import android.widget.Toast; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; @@ -15385,9 +18805,18 @@ new file mode 100644 + + @Override + protected void addItemImpl(String url) { ++ if (!URLUtil.isHttpsUrl(url)) { ++ Toast toast = ++ Toast.makeText(getActivity(), "Url must be https format", Toast.LENGTH_SHORT); ++ toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL, 0, 0); ++ toast.show(); ++ Log.e(TAG, "Invalid url: " + url); ++ return; ++ } + try { + AdblockController.getInstance().installSubscription(new URL(URLUtil.guessUrl(url))); + } catch (MalformedURLException ex) { ++ Toast.makeText(getActivity(), "Error parsing url", Toast.LENGTH_SHORT).show(); + Log.e(TAG, "Error parsing url: " + url); + } + } @@ -16481,7 +19910,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java -@@ -0,0 +1,382 @@ +@@ -0,0 +1,366 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -16522,7 +19951,6 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeBrowserTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.JavaScriptUtils; +import org.chromium.content_public.browser.test.util.TestThreadUtils; +import org.chromium.content_public.common.ContentSwitches; +import org.chromium.net.test.EmbeddedTestServer; @@ -16589,21 +20017,6 @@ new file mode 100644 + mActivityTestRule.loadUrl(mTestUrl, 5); + } + -+ public String getResourcesComputedStyle() throws TimeoutException { -+ final Tab tab = mActivityTestRule.getActivity().getActivityTab(); -+ final String javascript = -+ "window.getComputedStyle(document.getElementById('subresource')).display"; -+ return JavaScriptUtils.executeJavaScriptAndWaitForResult(tab.getWebContents(), javascript); -+ } -+ -+ public void expectResourceBlocked() throws TimeoutException { -+ Assert.assertEquals("\"none\"", getResourcesComputedStyle()); -+ } -+ -+ public void expectResourceShown() throws TimeoutException { -+ Assert.assertEquals("\"inline\"", getResourcesComputedStyle()); -+ } -+ + @Before + public void setUp() throws TimeoutException { + TestThreadUtils.runOnUiThreadBlocking(() -> { @@ -16801,7 +20214,7 @@ new file mode 100644 + }); + mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); + loadTestUrl(); -+ expectResourceBlocked(); ++ TestVerificationUtils.expectResourceBlocked(mActivityTestRule, "subresource"); + } + + @Test @@ -16817,7 +20230,7 @@ new file mode 100644 + }); + mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); + loadTestUrl(); -+ expectResourceShown(); ++ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); + } + + @Test @@ -16832,7 +20245,7 @@ new file mode 100644 + }); + mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); + loadTestUrl(); -+ expectResourceShown(); ++ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); + } + + @Test @@ -16852,7 +20265,7 @@ new file mode 100644 + }); + mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); + loadTestUrl(); -+ expectResourceBlocked(); ++ TestVerificationUtils.expectResourceBlocked(mActivityTestRule, "subresource"); + } + + @Test @@ -16861,14 +20274,14 @@ new file mode 100644 + @Feature({"adblock"}) + public void noBlockingWithoutFilters() throws Exception { + loadTestUrl(); -+ expectResourceShown(); ++ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java -@@ -0,0 +1,144 @@ +@@ -0,0 +1,143 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -16910,7 +20323,6 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeBrowserTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.JavaScriptUtils; +import org.chromium.content_public.browser.test.util.TestThreadUtils; +import org.chromium.content_public.common.ContentSwitches; +import org.chromium.net.test.EmbeddedTestServer; @@ -17017,7 +20429,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java -@@ -0,0 +1,168 @@ +@@ -0,0 +1,183 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17051,30 +20463,16 @@ new file mode 100644 +public class TestAdBlockedObserver implements ResourceClassificationNotifier.AdBlockedObserver { + @Override + public void onAdAllowed(AdblockCounters.ResourceInfo info) { -+ if (countDownLatch != null) { -+ countDownLatch.countDown(); -+ } -+ // to be remove after DPD-961 -+ if (alreadyCounted.contains(info.getRequestUrl())) { -+ return; -+ } -+ alreadyCounted.add(info.getRequestUrl()); + allowedInfos.add(info); + Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ CheckAndCountDownLatch(Decision.ALLOWED, info.getRequestUrl().split("\\?")[0]); + } + + @Override + public void onAdBlocked(AdblockCounters.ResourceInfo info) { -+ if (countDownLatch != null) { -+ countDownLatch.countDown(); -+ } -+ // to be remove after DPD-961 -+ if (alreadyCounted.contains(info.getRequestUrl())) { -+ return; -+ } -+ alreadyCounted.add(info.getRequestUrl()); + blockedInfos.add(info); + Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ CheckAndCountDownLatch(Decision.BLOCKED, info.getRequestUrl().split("\\?")[0]); + } + + @Override @@ -17171,26 +20569,55 @@ new file mode 100644 + mTestSubscriptionUrl = url; + } + -+ String getExpectedSubscriptionUrl() { ++ private String getExpectedSubscriptionUrl() { + if (mTestSubscriptionUrl != null) return mTestSubscriptionUrl.toString(); + return "adblock:custom"; + } + -+ public URL mTestSubscriptionUrl; -+ public List blockedInfos = new CopyOnWriteArrayList<>(); -+ public List allowedInfos = new CopyOnWriteArrayList<>(); -+ public List allowedPageInfos = new CopyOnWriteArrayList<>(); -+ public List blockedPopupsInfos = new CopyOnWriteArrayList<>(); -+ public List allowedPopupsInfos = new CopyOnWriteArrayList<>(); -+ public CountDownLatch countDownLatch; -+ // public remove after DPD-961 -+ Set alreadyCounted = new HashSet(); ++ private enum Decision { ALLOWED, BLOCKED } ++ ++ // We either countDown() our latch for every filtered resource if there are no ++ // specific expectations set (expectedAllowed == null && expectedBlocked == null), ++ // or we countDown() only when all expectations have been met so when: ++ // (expectedAllowed.isNullOrEmpty() && expectedBlocked.isNullOrEmpty()). ++ private void CheckAndCountDownLatch(final Decision decision, final String url) { ++ if (countDownLatch != null) { ++ if (expectedBlocked == null && expectedAllowed == null) { ++ countDownLatch.countDown(); ++ } else { ++ if (decision == Decision.BLOCKED) { ++ if (expectedBlocked != null) { ++ expectedBlocked.remove(url); ++ } ++ } else { ++ if (expectedAllowed != null) { ++ expectedAllowed.remove(url); ++ } ++ } ++ boolean expectationsMet = (expectedAllowed == null || expectedAllowed.isEmpty()) ++ && (expectedBlocked == null || expectedBlocked.isEmpty()); ++ if (expectationsMet) { ++ countDownLatch.countDown(); ++ } ++ } ++ } ++ } ++ ++ private URL mTestSubscriptionUrl; ++ List blockedInfos = new CopyOnWriteArrayList<>(); ++ List allowedInfos = new CopyOnWriteArrayList<>(); ++ List allowedPageInfos = new CopyOnWriteArrayList<>(); ++ List blockedPopupsInfos = new CopyOnWriteArrayList<>(); ++ List allowedPopupsInfos = new CopyOnWriteArrayList<>(); ++ CountDownLatch countDownLatch; ++ Set expectedAllowed; ++ Set expectedBlocked; +}; diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java -@@ -0,0 +1,89 @@ +@@ -0,0 +1,90 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17243,7 +20670,7 @@ new file mode 100644 + @Before + public void setUp() { + mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.DISTRIBUTION_UNIT_TESTPAGE_SUBSCRIPTION); ++ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); + } + + @After @@ -17256,9 +20683,9 @@ new file mode 100644 + @Feature({"adblock"}) + public void testVerifyCircumventionInlineStyleNotImportant() + throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_DISTRIBUTION_UNIT_TESTCASES_ROOT ++ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT + + "inline-style-important"); -+ mHelper.verifyHiddenCount(2, "div"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 2, "div"); + } + + @Test @@ -17266,9 +20693,10 @@ new file mode 100644 + @Feature({"adblock"}) + public void testVerifyCircumventionAnonymousFrameDocumentWrite() + throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_DISTRIBUTION_UNIT_TESTCASES_ROOT ++ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT + + "anoniframe-documentwrite"); -+ mHelper.verifyHiddenCount(1, "span[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[data-expectedresult='fail']"); + String numHidden = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), + "var hiddenCount = 0;" @@ -17284,7 +20712,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTest.java -@@ -0,0 +1,123 @@ +@@ -0,0 +1,136 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17320,7 +20748,7 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeBrowserTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestPagesTestsHelper.IncludeSubframes; ++import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; + +import java.util.concurrent.TimeoutException; + @@ -17348,28 +20776,33 @@ new file mode 100644 + @Feature({"adblock"}) + public void testCspAllSites() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter("*$csp=script-src 'none'"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/csp_all"); -+ mHelper.verifyDisplayedCount(0, "img[id='all-sites-fail-1']"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_all"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "img[id='all-sites-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testCspSpecificSite() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "||abptestpages.org^$csp=script-src https://abptestpages.org/lib/utils.js"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/csp_specific"); -+ mHelper.verifyDisplayedCount(0, "img[id='specific-site-fail-1']", IncludeSubframes.NO); ++ mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "img[id='specific-site-fail-1']", IncludeSubframes.NO); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testCspSpecificSiteFrameSrc() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org^$csp=frame-src 'self'"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/csp_specific"); -+ mHelper.verifyDisplayedCount(0, "div[id='sub-frame-error']", IncludeSubframes.NO); -+ mHelper.verifyDisplayedCount(0, "div[id='sub-frame-error-details']", IncludeSubframes.NO); ++ mHelper.addCustomFilter( ++ String.format("||%s^$csp=frame-src 'self'", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div[id='sub-frame-error']", IncludeSubframes.NO); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div[id='sub-frame-error-details']", IncludeSubframes.NO); + } + + @Test @@ -17377,17 +20810,20 @@ new file mode 100644 + @Feature({"adblock"}) + public void testCspException() throws TimeoutException, InterruptedException { + // Blocking filter: -+ mHelper.addCustomFilter( -+ "||abptestpages.org^$csp=script-src https://abptestpages.org/lib/utils.js"); ++ mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); + // Resource loaded by JS was blocked -+ mHelper.loadUrl("https://abptestpages.org/en/exceptions/csp"); -+ mHelper.verifyDisplayedCount(0, "div[id='unblock-javascript'] > img"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div[id='unblock-javascript'] > img"); + + // Allowing filter: -+ mHelper.addCustomFilter("@@||abptestpages.org^$csp"); ++ mHelper.addCustomFilter( ++ String.format("@@||%s^$csp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + // Resource loaded by JS was allowed -+ mHelper.loadUrl("https://abptestpages.org/en/exceptions/csp"); -+ mHelper.verifyDisplayedCount(1, "div[id='unblock-javascript'] > img"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[id='unblock-javascript'] > img"); + } + + @Test @@ -17395,24 +20831,29 @@ new file mode 100644 + @Feature({"adblock"}) + public void testCspGenericBlockException() throws TimeoutException, InterruptedException { + // Blocking filter: -+ mHelper.addCustomFilter( -+ "||abptestpages.org^$csp=script-src https://abptestpages.org/lib/utils.js"); ++ mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); + // Resource loaded by JS was blocked -+ mHelper.loadUrl("https://abptestpages.org/en/exceptions/csp_genericblock"); -+ mHelper.verifyDisplayedCount(0, "div[id='genericblock-javascript'] > img"); ++ mHelper.loadUrl( ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div[id='genericblock-javascript'] > img"); + + // Allowing filter: -+ mHelper.addCustomFilter("@@||abptestpages.org^$genericblock"); ++ mHelper.addCustomFilter( ++ String.format("@@||%s^$genericblock", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + // Resource loaded by JS was allowed -+ mHelper.loadUrl("https://abptestpages.org/en/exceptions/csp_genericblock"); -+ mHelper.verifyDisplayedCount(1, "div[id='genericblock-javascript'] > img"); ++ mHelper.loadUrl( ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[id='genericblock-javascript'] > img"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java -@@ -0,0 +1,140 @@ +@@ -0,0 +1,158 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17457,7 +20898,8 @@ new file mode 100644 + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + + public static final String ELEMENT_HIDING_EMULATION_TESTPAGES_URL = -+ "https://abptestpages.org/en/filters/element-hiding-emulation-inversion"; ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT ++ + "element-hiding-emulation-inversion"; + + @Before + public void setUp() { @@ -17472,61 +20914,71 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpProperties() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-properties:not(:-abp-properties(width: 238px))"); ++ public void testElemHideEmuNotAbpProperties() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter( ++ String.format("%s#?#.ehei-properties:not(:-abp-properties(width: 238px))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='basic-not-abp-properties-usage-fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='basic-not-abp-properties-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpHas() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-has:not(:-abp-has(span.ehei-has-not-hide))"); ++ public void testElemHideEmuNotAbpHas() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter( ++ String.format("%s#?#.ehei-has:not(:-abp-has(span.ehei-has-not-hide))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='basic-not-abp-has-usage-fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='basic-not-abp-has-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpContains() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-contains:not(span:-abp-contains(example-content))"); ++ public void testElemHideEmuNotAbpContains() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter( ++ String.format("%s#?#.ehei-contains:not(span:-abp-contains(example-content))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "span[id='basic-not-abp-contains-usage-fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='basic-not-abp-contains-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotChained() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-chained-parent:not(:-abp-has(> div:-abp-properties(width: 198px)))"); ++ public void testElemHideEmuNotChained() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter(String.format( ++ "%s#?#.ehei-chained-parent:not(:-abp-has(> div:-abp-properties(width: 198px)))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='chained-extended-selectors-with-not-selector-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ "div[id='chained-extended-selectors-with-not-selector-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotCaseIsensitive() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-case:not(:-abp-properties(WiDtH: 209px))"); ++ public void testElemHideEmuNotCaseIsensitive() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter(String.format("%s#?#.ehei-case:not(:-abp-properties(WiDtH: 209px))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='case-insensitive-extended-selectors-with-not-selector-fail']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ "div[id='case-insensitive-extended-selectors-with-not-selector-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotWildcard() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-wildcard:not(:-abp-properties(cursor:*))"); ++ public void testElemHideEmuNotWildcard() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter(String.format("%s#?#.ehei-wildcard:not(:-abp-properties(cursor:*))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='wildcard-in-extended-selector-combined-with-not-selector-fail']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ "div[id='wildcard-in-extended-selector-combined-with-not-selector-fail']"); + } + + @Test @@ -17534,30 +20986,37 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuNotRegexAbpProperties() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-regex:not(:-abp-properties(/width: 11[1-5]px;/))"); ++ mHelper.addCustomFilter( ++ String.format("%s#?#.ehei-regex:not(:-abp-properties(/width: 11[1-5]px;/))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-not-abp-properties-fail-1']"); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-not-abp-properties-fail-2']"); -+ mHelper.verifyDisplayedCount(1, ".ehei-regex3"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-not-abp-properties-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-not-abp-properties-fail-2']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, ".ehei-regex3"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotRegexAbpContains() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#.ehei-contains-regex:not(span:-abp-contains(/example-contentregex\\d/))"); ++ public void testElemHideEmuNotRegexAbpContains() throws TimeoutException, InterruptedException { ++ mHelper.addCustomFilter(String.format( ++ "%s#?#.ehei-contains-regex:not(span:-abp-contains(/example-contentregex\\d/))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "span[id='regular-expression-in-not-abp-contains-fail-1']"); -+ mHelper.verifyHiddenCount(1, "span[id='regular-expression-in-not-abp-contains-fail-2']"); -+ mHelper.verifyDisplayedCount(2, ".ehei-contains-regex"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='regular-expression-in-not-abp-contains-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='regular-expression-in-not-abp-contains-fail-2']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 2, ".ehei-contains-regex"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java -@@ -0,0 +1,190 @@ +@@ -0,0 +1,217 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17602,9 +21061,9 @@ new file mode 100644 + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + + public static final String ELEMENT_HIDING_EMULATION_TESTPAGES_URL = -+ "https://abptestpages.org/en/filters/element-hiding-emulation"; ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding-emulation"; + public static final String ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL = -+ "https://abptestpages.org/en/exceptions/element-hiding"; ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "element-hiding"; + + @Before + public void setUp() { @@ -17621,28 +21080,34 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicAbpProperties() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#div:-abp-properties(width: 213px)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#div:-abp-properties(width: 213px)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='basic-abp-properties-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='basic-abp-properties-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicAbpHas() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#div:-abp-has(>div>span.ehe-abp-has)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#div:-abp-has(>div>span.ehe-abp-has)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='basic-abp-has-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='basic-abp-has-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicHas() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#div:has(>div>span.ehe-has)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#div:has(>div>span.ehe-has)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + // "Basic :has() usage" are duplicated on testpage. -+ mHelper.verifyHiddenCount(2, "div[id='basic-has-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "div[id='basic-has-usage-fail-1']"); + } + + @Test @@ -17650,10 +21115,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicAbpContains() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#?#span:-abp-contains(ehe-contains-target)"); ++ mHelper.addCustomFilter(String.format("%s#?#span:-abp-contains(ehe-contains-target)", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "span[id='basic-abp-contains-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='basic-abp-contains-usage-fail-1']"); + } + + @Test @@ -17661,18 +21127,22 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicXpath() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#?#span:xpath(//*[@id=\"basic-xpath-usage-fail\"])"); ++ String.format("%s#?#span:xpath(//*[@id=\"basic-xpath-usage-fail\"])", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "span[id='basic-xpath-usage-fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='basic-xpath-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideEmuFiltersBasicHasText() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#span:has-text(ehe-has-text)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#span:has-text(ehe-has-text)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "span[id='basic-has-text-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "span[id='basic-has-text-usage-fail-1']"); + } + + @Test @@ -17681,9 +21151,11 @@ new file mode 100644 + public void testElemHideEmuFiltersChainedExtendedSelectors() + throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#?#div:-abp-has(> div:-abp-properties(width: 214px))"); ++ String.format("%s#?#div:-abp-has(> div:-abp-properties(width: 214px))", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='chained-extended-selectors-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='chained-extended-selectors-fail-1']"); + } + + @Test @@ -17691,9 +21163,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersCaseInsensitiveExtendedSelectors() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#div:-abp-properties(WiDtH: 215px)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#div:-abp-properties(WiDtH: 215px)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='case-insensitive-extended-selectors-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='case-insensitive-extended-selectors-fail-1']"); + } + + @Test @@ -17701,9 +21175,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersWildcardInExtendedSelector() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#?#div:-abp-properties(cursor:*)"); ++ mHelper.addCustomFilter(String.format( ++ "%s#?#div:-abp-properties(cursor:*)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='wildcard-in-extended-selector-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='wildcard-in-extended-selector-fail-1']"); + } + + @Test @@ -17711,13 +21187,16 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersRegularExpressionInAbpProperties() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#?#div:-abp-properties(/width: 12[1-5]px;/)"); ++ mHelper.addCustomFilter(String.format("%s#?#div:-abp-properties(/width: 12[1-5]px;/)", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-abp-properties-fail-1']"); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-abp-properties-fail-2']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-abp-properties-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-abp-properties-fail-2']"); + // "Not a target" div is not hidden, does not match regular expression. -+ mHelper.verifyDisplayedCount(1, "div[class='testcase-examplecontent ehe-regex3']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[class='testcase-examplecontent ehe-regex3']"); + } + + @Test @@ -17726,10 +21205,13 @@ new file mode 100644 + public void testElemHideEmuFiltersRegularExpressionInAbpContains() + throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#?#div > div:-abp-contains(/ehe-containsregex\\d/)"); ++ String.format("%s#?#div > div:-abp-contains(/ehe-containsregex\\d/)", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-abp-contains-fail-1']"); -+ mHelper.verifyHiddenCount(1, "div[id='regular-expression-in-abp-contains-fail-2']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-abp-contains-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='regular-expression-in-abp-contains-fail-2']"); + } + + // Exceptions: @@ -17738,21 +21220,25 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideEmuFiltersException() throws TimeoutException, InterruptedException { + // Add a blocking filter, verify element hidden. -+ mHelper.addCustomFilter("abptestpages.org##.testcase-ehe"); ++ mHelper.addCustomFilter( ++ String.format("%s##.testcase-ehe", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='exception-usage-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='exception-usage-pass-1']"); + + // Add exception filter, verify element no longer hidden. -+ mHelper.addCustomFilter("abptestpages.org#@#.testcase-ehe"); ++ mHelper.addCustomFilter( ++ String.format("%s#@#.testcase-ehe", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL); -+ mHelper.verifyDisplayedCount(1, "div[id='exception-usage-pass-1']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[id='exception-usage-pass-1']"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java -@@ -0,0 +1,214 @@ +@@ -0,0 +1,237 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17797,9 +21283,9 @@ new file mode 100644 + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + + public static final String ELEMENT_HIDING_TESTPAGES_URL = -+ "https://abptestpages.org/en/filters/element-hiding"; ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding"; + public static final String ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL = -+ "https://abptestpages.org/en/exceptions/elemhide"; ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "elemhide"; + + @Before + public void setUp() { @@ -17815,9 +21301,9 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersIdSelector() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org###eh-id"); ++ mHelper.addCustomFilter(String.format("%s###eh-id", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='eh-id']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='eh-id']"); + } + + @Test @@ -17825,18 +21311,20 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersIdSelectorDoubleCurlyBraces() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[id='{{eh-id}}']"); ++ mHelper.addCustomFilter( ++ String.format("%s##div[id='{{eh-id}}']", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='{{eh-id}}']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='{{eh-id}}']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersClassSelector() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##.eh-class"); ++ mHelper.addCustomFilter( ++ String.format("%s##.eh-class", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[class='eh-class']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-class']"); + } + + @Test @@ -17844,19 +21332,20 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersDescendantSelector() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##.testcase-area > .eh-descendant"); ++ mHelper.addCustomFilter(String.format( ++ "%s##.testcase-area > .eh-descendant", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[class='eh-descendant']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-descendant']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersSiblingSelector() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org##.testcase-examplecontent + .eh-sibling"); ++ mHelper.addCustomFilter(String.format("%s##.testcase-examplecontent + .eh-sibling", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[class='eh-sibling']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-sibling']"); + } + + @Test @@ -17864,9 +21353,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersAttributeSelector1() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[height=\"100\"][width=\"100\"]"); ++ mHelper.addCustomFilter(String.format( ++ "%s##div[height=\"100\"][width=\"100\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='attribute-selector-1-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='attribute-selector-1-fail-1']"); + } + + @Test @@ -17874,10 +21365,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersAttributeSelector2() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org##div[href=\"http://testcase-attribute.com/\"]"); ++ mHelper.addCustomFilter(String.format("%s##div[href=\"http://testcase-attribute.com/\"]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='attribute-selector-2-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='attribute-selector-2-fail-1']"); + } + + @Test @@ -17885,9 +21377,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersAttributeSelector3() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[style=\"width: 200px;\"]"); ++ mHelper.addCustomFilter(String.format( ++ "%s##div[style=\"width: 200px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='attribute-selector-3-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='attribute-selector-3-fail-1']"); + } + + @Test @@ -17895,10 +21389,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersStartsWithSelector1() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org##div[href^=\"http://testcase-startswith.com/\"]"); ++ mHelper.addCustomFilter(String.format("%s##div[href^=\"http://testcase-startswith.com/\"]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='starts-with-selector-1-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='starts-with-selector-1-fail-1']"); + } + + @Test @@ -17906,9 +21401,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersStartsWithSelector2() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[style^=\"width: 201px;\"]"); ++ mHelper.addCustomFilter(String.format( ++ "%s##div[style^=\"width: 201px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='starts-with-selector-2-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='starts-with-selector-2-fail-1']"); + } + + @Test @@ -17916,18 +21413,21 @@ new file mode 100644 + @Feature({"adblock"}) + public void testElemHideFiltersEndsWithSelector1() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[style$=\"width: 202px;\"]"); ++ mHelper.addCustomFilter(String.format( ++ "%s##div[style$=\"width: 202px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='ends-with-selector-1-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='ends-with-selector-1-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersContains() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##div[style*=\"width: 203px;\"]"); ++ mHelper.addCustomFilter(String.format( ++ "%s##div[style*=\"width: 203px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "div[id='contains-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='contains-fail-1']"); + } + + // Exceptions: @@ -17935,43 +21435,52 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersBasicException() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##.ex-elemhide"); -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/elemhide/basic/*"); ++ mHelper.addCustomFilter( ++ String.format("%s##.ex-elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/elemhide/basic/*", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); + // No exceptions added yet, both objects should be blocked. -+ mHelper.verifyHiddenCount(1, "img[id='basic-usage-fail-1']"); -+ mHelper.verifyHiddenCount(1, "div[id='basic-usage-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "img[id='basic-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[id='basic-usage-pass-1']"); + // Add exception filter and reload. -+ mHelper.addCustomFilter("@@abptestpages.org/en/exceptions/elemhide$elemhide"); ++ mHelper.addCustomFilter(String.format( ++ "@@%s/en/exceptions/elemhide$elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); + // Image should remain blocked, div should be unblocked. -+ mHelper.verifyHiddenCount(1, "img[id='basic-usage-fail-1']"); -+ mHelper.verifyDisplayedCount( -+ 1, "div[id='basic-usage-area'] > div[id='basic-usage-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "img[id='basic-usage-fail-1']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[id='basic-usage-area'] > div[id='basic-usage-pass-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testElemHideFiltersIframeException() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##.targ-elemhide"); -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/elemhide/iframe/*.png"); ++ mHelper.addCustomFilter( ++ String.format("%s##.targ-elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/elemhide/iframe/*.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "img[id='iframe-fail-1']"); -+ mHelper.verifyHiddenCount(1, "div[id='iframe-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img[id='iframe-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='iframe-pass-1']"); + + // Add exception filter and reload. -+ mHelper.addCustomFilter("@@abptestpages.org/en/exceptions/elemhide$elemhide"); ++ mHelper.addCustomFilter(String.format( ++ "@@%s/en/exceptions/elemhide$elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); -+ mHelper.verifyHiddenCount(1, "img[id='iframe-fail-1']"); -+ mHelper.verifyDisplayedCount(1, "div[id='iframe-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img[id='iframe-fail-1']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "div[id='iframe-pass-1']"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java -@@ -0,0 +1,216 @@ +@@ -0,0 +1,229 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18010,6 +21519,10 @@ new file mode 100644 +import org.chromium.content_public.browser.test.util.JavaScriptUtils; + +import java.lang.Thread; ++import java.util.Arrays; ++import java.util.HashSet; ++import java.util.concurrent.CountDownLatch; ++import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +@RunWith(ChromeJUnit4ClassRunner.class) @@ -18024,7 +21537,7 @@ new file mode 100644 + @Before + public void setUp() { + mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.DISTRIBUTION_UNIT_TESTPAGE_SUBSCRIPTION); ++ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); + } + + @After @@ -18036,20 +21549,19 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifyImageExceptions() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "image"); -+ Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertEquals( -+ 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_STYLESHEET)); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "image_exception/stylesheet.css")); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "image_exception/image.png")); -+ mHelper.verifyDisplayedCount(1, "img"); ++ final String subdomainImage = String.format( ++ "https://allowed.subdomain.%s/testfiles/image_exception/subdomain.png", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "image"); ++ Assert.assertEquals(2, mHelper.numAllowed()); ++ Assert.assertEquals(2, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); ++ Assert.assertTrue(mHelper.isAllowed(subdomainImage)); ++ Assert.assertTrue(mHelper.isAllowed( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image_exception/image.png")); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 2, "img"); + String numImages = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), "document.getElementsByTagName(\"img\").length;"); -+ Assert.assertEquals("1", numImages); -+ mHelper.verifyGreenBackground("exception-target"); ++ Assert.assertEquals("2", numImages); + } + + @Test @@ -18057,7 +21569,7 @@ new file mode 100644 + @Feature({"adblock"}) + public void testVerifyPopupException() throws TimeoutException, InterruptedException { + final String POPUP_TESTACE_URL = -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "popup"; ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "popup"; + mHelper.loadUrl(POPUP_TESTACE_URL); + Assert.assertEquals(1, mHelper.getTabCount()); + String numElements = @@ -18070,129 +21582,139 @@ new file mode 100644 + Assert.assertEquals("3", numElements); + Assert.assertEquals(4, mHelper.getTabCount()); + Assert.assertEquals(3, mHelper.numAllowedPopups()); -+ Assert.assertTrue( -+ mHelper.isPopupAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "popup_exception/link.html")); -+ Assert.assertTrue( -+ mHelper.isPopupAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "popup_exception/script-window.html")); -+ Assert.assertTrue( -+ mHelper.isPopupAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "popup_exception/script-tab.html")); ++ Assert.assertTrue(mHelper.isPopupAllowed( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/link.html")); ++ Assert.assertTrue(mHelper.isPopupAllowed(TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "popup_exception/script-window.html")); ++ Assert.assertTrue(mHelper.isPopupAllowed( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/script-tab.html")); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifySubdocumentException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "subdocument"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "subdocument"); + Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT ++ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + + "subdocument_exception/subdocument.html")); -+ mHelper.verifyGreenBackground("exception-target"); ++ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "exception-target"); + String numFrames = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), "window.frames.length;"); + Assert.assertEquals("1", numFrames); -+ mHelper.verifyDisplayedCount(1, "iframe"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "iframe"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyScriptException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "script"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "script"); + Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "script_exception/script.js")); -+ mHelper.verifyGreenBackground("script-target"); ++ Assert.assertTrue(mHelper.isAllowed( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script_exception/script.js")); ++ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "script-target"); + Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "script_exception/image.png")); -+ mHelper.verifyHiddenCount(1, "img[data-expectedresult='fail']"); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script_exception/image.png")); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyStylesheetException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "stylesheet"); ++ final String allowedUrl = TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "stylesheet_exception/stylesheet.cs"; ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(allowedUrl))); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "stylesheet"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "stylesheet_exception/stylesheet.css")); ++ Assert.assertTrue(mHelper.isAllowed(allowedUrl)); + Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "stylesheet_exception/image.png")); -+ mHelper.verifyHiddenCount(1, "img"); -+ mHelper.verifyGreenBackground("exception-target"); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "stylesheet_exception/image.png")); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img"); ++ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "exception-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyXHRException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "xmlhttprequest"); ++ final String allowedUrl = ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest_exception/text.txt"; ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(allowedUrl))); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "xmlhttprequest_exception/text.txt")); -+ String value = DOMUtils.getNodeContents( -+ mActivityTestRule.getActivity().getCurrentWebContents(), "testcase-status"); -+ Assert.assertTrue(value.contains("Text loaded via XMLHTTPRequest Exception.")); ++ Assert.assertTrue(mHelper.isAllowed(allowedUrl)); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyGenericBlockException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "genericblock"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "genericblock"); + Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "genericblock/specific.png")); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "genericblock/specific.png")); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ mHelper.verifyDisplayedCount(1, "img[data-expectedresult='pass']"); -+ mHelper.verifyHiddenCount(1, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "img[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyGenericHideException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "generichide"); -+ mHelper.verifyDisplayedCount(1, "div[data-expectedresult='pass']"); -+ mHelper.verifyHiddenCount(1, "div[data-expectedresult='fail']"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "generichide"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyDocumentException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "document"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document"); + Assert.assertTrue(mHelper.isAllowed( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "document/image.png")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "document/image.png")); + Assert.assertTrue(mHelper.isPageAllowed( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "document")); -+ mHelper.verifyDisplayedCount(1, "div[data-expectedresult='pass']"); ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document")); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyWebSocketException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "websocket"); -+ Assert.assertTrue(mHelper.isAllowed("wss://echo.websocket.org/")); ++ final String wssUrl = ++ String.format("wss://%s/websocket", TestPagesTestsHelper.TESTPAGES_DOMAIN); ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(wssUrl))); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "websocket"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); ++ Assert.assertEquals(1, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_WEBSOCKET)); ++ Assert.assertTrue(mHelper.isAllowed(wssUrl)); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java -@@ -0,0 +1,280 @@ +@@ -0,0 +1,311 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18229,11 +21751,13 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeBrowserTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestPagesTestsHelper.IncludeSubframes; ++import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; +import org.chromium.content_public.browser.test.util.DOMUtils; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; + +import java.lang.Thread; ++import java.util.Arrays; ++import java.util.HashSet; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; @@ -18250,7 +21774,7 @@ new file mode 100644 + @Before + public void setUp() { + mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.DISTRIBUTION_UNIT_TESTPAGE_SUBSCRIPTION); ++ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); + } + + @After @@ -18262,21 +21786,36 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testBlockingFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "blocking"); -+ Assert.assertEquals(5, mHelper.numBlocked()); -+ Assert.assertEquals(5, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ mHelper.verifyHiddenCount(5, "img[data-expectedresult='fail']"); ++ final CountDownLatch countDownLatch = mHelper.setOnAdMatchedExpectations( ++ new HashSet<>(Arrays.asList( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/full-path.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "blocking/partial-path/partial-path.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "blocking/wildcard/1/wildcard.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "blocking/wildcard/2/wildcard.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/dynamic.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/subdomain.png")), ++ null); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "blocking"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); ++ Assert.assertEquals(6, mHelper.numBlocked()); ++ Assert.assertEquals(6, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 6, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyScriptFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "script"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "script"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "script/script.js")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script/script.js")); + + String childCount = + JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), @@ -18288,28 +21827,39 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifyImageFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "image"); ++ final CountDownLatch countDownLatch = mHelper.setOnAdMatchedExpectations( ++ new HashSet<>(Arrays.asList( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/static/static.png", ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ + "image/dynamic/dynamic.png")), ++ null); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "image"); ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "image/static/static.png")); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "image/dynamic/dynamic.png")); -+ mHelper.verifyHiddenCount(2, "img[data-expectedresult='fail']"); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/static/static.png")); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/dynamic/dynamic.png")); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyStylesheetFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "stylesheet"); -+ ++ final String blockedUrl = ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "stylesheet/stylesheet.cs"; ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(blockedUrl)), null); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "stylesheet"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_STYLESHEET)); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "stylesheet/stylesheet.css")); ++ Assert.assertTrue(mHelper.isBlocked(blockedUrl)); + String value = DOMUtils.getNodeContents(mHelper.getWebContents(), "stylesheet-target"); + Assert.assertEquals("Passed. Stylesheet was blocked.", value); + } @@ -18319,7 +21869,7 @@ new file mode 100644 + @Feature({"adblock"}) + public void testVerifyPopupFilters() throws TimeoutException, InterruptedException { + final String POPUP_TESTACE_URL = -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "popup"; ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "popup"; + mHelper.loadUrl(POPUP_TESTACE_URL); + Assert.assertEquals(1, mHelper.getTabCount()); + String numElements = @@ -18332,12 +21882,11 @@ new file mode 100644 + Assert.assertEquals("3", numElements); + Assert.assertEquals(3, mHelper.numBlockedPopups()); + Assert.assertTrue(mHelper.isPopupBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "popup/link.html")); -+ Assert.assertTrue( -+ mHelper.isPopupBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "popup/script-window.html")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/link.html")); + Assert.assertTrue(mHelper.isPopupBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "popup/script-tab.html")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-window.html")); ++ Assert.assertTrue(mHelper.isPopupBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-tab.html")); + Assert.assertEquals(1, mHelper.getTabCount()); + } + @@ -18345,30 +21894,32 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifyXHRFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "xmlhttprequest"); ++ final String blockedUrl = ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest/text.txt"; ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(blockedUrl)), null); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_XMLHTTPREQUEST)); -+ Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "xmlhttprequest/text.txt")); -+ String value = DOMUtils.getNodeContents(mHelper.getWebContents(), "testcase-status"); -+ Assert.assertEquals("Passed. Connection was blocked.", value); ++ Assert.assertTrue(mHelper.isBlocked(blockedUrl)); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifySubdocumentFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "subdocument"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "subdocument"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SUBDOCUMENT)); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "subdocument/subdocument.html")); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "subdocument/subdocument.html")); + // Do not search for iframe within the site's iframes. -+ mHelper.verifyHiddenCount(1, "iframe[data-expectedresult='fail']", IncludeSubframes.NO); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "iframe[data-expectedresult='fail']", IncludeSubframes.NO); + } + + @Test @@ -18376,71 +21927,73 @@ new file mode 100644 + @Feature({"adblock"}) + @DisabledTest(message = "Please enable again when rewrite filters will be supported") + public void testVerifyRewrite() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "rewrite"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"); + Assert.assertEquals(3, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_MEDIA)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "rewrite/audio.mp3")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/audio.mp3")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "rewrite/video.mp4")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/video.mp4")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "rewrite/script.js")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/script.js")); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyMatchCaseFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "match-case"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "match-case"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ mHelper.verifyHiddenCount(2, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyThirdPartyFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl( -+ TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "third-party"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "third-party"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ mHelper.verifyHiddenCount(2, "img[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(2, "img[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 2, "img[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyOtherFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "other"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "other"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_OTHER)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT + "other/image.png")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "other/image.png")); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyDomainFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "domain"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "domain"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "domain/static/target/image.png")); -+ Assert.assertTrue(mHelper.isBlocked(TestPagesTestsHelper.DISTRIBUTION_UNIT_RESOURCES_ROOT -+ + "domain/dynamic/image.png")); -+ mHelper.verifyHiddenCount(2, "img[data-expectedresult='fail']"); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "domain/static/target/image.png")); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "domain/dynamic/image.png")); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testVerifyPingFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "ping"); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "ping"); + // Ping action not yet triggered + Assert.assertEquals(0, mHelper.numBlocked()); + final CountDownLatch countDownLatch = new CountDownLatch(1); @@ -18449,8 +22002,8 @@ new file mode 100644 + final Tab tab = mActivityTestRule.getActivity().getActivityTab(); + JavaScriptUtils.executeJavaScriptAndWaitForResult( + tab.getWebContents(), "document.getElementById(\"script-ping-trigger\").click()"); -+ // Wait with 60 seconds max timeout -+ countDownLatch.await(60, TimeUnit.SECONDS); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); + } + @@ -18458,7 +22011,7 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifyPingFilterException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT + "ping"); ++ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "ping"); + // Ping action not yet triggered + Assert.assertEquals(0, mHelper.numAllowed()); + final CountDownLatch countDownLatch = new CountDownLatch(1); @@ -18467,8 +22020,8 @@ new file mode 100644 + final Tab tab = mActivityTestRule.getActivity().getActivityTab(); + JavaScriptUtils.executeJavaScriptAndWaitForResult(tab.getWebContents(), + "document.getElementsByClassName(\"testcase-trigger\")[0].click()"); -+ // Wait with 60 seconds max timeout -+ countDownLatch.await(60, TimeUnit.SECONDS); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numAllowed()); + Assert.assertEquals(0, mHelper.numBlocked()); + } @@ -18477,7 +22030,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java -@@ -0,0 +1,140 @@ +@@ -0,0 +1,150 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18513,7 +22066,7 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeBrowserTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestPagesTestsHelper.IncludeSubframes; ++import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; + +import java.util.concurrent.TimeoutException; + @@ -18526,6 +22079,11 @@ new file mode 100644 + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + ++ public static final String HEADER_TESTPAGES_URL = ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "header"; ++ public static final String HEADER_EXCEPTIONS_TESTPAGES_URL = ++ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "header"; ++ + @Before + public void setUp() { + mHelper.setUp(mActivityTestRule); @@ -18541,14 +22099,15 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHeaderFilterScript() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "||abptestpages.org/testfiles/header/$header=content-type=application/javascript"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/header"); ++ String.format("||%s/testfiles/header/$header=content-type=application/javascript", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); -+ Assert.assertTrue( -+ mHelper.isBlocked("https://abptestpages.org/testfiles/header/script.js")); -+ mHelper.verifyDisplayedCount( -+ 0, "div#functionproperty-target > div[data-expectedresult='fail']"); ++ Assert.assertTrue(mHelper.isBlocked(String.format( ++ "https://%s/testfiles/header/script.js", TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, ++ "div#functionproperty-target > div[data-expectedresult='fail']"); + } + + @Test @@ -18556,73 +22115,77 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHeaderFilterImage() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "||abptestpages.org/testfiles/header/image.png$header=content-type=image/png"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/header"); ++ String.format("||%s/testfiles/header/image.png$header=content-type=image/png", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ Assert.assertTrue( -+ mHelper.isBlocked("https://abptestpages.org/testfiles/header/image.png")); -+ mHelper.verifyDisplayedCount(0, "img[id='image-fail-1']"); ++ Assert.assertTrue(mHelper.isBlocked(String.format( ++ "https://%s/testfiles/header/image.png", TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "img[id='image-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHeaderFilterImageAndComma() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "||abptestpages.org/testfiles/header/image2.png$header=date=\\x2c"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/header"); ++ mHelper.addCustomFilter(String.format("||%s/testfiles/header/image2.png$header=date=\\x2c", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ Assert.assertTrue( -+ mHelper.isBlocked("https://abptestpages.org/testfiles/header/image2.png")); -+ mHelper.verifyDisplayedCount(0, "img[id='comma-fail-1']"); ++ Assert.assertTrue(mHelper.isBlocked(String.format( ++ "https://%s/testfiles/header/image2.png", TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "img[id='comma-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHeaderFilterStylesheet() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "||abptestpages.org/testfiles/header/$header=content-type=text/css"); -+ mHelper.loadUrl("https://abptestpages.org/en/filters/header"); ++ mHelper.addCustomFilter(String.format("||%s/testfiles/header/$header=content-type=text/css", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_STYLESHEET)); -+ Assert.assertTrue(mHelper.isBlocked( -+ "https://abptestpages.org/testfiles/header/stylesheet.css")); ++ Assert.assertTrue( ++ mHelper.isBlocked(String.format("https://%s/testfiles/header/stylesheet.css", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN))); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHeaderFilterException() throws TimeoutException, InterruptedException { -+ // TODO: uncomment this part of test after DPD-1257. + // Add blocking filter, expect blocked image -+ // mHelper.addCustomFilter( -+ // "||abptestpages.org/testfiles/header_exception/$header=content-type=image/png"); -+ // mHelper.loadUrl("https://abptestpages.org/en/exceptions/header"); -+ // Assert.assertEquals(1, mHelper.numBlocked()); -+ // Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ // mHelper.verifyDisplayedCount(0, "img[id='image-header-exception-pass-1']"); ++ mHelper.addCustomFilter( ++ String.format("||%s/testfiles/header_exception/$header=content-type=image/png", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_EXCEPTIONS_TESTPAGES_URL); ++ Assert.assertEquals(1, mHelper.numBlocked()); ++ Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "img[id='image-header-exception-pass-1']"); + + // Add exception filter, expect image allowed -+ mHelper.addCustomFilter( -+ "||abptestpages.org/testfiles/header_exception/$header=content-type=image/png"); -+ mHelper.addCustomFilter("@@abptestpages.org/testfiles/header_exception/$header"); -+ mHelper.loadUrl("https://abptestpages.org/en/exceptions/header"); ++ mHelper.addCustomFilter(String.format( ++ "@@%s/testfiles/header_exception/$header", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(HEADER_EXCEPTIONS_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numAllowed()); + Assert.assertEquals(1, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ Assert.assertTrue(mHelper.isAllowed( -+ "https://abptestpages.org/testfiles/header_exception/image.png")); -+ mHelper.verifyDisplayedCount(1, "img[id='image-header-exception-pass-1']"); ++ Assert.assertTrue( ++ mHelper.isAllowed(String.format("https://%s/testfiles/header_exception/image.png", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "img[id='image-header-exception-pass-1']"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java -@@ -0,0 +1,157 @@ +@@ -0,0 +1,177 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18672,7 +22235,7 @@ new file mode 100644 + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + + public static final String REWRITE_TEST_URL = -+ "https://abptestpages.org/en/filters/rewrite"; ++ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"; + + @Before + public void setUp() { @@ -18688,103 +22251,123 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testRewriteScript() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.js$rewrite=abp-resource:blank-js,domain=abptestpages.org"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.js$rewrite=abp-resource:blank-js,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifyDisplayedCount(0, "div[id='script-fail-1']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "div[id='script-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteStylesheet() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.css$rewrite=abp-resource:blank-css,domain=abptestpages.org"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.css$rewrite=abp-resource:blank-css,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifyGreenBackground("stylesheet-target"); ++ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "stylesheet-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteSubdocument() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.html$rewrite=abp-resource:blank-html,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("subdocument-target"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.html$rewrite=abp-resource:blank-html,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "subdocument-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteText() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.txt$rewrite=abp-resource:blank-text,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("text-status"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.txt$rewrite=abp-resource:blank-text,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "text-status"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteGif() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/1x1.gif$rewrite=abp-resource:1x1-transparent-gif,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("1x1-target"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/1x1.gif$rewrite=abp-resource:1x1-transparent-gif,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "1x1-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewrite2x2Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/2x2.png$rewrite=abp-resource:2x2-transparent-png,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("2x2-target"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/2x2.png$rewrite=abp-resource:2x2-transparent-png,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "2x2-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewrite3x2Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/3x2.png$rewrite=abp-resource:3x2-transparent-png,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("3x2-target"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/3x2.png$rewrite=abp-resource:3x2-transparent-png,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "3x2-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewrite32x32Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/32x32.png$rewrite=abp-resource:32x32-transparent-png,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ mHelper.verifySelfTestPass("32x32-target"); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/32x32.png$rewrite=abp-resource:32x32-transparent-png,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "32x32-target"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteAudio() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.mp3$rewrite=abp-resource:blank-mp3,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity().getActivityTab().getWebContents(), -+ "document.getElementById('audio-area').lastChild.getAttribute('data-expectedresult')"); -+ Assert.assertEquals("\"pass\"", value); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.mp3$rewrite=abp-resource:blank-mp3,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( ++ mActivityTestRule.getActivity().getActivityTab().getWebContents(), ++ "document.getElementById('audio-area').lastChild.getAttribute('data-expectedresult')"); ++ Assert.assertEquals("\"pass\"", value); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testRewriteVideo() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/rewrite/*.mp4$rewrite=abp-resource:blank-mp4,domain=abptestpages.org"); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity().getActivityTab().getWebContents(), -+ "document.getElementById('video-area').lastChild.getAttribute('data-expectedresult')"); -+ Assert.assertEquals("\"pass\"", value); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.mp4$rewrite=abp-resource:blank-mp4,domain=%s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( ++ mActivityTestRule.getActivity().getActivityTab().getWebContents(), ++ "document.getElementById('video-area').lastChild.getAttribute('data-expectedresult')"); ++ Assert.assertEquals("\"pass\"", value); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java -@@ -0,0 +1,79 @@ +@@ -0,0 +1,82 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18846,29 +22429,32 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifySitekeyException() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org##.testcase-sitekey-eh"); -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/sitekey/outofframe.png"); -+ mHelper.addCustomFilter("||abptestpages.org/testfiles/sitekey/inframe.png"); ++ mHelper.addCustomFilter( ++ String.format("%s#@#[data-adblockkey]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter( ++ String.format("%s##.testcase-sitekey-eh", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/sitekey/outofframe.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/sitekey/inframe.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + mHelper.addCustomFilter( + "@@$document,sitekey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGtTstne7e8MbmDHDiMFkGbcuBgXmiVesGOG3gtYeM1EkrzVhBjGUvKXYE4GLFwqty3v5MuWWbvItUWBTYoVVsCAwEAAQ"); -+ // DP testpages does not work. -+ final String TEST_URL = "https://abptestpages.org/exceptions/sitekey"; -+ mHelper.loadUrl(TEST_URL); ++ mHelper.loadUrl(TestPagesTestsHelper.SITEKEY_TESTPAGES_TESTCASES_ROOT); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertTrue(mHelper.isBlocked( -+ "https://abptestpages.org/testfiles/sitekey/outofframe.png")); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "sitekey/outofframe.png")); + Assert.assertEquals(1, mHelper.numAllowed()); + Assert.assertTrue(mHelper.isAllowed( -+ "https://abptestpages.org/testfiles/sitekey/inframe.png")); -+ mHelper.verifyHiddenCount(1, "img"); -+ mHelper.verifyHiddenCount(1, "div"); ++ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "sitekey/inframe.png")); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java -@@ -0,0 +1,467 @@ +@@ -0,0 +1,545 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18916,8 +22502,8 @@ new file mode 100644 + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); + private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + -+ public static final String SNIPPETS_COMMON_UNIT_TESTCASES_ROOT = -+ "https://abptestpages.org/en/snippets/"; ++ public static final String SNIPPETS_TESTPAGES_TESTCASES_ROOT = ++ TestPagesTestsHelper.TESTPAGES_TESTCASES_ROOT + "snippets/"; + + @Before + public void setUp() { @@ -18933,13 +22519,15 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testAbortCurrentInlineScriptBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-current-inline-script console.group"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-current-inline-script"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-current-inline-script console.group", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); + // All "Abort" snippets cancel creation of the target div, so it won't be hidden - it will + // not exist in DOM. Therefore we verify it's not displayed instead of verifying it's + // hidden. -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -18947,9 +22535,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortCurrentInlineScriptSearch() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-current-inline-script console.info acis-search"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-current-inline-script"); -+ mHelper.verifyDisplayedCount(0, "div#search-target > div[data-expectedresult='fail']"); ++ String.format("%s#$#abort-current-inline-script console.info acis-search", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#search-target > div[data-expectedresult='fail']"); + } + + @Test @@ -18957,27 +22548,34 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortCurrentInlineScriptRegex() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-current-inline-script console.warn '/acis-regex[1-2]/'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-current-inline-script"); -+ mHelper.verifyDisplayedCount(0, "div#regex-target > div[data-expectedresult='fail']"); ++ String.format("%s#$#abort-current-inline-script console.warn '/acis-regex[1-2]/'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#regex-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testAbortOnPropertyReadBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-property-read aoprb"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-read"); -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aoprb", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testAbortOnPropertyReadSubProperty() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-property-read aopr.sp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-read"); -+ mHelper.verifyDisplayedCount(0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aopr.sp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); + } + + @Test @@ -18985,19 +22583,23 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnPropertyReadFunctionProperty() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-property-read aoprf.fp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-read"); -+ mHelper.verifyDisplayedCount( -+ 0, "div#functionproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aoprf.fp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, ++ "div#functionproperty-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testAbortOnPropertyWriteBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-property-write window.aopwb"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-write"); -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-property-write window.aopwb", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19005,10 +22607,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnPropertyWriteSubProperty() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-property-write window.aopwsp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-write"); -+ mHelper.verifyDisplayedCount(0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-property-write window.aopwsp", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19016,19 +22620,24 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnPropertyWriteFunctionProperty() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-property-write aopwf.fp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-property-write"); -+ mHelper.verifyDisplayedCount( -+ 0, "div#functionproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-write aopwf.fp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, ++ "div#functionproperty-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testAbortOnIframePropertyReadBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter("abptestpages.org#$#abort-on-iframe-property-read aoiprb"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoiprb", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19036,10 +22645,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnIframePropertyReadSubProperty() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-iframe-property-read aoipr.sp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ mHelper.verifyDisplayedCount(0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr.sp", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19047,11 +22658,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnIframePropertyReadMultipleProperties() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-iframe-property-read aoipr1 aoipr2"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ mHelper.verifyDisplayedCount( -+ 0, "div#multipleproperties-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr1 aoipr2", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, ++ "div#multipleproperties-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19059,10 +22671,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnIframePropertyWriteBasic() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-iframe-property-write aoipwb"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipwb", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19070,10 +22684,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnIframePropertyWriteSubProperty() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-iframe-property-write aoipw.sp"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ mHelper.verifyDisplayedCount(0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw.sp", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19081,67 +22697,70 @@ new file mode 100644 + @Feature({"adblock"}) + public void testAbortOnIframePropertyWriteMultipleProperties() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#abort-on-iframe-property-write aoipw1 aoipw2"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ mHelper.verifyDisplayedCount( -+ 0, "div#multipleproperties-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw1 aoipw2", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, ++ "div#multipleproperties-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsStatic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains 'hic-basic-static' p[id]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains"); -+ mHelper.verifyHiddenCount(1, "p#hic-static-id"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-static' p[id]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-static-id"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsDynamic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains 'hic-basic-dynamic' p[id]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains"); -+ mHelper.verifyHiddenCount(1, "p#hic-dynamic-id"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-dynamic' p[id]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-dynamic-id"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsSearch() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains 'hic-search' p[id] .target"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains"); -+ mHelper.verifyHiddenCount(1, "div#search2-target > p.target"); -+ mHelper.verifyDisplayedCount(1, "div#search1-target > p[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-search' p[id] .target", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#search2-target > p.target"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#search1-target > p[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsRegex() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains /hic-regex-[2-3]/ p[id]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains /hic-regex-[2-3]/ p[id]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); + // "hic-regex-1" does not match regex, should remain displayed. -+ mHelper.verifyDisplayedCount(1, "p#hic-regex-1"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "p#hic-regex-1"); + + // "hic-regex-2" and "hic-regex-2" do match regex, should be hidden. -+ mHelper.verifyHiddenCount(1, "p#hic-regex-2"); -+ mHelper.verifyHiddenCount(1, "p#hic-regex-3"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-regex-2"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-regex-3"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsFrame() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains hidden span#frame-target"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains"); -+ mHelper.verifyHiddenCount(1, "span#frame-target"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains hidden span#frame-target", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "span#frame-target"); + } + + @Test @@ -19149,11 +22768,15 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfContainsAndMatchesStyleStatic() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains-and-matches-style hicamss div[id] span.label /./ 'display: inline;'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); -+ mHelper.verifyHiddenCount(1, "div#static-usage-area > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div#static-usage-area > div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-and-matches-style hicamss div[id] span.label /./ 'display: inline;'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#static-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#static-usage-area > div[data-expectedresult='pass']"); + } + + @Test @@ -19161,21 +22784,27 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfContainsAndMatchesStyleDynamic() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains-and-matches-style hicamsd div[id] span.label /./ 'display: inline;'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); -+ mHelper.verifyHiddenCount(1, "div#dynamic-target > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div#dynamic-target > div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-and-matches-style hicamsd div[id] span.label /./ 'display: inline;'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#dynamic-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#dynamic-target > div[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfContainsImage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains-image /^89504e470d0a1a0a0000000d4948445200000064000000640802/ div[shouldhide] div"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains-image"); -+ mHelper.verifyHiddenCount(2, "div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-image /^89504e470d0a1a0a0000000d4948445200000064000000640802/ div[shouldhide] div", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-image"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "div[data-expectedresult='fail']"); + } + + @Test @@ -19183,10 +22812,13 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfContainsVisibleTextBasicUsage() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains-visible-text Sponsored-hicvt-basic '#parent-basic > .article' '#parent-basic > .article .label'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains-visible-text"); -+ mHelper.verifyHiddenCount(1, "div#parent-basic > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-basic '#parent-basic > .article' '#parent-basic > .article .label'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-visible-text"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#parent-basic > div[data-expectedresult='fail']"); + } + + @Test @@ -19194,10 +22826,13 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfContainsVisibleTextContentUsage() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-contains-visible-text Sponsored-hicvt-content '#parent-content > .article' '#parent-content > .article .label'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-contains-visible-text"); -+ mHelper.verifyHiddenCount(1, "div#parent-content > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-content '#parent-content > .article' '#parent-content > .article .label'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-visible-text"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#parent-content > div[data-expectedresult='fail']"); + } + + @Test @@ -19205,10 +22840,13 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfHasAndMatchesStyleBasicUsage() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-has-and-matches-style a[href=\"#basic-target-ad\"] div[id] span.label /./ 'display: inline;'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-has-and-matches-style"); -+ mHelper.verifyHiddenCount(1, "div#basic-target > div[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-has-and-matches-style a[href=\"#basic-target-ad\"] div[id] span.label /./ 'display: inline;'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-has-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19216,21 +22854,27 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfHasAndMatchesStyleLegitElements() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-has-and-matches-style a[href=\"#comments-target-ad\"] div[id] span.label ';' /\\\\bdisplay:\\ inline\\;/"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-has-and-matches-style"); -+ mHelper.verifyDisplayedCount(1, "div#comments-target > div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-has-and-matches-style a[href=\"#comments-target-ad\"] div[id] span.label ';' /\\\\bdisplay:\\ inline\\;/", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-has-and-matches-style"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#comments-target > div[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfLabeledBy() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-labelled-by 'Label' '#hilb-target [aria-labelledby]' '#hilb-target'"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-labelled-by"); -+ mHelper.verifyHiddenCount(1, "div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-labelled-by 'Label' '#hilb-target [aria-labelledby]' '#hilb-target'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-labelled-by"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div[data-expectedresult='pass']"); + } + + @Test @@ -19238,13 +22882,13 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfMatchesXPathBasicStaticUsage() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-matches-xpath //*[@id=\"isnfnv\"]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ mHelper.verifyHiddenCount( -+ 1, "div#basic-static-usage-area > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount( -+ 1, "div#basic-static-usage-area > div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-matches-xpath //*[@id=\"isnfnv\"]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ "div#basic-static-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, ++ "div#basic-static-usage-area > div[data-expectedresult='pass']"); + } + + @Test @@ -19252,10 +22896,13 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfMatchesXPathClassUsage() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-matches-xpath //*[@class=\"to-be-hidden\"]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ mHelper.verifyHiddenCount(1, "div#class-usage-area > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div#class-usage-area > div[data-expectedresult='pass']"); ++ String.format("%s#$#hide-if-matches-xpath //*[@class=\"to-be-hidden\"]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#class-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#class-usage-area > div[data-expectedresult='pass']"); + } + + @Test @@ -19263,22 +22910,25 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfMatchesXPathIdStartsWith() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-matches-xpath //div[starts-with(@id,\"fail\")]"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ mHelper.verifyHiddenCount( -+ 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount( -+ 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='pass']"); ++ String.format("%s#$#hide-if-matches-xpath //div[starts-with(@id,\"fail\")]", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ "div#hide-if-id-starts-with-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, ++ "div#hide-if-id-starts-with-area > div[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) + public void testHideIfShadowContainsBasicUsage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-shadow-contains 'hisc-basic' p"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-shadow-contains"); -+ mHelper.verifyHiddenCount(1, "div#basic-target > p[data-expectedresult='fail']"); ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-shadow-contains 'hisc-basic' p", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#basic-target > p[data-expectedresult='fail']"); + } + + @Test @@ -19286,10 +22936,14 @@ new file mode 100644 + @Feature({"adblock"}) + public void testHideIfShadowContainsRegexUsage() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#hide-if-shadow-contains '/hisc-regex[1-2]/' div"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "hide-if-shadow-contains"); -+ mHelper.verifyHiddenCount(2, "div#regex-target > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div#regex-target > div[data-expectedresult='pass']"); ++ String.format("%s#$#hide-if-shadow-contains '/hisc-regex[1-2]/' div", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 2, "div#regex-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#regex-target > div[data-expectedresult='pass']"); + } + + @Test @@ -19297,10 +22951,12 @@ new file mode 100644 + @Feature({"adblock"}) + public void testJsonPrune() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#json-prune 'data-expectedresult jsonprune aria-label' "); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "json-prune?delay=100"); ++ String.format("%s#$#json-prune 'data-expectedresult jsonprune aria-label'", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "json-prune?delay=100"); + // The object does not get hidden, it no longer exists in the DOM. -+ mHelper.verifyDisplayedCount(0, "div#testcase-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#testcase-area > div[data-expectedresult='fail']"); + } + + @Test @@ -19308,9 +22964,11 @@ new file mode 100644 + @Feature({"adblock"}) + public void testOverridePropertyRead() throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#override-property-read overridePropertyRead.fp false "); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "override-property-read"); -+ mHelper.verifyHiddenCount(1, "div#basic-target > div[data-expectedresult='fail']"); ++ String.format("%s#$#override-property-read overridePropertyRead.fp false", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "override-property-read"); ++ TestVerificationUtils.verifyHiddenCount( ++ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='fail']"); + } + + @Test @@ -19318,11 +22976,14 @@ new file mode 100644 + @Feature({"adblock"}) + public void testStripFetchQueryParameterBasicUsage() + throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ "abptestpages.org#$#strip-fetch-query-parameter basicBlocked abptestpages.org"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "strip-fetch-query-parameter"); -+ mHelper.verifyDisplayedCount(0, "div#basic-target > div[data-expectedresult='fail']"); -+ mHelper.verifyDisplayedCount(1, "div#basic-target > div[data-expectedresult='pass']"); ++ mHelper.addCustomFilter(String.format("%s#$#strip-fetch-query-parameter basicBlocked %s", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "strip-fetch-query-parameter"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='pass']"); + } + + @Test @@ -19331,16 +22992,19 @@ new file mode 100644 + public void testStripFetchQueryParameterOtherUsage() + throws TimeoutException, InterruptedException { + mHelper.addCustomFilter( -+ "abptestpages.org#$#strip-fetch-query-parameter otherAllowed2 other-domain"); -+ mHelper.loadUrl(SNIPPETS_COMMON_UNIT_TESTCASES_ROOT + "strip-fetch-query-parameter"); -+ mHelper.verifyDisplayedCount(2, "div#other-target > div[data-expectedresult='pass']"); ++ String.format("%s#$#strip-fetch-query-parameter otherAllowed2 other-domain", ++ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "strip-fetch-query-parameter"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mActivityTestRule, 2, "div#other-target > div[data-expectedresult='pass']"); + } +} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java -@@ -0,0 +1,273 @@ +@@ -0,0 +1,201 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -19368,78 +23032,38 @@ new file mode 100644 +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.content_public.browser.WebContents; -+import org.chromium.content_public.browser.test.util.JavaScriptUtils; +import org.chromium.content_public.browser.test.util.TestThreadUtils; + +import java.lang.Thread; +import java.net.MalformedURLException; +import java.net.URL; -+import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; -+import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +public class TestPagesTestsHelper { -+ public static final String MAIN_DISTRIBUTION_UNIT_TEST_PAGE = -+ "https://dp-testpages.adblockplus.org/"; -+ public static final String MAIN_COMMON_TEST_PAGE = "https://abptestpages.org/"; -+ public static final String DISTRIBUTION_UNIT_TESTCASES_ROOT = -+ MAIN_DISTRIBUTION_UNIT_TEST_PAGE + "en/"; -+ public static final String COMMON_UNIT_TESTCASES_ROOT = MAIN_COMMON_TEST_PAGE + "en/"; -+ public static final String FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT = -+ DISTRIBUTION_UNIT_TESTCASES_ROOT + "filters/"; -+ public static final String EXCEPTION_DISTRIBUTION_UNIT_TESTCASES_ROOT = -+ DISTRIBUTION_UNIT_TESTCASES_ROOT + "exceptions/"; -+ public static final String CIRCUMVENTION_DISTRIBUTION_UNIT_TESTCASES_ROOT = -+ DISTRIBUTION_UNIT_TESTCASES_ROOT + "circumvention/"; -+ public static final String SNIPPETS_COMMON_UNIT_TESTCASES_ROOT = -+ COMMON_UNIT_TESTCASES_ROOT + "snippets/"; -+ public static final String DISTRIBUTION_UNIT_RESOURCES_ROOT = -+ MAIN_DISTRIBUTION_UNIT_TEST_PAGE + "testfiles/"; -+ public static final String DISTRIBUTION_UNIT_TESTPAGE_SUBSCRIPTION = -+ DISTRIBUTION_UNIT_TESTCASES_ROOT + "abp-testcase-subscription.txt"; -+ public static final String DISTRIBUTION_UNIT_WEBSOCKET_TESTPAGE_SUBSCRIPTION = -+ DISTRIBUTION_UNIT_TESTCASES_ROOT + "websocket-webrtc-subscription.txt"; -+ public static final String TESTPAGE_SUBSCRIPTION = -+ "https://abptestpages.org/en/abp-testcase-subscription.txt"; -+ -+ public enum IncludeSubframes { -+ YES, -+ NO, -+ } ++ public static final String TESTPAGES_DOMAIN = "abptestpages.org"; ++ public static final String TESTPAGES_BASE_URL = "https://" + TESTPAGES_DOMAIN; ++ public static final String TESTPAGES_TESTCASES_ROOT = TESTPAGES_BASE_URL + "/en/"; ++ public static final String FILTER_TESTPAGES_TESTCASES_ROOT = ++ TESTPAGES_TESTCASES_ROOT + "filters/"; ++ public static final String EXCEPTION_TESTPAGES_TESTCASES_ROOT = ++ TESTPAGES_TESTCASES_ROOT + "exceptions/"; ++ public static final String CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT = ++ TESTPAGES_TESTCASES_ROOT + "circumvention/"; ++ public static final String SITEKEY_TESTPAGES_TESTCASES_ROOT = ++ EXCEPTION_TESTPAGES_TESTCASES_ROOT + "sitekey"; ++ public static final String SNIPPETS_TESTPAGES_TESTCASES_ROOT = ++ TESTPAGES_TESTCASES_ROOT + "snippets/"; ++ public static final String TESTPAGES_RESOURCES_ROOT = TESTPAGES_BASE_URL + "/testfiles/"; ++ public static final String TESTPAGES_SUBSCRIPTION = ++ TESTPAGES_TESTCASES_ROOT + "/abp-testcase-subscription.txt"; + + private static final int TEST_TIMEOUT_SEC = 30; + -+ private static final String MATCHES_HIDDEN_FUNCTION = "function matches(element) {" -+ + " return window.getComputedStyle(element).display == \"none\"" -+ + "}"; -+ -+ private static final String MATCHES_DISPLAYED_FUNCTION = "function matches(element) {" -+ + " return window.getComputedStyle(element).display != \"none\"" -+ + "}"; -+ -+ private static final String COUNT_ELEMENT_FUNCTION = -+ "function countElements(selector, includeSubframes) {" -+ + " var count = 0;" -+ + " for (let element of document.querySelectorAll(selector)) {" -+ + " if (matches(element))" -+ + " count++" -+ + " }" -+ + " if (includeSubframes) {" -+ + " for (let frame of document.querySelectorAll(\"iframe\")) {" -+ + " for (let element of frame.contentWindow.document.body.querySelectorAll(selector)) {" -+ + " if (matches(element))" -+ + " count++" -+ + " }" -+ + " }" -+ + " }" -+ + " return count" -+ + "}"; -+ + private URL mTestSubscriptionUrl; + private CallbackHelper mHelper = new CallbackHelper(); + private TestAdBlockedObserver mObserver = new TestAdBlockedObserver(); @@ -19460,7 +23084,7 @@ new file mode 100644 + } + } + -+ public void setUp(ChromeTabbedActivityTestRule activityRule) { ++ public void setUp(final ChromeTabbedActivityTestRule activityRule) { + mActivityTestRule = activityRule; + mActivityTestRule.startMainActivityOnBlankPage(); + TestThreadUtils.runOnUiThreadBlocking(() -> { @@ -19470,7 +23094,7 @@ new file mode 100644 + }); + } + -+ public void addFilterList(String filterListUrl) { ++ public void addFilterList(final String filterListUrl) { + try { + mTestSubscriptionUrl = new URL(filterListUrl); + mObserver.setExpectedSubscriptionUrl(mTestSubscriptionUrl); @@ -19488,7 +23112,7 @@ new file mode 100644 + } + } + -+ public void addCustomFilter(String filter) { ++ public void addCustomFilter(final String filter) { + TestThreadUtils.runOnUiThreadBlocking( + () -> { AdblockController.getInstance().addCustomFilter(filter); }); + } @@ -19509,66 +23133,33 @@ new file mode 100644 + return mActivityTestRule.getActivity().getTabModelSelector().getTotalTabCount(); + } + -+ public void verifyHiddenCount(int num, String selector) throws TimeoutException { -+ verifyHiddenCount(num, selector, IncludeSubframes.YES); -+ } -+ -+ public void verifyHiddenCount(int num, String selector, IncludeSubframes includeSubframes) -+ throws TimeoutException { -+ verifyMatchesCount(num, MATCHES_HIDDEN_FUNCTION, selector, includeSubframes); -+ } -+ -+ public void verifyDisplayedCount(int num, String selector) throws TimeoutException { -+ verifyDisplayedCount(num, selector, IncludeSubframes.YES); -+ } -+ -+ public void verifyDisplayedCount(int num, String selector, IncludeSubframes includeSubframes) -+ throws TimeoutException { -+ verifyMatchesCount(num, MATCHES_DISPLAYED_FUNCTION, selector, includeSubframes); -+ } -+ -+ public void verifyMatchesCount(int num, String matchesFunction, String selector, -+ IncludeSubframes includeSubframes) throws TimeoutException { -+ final Tab tab = mActivityTestRule.getActivity().getActivityTab(); -+ final String boolIncludeSubframes = -+ includeSubframes == IncludeSubframes.YES ? "true" : "false"; -+ final String count = JavaScriptUtils.executeJavaScriptAndWaitForResult(tab.getWebContents(), -+ matchesFunction + COUNT_ELEMENT_FUNCTION + "\n countElements(\"" + selector + "\", " -+ + boolIncludeSubframes + ");"); -+ Assert.assertEquals(Integer.toString(num), count); -+ } -+ -+ public void verifyGreenBackground(String elemId) throws TimeoutException { -+ String color = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity().getActivityTab().getWebContents(), -+ "window.getComputedStyle(document.getElementById('" + elemId -+ + "')).backgroundColor"); -+ Assert.assertEquals("\"rgb(13, 199, 75)\"", color); -+ } -+ -+ // For some cases it is better to rely on page script testing element -+ // rather than invent a specific script to check condition. For example -+ // checks for rewrite filters replaces content proper way. -+ public void verifySelfTestPass(String elemId) throws TimeoutException { -+ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity().getActivityTab().getWebContents(), -+ "document.getElementById('" + elemId + "').getAttribute('data-expectedresult')"); -+ Assert.assertEquals("\"pass\"", value); -+ } -+ ++ // Note: Use either setOnAdMatchedLatch XOR setOnAdMatchedExpectations + public void setOnAdMatchedLatch(final CountDownLatch countDownLatch) { ++ Assert.assertTrue( ++ mObserver.countDownLatch == null || mObserver.countDownLatch.getCount() == 0); + mObserver.countDownLatch = countDownLatch; + } + -+ public boolean isBlocked(String url) { ++ // Note: Use either setOnAdMatchedLatch XOR setOnAdMatchedExpectations ++ public CountDownLatch setOnAdMatchedExpectations( ++ final Set onBlocked, final Set onAllowed) { ++ Assert.assertTrue( ++ mObserver.countDownLatch == null || mObserver.countDownLatch.getCount() == 0); ++ mObserver.countDownLatch = new CountDownLatch(1); ++ mObserver.expectedBlocked = onBlocked; ++ mObserver.expectedAllowed = onAllowed; ++ return mObserver.countDownLatch; ++ } ++ ++ public boolean isBlocked(final String url) { + return mObserver.isBlocked(url); + } + -+ public boolean isPopupBlocked(String url) { ++ public boolean isPopupBlocked(final String url) { + return mObserver.isPopupBlocked(url); + } + -+ public int numBlockedByType(AdblockContentType type) { ++ public int numBlockedByType(final AdblockContentType type) { + return mObserver.numBlockedByType(type); + } + @@ -19576,7 +23167,7 @@ new file mode 100644 + return mObserver.numBlockedPopups(); + } + -+ public int numAllowedByType(AdblockContentType type) { ++ public int numAllowedByType(final AdblockContentType type) { + return mObserver.numAllowedByType(type); + } + @@ -19584,26 +23175,27 @@ new file mode 100644 + return mObserver.numAllowedPopups(); + } + -+ public boolean isAllowed(String url) { ++ public boolean isAllowed(final String url) { + return mObserver.isAllowed(url); + } + -+ public boolean isPageAllowed(String url) { ++ public boolean isPageAllowed(final String url) { + return mObserver.isPageAllowed(url); + } + -+ public boolean isPopupAllowed(String url) { ++ public boolean isPopupAllowed(final String url) { + return mObserver.isPopupAllowed(url); + } + -+ public void loadUrl(String url) throws InterruptedException { ++ public void loadUrl(final String url) throws InterruptedException, TimeoutException { + mActivityTestRule.loadUrl(url, TEST_TIMEOUT_SEC); -+ // Some tests were using a short delay (up to 1s) on case by case basis. -+ // Do this for all to get rid of some flackiness and surprises when -+ // adding new tests. -+ // TODO(pstanek): Why it's suddenly needed and so long. -+ // TODO(mpawlowski): get rid of this sleep - DPD-1207 -+ Thread.sleep(2000); ++ } ++ ++ public void loadUrlWaitForContent(final String url) ++ throws InterruptedException, TimeoutException { ++ loadUrl(url); ++ TestVerificationUtils.verifyCondition(mActivityTestRule, ++ "document.getElementsByClassName('testcase-waiting-content').length == 0"); + } + + public int numBlocked() { @@ -19618,7 +23210,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java -@@ -0,0 +1,79 @@ +@@ -0,0 +1,77 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -19654,6 +23246,10 @@ new file mode 100644 +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; + ++import java.util.Arrays; ++import java.util.HashSet; ++import java.util.concurrent.CountDownLatch; ++import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +@RunWith(ChromeJUnit4ClassRunner.class) @@ -19669,7 +23265,7 @@ new file mode 100644 + public void setUp() { + mHelper.setUp(mActivityTestRule); + mHelper.addCustomFilter( -+ "$websocket,domain=dp-testpages.adblockplus.org"); ++ String.format("$websocket,domain=%s", TestPagesTestsHelper.TESTPAGES_DOMAIN)); + } + + @After @@ -19681,21 +23277,178 @@ new file mode 100644 + @LargeTest + @Feature({"adblock"}) + public void testVerifyWebsocketFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "websocket"); -+ Assert.assertEquals(1, mHelper.numBlocked()); ++ final String wssUrl = ++ String.format("wss://%s/websocket", TestPagesTestsHelper.TESTPAGES_DOMAIN); ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(wssUrl)), null); ++ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "websocket"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_WEBSOCKET)); -+ Assert.assertTrue(mHelper.isBlocked("wss://echo.websocket.org")); ++ Assert.assertTrue(mHelper.isBlocked(wssUrl)); ++ } ++} +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java +@@ -0,0 +1,158 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.components.adblock; ++ ++import org.junit.Assert; ++ ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.content_public.browser.test.util.JavaScriptUtils; ++ ++import java.util.concurrent.TimeoutException; ++ ++public class TestVerificationUtils { ++ public enum IncludeSubframes { ++ YES, ++ NO, + } + -+ @Test -+ @LargeTest -+ @CommandLineFlags.Add({"disable-adblock"}) -+ @Feature({"adblock"}) -+ public void testVerifyWebsocketFilterWhenAbpDisabled() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_DISTRIBUTION_UNIT_TESTCASES_ROOT + "websocket"); -+ Assert.assertEquals(0, mHelper.numBlocked()); -+ Assert.assertEquals(0, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_WEBSOCKET)); -+ Assert.assertFalse(mHelper.isBlocked("wss://echo.websocket.org")); ++ private static final String STATUS_OK = "\"OK\""; ++ ++ private static final String MATCHES_HIDDEN_FUNCTION = "let matches = function(element) {" ++ + " return window.getComputedStyle(element).display == \"none\";" ++ + "}"; ++ ++ private static final String MATCHES_DISPLAYED_FUNCTION = "let matches = function(element) {" ++ + " return window.getComputedStyle(element).display != \"none\";" ++ + "}"; ++ ++ private static final String COUNT_ELEMENT_FUNCTION = ++ "let countElements = function(selector, includeSubframes) {" ++ + " let count = 0;" ++ + " for (let element of document.querySelectorAll(selector)) {" ++ + " if (matches(element))" ++ + " ++count;" ++ + " }" ++ + " if (includeSubframes) {" ++ + " for (let frame of document.querySelectorAll(\"iframe\")) {" ++ + " for (let element of frame.contentWindow.document.body.querySelectorAll(selector)) {" ++ + " if (matches(element))" ++ + " ++count;" ++ + " }" ++ + " }" ++ + " }" ++ + " return count;" ++ + "}"; ++ ++ private static final String WAIT_FOR_COUNT_FUNCTION_WRAPPER = "(function () {" ++ + "%s\n" // matches() defintion placeholder ++ + "%s\n" // countElements() defintion placeholder ++ + "%s\n" // WAIT_FUNCTION placeholder which calls countElements() as a predicate ++ + "}());"; ++ ++ // Poll every 100 ms until condition is met or 10 seconds timeout occurs ++ private static final String WAIT_FUNCTION = "let repeat = 100;" ++ + "const id = setInterval(() => {" ++ + " --repeat;" ++ + " if (%s) {" // predicate placeholder ++ + " clearInterval(id);" ++ + " domAutomationController.send('OK');" ++ + " } else if (repeat == 0) {" ++ + " clearInterval(id);" ++ + " domAutomationController.send('Timeout');" ++ + " }" ++ + "}, 100);"; ++ ++ private static void verifyMatchesCount(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final int num, final String matchesFunction, final String selector, ++ IncludeSubframes includeSubframes) throws TimeoutException { ++ final String boolIncludeSubframes = ++ includeSubframes == IncludeSubframes.YES ? "true" : "false"; ++ final String predicate = String.format( ++ "countElements(\"%s\", %s) == %d", selector, boolIncludeSubframes, num); ++ final String waitFunction = String.format(WAIT_FUNCTION, predicate); ++ final String js = String.format(WAIT_FOR_COUNT_FUNCTION_WRAPPER, matchesFunction, ++ COUNT_ELEMENT_FUNCTION, waitFunction); ++ final String result = JavaScriptUtils.runJavascriptWithAsyncResult( ++ mActivityTestRule.getActivity().getActivityTab().getWebContents(), js); ++ Assert.assertEquals(STATUS_OK, result); ++ } ++ ++ public static void verifyHiddenCount(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final int num, final String selector) throws TimeoutException { ++ verifyHiddenCount(mActivityTestRule, num, selector, IncludeSubframes.YES); ++ } ++ ++ public static void verifyHiddenCount(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final int num, final String selector, final IncludeSubframes includeSubframes) ++ throws TimeoutException { ++ verifyMatchesCount( ++ mActivityTestRule, num, MATCHES_HIDDEN_FUNCTION, selector, includeSubframes); ++ } ++ ++ public static void verifyDisplayedCount(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final int num, final String selector) throws TimeoutException { ++ verifyDisplayedCount(mActivityTestRule, num, selector, IncludeSubframes.YES); ++ } ++ ++ public static void verifyDisplayedCount(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final int num, final String selector, final IncludeSubframes includeSubframes) ++ throws TimeoutException { ++ verifyMatchesCount( ++ mActivityTestRule, num, MATCHES_DISPLAYED_FUNCTION, selector, includeSubframes); ++ } ++ ++ public static void verifyCondition(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final String predicate) throws TimeoutException { ++ final String waitFunction = String.format(WAIT_FUNCTION, predicate); ++ Assert.assertEquals(STATUS_OK, ++ JavaScriptUtils.runJavascriptWithAsyncResult( ++ mActivityTestRule.getActivity().getActivityTab().getWebContents(), ++ waitFunction)); ++ } ++ ++ public static void verifyGreenBackground(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final String elemId) throws TimeoutException { ++ verifyCondition(mActivityTestRule, ++ "window.getComputedStyle(document.getElementById('" + elemId ++ + "')).backgroundColor == 'rgb(13, 199, 75)'"); ++ } ++ ++ // For some cases it is better to rely on page script testing element ++ // rather than invent a specific script to check condition. For example ++ // checks for rewrite filters replaces content proper way. ++ public static void verifySelfTestPass(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final String elemId) throws TimeoutException { ++ verifyCondition(mActivityTestRule, ++ "document.getElementById('" + elemId ++ + "').getAttribute('data-expectedresult') == 'pass'"); ++ } ++ ++ public static void expectResourceBlocked(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final String elemId) throws TimeoutException { ++ verifyCondition(mActivityTestRule, ++ "window.getComputedStyle(document.getElementById('" + elemId ++ + "')).display == 'none'"); ++ } ++ ++ public static void expectResourceShown(final ChromeTabbedActivityTestRule mActivityTestRule, ++ final String elemId) throws TimeoutException { ++ verifyCondition(mActivityTestRule, ++ "window.getComputedStyle(document.getElementById('" + elemId ++ + "')).display == 'inline'"); + } +} diff --git a/components/adblock/android/translations/adblock_strings_af.xtb b/components/adblock/android/translations/adblock_strings_af.xtb @@ -21083,7 +24836,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_url_loader_factory.cc -@@ -0,0 +1,679 @@ +@@ -0,0 +1,683 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -21142,8 +24895,9 @@ new file mode 100644 +} + +ContentType ToAdblockResourceType(const network::ResourceRequest& request) { -+ if (request.url.SchemeIsWSOrWSS()) ++ if (request.url.SchemeIsWSOrWSS()) { + return ContentType::Websocket; ++ } + if (request.is_fetch_like_api) { + // See https://crbug.com/611453 + return ContentType::Xmlhttprequest; @@ -21176,10 +24930,12 @@ new file mode 100644 + return ContentType::Media; + case network::mojom::RequestDestination::kEmpty: + // https://fetch.spec.whatwg.org/#concept-request-destination -+ if (request.keepalive) ++ if (request.keepalive) { + return ContentType::Ping; ++ } + return ContentType::Other; + case network::mojom::RequestDestination::kWebBundle: ++ return ContentType::WebBundle; + case network::mojom::RequestDestination::kReport: + case network::mojom::RequestDestination::kAudioWorklet: + case network::mojom::RequestDestination::kManifest: @@ -21758,8 +25514,9 @@ new file mode 100644 +} + +void AdblockURLLoaderFactory::MaybeDestroySelf() { -+ if (proxy_receivers_.empty() && requests_.empty()) ++ if (proxy_receivers_.empty() && requests_.empty()) { + std::move(on_disconnect_).Run(this); ++ } +} + +} // namespace adblock @@ -24098,7 +27855,7 @@ diff --git a/components/adblock/content/browser/session_stats_impl.cc b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/session_stats_impl.cc -@@ -0,0 +1,86 @@ +@@ -0,0 +1,83 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24127,16 +27884,13 @@ new file mode 100644 + ResourceClassificationRunner* classification_runner) + : classification_runner_(classification_runner) { + DCHECK(classification_runner_); ++ classification_runner_->AddObserver(this); +} + +SessionStatsImpl::~SessionStatsImpl() { + classification_runner_->RemoveObserver(this); +} + -+void SessionStatsImpl::StartCollectingStats() { -+ classification_runner_->AddObserver(this); -+} -+ +std::map SessionStatsImpl::GetSessionAllowedAdsCount() const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + return allowed_map_; @@ -24189,7 +27943,7 @@ diff --git a/components/adblock/content/browser/session_stats_impl.h b/component new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/session_stats_impl.h -@@ -0,0 +1,69 @@ +@@ -0,0 +1,67 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -24228,8 +27982,6 @@ new file mode 100644 + + std::map GetSessionBlockedAdsCount() const final; + -+ void StartCollectingStats() final; -+ + // ResourceClassificationRunner::Observer: + void OnAdMatched(const GURL& url, + FilterMatchResult match_result, @@ -26263,7 +30015,7 @@ diff --git a/components/adblock/content/browser/test/session_stats_impl_test.cc new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/session_stats_impl_test.cc -@@ -0,0 +1,91 @@ +@@ -0,0 +1,74 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -26312,23 +30064,6 @@ new file mode 100644 +}; + +TEST_F(AdblockSessionStatsTest, StatsDataCollected) { -+ EXPECT_TRUE(session_stats_->GetSessionAllowedAdsCount().empty()); -+ EXPECT_TRUE(session_stats_->GetSessionBlockedAdsCount().empty()); -+ -+ classfier_.NotifyAdMatched(GURL(), FilterMatchResult::kAllowRule, -+ std::vector(), ContentType::Subdocument, -+ nullptr, GURL()); -+ -+ classfier_.NotifyAdMatched(GURL(), FilterMatchResult::kBlockRule, -+ std::vector(), ContentType::Subdocument, -+ nullptr, GURL()); -+ -+ // Before call to StartCollectingStats() -+ EXPECT_TRUE(session_stats_->GetSessionAllowedAdsCount().empty()); -+ EXPECT_TRUE(session_stats_->GetSessionBlockedAdsCount().empty()); -+ -+ session_stats_->StartCollectingStats(); -+ + classfier_.NotifyAdMatched(GURL(), FilterMatchResult::kAllowRule, + std::vector(), ContentType::Subdocument, + nullptr, GURL{kAllowedTestSub}); @@ -29387,7 +33122,7 @@ diff --git a/components/adblock/core/common/adblock_constants.cc b/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_constants.cc -@@ -0,0 +1,152 @@ +@@ -0,0 +1,154 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -29417,6 +33152,8 @@ new file mode 100644 + +const char kAllowlistEverythingFilter[] = "@@*$document"; + ++const char kAdblockFilteringConfigurationName[] = "adblock"; ++ +const char kBlankHtml[] = + "data:text/html,"; + @@ -29544,7 +33281,7 @@ diff --git a/components/adblock/core/common/adblock_constants.h b/components/adb new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/adblock_constants.h -@@ -0,0 +1,40 @@ +@@ -0,0 +1,41 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -29576,6 +33313,7 @@ new file mode 100644 + +extern const char kSiteKeyHeaderKey[]; +extern const char kAllowlistEverythingFilter[]; ++extern const char kAdblockFilteringConfigurationName[]; + +const std::string& CurrentSchemaVersion(); +const GURL& TestPagesSubscriptionUrl(); @@ -30025,7 +33763,7 @@ diff --git a/components/adblock/core/common/content_type.cc b/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/content_type.cc -@@ -0,0 +1,87 @@ +@@ -0,0 +1,91 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30075,6 +33813,8 @@ new file mode 100644 + return "MEDIA"; + case ContentType::Font: + return "FONT"; ++ case ContentType::WebBundle: ++ return "WEBBUNDLE"; + case ContentType::Default: + return "DEFAULT"; + } @@ -30107,6 +33847,8 @@ new file mode 100644 + return ContentType::Media; + } else if (content_type == "font") { + return ContentType::Font; ++ } else if (content_type == "webbundle") { ++ return ContentType::WebBundle; + } else { + return ContentType::Unknown; + } @@ -30117,7 +33859,7 @@ diff --git a/components/adblock/core/common/content_type.h b/components/adblock/ new file mode 100644 --- /dev/null +++ b/components/adblock/core/common/content_type.h -@@ -0,0 +1,47 @@ +@@ -0,0 +1,48 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -30156,6 +33898,7 @@ new file mode 100644 + Xmlhttprequest = 2048, + Media = 16384, + Font = 32768, ++ WebBundle = 65536, + Default = (1 << 24) - 1, +}; + @@ -30867,7 +34610,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur new file mode 100644 --- /dev/null +++ b/components/adblock/core/configuration/persistent_filtering_configuration.cc -@@ -0,0 +1,231 @@ +@@ -0,0 +1,232 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -30910,9 +34653,10 @@ new file mode 100644 + const auto& all_configurations = + pref_service->GetValue(kConfigurationsPrefsPath); + DCHECK(all_configurations.is_dict()); -+ const auto* this_config = all_configurations.FindKey(configuration_name); -+ if (this_config && this_config->is_dict()) -+ return this_config->Clone(); ++ const auto* this_config = ++ all_configurations.GetIfDict()->FindDict(configuration_name); ++ if (this_config) ++ return base::Value(this_config->Clone()); + return base::Value{base::Value::Type::DICT}; +} + @@ -31874,7 +35618,7 @@ new file mode 100644 + LOG(ERROR) << "[eyeo] Could not open input file " << input_path; + return false; + } -+ if (input_path.MatchesFinalExtension(".gz")) { ++ if (input_path.MatchesFinalExtension(FILE_PATH_LITERAL(".gz"))) { + if (!compression::GzipUncompress(content, &content)) { + LOG(ERROR) << "[eyeo] Could not decompress input file " << input_path; + return false; @@ -32218,7 +35962,7 @@ diff --git a/components/adblock/core/converter/parser/content_filter.cc b/compon new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/content_filter.cc -@@ -0,0 +1,64 @@ +@@ -0,0 +1,68 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -32269,6 +36013,10 @@ new file mode 100644 + "filters require include domains."; + return {}; + } ++ } else if (selector.size() < 3 && domains.UnrestrictedByDomain()) { ++ VLOG(1) << "[eyeo] Content filter is not specific enough. Must be longer " ++ "than 2 characters or restricted by domain."; ++ return {}; + } + + return ContentFilter(filter_type, selector, std::move(domains)); @@ -32342,7 +36090,7 @@ diff --git a/components/adblock/core/converter/parser/domain_option.cc b/compone new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/domain_option.cc -@@ -0,0 +1,92 @@ +@@ -0,0 +1,115 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -32362,12 +36110,23 @@ new file mode 100644 + +#include "components/adblock/core/converter/parser/content_filter.h" + ++#include "base/logging.h" +#include "base/ranges/algorithm.h" +#include "base/strings/string_split.h" +#include "base/strings/string_util.h" + +namespace adblock { + ++namespace { ++ ++void RemoveDuplicates(std::vector& data) { ++ sort(data.begin(), data.end()); ++ auto unique_end = unique(data.begin(), data.end()); ++ data.erase(unique_end, data.end()); ++} ++ ++} // namespace ++ +static constexpr char kExcludeSymbol = '~'; + +DomainOption::DomainOption() {} @@ -32395,7 +36154,8 @@ new file mode 100644 + base::RemoveChars(domain, base::StringPiece(&kExcludeSymbol), &domain); + } + -+ // TODO(DPD-1795): Don't allow duplicated domains ++ RemoveDuplicates(exclude_domains); ++ RemoveDuplicates(include_domains); + + return DomainOption(std::move(exclude_domains), std::move(include_domains)); +} @@ -32410,14 +36170,25 @@ new file mode 100644 + +void DomainOption::RemoveDomainsWithNoSubdomain() { + exclude_domains_.erase( -+ base::ranges::remove_if(exclude_domains_, &HasSubdomainOrLocalhost), ++ base::ranges::remove_if( ++ exclude_domains_, ++ [](auto it) { return !HasSubdomainOrLocalhost(it); }), + exclude_domains_.end()); + + include_domains_.erase( -+ base::ranges::remove_if(include_domains_, &HasSubdomainOrLocalhost), ++ base::ranges::remove_if( ++ include_domains_, ++ [](auto it) { return !HasSubdomainOrLocalhost(it); }), + include_domains_.end()); +} + ++bool DomainOption::UnrestrictedByDomain() const { ++ return base::ranges::count_if(exclude_domains_, &HasSubdomainOrLocalhost) == ++ 0 && ++ base::ranges::count_if(include_domains_, &HasSubdomainOrLocalhost) == ++ 0; ++} ++ +DomainOption::DomainOption(std::vector exclude_domains, + std::vector include_domains) + : exclude_domains_(std::move(exclude_domains)), @@ -32430,8 +36201,8 @@ new file mode 100644 + +// static +bool DomainOption::HasSubdomainOrLocalhost(base::StringPiece domain) { -+ return (domain != "localhost") && -+ (domain.find(".") == base::StringPiece::npos); ++ return (domain == "localhost") || ++ (domain.find(".") != base::StringPiece::npos); +} + +} // namespace adblock @@ -32439,7 +36210,7 @@ diff --git a/components/adblock/core/converter/parser/domain_option.h b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/domain_option.h -@@ -0,0 +1,58 @@ +@@ -0,0 +1,59 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -32484,6 +36255,7 @@ new file mode 100644 + const std::vector& GetIncludeDomains() const; + + void RemoveDomainsWithNoSubdomain(); ++ bool UnrestrictedByDomain() const; + + private: + DomainOption(std::vector exclude_domains, @@ -33097,7 +36869,7 @@ diff --git a/components/adblock/core/converter/parser/test/content_filter_test.c new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/test/content_filter_test.cc -@@ -0,0 +1,177 @@ +@@ -0,0 +1,195 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -33122,7 +36894,7 @@ new file mode 100644 + +namespace adblock { + -+using ::testing::ElementsAre; ++using ::testing::UnorderedElementsAre; + +TEST(AdblockContentFilterTest, ParseEmptyContentFilter) { + EXPECT_FALSE( @@ -33138,7 +36910,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->selector, + ".testcase-container > .testcase-eh-descendant"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33150,7 +36922,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHide); + EXPECT_EQ(content_filter->selector, ".ad_bÖx"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("test.com")); ++ UnorderedElementsAre("test.com")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33162,9 +36934,9 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHide); + EXPECT_EQ(content_filter->selector, "test-selector"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org", "bar.example.org")); ++ UnorderedElementsAre("example.org", "bar.example.org")); + EXPECT_THAT(content_filter->domains.GetExcludeDomains(), -+ ElementsAre("foo.example.org")); ++ UnorderedElementsAre("foo.example.org")); +} + +TEST(AdblockContentFilterTest, ParseElemHideFilterWithIdSelector) { @@ -33174,7 +36946,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHide); + EXPECT_EQ(content_filter->selector, "#this_is_an_id"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33201,7 +36973,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideException); + EXPECT_EQ(content_filter->selector, "selector"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33212,7 +36984,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideException); + EXPECT_EQ(content_filter->selector, "#this_is_an_id"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33223,7 +36995,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideEmulation); + EXPECT_EQ(content_filter->selector, "foo"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("foo.example.org")); ++ UnorderedElementsAre("foo.example.org")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33236,7 +37008,7 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideEmulation); + EXPECT_EQ(content_filter->selector, ".ad_bÖx"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("test.com")); ++ UnorderedElementsAre("test.com")); + EXPECT_TRUE(content_filter->domains.GetExcludeDomains().empty()); +} + @@ -33255,9 +37027,9 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideEmulation); + EXPECT_EQ(content_filter->selector, "foo"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_THAT(content_filter->domains.GetExcludeDomains(), -+ ElementsAre("example_too.org")); ++ UnorderedElementsAre("example_too.org")); +} + +TEST(AdblockContentFilterTest, @@ -33269,9 +37041,27 @@ new file mode 100644 + EXPECT_EQ(content_filter->type, FilterType::ElemHideEmulation); + EXPECT_EQ(content_filter->selector, "foo"); + EXPECT_THAT(content_filter->domains.GetIncludeDomains(), -+ ElementsAre("example.org")); ++ UnorderedElementsAre("example.org")); + EXPECT_THAT(content_filter->domains.GetExcludeDomains(), -+ ElementsAre("example_too.org", "localhost")); ++ UnorderedElementsAre("example_too.org", "localhost")); ++} ++ ++TEST(AdblockContentFilterTest, ParseUnspecifcContentFilter) { ++ // Short, non domain-specific filters are disallowed because they could break ++ // a lot of sites by accident: ++ EXPECT_FALSE( ++ ContentFilter::FromString("", FilterType::ElemHide, "li").has_value()); ++ EXPECT_FALSE(ContentFilter::FromString("", FilterType::ElemHideException, "p") ++ .has_value()); ++ ++ // This filter is long enough: ++ EXPECT_TRUE( ++ ContentFilter::FromString("", FilterType::ElemHide, "adv").has_value()); ++ // This filter is short ("p") but domain-specific, so in worst case it could ++ // only break example.com. ++ EXPECT_TRUE( ++ ContentFilter::FromString("example.com", FilterType::ElemHide, "p") ++ .has_value()); +} + +} // namespace adblock @@ -33279,7 +37069,7 @@ diff --git a/components/adblock/core/converter/parser/test/domain_option_test.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/test/domain_option_test.cc -@@ -0,0 +1,111 @@ +@@ -0,0 +1,129 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -33304,7 +37094,7 @@ new file mode 100644 + +namespace adblock { + -+using ::testing::ElementsAre; ++using ::testing::UnorderedElementsAre; + +TEST(AdblockDomainOptionTest, ParseDomainOptionEmpty) { + auto domains = DomainOption::FromString("", ","); @@ -33314,14 +37104,14 @@ new file mode 100644 + +TEST(AdblockDomainOptionTest, ParseDomainOptionIncludeSimple) { + auto domains = DomainOption::FromString("domain.org", ","); -+ EXPECT_THAT(domains.GetIncludeDomains(), ElementsAre("domain.org")); ++ EXPECT_THAT(domains.GetIncludeDomains(), UnorderedElementsAre("domain.org")); + EXPECT_TRUE(domains.GetExcludeDomains().empty()); +} + +TEST(AdblockDomainOptionTest, ParseDomainOptionExcludeSimple) { + auto domains = DomainOption::FromString("~domain.org", ","); + EXPECT_TRUE(domains.GetIncludeDomains().empty()); -+ EXPECT_THAT(domains.GetExcludeDomains(), ElementsAre("domain.org")); ++ EXPECT_THAT(domains.GetExcludeDomains(), UnorderedElementsAre("domain.org")); +} + +TEST(AdblockDomainOptionTest, ParseDomainOptionMultiple) { @@ -33330,9 +37120,10 @@ new file mode 100644 + "org", + ","); + EXPECT_THAT(domains.GetIncludeDomains(), -+ ElementsAre("test.domain.org", "domain.org")); -+ EXPECT_THAT(domains.GetExcludeDomains(), -+ ElementsAre("test.exclude_domain.org", "exclude_domain.org")); ++ UnorderedElementsAre("test.domain.org", "domain.org")); ++ EXPECT_THAT( ++ domains.GetExcludeDomains(), ++ UnorderedElementsAre("test.exclude_domain.org", "exclude_domain.org")); +} + +TEST(AdblockDomainOptionTest, ParseDomainOptionCaseInsensitive) { @@ -33341,9 +37132,10 @@ new file mode 100644 + "org", + ","); + EXPECT_THAT(domains.GetIncludeDomains(), -+ ElementsAre("test.domain.org", "domain.org")); -+ EXPECT_THAT(domains.GetExcludeDomains(), -+ ElementsAre("test.exclude_domain.org", "exclude_domain.org")); ++ UnorderedElementsAre("test.domain.org", "domain.org")); ++ EXPECT_THAT( ++ domains.GetExcludeDomains(), ++ UnorderedElementsAre("test.exclude_domain.org", "exclude_domain.org")); +} + +TEST(AdblockDomainOptionTest, ParseDomainOptionMultipleWithWs) { @@ -33352,15 +37144,16 @@ new file mode 100644 + ",~test.exclude_domain.org ", + ","); + EXPECT_THAT(domains.GetIncludeDomains(), -+ ElementsAre("test.domain.org", "domain.org")); -+ EXPECT_THAT(domains.GetExcludeDomains(), -+ ElementsAre("test.exclude_domain.org", "exclude_domain.org")); ++ UnorderedElementsAre("test.domain.org", "domain.org")); ++ EXPECT_THAT( ++ domains.GetExcludeDomains(), ++ UnorderedElementsAre("test.exclude_domain.org", "exclude_domain.org")); +} + +TEST(AdblockDomainOptionTest, ParseDomainOptionIncludeMultiple) { + auto domains = DomainOption::FromString("domain.org,test.domain.org", ","); + EXPECT_THAT(domains.GetIncludeDomains(), -+ ElementsAre("domain.org", "test.domain.org")); ++ UnorderedElementsAre("domain.org", "test.domain.org")); + EXPECT_TRUE(domains.GetExcludeDomains().empty()); +} + @@ -33368,16 +37161,19 @@ new file mode 100644 + auto domains = DomainOption::FromString( + "~exclude_domain.org,~test.exclude_domain.org", ","); + EXPECT_TRUE(domains.GetIncludeDomains().empty()); -+ EXPECT_THAT(domains.GetExcludeDomains(), -+ ElementsAre("exclude_domain.org", "test.exclude_domain.org")); ++ EXPECT_THAT( ++ domains.GetExcludeDomains(), ++ UnorderedElementsAre("exclude_domain.org", "test.exclude_domain.org")); +} + +TEST(AdblockDomainOptionTest, RemoveDomainsWithNoSubdomain) { + auto domains = DomainOption::FromString( + "org,include_domain.org,~com,~exclude_domain.org", ","); + domains.RemoveDomainsWithNoSubdomain(); -+ EXPECT_THAT(domains.GetIncludeDomains(), ElementsAre("include_domain.org")); -+ EXPECT_THAT(domains.GetExcludeDomains(), ElementsAre("exclude_domain.org")); ++ EXPECT_THAT(domains.GetIncludeDomains(), ++ UnorderedElementsAre("include_domain.org")); ++ EXPECT_THAT(domains.GetExcludeDomains(), ++ UnorderedElementsAre("exclude_domain.org")); +} + +TEST(AdblockDomainOptionTest, RemoveDomainsWithNoSubdomainButLocalhost) { @@ -33385,9 +37181,21 @@ new file mode 100644 + "localhost,include_domain.org,~localhost,~exclude_domain.org", ","); + domains.RemoveDomainsWithNoSubdomain(); + EXPECT_THAT(domains.GetIncludeDomains(), -+ ElementsAre("include_domain.org", "localhost")); ++ UnorderedElementsAre("include_domain.org", "localhost")); + EXPECT_THAT(domains.GetExcludeDomains(), -+ ElementsAre("exclude_domain.org", "localhost")); ++ UnorderedElementsAre("exclude_domain.org", "localhost")); ++} ++ ++TEST(AdblockDomainOptionTest, ParseDomainOptionWithDuplications) { ++ auto domains = DomainOption::FromString( ++ "domain.org,~exclude_domain.org,test.domain.org,~test.exclude_domain.org," ++ "domain.org,~exclude_domain.org,test.domain.org", ++ ","); ++ EXPECT_THAT(domains.GetIncludeDomains(), ++ UnorderedElementsAre("test.domain.org", "domain.org")); ++ EXPECT_THAT( ++ domains.GetExcludeDomains(), ++ UnorderedElementsAre("test.exclude_domain.org", "exclude_domain.org")); +} + +} // namespace adblock @@ -34088,7 +37896,7 @@ diff --git a/components/adblock/core/converter/parser/test/url_filter_test.cc b/ new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/test/url_filter_test.cc -@@ -0,0 +1,132 @@ +@@ -0,0 +1,149 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34220,12 +38028,29 @@ new file mode 100644 + ElementsAre(UrlFilterOptions::ExceptionType::Generichide)); +} + ++TEST(AdblockUrlFilterTest, ParseUnspecifcGenericFilter) { ++ // Filter too short and too generic, could "break the internet": ++ EXPECT_FALSE(UrlFilter::FromString("adv").has_value()); ++ // |-anchored filters still too short: ++ EXPECT_FALSE(UrlFilter::FromString("|adv").has_value()); ++ EXPECT_FALSE(UrlFilter::FromString("||adv").has_value()); ++ // Short filter is content-type-specific but not domain-specific: ++ EXPECT_FALSE(UrlFilter::FromString("n$image").has_value()); ++ ++ // Short pattern OK because the filter is domain specific: ++ EXPECT_TRUE(UrlFilter::FromString("n$domain=example.com").has_value()); ++ // Filter pattern long enough: ++ EXPECT_TRUE(UrlFilter::FromString("advert").has_value()); ++ // Filter pattern contains wildcard, allowed to be short: ++ EXPECT_TRUE(UrlFilter::FromString("a*").has_value()); ++} ++ +} // namespace adblock diff --git a/components/adblock/core/converter/parser/url_filter.cc b/components/adblock/core/converter/parser/url_filter.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/url_filter.cc -@@ -0,0 +1,145 @@ +@@ -0,0 +1,216 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34252,10 +38077,69 @@ new file mode 100644 +#include "third_party/re2/src/re2/re2.h" + +namespace adblock { ++namespace { ++ ++// Converts patterns like ||abc.com/aa|bb into ||abc.com/aa%7Cbb. ++// Non-anchor pipe characters must be escaped to properly match components of ++// a URL. GURL escapes "|" as seen in url/url_canon_path.cc ++// Pipe characters in anchor position (beginning & end) must be left as-is, in ++// order for the tokenizer to see them as anchors. ++std::string SanitizePipeCharacters(std::string pattern) { ++ auto piece = base::StringPiece(pattern); ++ // Skip up to 2 leading | characters, they are treated as anchors. These ++ // may not be replaced by the escaped variant. ++ int number_of_left_anchors = 0; ++ if (base::StartsWith(pattern, "|")) { ++ number_of_left_anchors++; ++ piece.remove_prefix(1); ++ } ++ if (base::StartsWith(pattern, "|")) { ++ number_of_left_anchors++; ++ piece.remove_prefix(1); ++ } ++ // Skip up to one trailing | characters, this is the right anchor. ++ bool pattern_has_right_anchor = base::EndsWith(pattern, "|"); ++ if (pattern_has_right_anchor) { ++ piece.remove_suffix(1); ++ } ++ if (piece.find('|') == base::StringPiece::npos) { ++ // The most common case, pattern has no pipe characters apart from anchors. ++ // Avoid allocating new strings, pass the input out. ++ return pattern; ++ } ++ // Escape instances of | the same way GURL does it. ++ std::string output; ++ CHECK(base::ReplaceChars(piece, "|", R"(%7C)", &output)); ++ // Re-add the unmodified anchors. ++ for (int i = 0; i < number_of_left_anchors; i++) { ++ output.insert(output.begin(), '|'); ++ } ++ if (pattern_has_right_anchor) { ++ output.push_back('|'); ++ } ++ return output; ++} ++ ++} // namespace + +static constexpr char kAllowingSymbol[] = "@@"; +static constexpr char kOptionSymbol = '$'; + ++bool IsGenericFilterIsNotSpecificEnough( ++ base::StringPiece filter_str, ++ const absl::optional& options) { ++ if (options.has_value() && (!options->Domains().GetExcludeDomains().empty() || ++ !options->Domains().GetIncludeDomains().empty() || ++ !options->Sitekeys().empty())) { ++ return false; ++ } ++ const size_t kMinLength = 4; ++ const auto trimmed_filter_str = ++ base::TrimString(filter_str, "|", base::TRIM_LEADING); ++ return trimmed_filter_str.size() < kMinLength && ++ trimmed_filter_str.find('*') == std::string::npos; ++} ++ +// static +absl::optional UrlFilter::FromString(std::string filter_str) { + absl::optional options; @@ -34303,13 +38187,19 @@ new file mode 100644 + return {}; + } + -+ // Most filters are case-insensitive, we may lowercase them along with -+ // lowercasing the URL during matching. This simplifies and speeds up the -+ // matching algorithm. Do not lowercase case-sensitive filters and regex -+ // filters. -+ if ((!options || !options->IsMatchCase()) && -+ !ExtractRegexFilterFromPattern(filter_str)) { -+ filter_str = base::ToLowerASCII(filter_str); ++ if (!ExtractRegexFilterFromPattern(filter_str)) { ++ // It's rare, but some filters contain pipe characters ("|") that are not ++ // anchors but are instead integral parts of the URL they intend to match. ++ // GURL escapes "|"" characters and we need to similarly escape such ++ // occurrences in the filter. ++ filter_str = SanitizePipeCharacters(std::move(filter_str)); ++ ++ // Most filters are case-insensitive, we may lowercase them along with ++ // lowercasing the URL during matching. This simplifies and speeds up the ++ // matching algorithm. Do not lowercase case-sensitive filters. ++ if ((!options || !options->IsMatchCase())) { ++ filter_str = base::ToLowerASCII(filter_str); ++ } + } + + if (options.has_value() && options->Rewrite().has_value()) { @@ -34334,6 +38224,12 @@ new file mode 100644 + } + } + ++ if (IsGenericFilterIsNotSpecificEnough(filter_str, options)) { ++ VLOG(1) << "[eyeo] Generic url filter is not specific enough. Must be " ++ "longer than 3 characters or domain-specific."; ++ return {}; ++ } ++ + if (!options.has_value()) { + options = UrlFilterOptions(); + } @@ -35734,7 +39630,7 @@ diff --git a/components/adblock/core/converter/test/flatbuffer_converter_test.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/test/flatbuffer_converter_test.cc -@@ -0,0 +1,2280 @@ +@@ -0,0 +1,2338 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -38011,6 +41907,64 @@ new file mode 100644 + SiteKey(), FilterCategory::Blocking)); +} + ++TEST_F(AdblockFlatbufferConverterTest, PipeInURL) { ++ // See: https://github.com/gatling/gatling/issues/1272 ++ // These | characters in the middle of the filter should match the literal ++ // | characters in the URL, not be treated as anchors. ++ auto subscription = ConvertAndLoadRules(R"( ++ /addyn|*|adtech; ++ )"); ++ EXPECT_TRUE(subscription->HasUrlFilter( ++ GURL("http://adserver.adtech.de/" ++ "addyn|3.0|296|3872016|0|16|ADTECH;loc=100;target=_blank;misc=" ++ "1043156433;rdclick=http://ba.ccm2.net/RealMedia/ads/click_lx.ads/" ++ "fr_ccm_hightech/news/L20/1043156433/Position3/OasDefault/" ++ "autopromo_keljob_ccm/autopromo_kelformation_1_ccm.html/" ++ "574b7276735648616451774141686f70?"), ++ "domain.com", ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++} ++ ++TEST_F(AdblockFlatbufferConverterTest, MultiplePipeCharacters) { ++ // This filter combines | characters used as: ++ // - host anchor ++ // - normal text character ++ // - right anchor ++ auto subscription = ConvertAndLoadRules(R"( ++ ||example.com/abc|def*.jpg| ++ )"); ++ ++ // Correct match. ++ EXPECT_TRUE(subscription->HasUrlFilter( ++ GURL("http://subdomain.example.com/abc|def/content.jpg"), "domain.com", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ ++ // Incorrect, the URL does not end with .jpg, although .jpg occurs in the URL. ++ // Right anchor constraint not met. ++ EXPECT_FALSE(subscription->HasUrlFilter( ++ GURL("http://subdomain.example.com/abc|def/file.jpg/content"), ++ "domain.com", ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ ++ // Incorrect, the URL does not start with a subdomain of example.com. ++ // Host anchor constraint not met. ++ EXPECT_FALSE(subscription->HasUrlFilter( ++ GURL("http://notexample.com/abc|def/content.jpg"), "domain.com", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++ ++ // Incorrect, the URL does not contain the | in the text. ++ EXPECT_FALSE(subscription->HasUrlFilter( ++ GURL("http://subdomain.example.com/abc/def/content.jpg"), "domain.com", ++ ContentType::Image, SiteKey(), FilterCategory::Blocking)); ++} ++ ++TEST_F(AdblockFlatbufferConverterTest, PipeEndsFilter) { ++ auto subscription = ConvertAndLoadRules(R"( ++ example*| ++ )"); ++ EXPECT_TRUE(subscription->HasUrlFilter(GURL("http://example.com/"), ++ "domain.com", ContentType::Image, ++ SiteKey(), FilterCategory::Blocking)); ++} ++ +// TODO(mpawlowski) support multiple CSP filters per URL + frame hierarchy: +// DPD-1145. + @@ -38085,7 +42039,7 @@ diff --git a/components/adblock/core/schema/filter_list_schema.fbs b/components/ new file mode 100644 --- /dev/null +++ b/components/adblock/core/schema/filter_list_schema.fbs -@@ -0,0 +1,166 @@ +@@ -0,0 +1,167 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -38148,7 +42102,8 @@ new file mode 100644 + Ping = 1024, + XmlHttpRequest = 2048, + Media = 16384, -+ Font = 32768 ++ Font = 32768, ++ WebBundle = 65536 +} + +// usage note: you figure out if this is blocking or allowing based on if @@ -38256,7 +42211,7 @@ diff --git a/components/adblock/core/session_stats.h b/components/adblock/core/s new file mode 100644 --- /dev/null +++ b/components/adblock/core/session_stats.h -@@ -0,0 +1,44 @@ +@@ -0,0 +1,42 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -38294,8 +42249,6 @@ new file mode 100644 + virtual std::map GetSessionAllowedAdsCount() const = 0; + + virtual std::map GetSessionBlockedAdsCount() const = 0; -+ -+ virtual void StartCollectingStats() = 0; +}; + +} // namespace adblock @@ -40557,7 +44510,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.cc -@@ -0,0 +1,171 @@ +@@ -0,0 +1,199 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -40620,11 +44573,15 @@ new file mode 100644 + : backoff_entry_(std::make_unique(backoff_policy)), + url_loader_factory_(url_loader_factory), + retry_timer_(std::make_unique()), -+ number_of_redirects_(0) {} ++ number_of_redirects_(0) { ++ net::NetworkChangeNotifier::AddNetworkChangeObserver(this); ++} + +OngoingSubscriptionRequestImpl::~OngoingSubscriptionRequestImpl() { -+ if (!url_.is_empty()) ++ if (!url_.is_empty()) { + VLOG(1) << "[eyeo] Cancelling download of " << url_; ++ } ++ net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); +} + +void OngoingSubscriptionRequestImpl::Start(GURL url, @@ -40635,7 +44592,9 @@ new file mode 100644 + url_ = std::move(url); + method_ = method; + response_callback_ = std::move(response_callback); -+ StartInternal(); ++ if (IsConnectionAvailable(net::NetworkChangeNotifier::GetConnectionType())) { ++ StartInternal(); ++ } +} + +void OngoingSubscriptionRequestImpl::Retry() { @@ -40728,12 +44687,34 @@ new file mode 100644 + : net::HttpRequestHeaders::kHeadMethod; +} + ++bool OngoingSubscriptionRequestImpl::IsConnectionAvailable( ++ net::NetworkChangeNotifier::ConnectionType connection_type) const { ++ return connection_type != ++ net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE && ++ connection_type != ++ net::NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN; ++} ++ ++bool OngoingSubscriptionRequestImpl::IsStarted() const { ++ return loader_ != nullptr || retry_timer_->IsRunning(); ++} ++ ++void OngoingSubscriptionRequestImpl::OnNetworkChanged( ++ net::NetworkChangeNotifier::ConnectionType connection_type) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ if (!IsStarted() && !url_.is_empty() && ++ IsConnectionAvailable(connection_type)) { ++ StartInternal(); ++ DCHECK(IsStarted()); ++ } ++} ++ +} // namespace adblock diff --git a/components/adblock/core/subscription/ongoing_subscription_request_impl.h b/components/adblock/core/subscription/ongoing_subscription_request_impl.h new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/ongoing_subscription_request_impl.h -@@ -0,0 +1,67 @@ +@@ -0,0 +1,77 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -40764,12 +44745,15 @@ new file mode 100644 +#include "components/adblock/core/subscription/ongoing_subscription_request.h" +#include "components/adblock/core/subscription/subscription_downloader.h" +#include "net/base/backoff_entry.h" ++#include "net/base/network_change_notifier.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" +#include "services/network/public/cpp/simple_url_loader.h" + +namespace adblock { + -+class OngoingSubscriptionRequestImpl final : public OngoingSubscriptionRequest { ++class OngoingSubscriptionRequestImpl final ++ : public OngoingSubscriptionRequest, ++ public net::NetworkChangeNotifier::NetworkChangeObserver { + public: + OngoingSubscriptionRequestImpl( + const net::BackoffEntry::Policy* backoff_policy, @@ -40781,7 +44765,14 @@ new file mode 100644 + + size_t GetNumberOfRedirects() const final; + ++ // NetworkChangeObserver: ++ void OnNetworkChanged( ++ net::NetworkChangeNotifier::ConnectionType connection_type) final; ++ + private: ++ bool IsConnectionAvailable( ++ net::NetworkChangeNotifier::ConnectionType connection_type) const; ++ bool IsStarted() const; + void StartInternal(); + void OnDownloadFinished(base::FilePath downloaded_file); + void OnHeadersReceived(scoped_refptr headers); @@ -40805,7 +44796,7 @@ diff --git a/components/adblock/core/subscription/pattern_matcher.cc b/component new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/pattern_matcher.cc -@@ -0,0 +1,257 @@ +@@ -0,0 +1,261 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -41007,6 +44998,10 @@ new file mode 100644 + return NextTokenBeginsInput(base::StringPiece(), tokenizer, recursion_depth) + ? absl::optional{consumed_input} + : absl::nullopt; ++ } else if (token == "|") { ++ // If we're skipping characters, we can always skip enough to reach the end ++ // anchor. ++ return consumed_input; + } else { + // The searched token is just ASCII text. Keep searching for occurrences of + // it within consumed_input. @@ -41625,7 +45620,7 @@ diff --git a/components/adblock/core/subscription/subscription.h b/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription.h -@@ -0,0 +1,76 @@ +@@ -0,0 +1,78 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -41667,6 +45662,8 @@ new file mode 100644 + // Subscription is being downloaded and not yet in use. No preloaded + // substitute is available. + Installing, ++ // State is unknown when FilteringConfiguration is disabled. ++ Unknown, + }; + // Returns the URL of the text version of the subscription, ex. + // https://easylist-downloads.adblockplus.org/easylist.txt. @@ -43359,7 +47356,7 @@ diff --git a/components/adblock/core/subscription/subscription_persistent_metada new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_persistent_metadata_impl.cc -@@ -0,0 +1,166 @@ +@@ -0,0 +1,164 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -43508,19 +47505,17 @@ new file mode 100644 + DCHECK(dict.is_dict()); + for (const auto dict_item : dict.DictItems()) { + Metadata subscription; ++ DCHECK(dict_item.second.is_dict()); ++ const auto* d = dict_item.second.GetIfDict(); + subscription.expiration_time = -+ ValueToTime(dict_item.second.FindKey(kExpirationTimeKey)) -+ .value_or(base::Time()); ++ ValueToTime(d->Find(kExpirationTimeKey)).value_or(base::Time()); + subscription.last_installation_time = -+ ValueToTime(dict_item.second.FindKey(kLastInstallationTimeKey)) -+ .value_or(base::Time()); -+ const auto* version = dict_item.second.FindStringKey(kVersionKey); ++ ValueToTime(d->Find(kLastInstallationTimeKey)).value_or(base::Time()); ++ const auto* version = d->FindString(kVersionKey); + if (version) + subscription.version = *version; -+ subscription.error_count = -+ dict_item.second.FindIntKey(kErrorCountKey).value_or(0); -+ subscription.download_count = -+ dict_item.second.FindIntKey(kDownloadCountKey).value_or(0); ++ subscription.error_count = d->FindInt(kErrorCountKey).value_or(0); ++ subscription.download_count = d->FindInt(kDownloadCountKey).value_or(0); + metadata_map_.emplace(dict_item.first, std::move(subscription)); + } +} @@ -43978,7 +47973,7 @@ diff --git a/components/adblock/core/subscription/subscription_service.h b/compo new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_service.h -@@ -0,0 +1,74 @@ +@@ -0,0 +1,79 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -44024,6 +48019,9 @@ new file mode 100644 + // Called only on successful installation or update of a subscription. + // TODO(mpawlowski) add error reporting. + virtual void OnSubscriptionInstalled(const GURL& subscription_url) {} ++ // Called on installation of new filtering configuration ++ virtual void OnFilteringConfigurationInstalled( ++ FilteringConfiguration* config) {} + }; + // Returns currently available subscriptions installed for |configuration|. + // Includes subscriptions that are still being downloaded. @@ -44039,6 +48037,8 @@ new file mode 100644 + // InstallFilteringConfiguration. + virtual std::vector + GetInstalledFilteringConfigurations() = 0; ++ // Get default "adblock" filtering configuration. ++ virtual FilteringConfiguration* GetAdblockFilteringConfiguration() const = 0; + // Returns a snapshot of subscriptions as present at the time of calling the + // function that can be used to query filters. + // The result may be passed between threads, even called @@ -44057,7 +48057,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_service_impl.cc -@@ -0,0 +1,146 @@ +@@ -0,0 +1,191 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -44090,6 +48090,7 @@ new file mode 100644 +#include "base/ranges/algorithm.h" +#include "base/trace_event/common/trace_event_common.h" +#include "base/trace_event/trace_event.h" ++#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_utils.h" +#include "components/adblock/core/configuration/filtering_configuration.h" +#include "components/adblock/core/subscription/filtering_configuration_maintainer.h" @@ -44098,14 +48099,36 @@ new file mode 100644 + +namespace adblock { + ++class EmptySubscription : public Subscription { ++ public: ++ EmptySubscription(const GURL& url) : url_(url) {} ++ GURL GetSourceUrl() const override { return url_; } ++ std::string GetTitle() const override { return ""; } ++ std::string GetCurrentVersion() const override { return ""; } ++ InstallationState GetInstallationState() const override { ++ return InstallationState::Unknown; ++ } ++ base::Time GetInstallationTime() const override { ++ return base::Time::UnixEpoch(); ++ } ++ base::TimeDelta GetExpirationInterval() const override { ++ return base::TimeDelta(); ++ } ++ ++ private: ++ ~EmptySubscription() override {} ++ const GURL url_; ++}; ++ +SubscriptionServiceImpl::SubscriptionServiceImpl( + FilteringConfigurationMaintainerFactory maintainer_factory) + : maintainer_factory_(std::move(maintainer_factory)) {} + +SubscriptionServiceImpl::~SubscriptionServiceImpl() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ for (auto& entry : maintainers_) ++ for (auto& entry : maintainers_) { + entry.first->RemoveObserver(this); ++ } +} + +std::vector> @@ -44117,8 +48140,16 @@ new file mode 100644 + }); + DCHECK(it != maintainers_.end()) << "Cannot get Subscriptions from an " + "unregistered FilteringConfiguration"; -+ if (!it->second) -+ return {}; // Configuration is disabled ++ if (!it->second) { ++ // Configuration is disabled ++ auto urls = it->first->GetFilterLists(); ++ std::vector> result; ++ base::ranges::transform( ++ urls, std::back_inserter(result), [](const auto& url) { ++ return base::MakeRefCounted(url); ++ }); ++ return result; ++ } + return it->second->GetCurrentSubscriptions(); +} + @@ -44134,8 +48165,12 @@ new file mode 100644 + // created in OnEnabledStateChanged. + maintainer = MakeMaintainer(configuration.get()); + } ++ auto* ptr = configuration.get(); + maintainers_.insert( + std::make_pair(std::move(configuration), std::move(maintainer))); ++ for (auto& observer : observers_) { ++ observer.OnFilteringConfigurationInstalled(ptr); ++ } +} + +std::vector @@ -44146,13 +48181,23 @@ new file mode 100644 + return result; +} + ++FilteringConfiguration* ++SubscriptionServiceImpl::GetAdblockFilteringConfiguration() const { ++ const auto it = base::ranges::find_if(maintainers_, [](const auto& pair) { ++ return pair.first->GetName() == kAdblockFilteringConfigurationName; ++ }); ++ DCHECK(it != maintainers_.end()); ++ return it->first.get(); ++} ++ +SubscriptionService::Snapshot SubscriptionServiceImpl::GetCurrentSnapshot() + const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + Snapshot snapshot; + for (const auto& entry : maintainers_) { -+ if (!entry.second) ++ if (!entry.second) { + continue; // Configuration is disabled ++ } + snapshot.push_back(entry.second->GetSubscriptionCollection()); + } + return snapshot; @@ -44208,7 +48253,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.h b/ new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_service_impl.h -@@ -0,0 +1,90 @@ +@@ -0,0 +1,91 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -44274,6 +48319,7 @@ new file mode 100644 + std::unique_ptr configuration) final; + std::vector GetInstalledFilteringConfigurations() + final; ++ FilteringConfiguration* GetAdblockFilteringConfiguration() const final; + Snapshot GetCurrentSnapshot() const final; + void AddObserver(SubscriptionObserver*) final; + void RemoveObserver(SubscriptionObserver*) final; @@ -46562,7 +50608,7 @@ diff --git a/components/adblock/core/subscription/test/mock_subscription_service new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/mock_subscription_service.h -@@ -0,0 +1,65 @@ +@@ -0,0 +1,69 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -46611,6 +50657,10 @@ new file mode 100644 + GetInstalledFilteringConfigurations, + (), + (override)); ++ MOCK_METHOD(FilteringConfiguration*, ++ GetAdblockFilteringConfiguration, ++ (), ++ (override, const)); + void AddObserver(SubscriptionObserver* observer) final; + void RemoveObserver(SubscriptionObserver* observer) final; + @@ -46705,7 +50755,7 @@ diff --git a/components/adblock/core/subscription/test/ongoing_subscription_requ new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/ongoing_subscription_request_impl_test.cc -@@ -0,0 +1,287 @@ +@@ -0,0 +1,337 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -46727,11 +50777,12 @@ new file mode 100644 + +#include + -+#include "base/functional/callback_helpers.h" +#include "base/files/file_util.h" ++#include "base/functional/callback_helpers.h" +#include "base/strings/string_piece_forward.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" ++#include "net/base/mock_network_change_notifier.h" +#include "net/base/net_errors.h" +#include "services/network/public/cpp/resource_request.h" +#include "services/network/public/cpp/url_loader_completion_status.h" @@ -46748,6 +50799,7 @@ new file mode 100644 + : public testing::TestWithParam { + public: + void SetUp() final { ++ SetOnline(); + ongoing_request_ = std::make_unique( + &kRetryBackoffPolicy, test_shared_url_loader_factory_); + } @@ -46767,8 +50819,20 @@ new file mode 100644 + + void VerifyRequestSent() { VerifyRequestSent(GetParam()); } + ++ void SetOffline() { ++ network_change_notifier_->SetConnectionTypeAndNotifyObservers( ++ net::NetworkChangeNotifier::CONNECTION_NONE); ++ } ++ ++ void SetOnline() { ++ network_change_notifier_->SetConnectionTypeAndNotifyObservers( ++ net::NetworkChangeNotifier::CONNECTION_WIFI); ++ } ++ + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; ++ std::unique_ptr ++ network_change_notifier_ = net::test::MockNetworkChangeNotifier::Create(); + network::TestURLLoaderFactory test_url_loader_factory_; + scoped_refptr + test_shared_url_loader_factory_{ @@ -46788,6 +50852,42 @@ new file mode 100644 +}; + +TEST_P(AdblockOngoingSubscriptionRequestImplTest, ++ RequestDeferredUntilConnectionAvailable) { ++ SetOffline(); ++ base::MockCallback ++ response_callback; ++ ongoing_request_->Start(kUrl, GetParam(), response_callback.Get()); ++ ++ // Download did not start yet. ++ EXPECT_EQ(test_url_loader_factory_.NumPending(), 0); ++ ++ SetOnline(); ++ ++ // Request started. ++ VerifyRequestSent(); ++} ++ ++TEST_P(AdblockOngoingSubscriptionRequestImplTest, ++ RequestConnectionAvailableTriggersDownloadsOnlyAfterStart) { ++ SetOffline(); ++ base::MockCallback ++ response_callback; ++ ++ // Download did not start yet. ++ EXPECT_EQ(test_url_loader_factory_.NumPending(), 0); ++ ++ SetOnline(); ++ ++ // Download did not start yet. ++ EXPECT_EQ(test_url_loader_factory_.NumPending(), 0); ++ ++ ongoing_request_->Start(kUrl, GetParam(), response_callback.Get()); ++ ++ // Request started. ++ VerifyRequestSent(); ++} ++ ++TEST_P(AdblockOngoingSubscriptionRequestImplTest, + RequestCompletedSuccessfully) { + base::MockCallback + response_callback; @@ -62311,12 +66411,16 @@ diff --git a/components/adblock/docs/settings/README.md b/components/adblock/doc new file mode 100644 --- /dev/null +++ b/components/adblock/docs/settings/README.md -@@ -0,0 +1,21 @@ +@@ -0,0 +1,46 @@ +# Settings + +eyeo Chromium SDK can be configured to provide the experience most adequate for the end-user. + -+At the moment, the following settings are supported: ++## Default settings ++By default eyeo Chromium SDK creates and uses a filtering configuration named "adblock" and populates it with ++the recommended subscriptions defined in `components/adblock/core/subscription/subscription_config.cc`. ++ ++At the moment, the following settings are supported for this default configuration: + +| Setting | Type | Description | +| ----------------------- | ------- | ----------- | @@ -62326,13 +66430,34 @@ new file mode 100644 +| Allowed domains | List | Domains on which no ads will be blocked, even when ad-blocking is enabled. | +| Custom filters | List | Additional filters implemented via [filter language](https://help.eyeo.com/adblockplus/how-to-write-filters) | + -+## Implementation details ++### Implementation details + -+Settings can be configured via the C++ class `AdblockController` or its Java counterpart, `org.chromium.components.adblock.AdblockController`. ++Default settings can be configured via the C++ class `AdblockController` or its Java counterpart, `org.chromium.components.adblock.AdblockController`. + +The Browser Extension API defined and documented in `chrome/common/extensions/api/adblock_private.idl` uses the C++ implementation. Android UI fragments consume the Java one. + +The [user setting sequence diagram](user-setting-sequence.png) describes the flow of updating a setting, and how it varies depending on the API being used. ++ ++## Advanced settings ++eyeo Chromium SDK allows to dynamically create multiple independent filtering configurations which can be managed separately. ++During resource filtering, each filtering configuration is queried for filters and the logic is as follows: ++- If `every` configuration contains a `$document` allowlisting filter then the whole page is allowlisted ++- If `any` configuration returns a blocking decision for the request then the request is blocked. ++ ++At the moment, the following settings are supported for each filtering configuration: ++ ++| Setting | Type | Description | ++| ----------------------- | ------- | ----------- | ++| Enabled | Boolean | Whether filtering configuration is enabled or disabled. Disabled configurations don't participate in resource filtering. | ++| Subscriptions | List | Subscriptions to filter lists. | ++| Allowed domains | List | Domains on which no requests will be blocked, even when filtering configuration is enabled. | ++| Custom filters | List | Additional filters implemented via [filter language](https://help.eyeo.com/adblockplus/how-to-write-filters) | ++ ++### Implementation details ++ ++Settings for each filtering configuration can be configured via the C++ instance of `FilteringConfiguration` class or its Java counterpart, `org.chromium.components.adblock.FilteringConfiguration`. ++ ++The Browser Extension API defined and documented in `chrome/common/extensions/api/eyeo_filtering_private.idl` uses the C++ implementation. diff --git a/components/adblock/docs/settings/user-setting-sequence.png b/components/adblock/docs/settings/user-setting-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..259b06aa417b385ee262db42eabc6f01bf5ed6d8 @@ -64283,7 +68408,7 @@ diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn import("//build/config/android/config.gni") import("//components/safe_browsing/buildflags.gni") import("//components/supervised_user/buildflags.gni") -@@ -68,6 +72,11 @@ grit("components_resources") { +@@ -72,6 +76,11 @@ grit("components_resources") { if (is_android && safe_browsing_mode == 2) { deps += [ "//components/safe_browsing/content/resources/real_time_url_checks_allowlist:make_real_time_url_allowlist_protobuf" ] } @@ -64406,3884 +68531,3879 @@ new file mode 100644 +} diff --git a/components/resources/adblocking/anticv.txt.gz b/components/resources/adblocking/anticv.txt.gz new file mode 100644 -index 0000000000000000000000000000000000000000..fed2f8a42464c4a96ddc3bbc0e3f9288091136cb +index 0000000000000000000000000000000000000000..1930523a47d67e91cf22a8d6d62bfb0d19f34b7c GIT binary patch -literal 58121 -zcmV(&K;ge1iwFq*`t@S~17U7-X=8RSba-?C+&tTI8@Y1t^A&SMm%Uavq-6QFa?w7L -z)*E||y{nSEPO>U_3NrvXFlPp107H=~zU3`%`G!;;^8tCvbE@(ac{u-(ZeVV_$+GI8e{zo^77kUO?7Qy|$&)lZ-uXOuDaG4U -zbxi;M`HKNG`OKu^BHeeN>^#}q+1=aSdHHM?%0F=(vwipA@YwD1SVJo){6Lg;6G3^O -zGrI5Y?Yh5^)bwS_V_ -z4kGP_T!wivV$eaPE}?)0Ps2E;JRP)Mp1KOgcSE9>YP&jOT)JA4a0u0pU6N7&Gj>DC -zH4jPba;0*n+`f?R454#nCg4&Yl`}xM<@igb#l8sLfQw -z*f%I?J!p{trsIj!%cRJd)DurKLS3Ro@XB4Rya0kRSebOdWF~p4pDb%-Ku{J6%6>n2 -ze-UgmTj&30W^v`(J4zEtd4d?U8|k`Rm`e$3>hUz@Df1MFQU-D= -zKq#TO69OpB-o^}bZa0AJaEj8{bvPSL0;V*AuF}BINuA?qoz|nPP}LH6y>;~2d;ap7 -zgOpN?QH0z`Cv_%ab=r`=%v?Rna$%Td^J@r#6OjutGzi!f2&EL7q@*+Alzm4o%LzY! -z;RFnHo=8&`>Q1iOp^!r84rq;m%7ivkA8MSV<-17qQ*mJ_5~AL`#E}E3H2Z4Vh_DL~ -zY9^6_i5RJ;c_-#0)=o?k8V`jefEKPfW^vir1XCpC3Dd=_8f0x>dr`i_Vjqc)+{^wT -z7KAd2nptFd*2RBQ%4GKl1=A!QU?GE+84fZONH~+mxh*BO)pLF(GN(bQ5QG4>7)#A6 -z1I)_eMCrha>yovN1)V?vQlLyyRu}VhSf$tIge6=Bv+AJ8v`f(;ijyi6aN0;;R_QQe -zB&%~m#8swGc%6xPpVb*%1LKVmQ*ikq|O6YrAK87CWI-V -zCqcBUbg?cTa({!~Mm3P6Od7ebnYpR8ugA{`Ne84uK#2$yk%(FZK)dkE7z{B(u10Pm -z@Q!DbGVFE -z#_)fgE1H=MvRfmUYtgI?7?ez!1tO)5Y&D}|N}&Imc_e6^t)^&l5#h3tKH5Z2e)88dn0kqfTtRiBVJCLZiz -zu(4@D$z)wqq)b%C2yUXr7McEX`rEIaj7Ts`%I$kOuu~1j?x53`A~}kPJOb5Qz%iCh -zceSlt4{`MfW?P#9Y0Q~1y^hrdYal15ECzc($b&d`VFUX}20U~c`iNX%`@!x{LH1#L -zRR96Jx5C(X@$4z+$_tX9IwM0ttbuD&X2-XcqD+j7L|td>V3Pt%WdO!uy|e=X+s>8# -z$P)Tr;S2?NJRo3WrwxCoG?@l5qlAN7$3Yq1#N1dlXc$2+#pZ^50Yma^^t=-gPA%Jy -zK~SQ+QE+i_F`L`1vw$544D)#33(+UwsdE4N@Bi`FfBq-86P88bB|qx)clX@aZYO#4 -z%3al?g#|E0U!n{B`YeozQs=J9NO}eiJn?kS2RW$gb7vR+YakVX{Xeim%NZCtb&buN -zdBF;O%V$tuv6{aHU(sTPLM`+pV;v;!`vlo-or%v)gYuEvVPS>*^U8pzPMqBrFAb$|KMd2W3{U^VZwEj5hli*B!B40D?h_|W -z!Dvedt7f(Le8+7CzGNzowR#IwX?( -zC1~61_6i8B$25b5nOw~pu?R_gTIn8R+bj2>TblRE2|-y{lj2H1z8|8AkR@ouo31Mz -zG#@DCB!r6mo8{>;t%tXtH=|smrM`x$0qTDOl?eX5F-{Mt^Zdv0xP!*61|xmc8BZ=T -zl?e%6e+baTh)IdOFgqcxeAp*1+&+mFQt>mo5*Q~LvRq+*vTZY`JX6u3GaPB5wR487IM -zHi<~#mO_S&GY|z#4S6a8F~(#B-mw~r4Eq7*UllMyNdOZ-eDug^G;a)2gEO&5lhRy; -zxPu_zoU$P0YM5s{H64T!K`NBy3z(Jo0s;UN!}|z>DwBaAk^=b>o+sY!@|LDeAhZ@m6N4Cl2NM(# -z!&zKfG$Q -z9J+Ao&5YM*jF{HM1VkflmaN$tXKJdchjd;7Y1=I9>=@(>BcxE%HH#BSaP2@5%^|`m -zv;fxfs^tQJ)iTsDGT>9%v)nU75z2;4!Kwr?9}>rowOusdexUN8)Yt8C5@W31oL8XN -zViZ=J!p6eWUIo(W4%r0UHo9$LJ(%mZ*j_OcE$S7ad!I5jgzfXogN3GVK-LqYdtcS` -z!K&fk4DyioW)NR&GunOfVl@bhctqkpp2ZOQ{VB|>(07{`il~iW&}X?(atTR5bsEJD -zOBS>7f*K5BhG!C&ZAz?yXS>hv!_&S2mx!R{8zSQ#_?yKz*kIgbZkAW$1e$Exi^)UTUHrGv4hba1e7L|Ubc9TmIE-$|0e -zhP-LKEb9z}08hDgFk#;?N*VX@JREKs$!arrMQEP~Y|z`d%*}7y)xN42C|@ZOv334< -z({!uM5U@?d;pE6V!H337@;6Sx7I+=L&(nK=hNp&;i~AvvUIOv8Jyv$qPg_{N#2 -zz+~fSl))qbym2Y-ND;^P#Q$i0Ch-XwFl&@<8k>5js$*6gMahK1IZbUmx{6FMxE~hr -z2N*76Qi+tr{8EfaO1vU!*+qAx#0gknKoYOCcuV-O8hxQf*~OVosYp^Wf;=9Se0iWF -zE~%FhsV7bsKOkAZsDq4mM|*EDz|BRj{&+`J#8mGgAQttuABJ%-?5SbQhjU@8g0Ryj -zVW%}=rxjtRO~OvgNlXjEPAy@l1!1Q%gq@azofd?h7KC*k<``8}nRlK3?Lz;H*inK>EZW-dfAeM$5M2?CK5|>|A#4*e9mh{-J1GM*w=v|A9`m!u6 -zd>>fV#E*;kcS$)sg3ay+k`FTw@!eIS{Egx^ZL0QZrP`f`VUnHVQEcx%abk_&4BpN| -z-j}_dc}=x^YSYcmpgzU`DSsF%Jx}2KjrFuXgPzt0*VE?V^K?ig5kscgSQ{WIQ7mIA -zzciq#mNW`H$M(4DU41ETSP&;KgX{$J2)I=%2h5=MCQJ+pqvCWDNtU=P3vqr%>eCt$LfiXOYy_9IjB7kQ}6II#FwJ8l|Fb`wa -zJcDEQ?x|;vxHEZd?=FBZQTM7&*5`ZRxxEDapHd>}9~n$^GSjh@jlByJ#|D#Txs7S{ -zV?p!>*4J;7OixZT5;F5{5R06Gq>ZzCWJUmAdL89OlZ6w->PAV6Cj%RtmdXnT9%P|^ -zgKAi>@wp*5BT%q)ex_sy&CADfNcXCFxAw1qzU8^~L3M)yFf0iE&dY4VTv;e910KgF -zR^{2dA6SV9TyUzR-lHF1>^wR@ix|psZ)!bKzN~S24$qUjj~~J>o4LPR|n!C -zWRAHQTCHc*p=7!KQVL{zIQe7`b<91Kf(@)YeS#A|2$YC(&B{)_tysjqFLJ#OwMZ3e -z0@R@4z6;H=@hjK1!)K$A-KsA7Ai|&wi*+sK9u_wkV=%AnVnVVI7#vR=i#2d+yrnjJ^xZgkb2d?KML?N7W8dg9&6k?UoPAFgAq^i!C?f`N7Xu|^q!DP#%KVZ^XnBc3@_GVVn}f(bS+MG&g@5l -z8ov_;D3yk5;iA;c)2+T#XP6t5Ql6yC8n!^A*fu^ia+-MH{)hK8!AfB)h3)JPaIbV3 -zpl0PR{N)Zv-MAO4GOol3oYi>YDC_PWPYHrcjrWVM5b@>*MTrB~C -zpp(~&TF>dyNeVVZ_~ik|r!S=&QaF&{uapK%cl+V?(p#Wq18iIPpR3yz4bT?_v$7av -zW%EWG$6ma@G@gg)Ggr{;zofCsI$zadd6;C|g$L#=yU<@E+@9;%F3_62&tLc_;iR(X -z*%MZX@_FO(Fri@FqnKPdWHAJCaV}31l3v|>7L&@6;|cnZ`1331P+V`4vmiToo!`rZ -z!V6n?V;!>q8`u>~ZUK7!*eJ8<@?p^rC-&s$@#9;JvHG18&f`XlU#>SUGT!3nblnwg -z5qcz&gvpST_zz`R9TvqPaj{AB}`LQ)g5 -z@`gGvMB{oudBbzfQH$GXg|vD0ZO{3-L(e#1PO}1!0}Ezz<`x;b|hB|v&C%#o?YxgWBy}Qfp8kHKlTBF+V -zG<>i=;Bw`Ej>&laUYtI#ud%8fV(q>y)!(@`z1Z--|Mg$4L$J!G^Zla_?~nfS>D|fi -zzQ1PodF!#H5zP0Z465D)P{Yuy-X+`)Ot@&U-T;c(AZ`ie4M8hk#|G#)SC3{qi% -zn18{Z1Yo_b6i=PNjRwvF49k3RLPNR2Q>T5`i2tiwjT$lh{}uzzD*ONZw|QOPi2d{# -zqjLuQESxgxb#(If=ig60+)9{4u9XJsH>rK08%k9Rta;c#?BSp$Lx#rQjSw@oKoFA% -z1BOGgV)_s9#^rn3TTbTlch?6~2F`9TW||Oc`n0Y5=K^2S97qmK`22 -zf)<^NPF-Qq`53E1hv7E-Um2P=1Y&qqfWQN@k`cKL$?=~)Neo%XH`|70f*V=!ixxMN -z!umPc!LPr*J-MYJFo?!}eY!j&uXBM6v%wor4prb>`f6OC;!9V -z)Ah!2B=^o=v7jAEshKtfQv-S&UbbfL}U=Tz)X3)$hZiRXC!S=o1xxSIy-+Jw= -znOC==9aj*_H)p0^XJ!N2Ltz~QB(hgqPXxQi9V$bU6mYh^pTgItJIz1_V+9n -z6sxa)(KNQsgI)IYm}WwDJJ1}iw0fw^7f!G_*tZnt`r7M+{!-#8n<(@u;eLc?29`?x -ztF!X=ob_cn(uDFiJMVP2A{6y#7fn?Ys0ugf+PyXnc)?max09r`wZomO_KQA|;zjhh -zpl6mc7mjUlQ)v7mj}h$}wO87`Zn>#ys{uML&U;#3<6Iy-;03s2;`p1)3FBL9SFCdg -zF1lWI-!+Re-(=qOT>P|eE)UFxr*A9+ya{d{y{#zHOUn?f!}m5%>(h--cW_dI5;(}9 -zt>@A_zVbD<_peXDXG!%`8TMLRV9jX-+!pfxzpl-g$?EJ<*7$#|`M%^1P;@&U5SW-H -z-z;wQ=)k`2^MeZy^>a#q0+q2eUAWuqVyXVh^L*W}bIYl};A$3sf5VP-+};K5YWXmc -z#RGYtSGWV>(W7YlX25zX%6oXCueFo5b&BxB!-tEG7P>Qw_K=}F+&Ftm)H_XT&wi#N -zl1KW0=)zN%?Zc(sk<#V>W9w|HI~&=YG;PkFdPiI54?WTic4ppLhiLc>kJ>z%9Z9?W -zXc?=*gsWguU?lU)y?!4Lzu`?3(8c6&m0Y=vs=3yAb#rUu;GNsEbCrFTha4}`2;e{N -zP~Y8U@6aa)m+e06cH#Z?{(7&-V;e_fwvm*awhiu~)dcR#x(xa5)?^D0X6CA36onnW -zKPC6W;@8jp_U%WrGVY5kHng|5v$vC-@+lH_>ZiA6&mgys@6M+7mLe8PwBJX!`ZlL(oGj@Xd6=rxjMj`;R_&7BZpl-Mp9NxRePN$X<>oRlTNF^5C)9S4 -zWa%y48~T-mY-?nX=@n^!OH<}>vO8_s?-uH_T9Jc+@bkL^@X|N$*LD?cX -zRTiXdz*C@RhS8H`Vnjhl -zg_oPoJ&(|(B(TeG$nH{7w)b7!sF921B<`L*1DdAGN#3_>h1;=$<)jXo2fSNS>V6l) -zLoTgo`-M#8#xdW?@miFnq%dc%C9)Fv!pmYVm_DAq@m(%+St<2e~!K_tr1TGCIQr@m3gYa9I{@yuF}OC#3F2vIe3lqSV7E%f7$fABvQt(OuLb -zE?sAM+HQI8#MEn8#|QdMgdc84P|(@<9wKV@9b9-@#xfKed1ch;=R{%eawsE_~0(> -z;#52BM39N-T?Vjv4!Mz5+Uv_&~u(T-?Ei_A>nxz5A$@%Ppu -z2G5sG^*Du}v$|E6X?5zm2g5mt41>QWOf+|Ceye5D)zHBU*3A0U96c2GEeIKOeu}45-v#tnPMs=vwe)RwuIafBVff-?+C}ztm3dTA6^@1Ae#lvPL -z`0N!nKYeSNZ64RGxSeBRwt0IlA{MT1&MorJSGV=Hz0x|9c<28TC8xA;Z;|yJ7U7H* -zU{~)0Z}r~$1{9aJn!r1L<@S2Fvzk+?`>NR2MF8rp{Rgjq@9zEk_xA66@9x_V&eM`w -zi>LFvol&*(^ZJD4U)?}mh&fsYzB0E9A!8H0FXH@N)ERQZ*S2?>wRa~g(RrlP-ty2U -zwiOv0m*~xMyIH9}DK#CFo0aKYN>BrRmN#eVv=X5TRDoNMFl-eq=6`=Klij&oUVbT* -zawIrZCc`)kouVFOc>4LQbc{~%&81opF%5&$b#f_-@6>q+?)sar-+yi8SkiZDbbf(q -z(REkN7Fco}N*;1LnUB%XoG^{a+w$eP{?1j9&-u%3ti92EGR!7y#LN~qRfg!N-Q1Yf -zAF#D6b|-0C7bhO~NOChaCYp2$EAQd0L4Ev- -zp~zMuoO@w3s${(dLG?%^4>u;;;nq#aVSRnQgB~r6`YT?-&?>J)5FYJDHSnZYO)5-b -z##q;`ZLF|EHc^QjqoU#Lt-op6lp(mfVhr|fXH_d7#@genudK~~kDvFvxGxWZyl-J( -z{8NYnwnINYOWyUX*H^+kr(9ot2}J~7a;QcCgUoV@cd&sVA)`*nz+jD83EnwPa^RI0 -z@YO3Oqs`6jn=8ChQRV|Djd@1bLdt~{E2i@aaR -zT*-0c!(9zj*w2FCPEpi^u=+;=NzIc>K|e$3JhScu?|x`^l%j-y!ylp#x}_$f^=* -zHdist9M)#dv%mQ4_n!UhvwwW{vu979{ruTKJo~55-uvtapZ!rQ(VMIsL3V2R^qS -z8~OQ(s0HOdG%9^4KlY(2@t~}ij9Oqe?Is|GR1x{I9Ej>z*JJ=)H`q=B#XWT63KjY -z?WR^Iplz56l1Mj`L#ecMx+Bhy!P*F}OlzvZbL6&wZmUvVq+wENtt{E`R3$<~L+I`q -z9b5>z@$eArr~W#tD`HxAS|8O_y^v<|bc&=xom@E#idyOZ?##++uQe-V(GvK=q!?cN -zA$ee0hOcx^OSrYOy|aRuCiUR-e1H4Fn{V9Jp^N-@!&Sw?j(1 -z&KdbUdKAZT&sRx|*wW8r1U99A1Y)?guIhn^9$szMMa;!cY|%QTpPTg{uU}mOI|aI- -z8t1PWA00(32vblZZJ<{MoX5tTu{2;f2Ur`OA)y#s?d8`!l2b@y6)1_0WqgK8L&pXc -z0dI42V*s>czBt4)nhPDnWHRYZrpMjQ?afAkH*W+Lx@%4Iu?X7$EbM&|$@);()Uha2 -znxz6LZ10t{|wG -zR}3gR#)HyD5o&8=^Lq0hfEy0jDum(6);6Zsdo}dCLk6vzD_79fh#!fRv~5JhUX9tb -z$?Iw(yQ?`Hab2;ih5Z(I}=hx)-G4-)Qy#2al|j^%HsnYni*V^dnXC{96IQ{Su`EZ* -zVWXo62Vap;+#$8nSaorD&kbWk80Z7fa($V07e*yfONkNTDIZIM%;c1mB1kaio6xW* -zAs<)IbQ^|jT1`}gF%KylmLi0vgN;xf&DE9I9}?C5)GE;ss%*D}dZ~$-4A}Ut2b5g;u4qFw{tKF(sj4g)Dpik&AhRK7P=hm6Q -z88@1C1AU_325W}I^c+i;y7VQ(QMH9d#xbf4x-|{}W@zZJh+Vo7D7daXLTV_<9P|by -zAaaR5Hdi5ZY&L7KSz -z%zFWTfYkI`6lP^yRc(C{;dB5|NCfa0k;sb%4~CcQN|T{Va6<|0K>+U7FitY9x{4A` -zqC5&}ytr0lkERS-seX1n7*$Yj!B7q%@^*qlId#AhgK-ga@VIc#6EL%BWZ)eB8J`o`X{K6l -zEA4L+tWp^661yA^Ui5hcq<73#z@PI=gn7gi0Mo4^7z>0<)mpdQVBSuwAZY#$?))N5;;za7?|vfStInK -zn#oDTsHUza09$8@lug7~DPtZCMag3~{VwzGbQ7Pa%3U3BwE!IHLf#S^# -z1C%lw}VuU59Pp+sHLV+ -zu^9Sby97C&cw_=J@nAWSsTehY3cOcoI-LRWx&&j=P&bB>oDKb2reitQzMVmob&uEZ -zP>!J;qa%)CA4TKk0(2z7>_Nw73^5{fOQp^e;NxTPc*rQ56r7f&$a&ES+`&!^qb%!? -zgUS^=ts|yvpFXH%&OB`ZKPr>?h))}E3VeaI4LD?`>nF%GFxQ;wsyeI%cnRSB71kvS -z(OH^38%{OB{sN^^|Ah}uq8xEaM3(O6fg7R{bJL(#u -zq#{o11l$b~p!+ULVL!!|&C{rnBO#DiS;1qAn@Ynqk%KY}VqIgLVG$vw9oYWY!vSlR -zkDGY*1DA4~*uZp;aXQ%gN+Ap)5o(sMWtf&C}6?+{u(aUhk3c=>KE^!8$cFp>(4LSTF) -zaQfbJJ?-XYN(S0*O()S+LKUPVsgz1Z=-@%mX1bWLoH`Fh!$n0ch*s{pp#o!UY5)yW -zrsjeKZSD<@=%rF9>2PL2^ayQnS<03#aOx}awt -z4U!jl9}cVBq#L{xp^&w)yF@a0(~0Ev8znNbzxL70n?<~?K+2j8Di}$;i7l1Ne`)(N -zn!KVSDSr`*3R*t-gU;MXBCBfqmMhwk9Ji~w^uW$_DSS|CM -z1!UraT4ttVxa(iwHUTt&tOf*d&1Va^rqB^Ktkj?*1}8)nkbo^nAv|%48I>%Sd4MB~ -zK=0}<M7iPGjhF3WlghoFZ*SB{TrX<+9F4&GbQ3XS#F8hhsu0{6 -z0{H|wECt49X1O-Xe$ebulaHI6X)}U3^)Ez=tG9aX^7PU -z#O3E6u1+d@q)#R{!c@nFxTmt6q?6Q5Q`*a%Snya~m@g_qvL`?RpglYV3qb3swsna) -z;#r^)w>=^8A`-MEClw>L8nUz1o8+ofZ4Y%ZE#-8jYBE8o<9Dg<&3I$El=Ao@c(!8iaYjRo5$X+jZq&I;_lEn26{E%(eVuv6FC -z)(4I^1}YI%?A_dI90-S}QFHh=j&;>wzj_E{-wvxb0s_{gB>cJEODMe!>EMy;IGIdQ$_&l62R2kR0g!G;U3DCuEDn6OQ;)vJ;MnpH$%2Xu;7T -z&?MeUAV#+HKHJ`+P8wC3c8G-th<~-Du!U}jgh;m6u05Q$UkOe`T6Mk3M5C%+Z^sDL -z^cO}(pI+RnX|pVe -zeaPGQx?fpFj}3-cwjsh+>Fn9u7HK{;=r@M1qEf#c+p5xQh>3CAgept4dVeg4__w+z -zQ(QV0%|P>q?V&ZR2Gjz9Fud6m*BQbiSyMsBeQcR~P*Uh89P1B6oLXfsAicS)JVqE% -z5yhKoGZBNLB_7jO!rJUnot2{ur~`_nI|7KN -z1jLuJ#*@k^QS6$2O+QPBn^vV1c9TpK+Kv4ho+WPJ%*%05<%>>4^Wr`tTX9ODPZ~1Pk#`$H>_g{_plD3 -zY$V}^frt&$*ci)Luei09fgP=2P~z>-Da)O~R2fJ#F;9z%`I^CCHS0x%j2K**fs3ND -z@>CQg2FgXs%pb}tWd&jQiUr;X6G(qazG~=exR&PW%~QUzG0Vie`kt!cJq(V0*09h} -z<22B0fR^|jsntl>Lad=M%4!XE!=yP4dV#ejK91>y!00%5tzm<5ik}UvUzrs;eRKG7 -zC(Sz4`q$L<5|kI8MiJ3ne{-;>Xx%ma&5mu2kcFcFuxp3Oo(B;FSK4J(skY>~?$@?O -zxp8Z&)~AGRSHs~irJfb$HxrT2o>%gOPpV*`Az+l5Kld%}MC3{yA5Qe;4kE+j$K9~k(=X@WflF)AZ=E3(N-ayp_C-s6BQk2 -z;v`YIB%UOefxn)WzLH+Y8KpFL5+EO={R%eM;`(t_gsl}|0d--@Hs*TJftZM5)jwtv -z&%EvtY^d0;A;sF1!27iZ;tz2{4(4rRL<<7#lICF`5cf9FyqPjCFBiv?O_z?Ht!N@p4hs!Hx -zGs}c;VDJg#;KR@^KESVGOe@TO(J*sw_Bno=hRZcV6XQR}!PD>X9q$Tn_fZy -zoDRt{2u`ewT_Tk7nRl7OuxF>3vZBJC11W2SVP~7dX5Wh9{G^@tW`nFvz`coC2Mp8M -zXmm;>qg>SV753qjB_<1m!t#6su;&&J1p}&$!DUl97K`buXdB~J0*qYvMN`cxT~V%5 -z!_^bOoCSZ0F58Yzb0WC5QZ81~G*n1)%Rpt4ax>}rTUsj}l&ds%zlUoCP1Y@7n&q-? -zwia$ku;Sdiw8G+4UwaYMh-GS@G|;8Q$^&s+rG*9-h5ZpO^N-lmh%G9cDqT}k6VZi! -zy7B0z=2Mx5@gfWKY8sdf={nX%-9rI1Cbu3Ii?gkf#w0D$rqjxG^L*OT@>>}$Wd`+s -ziu;2}rYh_5QJ)tgG}eF&(tue0_y(-7cZGc;Jl#LBTEWuxe17@#%oZO%eQJwOo<6fhzT3wh -zLpgQtIU{zI+m$U&jMAHm#My_oOw1pQp7fW^lQc=)6LW7v#njHhe3s5!1<-jAX&6Nl -zn9EGLH%NxFuUL0yzWXM)R4TL8Dwgt11B1JMz{F~qnl!1n;L1g4Ev|bMIA>9=VO5c* -zh0&_t=!Mtb;Lh*{SM^#&gON+8(@eUnYgo^8m$6$u04JF!y{A*-QKx}kF@Mw6H0w?} -z1*ngwe&furDsuOQGthcs2w~e*wG&(W8-X4V;uqa9eJyCQKg;ge~NlPv8_C^k$gp474`}nOwxwI1hJ*JW&1x9F1;E)P~21fL!9t -zV*M^3j@Wz`k4(*C7SlMGc2>SlH@ksN52Ho@NqiNZxQNXIMpKYFgp?&LC3n$|@H`BxvvTyBXRJ%@$fs9#XZ*&X)7E -zw$_gZp`wHcB~Jh^{qv_2``ZNJywCUp88j3UJ^>6@#8jK(7qBXcWs5rx)|2J|wkf4| -z3h^bd(3-WiZKa~`*FL|QRRQBpf%ry5A}F1altJ3-7lXr;2e4doU(c8|u~1{LOlMde -zaw;&d0tB7ft3*>~C3uHee+5#`5XF8WPVg}}+-DJkpUE|3uL$yRXfKxrQ#&@oz^Ofy -zt)EJhu<+pF=<|E+j6*r`BNt0+%cUzUoy7(}mc0O*(`W~5WgS>opj=J`)1Uqx1}N6} -zxRD?Pth!;U>=2qCu`3-HXvW3MAy}rv9cAoLxVcdda(D5$Cj{lhJ{xX2PvsI(IE67% -zFvw|^68{=#y9|TNCW-H{1;mY!X;98pZzjhAFlN-5O7KddovQi@h$Yek{YV(7KWy31 -z2XFFs@ZFR5OSo=ud{UmXa!|;AmETCi%Tqb;hHvKG;3fb&flce26)P|*f+M{H5q7f&Dl7K@8fpj$ -z!*}uqDAs<8t$4L3=Vk1@r1c#7C_4@w(@3~; -z)1c;RmF9E^EJ(ICo(_5EI|dR&2Zgr;Iy&#nOn0zBq?d&cI({PWumNR++iol`gK(#p -z27Ud8#`yQ&8Vdo+)-VhS9kF?bv(liQ>c`gWPib0R=Oymjsc=!UN{mW$ZZ;B*srbAB -zf?4$eLJhzyoyaxBe2B=0VBJ=e0b)U-_5db1cZg_)FM#>ThgT>Xghwx;Vdx3(;1&-P -zeP%@U!Q44Zp1fPvC*_?t*4_;3%_}UtB3heTXM=*BButUU+}%s?jT@tA`8e{%2)&c~ -z3JedvhS7%Yg8IxyxCP_kJlRxZ`MmAlM8-PL=Vnte2ux8{#)zSSMev}0p?VXef|!-Y -zaKg2-_4KiX^FDl8Rw|Az_zu0l?!tRI5{mr8J?XIa! -zHC=@$u~GBZ4#65xr`iL?KUD}$yhFGE^Pl;qy2RxbsR^9Gk+BnSa1*Tc#85s$tDf`# -z^1WLCTmGx4Ckwb-(2hW{w;Tb*2-x|zXIdD?47jSdygn(HKD_!=Z@H~gMN3=)NoyU2)73<&Yiiy%u}Q<5se3g(gPyx12ROE -znTL?I2k>feP_0`US|>P+Q~MRgf=j;~fcam@BQh -zQ%Nf`EzPT0U@gX!)=#KjhoCZ%3D+d<@T7r8B -z)X1!QrQFCWkJzY^HUb~4%-SIYcAY!vn?P6txX)Zbl+^Qw_;K}Bf6V~%W0EAniI6Z7 -zi{8M>2T4k0&~aseT3Q976Q-GhjtlB5e0dB8S}$XD2B3uSV@x3lhLX`fgomg8+_IPC -zON_JiGAXf{dJ8(X<_X{wWWbnyANDY%6^0`!(s)oeYw7%{k&n3!h+H|Ba>j&h*ETH_ -zAi9!Au824c;PnbUF)~SwrKmkrAKup#xq4Zf;)y5}l9BL2JB5Jym0sonK)yqmP -z*Wam`C)MD_bB$m&*GIIp1kxpJ#&FnL$1_&NgP|=UZ<_mLy*yxg;xh(>sEI7dN`3f?VO^NC@{N7DQlsNY1@Ssqv4{mrc?uXW7a@vI;BJchqlz -zqz@c{4xWH@%tYTWBO*GOwyU@ASupk=6JgxRG|+cEiM`^}nH>Wz+X+c* -z-rl$p?j>^RfdxlLVcPflmT+W5LlF~r# -zm5bEe9c$1UV)Q7LyRTxt(XJSfNqa6d5cB0Bs&SDPH$p>^!Zj9E=)XZlFhuAV2T4$Atb8!Hn^Gkr@tTI= -zgx`@F$zwf4!>ZECgL}S&;lk^+F&v8wq#A8x$q*e>mG`5SObf4fH6LS8O)zN0^ZvQ9 -z{r0x8nsXi^U0$hvO_!qVf2ZuJMkT^9?W1!BQ -zpK&)s&^g`r7-!MrP>t$W1iOfv^F#xd`Da98uWSJ=`v*`AIJY!|@Wf|eIw=zOxU=d# -z04ul5=#ZQ$Z(az7KdZLNbhtcibL;lSRwNvcGD`sv3C3}ZLSy^_{WV>wqW4BC;dEh) -z+gNeuBUtQZM3>pM+QKu~t}z= -zcgdlVRt{!}Z{K~8_6LtLLyfhZE8Avp6;>KCgmx9lAhEk9DmB-PKEHVb^)F-Jw6sgr -z#JeH{rqV`64#aI=XF&Kyx_zMcV{Nr*m55+alM)}>4iGdoxIQ+xwCKDR$~2~>!Jf?o -zG;o}CGg*nnn%5^`)MP?C*7Hn5$g@COIL0#YU#ACQxUf`+!PuKAAdLH@gQvY6Gr+Xz -zZ150=GoE06H64J@`=Q)>9D62f78N_DxMJlPPc0P-weYJkt7NCp!1lgL2T8rObe}*( -zN1@{%25MzWLXk3BEZShSs4H-HUbpBoRLvK;%6?lZXxYLg&zdyoTRZy$R=LKzrt+@u -ztF&2Jw`?~Ezzu7-M;T6IL{#9f#yM@Gr0MK%sG{n+*W__ZxM4gpMzM$20HYPc7B1pg -z`=>En31>}FwK6uYJya~rYHc%ldF9zjRIOD?@KapzuJa_o&Xo4P^^C5ow)W4zT8R13 -zoQW^Vl;Mv^JZ%)oNfHhbi846i1%zj?P?LDv?;8#E?vphxiXmnrz#&14KBQQUcrx9z -zwGhlxdkI6wwWrNwE_FzBZ`o7YuJ~H^=E}9yw~X{RHgVf(IjgI-(jrMM3s3clfJ3m= -zkoa`xv;=HR`^?=()$$F*a4oj+wWfa|$wB-~yu+S#1~wF-VI$2kuXPFlaQExXQwbp& -z+oL7zHKY8jjeUq8S`Ij;T6RALRamd0XGAxT9Kg@)=q*z%**Jm<^IFb5<3?OAL8wHN -zSesK0+hiQ?P`2_p%5z&%Gzzh*B5!z?Dw4(~9003YNP2V#V#g5i!NNE>%!n^}$_$>% -zB*_~kS@76C0A!W;1}p}U^-DM4a+z7MwFOAPv;unN7>GxpHDSamGQ^=rW&d>O_{OMC -zaST+qCYPOy4p{qBWt|dn>jf}QtyL!=?GbAAwZK@r!|m7{akS(JBKE1$o>w_CRz(W5cwM}rU>8cJx)GaJ{i -zP9#{w-lfEN2$|E9xGU@NO8bi2*I;F%TUn2y26iVth6Zot!w#ShOl(cXTh2SGb@axF -z<5{rJOPwra-htlo&cZDaG4HgZdnH+&<|VA`JQ_)jI?lIFEy3jer;QDr#Sdplh`ET2 -za6w>EbSAc1J?mVAqdMd3E?L2;(O{%l$=*Sdq=i|dXl2qWK_&s{&N-BcdDtK(nALIC -zv{ovXvAIvVqTy?dNiiKC!U!A0qc}dhRx=gem?FGT$B0^y0nkjWG2%@%Wmb8c5jQ^t -zk85m+Y7*m+6t16ZSNXF`5 -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 -z%`KJv89-zz&G` -z$%ICI%ab}wK|ZhZvfc7DR~a3b*Y&Ks&g7)IZdAFyRt4|=?bYs~gCB42;JuqVpw|O_ -zefMMZVe{#CP?gbk(hL0>UD1o~nx;pO*u~Z5C`W$AiLvS0O}&2h;-#oa{;`zt$+OX$ -zR)?8nK7o!V2;2dEV-RH1-{YeO6Z`!5XGKbKX#9esroBXf(=TY^j$G*{N*%Sj&hcy7 -z%kMouz6NIyUt@x)v;Gh91K_Xekj#%hI?`lg?>jnP+qIy>_nKYtVyZ`vSSC68Jv5;k -zqP0vu?c?)$&t4H(g+8ZBL8xl>28NBku;bo$Zj2ZIK2Z-=dy -zsp+*F3H&@Q;eEgSttvly%iq!yKX{2g`XjR-`X4C6AZXH}<8l)O*fS&q16o>W*fr|Z -zGzeG^{n2{+!&ctvllX1dt6@(}AMZXn-muV`1NQj!gZ1A#(A@A#y@?;RdqnfF_CtQV -z!@B<0ufKP6=tbL=Eidltf%j#$1zG?wch!e(p*TmIY@Q!Ofy;|Tzq3B=IZZ>27=r7K -z>FREAy?xsoOXD3{*;oJ2a({<*-t}EN=&waV%aa%q+V$5g8m?{scW8!nV(V07y%Nhg -z4beJ%YV59yuwyBca^n4CI$>YLA9KM856?ydNq5*aZJZYOeguN^K_J31NJRbqM@Pwp -zhMY|H6Z-KZ5-N`V@UxE}JQ%)y5~@5DU6Wer{73hM-m8f-0d?_DMK2r!UQdI(ntm^ba)0K_4UXX?r7#l^rcFS*OgVXk_4>O?X3vicPIIdkCxz0QfY+O|_0}IrpBJY(1i~F& -z|58=*h!_7K%5cj(`!mdFHL=^muXx&|2$vYnP9cHFqF$Dp@AvrAQ&Gq9O^(`|Q%&8@ -zQhjF7ThL`>qN5YB{}8?Ul1rM@E -zX4hBtV9@yQ@tqgU+8TSPk4*+?MG0Fs-ehx9(*%4PE@r*znTaZ|}REs0?E`F6eSwf~#6;o>%G -zULl0%sI0pvpCK_@zJar07EeB(lt`wLY}zZLcDTLdbflB9p$o~bt?9>?h$o!=^t28!e! -zMU|&jR+M=dji)3ej|cs6FAT8IPp{3+X{{RogAMER-&C| -zB9vJm;sAfcIso;4HCFDQ{&b4b%JZUbT -zEW?YkI9U5UY0Bm-y_!AApDqv9z7&h)dG@R(1+@)6D7F*))@ln2u%w$8^+2sY`j*)#)^EO{mQ> -zEmT*@2wrynz4w8;c$&2s+0bPXe*!HMt=@~|>G`xAH#1pwh6la`Hxvo0~}WVRy4#ncsTB5PtWF>N -zCco#Q`JTVZ-{R|flXRMJJ`=tv`z!Y~JzTX!TTAxOYuv5h5z81y_Y2nhAAz^OKVo0V -zMlM8Gwl**nB$A|(ljq0xAc5?u!7`T5I8goD+jU-|w_ez2XyhNZyV=>(Q%uv3)A;pw -z+5q77>Ch@5jZcn6yw7fc=lJ9}&l{@MbGeU4az)2wB~MCYK>>>iq;;ys&3uoggCM@3 -zPQDaTrRq^Wn@2X=dxS*uG7tJVk*pjG%^hAFhL+`D;gCe*Wr{ -zkw`1dGBw=b)m$fq_M?|d -zutb{?Pq#Vp?s3wcr{z|UTpCN$8TQt6o}xOqogQn=g8GQPc6~%FLK^w0s4vgi`ETDs -zL)}VLA$zfK;o|K48TXAL5k=C(zF`>Z5MXU!?L=*>Duq5iFZ@(1U%u;uBR&(&-4Hrp>pg;TO^G}d8rl1Y9t*V~G>ymzWkP9m!rvGFr6kGHVp-v@oB+ZQ-9a9eB -z0mk|tJPYqLIC!$(nJLld$UKywE^#VOCK_NCe98GzIXx3MZ!%OEQ*y3D17Uv4Gqc|K -z;1|NpQJGFeQJXZY`=*JGJ=|YZqi0LKJE()Z>&v;wMs|nqt_E-VulNvqMe{mxWc5zJ -zAz;told)BbWZEu2>AUS}J`}1vgTrRBNjS?X@rb*xlLe~r9MPEdPrc0#P=-- -zS=oJg^M5I;z2@S|6w7y3n`+0^f%dNG|jd`H`uR{d78R29f*UJNy -zzoa96G)OG&5^8(-gVWx74~4|W&0)t^6VR`g#fl`>F`OE<1bonF=OyjAANOvozGLcv -ze&?&vG?whJYou!j>Ci$VIyX_84 -zn-G&~4wGN(GC;n)ZIX0WiF7t#O<@cCxr@ -zWf9LI8N_^5i61<$j(1SVQ~mh#!=nx9>eH{k{6ybRvENO+zy0@)YS|dQ=a$B_&D*+R -zyD`7i5|B28sjKKUNseB8Xig`nV>InsMs?U}8@rLnyE+nuXV7Yed#v|>c{#qBoQk`Q -z^m{ioRVYWi{Y?aDEbjr#0igyM5WWGTIdsTuAqz)!l1`ct_$d=HbnlwO3fezSh7QJZ -zqHnMG<)eT7%P)S~H03u&okZj;HX(EN@HQLl;>ec`O&LXV$g-0p$&6mCfUP)>@BIPa -z5T;X_b#TehmeIzw+v0`*;K~5E}1I9rOQO*!ox77)CYm$T0 -z$z&!AT8#9KqGe7jI~`H${wu^DRZ2BM(Pw(Cl_)P_I=`!$qXkWsZl!af-oa+= -z9(hDrhU-r$i_yfqk`yONTM5(ch(ktY>2kNw@3*v?Orc@Gb&%q0mArfQ3OMG?Ya%~C -z(H>nRh^STTvq!t$3Lk~x`Lm}_E}v-Ejsjs&_w{o-@fr;>zwUk;{MdMsDdO{yokqvQ -zu^!s=8X~V&(9;ZG>*?81p;Y;kwup8MM9A2}6I|)Q@*_Sza6Kb+5HXo^q#PT*3UOv} -zzhc7Ia7ag&qNr|5!@unzOa3b0oX>{in`Lx7aiatI4B6xp>!{ptZrh~gnbtfEKZwP- -z2i>S{Tt|cDx+9Dr5v~~qidNpcG3w@aj@D7KKqN5SKkc8LFBdO#3IjJeG`S?SAEdH7 -zdT>2o5p{VG;?QirV)#$WP -z6S2LPm4`;BMAVz~P$k+dX|(k-e5vf#lgdWhBrX~!rYQkj7GyOVWM;T`54vlMpxs!Be5#>fc1Q6*GOqw*j`a^0#Po&EwhL-mh7`1$G2PZx{D&&LQW -zK>G>r{T%Q7{PerC;F$;}um8>Si@*7E`t;MaPxs#7FJ6Op@5=K0=@BF(oXqj)N@uo1 -z6a`w~VWo`Qu=R_E?=X$cthv_O8a5(?8vb=}cNAts8HrolB_ki$5-&b!z7)kMlTFQ8 -zfa#R^(SRk?R({v;sPv7>K5{lmo-vu{u*H^I-HnK5E?v6!6Z`u_8|tMhwKweO{NmCk -zK_EtiAj5!g-UO0!nHVrtqDd%LI=ZSTiQL2;=!-x+!i2Arxonao#jYg~`^kk@PP3e| -z23)mc&7+(+XXG)Fc@L`mM^#%8)QPY)H{lqT3mqV0T^&@{&0J@vQYT1h*vC`kQe1cd -z-z-o^G*k$eNF3hfHmx(~HomwV*J15L4eW<{5{pX@9g>*ytIyeqK{87=Y}_4bI$4?4 -zD6po{i@=%|9Taoa41Gl#&viTsLzhDi5n;Mw#&I`k1$U6W(k#}8BbHTF!CB-E>D4D@ -znKY%&rB=-L2;+3 -zraBwdotW^QEko@4mPCw^%}6P$19K7Y?xlA788Rq)6*E_t@%hf?pt!jVACY7kNw`zi -zd3{j#&DxgF3K3>R+u6IKMxr8>9h9Kce0rTUdG_Jaj&lP_j0y2@IOh5TWKZ?7t&_Ig -z%b0V`pM3u9tFgITxxL-!^yxx|tj?)ViJ}l2P!`j5+llpe4zwfg+)mt<8PX3&v%~8` -zfA2mQ^oM+%d@8>Cu|7e6tdG#wu$x@FM23U;u9nQrv~kj5Yqm+cJbrzuEqG}w={9tY -z*Qczz=^qBjA+k|v(B`!$=|8z7(eb#y-VW$L*ccC9{O;oQ{n48E{1!H%B5O{L*G)og -zH*kLpR-BrkZfxlX+B$!m-#F9jb9t4LbcCrZg3NV1H4~<^}Za1SxhQDscH6@c5S?Qk2s8461&%y -z@czE@_xdZ9{f=K$&FA^_`1Lk3=nzSuXM8nu{NPAcM{Ccg=_=G*>ek1^x=9i{ZNIkG -z(Ka?T%7xtB&~To&R*5TUJ!p<*J6jp7ovk(c1+-}(vp#6Yv;cJE0KH?bX-V84^)39R -znFW7o{BJ!4cUci@)AVlhFlgjoPQ^P;#Sh;P!@mAio`~PodjD-q!#?(o4nU6D%C}ek -z0q9P??|zKX3IO*Xf*+1@6HDo!*~2bfY29S$yq%0hmWCoce40J{4*He%A0X<@@iumB -zbGSraiga3}F$P)>6%vo-HLcdW{w%j-%q!VZdC-gP6V#NM4QF-ymOq92%Z<2B#$)k= -zBP8xUe(>P+pjX>`ntpl}ojrT>_Z3Xi<^#L@wk$SSUj=aA+Rpl}edAv{ -z`WsNkK?u{~nXn+oby~1lpt)5)eFzn1MVxKG{N{VwFsqU*;ys6^tdg4l{eX3LL0(=t -z*~heH#HU?9VPX#d;PxSEn+)NntfD!kzN71J*(|FWD;*)!8Q4A{VrleEAPFZ9s-wOv -zYg-=YuE^PxQ*~lv?V7q!=&hlQ{T%L4tEj(~gw6}bZXqHV>)^Q@sCB{l -z+G1(0L49DZ`dqC -zu*1PR&O6)VI|s5nY~l5Gox7{~n-{Thza2HkCsCQpWS^y}%cpqYl9JZ(Xj^E(OuW;|wH8cR{L9BE%-b#+9Pf7S3E{zWwgsv;H;Fz8;;AL`*Qg(>J_15oKG^mN6F? -zZ`u?YO!SJtkwn|0hDw4qqz|_B39{tWO?9FeDPX{3QA|v7vN+OIh;18VN#9USMTKJ_xG -z9yF4^t(oJqO%}r-K3f#lslfHz>)51ih#y8eC24P7k~eSA7yRLUe?t8b{Rd`pN`vB3 -zzpzb_!BzO=+~Sh_CQafo8&_2b? -zzv6~-+S+20#>(UjXJ3$Vt__V{zb>vY3=WK}aj(PBq*X{oUYn5d?m=qOpj)^zHbA!d -z+66vNS~WYjOvN_u5=BjS`E -zH-ehsB{D>5;>T7_B2#szlk?&;Ofo_ZJUjOxTp}TKu1*Hq^2@PJx!YO?76x@>|H5YO -z)a${fa`3>lw2O8mHZw7D`bLLr=6*IO8PO_-GmZf>sW&EgZ)~Yr=Zr!Qcv{Xn8IG5n -zh$ubMt(z1=N^fG!o-NZ(jL||a&&02s&RVJF_u1W3ziQWgC^d$@E(DM9NM{r=@e=5Y_=XIlzeAWm)dzR -zRw{;V3;!(*Tr2&zF@JSh7cOdIri&Bvx8}dj`eg_abrja`MR^>GZ$%$~+&g<5-X -z(}{bDTCu6Dsy36CSA9TrWS*W&z1)baKpx=IEF(}UlVg`2BWt^PFg7VwUejR+fPr|{ -zEWlH00Qbd`rL#U~qw3+6CB2KF-_YpoTF#%fggN`U*AWv|j=?~L^0!DCHvK1mz^1n( -z)TQjObI6MSzfdN7dK=ySRBIZLxJ_Jc@oeU5QzDx69Rn3NoX86LUqa0S2 -zey&+AulLvvYn|&s?Jzp{>CCI{`K&rz&E2_!m#dH9Z}t%_SU4&aX>p^SLjN++t6el| -zjdHvT)iR{;PPD4u^NiEUs(+a8@Y`hk-Q{0wGttsMRV$sV)mKY+UI*UEd`JxaEmFe2 -zWGid9HiqkLZ5gevN$;fe*3oc9-f3msabAQPopYeKd~TX#>929=mRXL>yJl(9Gc|d6 -zDYaqYGm}$Ey|p9j9aGS-?nG5>Ze0o24F8-;hVO&C9O+ox36L(0n9XaJ#5zsX-XC^q -zrjbhwxcAgwq|=}@V#sb2Ia++KR^PDNXN|Z>lRGqwD;JW2e#Q-N#*yD+tMpTW_^b4F -zIk63Gos8yk&J2>AyZv7>LrtZ&gpb{R?V58o`TVQTzy18h7uT=8eevyQ*Vk+md}G!^ -z@BBJscJJW91np?1Soai0MpqlLTF0{BL;!>lQ>}u*i>?u8qMTg`orh(ebssu*Qs|S1(!OaC)_E*>eN7J`ay!vCjyNkX8 -zc(=tQ6!D&Ub(GQ>B%;Pje^66}#tFSqum*;8y7PPixmCn(>RX(W`TbDl9_6`0@H3t| -z4ToLhW!tqLZi4S;^5w}&5d}>Tc#Zm&!lQR!ydA@RN2%M~BORcbpVCV^^2S+j)U9zP -z^uy?z7jeD&@$#F!PhYB+FXC6ePvXhE#TGs6>b%XNa?MQ;yCJH&60S=p9{uN%) -zgyGTIg?s-I@kLb-+LSeq`;(O6r#UfDI=kjm^k}7JtMg|8?ZVpo3?Zhu5SpyQ?090e -zI3lFI*}5c=8g$?c}JBu`#Rvc!|3}-Pm -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 -zqelJNkrTfdC9_oj^dLf+34US^iOod8WA -zh8qIitgY<>EQc%82+GU{wS`SH-Xr_-R^w>p^!%Dbxf3xLOQ&mQIA)4$B8w60g(uib -zMvBTwL_ubkPS38nQOi?05{SMAnx)q@i50p$J9A|=q>~WdNhQfyjzFa -zlgDz{pv9%N_{o)~;I*-LWP^yl -zU)j%6#|mleEDf&&iFXr2gjoUOH0aFsF-lKm59`G`CUV$m1i~zMs?P$t{Q=BDU{;uu -z@k*S~Ow#P?2`f@)u9sb}ge(xgqo)Q1oI5eFZn|ju6{*xKrJ&_hB#10K!3ZQq7liQO -z{j3Ah!mn_!WzmXyvViicQ72#}0=^9B)q0Erp$g8QI)v8DIu6C*W6KZ$z=oh7sU2cY -zoQ@ca#sfm>0g={d4H0GLA?T>?0nT&apqg8Pi-#urN}o(5d-BDWzWxckdvN7b6lE -zT6W#YPAxL_Nnc#H^wH#T*5}4g6j3-0`qwBB(+fcfMY~Bp$FovBCc` -z@1{))wF=RytaXJ#bY^jLc}}C0(M&8Ysy7&-5$iWv4`Jo}ZmkyYW}}$3dFg9)V9-S? -zR&UHwfs18&$QKJ7uf>^l2cR)dcHps{DjiL2&Y%dR*gcC9Vbr1;O7qe^i&LXw0zmWB -zpW%$aeD)oLuA~i_fb><~^v^`!R1$l|r))sx%JwUgIQ4?t%PA3=9-eu>fpFV---k>} -z+S7>Y#(Idh>>uUEW}0maraL8V8}RA8hJHq0*{{3$K$#c#kwhyRY)PTuJLs!=Tm&S;aXs -zYqXdgK!S``ZyHebo%UmDd&p%lSZgG<_v6!ebJ&`eB$8Eg^wLLluqpBCR-jGVLi6yY;+*>pLl1sM+mD;v$`OMB0dz`98zQ -zIwqEpkWb8ywatKuFAe3UZ|J5fb{7|hBpI>(%^MdV?@cRZMe?p0kxE36iAjXY+5v*t -zM+ij*Hzkf&c>+x($~1-}74|hrOC0f0Hc6WsUI3iZghqiA3|Y*;jRW?0O=oZ8433!R -zIJDndIWEcVbV5NHs{P#JLM{9!gPR)zTRR3CQm0v}WMf~$!C!gCBNYjvFuAGPFf@`y -zg-vMg{99|6fO{a-zlG3Mv9?KIxDrkv-SAN%aVP2Dv;fWm2tqTZ_3fTgjLsZ7VAl{pEfg5vSfwTMI!a -zNRw+)6xFgMr18G@)tf;`L9`k*1WuG&f%N5R75HfyQcEHGks5Lc}WEe&>{Q$$&7 -zxMV}UtbCygd!Cq$S?VB2;5xB~TuOW8Ol4XphL^-u^xT#d?38IydRP%(;*=h(bhq3IRk~n}j%sL0k8Ew>#gaOSrRPG!D#=EX% -zu!VoHW#XBom$LBnc-j$)GdK5oSEKMX3T`^(wP8raw_2>Kty3a2PAsM+VK1-wb>hj2 -z&fM?UnG`G8E8go|Ar_rJpTPWz)CP;sX!9(COwvLlF)~b@^DrK9eXWNpQr-czA~BSR -zFud}W5&i433zmVt?Q(CIolXv8jK@VblU3MonwBQbq=}@e-{(7kz^+k-jMsB-h;Etg -zx((xWZq`s6<}@aVFbU3DR5Q0Eq~(YfXrfJ55C-rEE2quu^%a}p -z)yU_USzEQXNQpDUKI95zz^6Oj#_^!>6uE%S0!_I>)V$ -z24mGYK3`+NUFy4UcXhj^8DLu*l!8%4-2i?Qw*=awR4$AHOIIW5*z(g7EzMiK2j;Vi -z80coEiHj!dq4n_9AT@8fpZOa%SMxXhV62EC%Tn-*dRZ-K2?={WZZVD5ALjN^!KR*Y -zh{EJ(WQ3hm2N3VwhMCd+c((HAMuWeQ+W1dv?FgzPk0t;5%`@^3t!$|YODVz -z2Cza19a|^Mi!1X(OYH@3TU>&l(0dhr@DQf0V9oKXCPcu;{vxI-sQ5FS^=0CKlY(s+r~SJ1s(gOG5oKYEX)5bd3|OR -zn;pJ4%<6Yk#k-5C9Z1+i%n9X7|r?jjO$T)6;sK#ISP -z`m)ZCp)*qMisCc~OBLxCa@lNy+^ -z#h3xCotuR)j8~d(F~I@{>zAbLX?|mTEl(ZTEdKFnV*7Szx2n4MIxx02&3vQJav1 -z)&hJ5jDUQB9#0|$oQTSZO7yFJUMkSi8Ll;W*&%yQPoz8uX@R`}id#c+*yLMc>H(>- -zzR*LSBfkvs#IlsmF$%k=&9w)SwcfD)?THt1lO*`H0G$1-Gbu+LB3i@9s@8E{L3U)R -z+rOeW^uGJ532ruw8d9{xUB!ldVdGqtILhS5d(_vr`>sEWSZIQacFU-l$im+EMNQrp -z2Y47(v9dp+-Z{3DuR}4N8u}{{$|N&lHEonq&15t8!l#)VIb9y4HGI1MtJZLNyJiavRa^*;qub2r1Z>(Ir2Q9Y?)LM3Tlj&D05# -zBSW~E9sP(}#C{!YpHkW-1cH}sV0USJ3x@wNIkv!sKPnC7cqTVYX#LbgM_ -zhpRSIq2ccsG|`|r;cbu5%!JdGc%~c!nD3gmsY-fO;@$Q6mm*poB2yT-@1`MpO^F3#+xq`go~GAp^}d*W<}rs;#qTntoUcL@Npy-O)c -z@86102bRGhcXl?&HN3qs1gt5qNkSj7L6#`%yToN~i*#PeT4XO>*3LZ%e`n=ORUS1} -zD|ZGJ;ZS@ydyO~g-bkP?c|qUQpCK1|J*umk9jsKjyAL{rd9>`a+V%<&5?XrzB;$^` -z;I`|RMl3|azTgh4E3N-9g^%br^eQ5xj`-uPTiL)0g{EfOR_(iV=|z^^EobQd&PJ7( -zQ6E1qUUI^S-E+xo>d53_wpygS#Uj%0>KHRd;jnH>W!Nd7wQ^-xPok_Z*L6wOrZA~a -zd~Vy6tpl3@*GBklGNm__fT;-r9d@Hg^H6t~sss)x?DiIalB8KYDte2I-3$7z`cZNUw7Hm$bR{bHo7dIy(q^bj{gm+ -zyRS7(jp?H^R`#b3{Q)BYXF?`7ar?fheN>dcATJ&IBeX3=_-3d -zx?TU#==}2X$#NXFtMy>FKPVx2Z;WuDnK`jBIGyS{u7N%>^mL7;ZObU}qV9_56P@k_ -zIi7dEypKiETu~&59~uoz+wL02>k}KL>#pA@SKx9cC;Yc9SiC}py)4qG?hvu9FY5Zy -z#R$;|4DZ7FtXM%bBSL7o$*Y-n-Ni(*sW1Fw^!rl7rju?ETz6k&!>BArbS%}qKy%;= -z^f~e2h&rSLJ0loatZYm${=*^xN>#m&6{C~JBaJ6_*=%>%V0VZEx07DvNVfA3t)D&& -zpPpZwZ^@$GhmJ$uRFZY*WIrYHQFbQjx=rDuA5kUkraH#{J*6`K=U4O|BOU!I*h$Ey -zejUN)5ctvCC6wy?^QauPHBnLBL;nRfUbQ*ZN2eTx?Yi`9m=Ni32IF?^#WGG;XG#A{sYHwO3ue`k# -zMscT%7WJW>7Ea}EG835?2)mEsw~7(CnbrD7_dehRS?}xgSR1*lCh1bf#}AG~5g%;lBK);1V2ut=?bpa-F-Y~XA9 -z;~ty(pqFQTZGb~)0H|mkJYRz^*5J$iGyFHc{`51fsK@Eu)nrT>? -z&C@;8$q^oD&(Qdf-j1Svwp5&j?^OoH_ZX*|%O-X1N>33zlFk*m5FG@n^k6Vvnzi)J -zzQCOaDugsMdt!U8L?mXrAJ5dPedDFh(`;+iW-EyGPptdRlbAZ2b!_K_>;_&GUM4xj -zr`b4t^AyH4&I&tHCt_8|MWS+9n|tJtD3(3pI7t-JC8b3J19i{jKcaP<1yhy9#8VR? -zH=)8zh%ahf=B3e&Y}#UMT3`GwOecCbzdd| -zDWq<+r9zsa65BG6c*xhYeiRp&W< -zC%B(REDdVIM7m5`gkCgp6F9iU+GX{QD{AkqIGxJ~D?&Eov_2WE2klTiysYg)s@SAu -z4ew*P=(?m&g-CBqfK7HcGe)(1e^$vnZS$GzV53&3`0`?yFpB+>>?Mc0PkU@U{QCQ~ -zi3dUdTQ~45(V@uJ)3AA$BVM%O!QF^dH!%0Mpoxfj!V#>OHZ2K_roH>{??DFHN~rgf -ziuM0|k;m&&M=<2M>F+UUYq!QMp5ZuLX(t|gvoMACw(+vlHyeq#unUn9XfRV%e9@z5 -zHfQZr8YdKY(Lg(A**Qai+)oN{7a`Yagrs;@F|)GO`^Qf+v&Rv6gj~}qOrC^tfYb10vwjtEkX*9r?^2|EG890EyBUE4ePkw!w^9^k2i&~CF{1PG4z*f|rChT|I -zsjm5)&Q&^UDXQX5Y-_#&>4&iB5!@w9*OV(*I^Px}}5y|(kEI}Q1+ -zN_{h1evHt_UHlWHgnZY@TA!Rc&D)GPtN`92aL9^|*fR470sB-j?wT?XaZu0FGSDcJ -zxAnD+vr^KTjL}W>>_-p(m5BI>>iHM{%6rQ^OPYob7Y;ve`QEjz-{wPTz3ZbN|M>7v -zmJ{*(;qUJEy5<_^@^x4d{YAF5-{H5?Z}V|2tKY)!YXbU|D6^PWiphE_PK2CF!N9Zv -z!%397E7by7WSlj0Sjm-|cTqd5V5-bPVQH=92!BIsUC!GK%&BHDQ|aDBa3)l%L+VVS -zBT56uJm<9PO|G@o?>sG{l!Od;zSni8j43aPH{)=65_g3_VBJ1g-b94?(gZgYO%U2B -z!IS*P{1Bf^G8a>X0M`$}6R5UY$XEw&F~M(SBPOb%?aG0#X(;l}goRC;69j;61pRi? -zMXQ4IV#2dqlpGd2C%IB&0u`Z!m02MSr&klhpfY#`&P<2ubT%UqJyIE>$k7{Y0R*;g -zic~u!#2|sGL{{-}3=geHpg*F+g5t+TqSlmZTQ-FYp-Y` -zD-m-%ChEYRTq^AQb`;KuC?2(YwdQp)^0b}+U@#UyY<%E?Z#TW9jvw6jkR{Ww$^Sp*4pjbT5|;F -z*(j`*L=OhCn7U^Pacm#^PBhXeV4}XJwGOP@XPrpB=xqn -z%#L68&wq3;OTXi=(a(>=YmrUW@#_x)5tczB>i0iNE{=Zhh&8yjN+e1s1&?1JeRQO; -zzu-3;64dETq(?``uOHm`2kayIiab02?9~^aH!^>V1_bNFpC8{NWTBe(b#3K5k?rcLc^MTxx-vGx~sSy0$IrkZnd -z?MaHG*D=TNLz@<1Yr<8f^qE!a)N-^&MHXgaWh|=n!-B7(`sP`ghYxn0pwqQMJ|SE` -z-g8G5jwt}NUa18B%HV++F{_j5Agufn)e$g1?_cJjXNVS39?K54P)s$Cx4ggYM|(67 -z-_emSX{mZ2?Y&87DYo7sji<6X9=uJD$`mVi#Ym+^|5SJ77ua?Y -zsBMR?uhlvke9GHg>g-POX783lcK^g4{pq(~ezDVnWV^+hQ^_2Cc(ik8^1NCC^kW`j -zO``lAdA{>Hxu;woZm#a%?qJZq`U4aB_=rPEjEZz7OaR?I+P;a^9u{e2%p-3~OY&%{ -zA^p}LoSw3rF(!H;B`p!ELsLI^Wgpog#>-NLh$NW?m*^guYqJ48+dM!;%=cQ%($QJ9 -za{}q7l5=uX&^`&8M3`@-y#ObT~cGHh<#xzOqROcUG^R8P=h%+1gQj -z*V+%;UWz-_9(HpZQ{cUH_s;Sb;FGrC*MnLg5`&=^JAdy*?EljKf!|WU|EQXFKhb!% -zxRHO}H%dv*G7oR?ScX-{4w -z^!s~~Xu`vX504T>j0|qx%?i -z5cB5~NqsnSpz+&$egDW4|Ma6{czzwf{@=}~5h?%C^>s99uCM=h^i`V^_7V6j{ZDw1 -zSm_t>8+1PSDDykOitjwe_q*})W7~TXt7Ax{V@`h`?N~qi8xdP>B1#hRoVEgjx_6 -zVsXFvPk;4a{p!E|)qnG=Kl{~x`>Q{**#G%IrvLxH(f|Gvi~03G`18N>=l|ZH|J^_T -z+eg3tCn&fF|M1s;`s;u6>p%VHfA8qe|GQuRlVAUXfByG={a^h0PyhVi1>)~e;cx%* -zzvt@yW2!=re*KSs{g3{af6rp6;s1ae|3Clv|K-pBw#9z`C;#C4|NP(o{!jkw`#<^b -zzWHon!{HK5W`(OTFzyGKI$M1jnpMC$!fAsw?{~zD~^56dcm;Y}D|H1da{J&eIF8`AL -zwXgn*fA{bFi~rX@wb1|XpZwi_@psn;U!{#3)-OeO^lG@C{)hkYfBdum^}qSgqNC=Y -z{io?sQ&IW&^@bd_wv_4AGbCG;AKr<=|7La%oe(60JU_lBSqwYWJN~eRPmW_nD_Lp= -zlZ38yJ&&&RQl#v@k7s9 -z6|=LAUDKqE++b<2?>Rrd!y5lBEn4V=2b`Ynn-z~Tw|9;oJlI^~laQte)2kaY+ELp9 -z)}}u1wW*U#EJkAYh)~OKNj-mtm%C9gzQ&q-K}9LxW0kH>!?Wt -z>|%@iB-K;zj~aCpB?#8Z*U{^v^NaU5{}~c8#iqvEa1Co59^HEwLgJG)X3}SuzS~&n -zjR@Il{`v74iTHns1p&<_-eXHJULOM$7je1wkM3{beeeGz?c^pa`IVQ&&9VMhkEO=rndv0^wu$>w>}qoJ7hm^d%p8_gW)9iz=NR%1(SclwCuBG -zDG^Ga7DDz`YcLVeHpFf%@*#Kh@aR4_zLl{5@x!C!^7m+id_@1df9IO4TK~wuz@4O3 -z-2`e9V7X(*eN@k<)Zpp(6#u@T6VXeHfEC~$90lK929I8UcNRQ*J$|@I<0kpw==|)# -z?MAh$;PHC3^DWgL1y9ziU2LiLIC#2V?ef9t{lB7v{BUiE%_s4g;j8wjqBug!P7K$?hO)8{NOQoorHnMSV5!5@?0nzV#tz+)? -zo}7&`q=JYLx|JGd(`CfaVTdGV%k(h|o#IXCtd!7diRakU_ -zHfSsok(V4EBGcIq*6Y_P2y3aJTI_vWvtD*X8Hk*@thV756$UBG#v0Gjqp$g$hpApRQiO$$quU|{Gwe*7gY1S -zo1d4-Y12jPJzNXveuh=lyy@nJOvh8Cv&$5nqp)lm)By*cFGOjUgu~bE8(Bqb$SQs_&9c1c -z*6{IivJ!Q%hAlc(&r&sCLo1cY*)o|oYxr)_EpDnTtlRZBZn|t5ui+9U(sa6BF%okf -zGSj&P4-GP@PCJzKg_@F-sNfm#ytLktso-8=th(}QgL+RiYj;ITDoGRTydW_C7izZM<3b|zFOaPMQ-1{$N*a-M^yENAUd8`A||53>@C&L3vT`jFQqvD>|Q4I_Cg;dgI!tY15|1 -zT-?akWETf0q9&cJgLH6u5XW`}NWbPD5mSJNdWtgSU}3ZYIW1S*!WU9lZzA*#a$K!k -z07$`^(DO7y77UZnluvBk7X8+o)+6!DsZy -zhZr4@Zh*q(9Uu_Cei)lsm3xCV>-eMt4E*=D$8%o8ZRwD9blj-PuKRu{z}0^?Qi~2+B}+MhRE@DO0&E{NUQ|%f$75oNK080Z1A*hui#WrYw(}bxayf)C -zC<6peomj-3$q9NAXMqWVt79vBFjij=YF`%_yT@p0u+GA)l|Ou=z-9UEcMeGk2lf&> -zQor5q+On5^qr}xwQqU?SjqCI0434oeQZ=rj5UzfJsN_1LE!Hr#I!WR>=slS0b`1eG -zJ+3)!EB_@9d%(_}9AM6Kd5}*(*+UF6nf1K!NiOF084?J~Kxa1YiL>5fYZTikQ??=( -z=`8KBBu*O%y2s5YgI3!-7ga}_2=i`@V=ak6ZYBp{8tp#DT)1+bp3GgAD^r4l`2=d9 -z+{CHbO#_*Z@LL@0!9ksQb34U3S%`&*(uTvKyRwY>vJHl7Km?UVXuCiZMJo`n0rA?` -zFv`^Fk5wk11pcr{vxuhln-4U5mjEz#4o2&(MfFan%wNtJyG+ZcGRRVCl0#XHO=z-T -ztolujXiq;5jHma5qm7U@d(T;+_GndRZB-E(m2d}mBk};RoCYL|1t7w~Db(U^5u&jgB7z1zcTc@8umeZ^k -z5xI7giFs$1h^93hHNSF!7^Kgv7@WVij-EeQ>Ul>YC0lXi8yTF-fP_*H&3& -z!-VgfkJG^r^9YkvE2*zlsc3+@eQr0qmr5e(Ll$dG<>|At(L!Vy%U&~Vwk -zdnwI9E}>4>es!4V2j4N0KA$FuFPgujaZ^a@FnxYpDC2{7uWBc%tpiTYsFn|Q|A_PP -zff6WyvC8Y+m32++4<3klFv-NU-dCTx>{-G$Wi-|=*If~(k+8-;r!@_;h!H(+XIs!U -zK+Pb^59Bg!0#T-86y7)Y@b@_{buop(^8J%*{0=YYFO>eB=ldI9Guofc<79O+soGd9 -zt4xODb^7DA}&MP}FXayvL89jo_`(k8uF=cJAW5f(|sb~+&qIV!-Ij+@ZoxY_4cJEjcUsP`!&nF||uSz)+ -zh$w2fW$m?T*|!;yg{K|+9KqDUTOSx(m4&M -z2-5=&IZb>GZ)oRvuf6QAA;5W|Y4=Syr{6{hi60aaa6`Ks5@U=EZ57f&k~C2(T)S}` -z+qVm#XHF9CW-J$?7W+8}5!YdN)6%)I)9vaTKRWf!Q)!EB-FBA?kfY`$!xTc^R{52=3wCYtsHdNC}G(X -z=1FyHJAxQ*3p=%IBr?&=??#R@n$DJfdLDK;>#liJHi5BsJz94KI)5A2BH}7ej$*!WcIY1V1gq^%A0;-- -zPQ4g3XqdS`kv04M7oQ(jY5`B(+uPne`c(Ty*CrQ8eM+N^h$F`9$oB7qm_yKu=a}S5 -z>QMO~@P-R+>i#o`r@}dpLlwTuba3+l$~5Wx5iRSz-#XxJZ4h7nIvtHW$Ye1EeV`$J -zaP-mh^QW7Zvv=Zl3t~{y$Xk-!!6u!j<4Jm`e;dZ7f1P9z0UlQtM_tm$lsf*;{y&(Q -z@mT+Ne?%P+nM|5PKQJ`UyZbNjk2Le~d^#@nMzXtp@$vQbPA}9KAAh)K*dSok8*XK1 -zkJz+nQI5-O_f~$DA#(DRdR~cYzgYe9o6o-Z`o*V52*)}X)hJd(#i%tRv3a-mM;0ZW -z@AGRmimgW?j8-wN`Bd(Gi9^-s-EOaIag{e~vxd`TDiZUEfk_3RnV66aR~bMN&ozUY -zsD^VHcTrb}iz`5NE}~T-`CY&yLab!tYVTvw7UhdF{oVHB0NY6?tQnm8PL5{{DS>djG+P*fZ*aS9ZB|m+6_-7M?m+VTi(boQcmqyN9lGN -zur{sh6k|XlhGb^AL_MN2SjQ?%Wn&v3tURCMcnf@5b$2F1defQwTAzRQ`M00H_~QE2 -zw=cf^Y}}@U@fsd0C+ob!$?&MMzqmv6UHqPrHWQfPj?RZyzyC~-L)R_pF%Z9@BcWBA822{JwG#duD25ZrBMEw*>FQukx55;aY0@BwakBasQXw -z%@E-~WKN8}Kxa3tluburt5_@@HMg-0w_a>E#PQ&~K$gS`ep%~#e#a8qv5?$y -zx!Xi>I6nPnmpIJnq8I7FxBZj|2JHPVmHULUQE*yU@y@RxGb?lM5-zF|2sO9%BT8OeCyQ5u9-<=Z0AzI&(CmrVCJZkAYzeB#>xIXRr~i;~%lfW1N_Ott>H1ZG)k^P= -z6!>EZXU~tndhzY&f8(?3pM3V&r^g#N3U}}0z~aM@7Gpc{di~;IQR3!-I^Kxsss9V7 -z+wR=9ERmy+F3;}VxnbY7tcz{;bL;VC?U?a2o8fg-VpFaEEOMXz5shQZ -z^~%PuVVSM<`eN(nZn+79<_5vuOjFxqT)2*UYh>+9?-@nn!{^6+gRj@>#Brdt2;X4= -z{^I%Z$1lG6>a%aIzy12<;kuuG{j-n1`0V=Q&%gNMU5OM~0rTv#oYJyEJb -z?CsO!(T+27W1I1dTLSeAf_=XcfljE%rh&(Y>_yWo?;bz%KlPpMtoGfHR!uu?Wi2}!N!k+sg^VGLLfyXqiobBc)GY3&=6yp^BZ^&**v&0?iS5miQ*9tHmwyt&U< -z2|wSclD&K;hb-;38O5wQEh`u@X9qm}c=SsM7UM-T*>e-9wbRC+VtnqsgRMU1C{H5$ -zk~VZ^f^3i+lf@%vB!YXJta*q_LNEKYX=K!i&X|@THVE1|?9H-xGi$UxkeT?4i#wPt -zZrVM2)0n%ifCM^6YPy#)D!wR?LLJL1z}sr!RG#<9ck+=Hl7z(SECh4tR3?D -zF2_~toma$yrgfl?I$~p2^4eJl(h2s*xu}qS)4h4JhMBF_F=4lkX~oGOAtz|D4?yIVUdd -zrk~RXoPPIr7;5AedH}$gm5B8@49XyVvXw8 -zqe`qYwMuwhUR>3A$_}g?iU13?qDiv3Q;3-j%c4nqX+xZ^7qSIwN(!M%IqkciJL6S)`(+6TlV>%`NvF6L~% -zOzR?zV@`&%R-uW%TG+Nk`4qYEvr -zjPL`MtkYV%H{H|uPr!p?_Xd}Tt6W{(p_ylU>&T^y%A^eV;|^E5z%NQPoTVWjUSM7t -zFlK9LP^D{(%m|wTz6&}*jL_ahDSj4|^0txO2eR-`_A1uO7RU**4%b2&ofkQm+ZUoH% -z)mM2v)47H4(N)7z1ELa`BCxP*oh8Ib5zvS{RP#a}@CclV`E^7qkGe^R-eI0@S9Bqe -z^M+d3F&x?e_w%pD#0-WatH&=s{rHQoKl$s|pMLi3XP(I+E8{tDMc%Hq}kAJoVDTFo*AYNb(Yu!gk*@4857Ku4fl|QRGe`BS(O_G;)K)G)S_Wd -zc-?cl7~2X@|p}zET=Z<5f_$#KVd4q%BSe -zGyxz`0@E9>RAVY&=L2Ctgqi3es*9j$MBo!TuU!x|3)5p;B#Kg(DM!|#UtB2_R%td9 -zJ4e+huF7)EQC_9l#aijlrwOM;EyRAu#f=3>pZ^W-nio|iI=h>k8{k}JT~U(!xqneM -z#BN@L_b7<{An9!{3Et?#wPq;4hO_sJrm04gx-RL6o$n<|V7W6nLS}Zg1iNu}0eNV# -z&l*gm70yYlOC?z76JnC}+{&^N^H|t5I)r$~qLA`5paeBF9gTzIZ%1!77$T6L7qJ#8 -z2736n`W)klbvl~0m1EA|Eer=O_LTnoAq0ZalpXT(@bEa_{A=jY(dkQ7bK;9rqNGSq -zO`J0ciu85xOLYhin4l4Tg#*9vo}RQi5h?AZ*&%l4y`%GGNc$YB1RY0k|H>*}#5!e% -zfMbft>k(46PdeWG2Y-uZ@wyX862GW%WgwA}vQBh}rM$eX%kFSw6i-j8wbiV!UFkJ; -zj&N0)J)8kv%`b)rUnv~k4a -z^{r#L(c87bn~9m~YB^PL(FxjotGGy^Y&cmKLGbiUh*XAAbrYpw`jjN>xT*7Jt1%vy -z=OW$nGaR4c`i97E%ff8*Mvux}3_SK)BJ{ST+ikW!I(o9#+0b@mgEv`claB728-n}T -z2Su%l%Zsyj))Mj}13{`Xl1`KfcLT$GlOdjt{pFHFi=|B+%+i<-oty-YX5NjbEqLd2 -zl@!ouB23Qt*;%5(kQGX08)l5JiH3koRm3R*oQs(DuS5v>=44KjSnb`IYqu^LaZYri -z|A2dp`!LjUYR~(l6x>0>oXT6Ap<*&ULONrTpF*vqyxaVhDwMIHU!99W%~dZ+dKuXD -z9FMyOb2CD02+-jgvB_v{X+eOvB~#wZlYOfinSYB+^!f`%B$~$yVotJlxx6z~?|G=t -z`I=CtENL~flSZt8I$?b+OX27Em%a}E;wME@0EAgR1YFZTb;u8;}vAb);* -ztWB$%w1G}=VAk8j#;UhaVY{*7E1lkbO!Nj*$Wp<+D_x^x*&@y947)7{5)Ovlzua8wv4?w3w}j@9`Qr<($5!NZojc#(wtA7k6oEq-J?qq?+R7BF*;FMG{Uv -z#XUhaPDIV=N?(v5C^Cd4A-)mTwfo7t$f&F>R?go}7jNZS=AB1j`X-aCn$V@~^w{VG -za>$t&ms1dAZSlc2AiDk$G?TO@nS;5wGNOjz|HCvRX^tshi0lS*avDN7IVWP2bx1a$ -zLqBV&AZTZmu-VBiaw=AEc=J&WeGjf{?GH^6FhuIM3Q;5UO>P2L^Q`&51@+-v$3I-f -zs#5b*+)WDbQc>6swx%$4VDy-2Q6B6B{=%hjWI^p_?WKppX73+#lae}xcbWpAfHxXqG$#X#BWtS*TJtqy3iE6IFU(sqKj5yp_3 -z$It#oV%8-wE-V^iiw?w;k6IaxCd7qH5t(1-9y|DuOv9E0TkZkEHfHhpPOJ1i&>30K -z$w0@+czQ_N_?~~BkLZ6Zp_NB>5rXItw3onfh2T!>=g{u&G`h&6M(N9tQNKg>>h{>r -zm<`Uprp|sP7vBmFYE0v9!x_`o=oH7I#SYOu;+t6ZsErir=u6qXcLw|;Kf_jz^hIc- -zIK7|_K&JMcwqYt_l8FWFD!x_;yLX_~*KL*2Z`#z7JDyV5A&(gcBTWI3=J%m#hM8)|u#?OyBft!CCg1sHxn6x>)X6_Xq -zT|MC_2$mr@Nz#Cox)!FPY~%hZ9YGE-0Us<##J1-ub{Z|_X$~^=?(Og=eOXOe{94-Y -zcyfL@x{UeKN6?xlkwuGAB93ttr*G)!d<&>`lC}h^UT}uf@(5-`yo9~DzwOjMVp_$f(kG*Vp56tYJ~GBzUpRAsTYr(+1ale61$Fl||> -zK;|W)C9||Rt=cTm_X0PvK_(w#Q$hzeH&5JBUC<^?Z#1Mb+5=o{!*q6O_3ap0)&iX5 -zD&}Eg)x;ujEGYzEJ_Q5!R5Cnz;&|(f?t>R8A{IUmntPvsaODq!3M8>HcXnB;zTu?gm4& -zSd@l`;dEYO_#_jFimUdj(B@4i<*d>K4YZqvK9YKe%%DL|W@%97mC?xrD=}-!S!zJ+ -z@jzcim-SKyuEiAvZp0A}0$dHWv9duLFpixKrA=G~F?0qdHux-s-&s@%O+RsI7GRh( -zzl5yD5^GN@d<=*<*?PAb49#2JYlIqHlk>(Vfs@-pnO0RGr{-SVFjahMj>y}DaJ#mR -z)Jose=o0uw6wo0q;KR6JE7N4Q5PCQ+{+vF(6uLk2y5Wl`loz6+ubeb7FW9A+$vGQO -z^x8;C<2?)G8>fIg=@5cX@@s6&pb9u1@F$D66LIK!iny(}+U{u^fNK)fn!8^;w$~u) -zST)eI(x#&=C$YJElaW0tau)pUVP**G)rG#!ev1o-ElNmZMD_I1XigGI+c5FPbv^U| -z`+^R7mb`!Mhza~7ZQ(;GrL|EN9VJMtM$FSy-L$a$Fnjs@{Gw&n8l;a_rv{iD@STvU -zHWW8n!Gw~Q6P{83GBtG|2y3DG`(wU7LJa*>r(e)+I)sdfd?Pr$rqs+1rQ>wM6eykg -zCRV#m#-*Hnf}1d?L*4oIc!UT<&`9C~y@pOMA3tIc637+Hl7w6vktea}YAd|qs|imR&?+#G=Z(@w6ie}v -z9`jIzaw>Dx1bQ*B+^sQV#?a{tBPmuv5)rn#zRf|7W{hKPB;sRIPg%zu&Gkoc3-tZt -zS(oavEcwb>oBPE4VmuFw=+1rauc1#!#3@vs(s&A!79=g`M36-xIv#2{qoacafBlrz -z-}EMH*=6kPgC=POU9?^b;9OO0KXg)wl`y7-=z>l^GR?%iP*Q6QxOj1;PiZmdm+?T6 -zJk7_q)h(>Aaa_FO53+v&t#@w~g-ZXo%HsIo3%@mrnn$~HVp^uM&i4T%9o -zo~bNdC8C(QYt@n7)HtIepZGITwAx~ePk*A?=H{30fE5Bz>O}%=OjvcI&<7TNv=uC_4+sf> -ziz`~xw5GTl#k9oU(q+G^#8ilRCSv}TkfjqjR{TNQn&U*Z -zGjk_U3T@2=j~LoT<@Eeq3pg`N6MS-{6L9iHgxw`&Pq$Re!Pc_gS_3g0n?lTKI?T-j -zP>q-iA}&@p0MeJu^%kN5oFQIwFh`ocw7*d|e;_|qGt>1-c^B!LBdO;q1k=x42^|_4 -zY@>-rWWii#Z6yFdsV^R?v~KlZS|(=GaM>Sg;uLSB);JmG1xQXr6wRdy_q)>TOanC$ -zo6varFiiD(LdD9sVCKjqRB>!0f=JA|%uC<|wvBv5=zsl%j5`oIr#P}Tz(k6vR1-HG -z9RHBEB-?s$H;J%RDeqPmg$U5r2n?w%7g<*)wo5ImKQsq4IK5h-uWq2Bv||JS`brZ} -zyKtu<=xoV$g2VG_&eX+KOXvIzJmEB3^Pf#C&kqc~}-ISK3H}8Cz3l6{eLok~vwG@64#2R&7vRmA9?nKfn6_{_4+u^^gCj -zf9rqxTU7e5fAweM@%VI#l*o@xx3)ABRVnP3F=?Cz{_VjJG(qhB -zg|uvT2TPg_pCIj=_=N30D~V`*cTi3e^RR9KQ$-)QlXuA?I(TuLVhz_%FaoQuf$8>z -zr-j4wW_;T18K-H`3R>sND6X?M!ePm}y0NSwhRKO2GKr+dm2%?aiS<4_==iuf)Xy%S -zT#Uf9)tP|Rnf4~T2QerJMP-9edr7fDQV|_8)mvt`e)8yiMDik$;flsy?9B#Q -z=T-CS}-hy=&pg&CKNBBFT90ojo+~L2A-~I)dzqZ%r8-Jd`uE~M -z*Upv~SMigb!$;4r&U+j3ZOIaz^0=RnQa!tIB(4L}9W|V12+r8_b@J=PFC+O^< -zrMPrQAMqrq`7s6&iXsn55>uMswP8cwqbn?lQ%Djq)9k`V*Q1|$~D!!&4gJ;+WYe;ONr5`N=}7$bbkOL -zkOYUzyYI2GqMnf~S7kIZci3qgoGEj3G;3gNgLLKMVeAfyOr5+w_tOIHty+sNt+hKvl5ZN^#0=uI@YnM}E5fuH&x?Hv%2E)0^Ij%to-60B -z?pdAT%J$h=nY7Jg_NG5<7f&CViSEM#hCVjmlc_!uO7873^DLherNqI7^dN`4&)z$N -z3oOSd87*KsScivrjz1a^38`rqq}rR^x|THz1}wAn7Sv5aNA}+@a;U>BjnaE`8H=?josHr -zvOD}X^EIa0C`m5kM0EOWFy*&MK)0q*(Yaoc>-Kb%wW`6MxX|`r27+v0%QU{68+#!` -zfajY#=l%F74%3j3vmm%%EN|7`$krP_H%stMyAPfFGlSOiVwQC1!KH|lvUz#oR6Y9t( -zpMJGB&=p7=i3tb2O!vj}dFO1scWuJYo9nT$RSBDP&2!`x9g5Taq-U3@_aG!nW)f_U -zVK+OP$UKy>Hm#7kSYDiIm7=;_j`NIuHBL-6!+eZ0p{d$V7MLmwEHWh5dzm#&uV|%A -z(+T)3g>n*WH9Hk6Q6{Rn!x}PH`(Qb%Y&1*!hMZI{q9jj=mrFG3*37Y$8&$roj}m|6 -zMSF*CNw^g?qFmnyo8IQoRX9PaNvNBNFr#^x4SesYi~?r2g9{$cOtg2i;ll?Vo&M4J -zDe;L*Z_K9iVxF8o)k56))487HdA3~M#SH}uc69mptVv{(2z7@yl(t?!E!&@c^Tp|C -zSuB?U^(bIUa~Dq7JM2%_mh!IVb}&jL(O1`KN85BSTiRGme4lC?3zXxuNFt#eOp9n` -zt}HNRbt+qXWHfU`Ez`j$e4=>rrls9WjZpp22oneo&K4$Rw0|q_;H>EX&Mz*t5VDQ_ -zZt8!)vV4hKqY<<%=zEm32eeR@*U(vMM)&Sn8~f8!7%V?~T9Gue;PHTQ{loWYIallj -z*>r31JZMhnx2tZ26P3S$hV3rXZT7p*_UP{8`YCBzakp&~HqbL>eC!%IjP_lTtU!z` -z0OeSUDm;;^m7`AJWhZZ;RxPHqmgq=7EOTtRGH{7-Z*R-GW){Q+y<n1~teF-7urba9Te -z;@+5f(eZ?&Egk2@e|qOrpwvDn_13qy@qFJ%t@USKVf$-)f7FT?w4^VIqre(5%mtQ` -zTpD3YyT|fMS2P1eM=s+7(zBIGz+V-TekM+TK;S<8^nf_w&ShHvD?hH_-XU=IxUZzB -zqU5j3Zgd0l3@|2p%)#|agsYup$NvA7ecO)YIFjZ2d_^xXPlKs@Wp(8|bpt*93;VdB -zBuZigB`QhL6>{{)uN|Y@BWAHkI{|ccWmFt_%6YN79g8XcXI-cLY%!c$*ofQwzkT=j -zQp8}1=U-5V0xwp+_rKlrLt2l5iikh|AU>_7-~RINKmMQpuKynwS*(&Vy!}`E*9Y(T -zpa1y#55NBT+t2^@x4-@CUpVeBW$$d##Qp^5ByCy%lp~F4-+kgBtgtGtC -z$r42WV_k+HQF-xF{`L68ufKfx%TL!I|NLG5_``3%{PyMg)9*k3^7zxQzg~a(^4H(= -zCCVl$;w-Nyx9q{IbV=a1C88%PUrnZf{(4`xpT8z&;eLNv?{oZl_}Kz}S^6XXxEmt7y_9GN~sS(@e?^Q2WU_?!j_Ztmf#T+rg57rFg -zC6F}lz%elqJE;8Jp?y6!%AO;?h~^mU!7;lq$YxFzExi^Rm5z9+vbXXT3cRPPght;- -zgB@^i_6-1Tama+)ulwS%i!R$DtO|8(AnVV -zMTHYO4g4JF5$e*LjZJA3ug}?68c3A9+rUkB^w~D~UFhQOB9v(CbuIj>h@6Y|k_dW7#em)cY100&6LC3%jD0eU}}wk!w0dsmcDN -z%%aCI?zWHs7F+*NEcOF$x`0raHW<7OUOra-KV@4IL8+mGCCPYoy0%GtmNtVrija>~oh-WB?H4#Gp`AF~VV}$OLwna8{g&S)h -z`YK;h>yl2f`fW7EtbN7=d^|8}_b`hF%diO+?I$)1Z`B=Qpml-xl3@H%y=fzT5wXw9 -z=i}am7u#|Yq19HId5O+V9pNT*B7D}~lNug{^m2NUrst4o8?M>hv`%NKfyU5AX8E6- -z%hl%_@wr93Tf9r>BMc+%0s5`?PBivF2vC8Fk9{pR2cFYLAdlgsKNVQ-Y@G^Q#|4PP)jw -z@G1@hvjVaJq+0C!5u#4ZXs6~A_~>kD+Rc4kim6t*05<`r%M_y`J46TK)R@Sa(XT(qiI)lNra;p?L&Mp4gx25 -z0qt`-?EOetmw~xy3hk34-n6d$Ip$=m(*}KH1WYtCR%gdV@&sCD>WpWHS|-~LQlRK_ -zbaD_bF3L0pR@|ec196tHmYV4&Ku6v&`;mhmIoS_n5kuJqCi!;ky#%;dO+jpjV28x4 -zZ)1z-D!3bLbcO%o@J}?oGC`Mla0m|(mu>g=KU+ffJ0N{a*#rCF*4TB9kTY^|X6mTa -zJc$s;S0bQmSG$f7i8af1Qd;Taj1!~Ij!+1Ahx9~B+m1{<(4Dj64qa7MCX34=v#p>W -z(g1QXX10(e%Pj=`0bFseL9HuY|v_Y`hv{OEoTx{f<{O&6FHV%d|R=k -zheTW`!QyZd##Te##quYRn+Jzt4}K^ruO^S=AfA42%RhmZwsSUe2N%f@WPxwqRzreE -z`;`ddl~^|&%)r=1Jvym -zK05>S08@!HU0rbnahwTkDdcu2RA;@~$b&IwA7@56<%na6F{Q`@p*oKSD_f%tUUg~h -z<2%>&^&};)YA&i+ppS0pePr&MAeR#q4mJ|yLQZTR;xNVpVp}*j$qoX(qvvzTM7~xY -zDEMeX3xNHv4Dw^HR9Q$L#Wg=O5kS?8_N}_S-wEhGrerS!Zi8I-&!j!^Oeu2jDI4>N -z)^(xL%;f{AGGgn4M_(QT*YKek;87$Yf(0huib&JSuSf7zz&a2KYln{H*9)d^EN*qS -z(p7Ldi1;Pcvfnjd&BZtH044;mw@~44J5dDGCpkPDsw=|X!y%?#U!KV;F5=2%-Jifl -z)6c^x>pQKZDj%p~0$iHO_gOf1U@rI&?4&HfBL21{TFW+-6MAnVQj9iKL~mHd))~Z| -z&nbQ83GT+f!>j47^$E~^_pcX)Mw5@h) -zcbU*OG9uwLw70R*NW>$>*fTcq2ef@Y-@!^oY{K&;nIf?oIi92!)(WV5(2)?YoYA{Y -znOHU7&Yn1Gi20{=3$|jZ`zPYJie@eaaP1u!=$1Ar93W7%#@o5$!J+MDKnXcxsR^8k -zt_o}$2y1oFgf#wc`*06RG7opXYHu@#A0zd;n)qS#;sctK=_p^&a(Jc$cM$Vt6EB02 -zHi89ng1iQ^#z;?yIWbf_iu1r8b{Xd2`!I+GuciVAvWN-Z5gFkJRvfN_S+fgW3Goj~ -zldM%^gmMM=)ZQ27qxDaeG0+N0ogO8>iAz-neORFKzRE_OJIgNou -zi;b`orR0EOA}lVs)}19gHilAX^&y+GV%d4L(qG>lxe?Ymg&X86yg`#Lp8<}#K -z-JSW&+U*(!N53Eueg%`jF8{PnQD#TJef={0W)}B~jO|Le+ea)r@j*qMz%*vi)7^Kr -z0|ri3R4UTpmd6A9I;btMFgj3>1;e=rsSH)^-^AjgG=%&DCFFs!k##mn`wtA3wLJ4l -zSzBV^obbtmUDT)8!`Y|7ySyW+{OY~kVfPM3a>l%J3O^C{Fp-TizTd+A?#wR-s}S~( -zpQhDTcpkd3(KB*+5C3wW%QTzH(JPa8&&3u!>hDH{1@9ILRtLjk)^iZSVOF`Cogp%7UO~5ZC?wV2NlKO;**#n>j@T(WcyDKw2o4@ -zHOL3}jc|BAz+1KEO1Kbm39GgSazUggT)r={k}yQ%#QHb45M8EEe00OvRr{i?qAS6C -zifeC!k#Z6Z3(N1ctp`-y))Mr_4R(IvBRmti1<+W_tC!i?7Tty2=S)-)dX&zDUZ(^S -z>Ilq0Rb(3@j71sB<-|fVSMIHkRekmBh-3IrpQMPz3=f@#B6#A%Yv+-6rS|;+W?J$` -z5%V#iwrN5^=!l*#)8rnNlr*Q&&iN@+iJA!@w6FQ~M!5m|7@fJqqZ8{{l^E4crzAzA -zx80Zq%+79b9Ni*|>vFd9%HZ-wBc#hjcx)8Q>(n+WqDfxBlYFg6Txo&sdjHGf>}=lX -zvIoDGsRabMU|d}s#z1|n$P_ySIyzDIn%WvYd1^7pmp$QopKQNJsjCs(zu6{O!;VBF -zqkNxC<7%W9RiL8sio8TmoN(`(g0u|+y;@u){Rn0Z@y*)EITM`AKIUZ0MiB+C=g9Ox -zj4>?bmMrklZoV-x5+Np?jI;LQL)jY~F>76UKd8RXhCk5&K*egumaEjY^wee!TJzHWKG(!jj+J{K>WHw~3gysX1ieQaU*5Vbh -z$@B}4PAz+Vb6ee-*TD4ljW9}vBPHUK5il2vci`$Gw1tD0S(g9yB}R -z^uQLS_GT_eT@~jd)%_#z^-~PdH>6ToB{Q~r}%FahT+EOyjraupq;6P0(E!Z4gnEzTrM%cWHs -zQoOOnEZLbtb|PXn<-fPEQM*wmksEfa$rMrV30HHfMEALl^+hKG(GL2+YArUgz$kD$ -zi(l>d!IXx0PE7gNl-41M53v$7B@(7F -z{t@^oTH6PksA19u{zLwq}Ny{I6&AQ2SYb7gFzNq)gpiC}m8 -z`P_&yMoiU!FYY7JApkI3;C?1_>I5Pj*y+5ylt(aI_x)_x55yP{E~8$)VcTC~q36H; -z`PLaEg)?RyR2N0K*#drcao3(SB3g4{Cqg65q6>VUy<@^$vjdf+Y__cz0YwQ}z})5C -z&OrlzQhDMFnf+on{mdx!S?7Q}9PtWSoHwF2RDi>t#DyD{VAs6O;+7*F*#47^uInBN -z-a3$-iP>bgg3KCFC2qX{Zzm{pIpIG062K#)4Tl@z3FZ@H|I61e_VS7?J-S#iddsFG -z`GB6&YS*=Wz%xb0vzXtip_vZ0cF@qN#L%w1quH~OdPB_*kk$6(Jy)H7- -z@2WsH&?Vr;X*d&N{vFKq-#qb=paGqeTmhnAR6Ujz108MAoyv1^?ssu@K_Yjy?dQ4X -zUDTYNYygmx*XOokh~zZ&S -zjZKj#(P(I$u0UZ+fiXrGYP>(fc%AR)CD}y~f)*dgtI0!RU;JTr1SoUl=0SP;lI$b^ -zW(tZ -zYKtHajTrkVyJL$e@CYam%R=oGC;(k7VKvRS=c0&-C2E8apLn9|7%lHNyU#$-VfUp@ -zwjK+&^Hn@_^Oaw|{`Td|Urle~1?f=cU;`)z#Fh&$V6Y=hlNY!6H;w7oa_J=@{Zp6< -zs~2S+^$dr^>zCix!%$kU*cXz!0X4)YS0nH$dY+?u2Xa60o$Mm|==xVTIJwE9wqJ?8 -zif&3`m&I_iNkWlLifx)M0o|gVVSmtCMFM195v%Ue{2Hdm1+<$YXdi^Hb1)u`#p+34)oJIc51@Cw=k_4L?4d^76k -zrUR)*;(Tqt?ZY=)h_$8X#x4kUJGs4Dkd#A8U`q#)omXxmg=Tx{e-;14$gCW~8x1NSvsLanlgY>{nPdIbUA -z2#;?OJFGRW5vTM5@d5vt_gM(4>T8jEw=ouop!ahKcD8Bp -zLoKeLcEG-2KBhswSy-!Wd@SPEZStx1{s}OLI|4oSf&qK>sXM%Bfi6CCheAwGF;mub -zBV1^J&!nwWrqzMLeCguJHnC81XW7C)7+{N*Q07xU+73P}VM)a;?uFRjfZRhV)T#y4 -z5|h$Rd(_;@Nw+7MxfJ0Ijh_@b$s%WWJei7CK~~HPz`zAtR;4(cB9Dn8ua?DZ`8MKp -zpJ0jM3d?Q{?XNMDaJ|(w3=T}_Pn*= -zCNyMP?N?bvHJ)zY392@cQIHn-B%&^>pOOx;+X*qedJzC!%JI};n;0WU7~XFk4& -zIQacSzliy{Qw -z>zyk8Ob$t^)M<|(^+1Q#36EhE2f=%CeKIN)&D~7PDl3A4I%K8#`vYYol;g7^mJ0%j -zowN#A%sY&_Bj8)YFjBhiHi^k7P6Or8H`|8)=(?jn9Qv0V!t~(*P5zk5INe-4ytmi< -z23FH`l;g5e)OtDySE;HPS{?D3Oa8Hz?_o9v9q14Tus#l6ko?kKuMO=dDDvbOEH?)} -zNV`*RL%7eiDZ(~(6(M$B1VAKO{>88+2@InFL*J;IZFqJ=dK;-pWdiPfR3Z_=I|X_c -z1BTl@#g;Uhaa9Zf77KiZHNs`-Fm79`dd;ixOjm4#hoR*oo2`j}lP!r%5!(aH3>DqL -zI0up)qGoLKlQ_F#SP+Ry5L#?Rg(;}!e7JeC=Lzj{aCSE;QYPrlqt1+pZV0$kd1Izz -z^NFn+6V_68HO~&P*ygk+)HuwW9o*Q0C+GEGn5m#`*t#VMH>#X}3$k$nCI+QGpbT@* -zg_UD$o20GvT?`)+7(_mY7BJ?=5yV=@`DDt{WuaO2oLm0(BXx!X0q3&_D{%)#}nL56><3*&%t-ZdMI>j>>30bwHQDzwo1xr -zXo*TQ{?MQ(YGLAC?ZD-_5Oiz6%AsR*Zca;rDaIIK*R&*dOHxJOyX_KgbsSGLu24X# -zlDHwOT`GD3^G3brda6pWfns4h?7_q;B}^aHY4O}Zs&Bvk{PL~lSbjeLI=%k+BZ{@Y -zi?3ktC2K_lEQg-!Q*KydyvAj@GLwkpHNhyh4#dq+F16QH99)K_LeTd+3Q+ETn@{t@ -zn;hhL3mcYFd}u{I+)49)J@8^**e3~}x*xVu1@2_nqZBw3h0zMkmHPhci6TTIRxIvy -z*Lq89xuuhkQW^qcymxUO!o{sBz~H&_ -z8#TD-31_BVy@P$(2wM~QJa9oPF*SX@$mR%aYz(#8AH+!L>?fouRi_eX>P0@AY|_p! -zt9Ft=S&ie~i@jnS7J`L|tN~3V$B6@5Qj`xS7_|XiWhtoPY!5Iq+T}VH%&^)#`>W@O -zG05_KE}rT`734l+k_fR3p`XcKTtLxWK^#rxUuccgL}^gI_>D)R+eols$f+Y17Zx7v -z0RdgwRkfk}{bWuUa3T!t@02j(ker7tu8dDycsQptvH=xToStNPL`D)fCt|ZI7zhad -z8wDN&vs2chZYo}v>pp9(IOgusXr_nsfu)XNqfllN#|@e6^+yR-Aqp*uTRds`70t6T -z-5W)YQyI^m;I6r#xLLDZ1pWcdBu)!>IIj9C4%^0f5mD*lPBxVc>Qu4O!epO=h9ncW -zIxi2^3?&9L!1)18a9AsP=-V7C4*Z$b&`v$uin^doC%DqnQoL`9B%5pnySK4%-tO>x -zg1K(4mj6cyaG43G?*n}G-lm8KyWAdPn=s3^ME%c)LL_FL{m(}>XUkkDe33RxwiD0; -zo~dINNF+GMv`jQx)cYgc4SJ%P^p5-nV_AJ>>Okc;wPR*(6)#6T!PJ!VU`M42Y;LB% -zO{BW$05PBmGKGdEi%T0=c7rHfDIQECpAaDc=icLTKKvL4o -zD*=|L^xOl>-ND&S)44m_qgHB4HW;E{K4J>^N$W0vcP4OLz%P&vYQp%1WLbe8DbACQ>Rm+xEEZktVHiOv1xba_QbGU)u9aZq=r7gcG|qSPDH^woDa<1WJm8c -z{QDFN6OX!7mitgIJto<3KvuJ%od%MZdR@g*#NlGbiIV4reqUIw#(O?T -z?b84Ds?3~%3%Mue1w5>boselO%w)4g-h>@)XH&<6QFu=J~o3$$W(} -zSpos>g(wzP9KXi`<~$~(`>AGijoXQ>5s6U+4J!h2r5e1Sa531Ut+qDb2N!9p;DS@0 -z-i5_n3Wfkm@M8YT1NN2P{5ou&u+y7&PLnjWH$~uzOCmqZVNQ -zar3){QPsdYd4jK?mhx070`A#>a1OT*4=|Ghe@CB`_Ye5V5d|Txw9)43?l)>!0c4p^ -zTTXAbeW=j=-2Bi-A`bozr^whEEteQ4-c~Yzo`4eDC)#@=hPNn?+p{Zp$XT;H3}4oY -zQZOfSfMneZ6m6a`U_28phviQP5n+B$^Ug_>#^gbiwp}TAQq`)tK}uiwjUT$2snQOz4sASJLDisu3^oeO`Zq*e^O#Hi$vqR=P|Av>Na*c5Pt1V<4cplnjTs0o?HdPWfwJS-;~`QLq3Tb?|r!67K7sz -z#M>AKn+W<(jCDQtu%12or%kEygi{qkPxLM;W)oy9{FX$Q*t3?Df1Y5d+c7YDCsctR -zf=pS-4Z0KNmdNR>Cy^O7rCN3lcQFrA*#O -z!ORXon6m0Bpa^ea6FGbG+~igP4q~`7pD40Pqd^Qo+55;JvXy*KTj*zZxDae;7VnDG -zLKl`DK(u45D$ZH8kAyhi-)e|V?hx1lIv8>Sh~PJ7wi<9^7-^NLjrC3(b>e#=QaH3; -zeWpYH{Q-t5@B^A1)T{CrHjO9lUJIHIJCU4hI%yX%D7U~qp%{tkyFd`O?{xqZtQa%isjfZf -z&-}p2xF_7dp|{?K%MUJgOyi|sZyFvT_PVZNJl!w^CO#$LYhH*SNY1Caq78mUxjXUR -zirtC+#k#IwAVXA$;%*kb8-`PVrqPT!R@Yjv7VPH&P1X1SS}_liC>gKofeD1?EJEDA -zf`ZPiy`0Fr;eAPFZ;cr(sfYJ$aII!nhQMT0>Jgf$p;$9I7(w-W}T?(`?4N@3NwzZ>WLDclpEF -zGkm@Gux+OZa{D9W_D3;vn7hdJ>}IOI=9`$VWMK;UP)Hi^v1VvryN`W}I{Hp)^X%Bz -zH5!~8W`=>SePYrRFX_}F0bET+8;!-$&cr$d*^pWs5z$=S1fTmQ*+#|%rN%b2F*J=8 -z#ll{U`Qj52{Kt7n>z1}ktnfCUI*qRjM3aY7} -zP$5bO-rN3(Hgv@@_UqL_gVuW@hpL?}J=1Kt1r!-OqC;Q{Ep55meJ;opvFYje01R~) -zGzg8Pi7G!%DSe+J{y$6YWLI?anhC}{kJC~YT#@&RWQ +zhCH)B5NSr*`+G-+`}S|2P5|u3amFQ6NA|uQiCilCn>?dLGkYM}mz<@+ce3%QPR-wj04BYx(T^R~+lNi}zZk@Y7)@Yb~1F$bb3Q#?!=wY30x!${i! +zmqDJ47z_}pO(;;o(;&_%Ps6UwQ(M9Oc0d$UU0X+tOIu44459m}O;QSI#&#gN<^hRq +zu2jyHJrL5KVRWtxXMmd1m;o+ZvP?(~2qxti=z{tGhU<5^e}|R!8Z6QtaZ*X+uY%EE +zlY){A2yulB4H>(;yY><^M??~z2d*A#1OdPg@6S%GLp5}{=;BWRKlrOhU8W+&zCcT7 +zyF+|fjw4bhlOkhMPaMezwTTw~OM9{N3K+&fGHJ+UCV8q4mO&X5lm&va-#)%S5lJRe +z5Y$T0k1Pb8vJOQo@&vioeIeom*W4vhOel$YY?{?Xasooi6Xm8%o8CmE8bC}xnX3X* +z7))gIJ;85ZPHf=nHr#yn+?0#nMsP6ZexG`j(y +z((K2WVa@LOP#sRu8haLJ;lyW3BkH;g`kXX1o;GDYx`|XRLDxGczdPT4_uN8GDaI&b +zZk3a!lCY+1SYK6co@Kc)%&Pe<48e-X6&V@=iV_&56q=;O9dXLOVwcr|zkOl(41AtQ +zQx<49SKUBJA+!r#BUG8tX6ZwXYb^9G5`$D+6&wlBZ(iffzEqlB7HUM;6&N*>$iYO6 +z)U(`;`G|EBQv~3lkOas=nPU~j#wJ)IDNmR#SJh%`_trxBii&+8In8ju53k+P@(R2@%(o +z0pU$0<^$GLbc2kyW=u)a03i=r57r=HxtBP@xWf|3`Eb826b$L{kU_n>{ei9_RE|+p~ +zQ2Sf_Hm-prRnge}06caaQI`aD5tO(p8jwcc+m8KqDxZ)vBrX9zBUD5pTF?j%h+oGL +zs~L{AY7>#Ss?7?%ZtPt|&nU8$3}$MIv}yy|su=#))j^&%mBeq2lB@-$z<)F~O~$PX +z&s0-GN!Jx)B2BFXGZoaxRxQ_}-Rm=GnY0^3N?X->MdgyfMYik6(56~1(bOWsWvj}A +zHYjRsQ%lH@-GLOzNkrrc +zxaSg&iGF&khME`b?~BN)XM25I{Df +z4FzmXH|8u$_l03Mv)VCON|d)6uCA_TYx_+Vr~`{(4j(uH<_$bm_MiXrzyADh|7yEI)dZRJjyu>t +zv|rh7vh&hjHKKzJutZN{n*HiLh>21cw#rC)4oN<7bk4&Z{Pl&k5C61?@*zhEO-XYG +z!BEpv)Xlm;LSOP3(pO0HSN{^DT4>ZlPcr5rbKfVZZtE<3ZW)x1Y?lQ!@wdYfv%wM+ +zWsVItfGRQMT2F3FBfLSL4Z`8eRo&_2l1{As7vC99;f5HbHwCBOFTWoD;JtZs<{kfV +z=ItL?K?;Fg8m?N^;kSEs$M+;td92l|nA@)J5qc^GhMLkkIDGbe4M(Dw{(%h$;P@1Q +zv$RMg`FG%Lv->+Bh%nO(1T(o=HDVEv_^kFlCjM9U6T3S7klC|GF9F8l(9&Tn%vl6Szc?YZJg8Q|sIB$72@*U=4x% +z$Q@6vv6Km!f*%HKV#K6GU6@@ES03z>SN4F!3c2_@rW<&UX7LFqk&5{Dg*LAk{||qB +zZ~@v?+MN6uEPCXVbaE9jAiQF|0NO?{8E7yRopWtlsh|C3%oT+gU%donv&)!!0iVS=al&=SHnEx +zsTm-Y@Kd2QU!bg_7YG2Hcs}aj2`a-4z-I#?S)L-l>~EgFv|&pfas~oTkWRbz*?Uc> +z4`GGE0JFfdLjFpr%to6Tz{J#QO}lbHb}Aq&hGbgVX&%Q`vuaLLQ&>GZ8-IkKNioom +z8J=ji`PRa)?uIhVQ~1|Q@~F0CeTwnat^X~rsKX3OMo$7R4 +zMU)pXJW%P{ZZ>uZgl0?7FS^A^Asl4-XP$BwB5aR +zQPj5kTOLHIZ0n-M>(?DXcI2S(M?`(|s$gwo*8OxwCa?e$zXPrcY@*%OpdS%~ALch4 +zhasFgGxN28k(9B(Ncv?Fd8` +zv+;s+ul*Dy#kR%vpBrbD4h*_PT(WB_$;j*rU;%hEb=|#Y#jbIU2R=sR5D$W9WYm+| +z-!w6WjT!yjI4MPjgZG4BP#Y(waNBRtziyfo7th<$@Oa~dbSfJ=DR-5>mn4I2e$#Xn +zsuKzk#;nP?Vc#%L8Tau#7;c)#dNX)Q=z#ky>~GxW<~QzoUsVj8uM~;cx_G*2zSUs} +zMBKq}a#EZNyfI;tw{aGBAQAICo<0IH95tL=Jr09}KnT*zVsk0VrKfld`%I-zke6(p +zn%XP8F(L6IA}Gs!B_X`tyqiMhR-2}w=8OMG1mza~&?yf}H%`vkiTCLZW)PdEqzv6W +z|53zlgK^i=QoxM|%#W$`*B_$gt +zqdH6i#2dGASBf}(B>6|@cM^XjAuEE?O;gkCRLz;yMoBUU{MDImbIiMteiVdn<8c|2 +zN~9#_*J4Cc;*_VBJxoU`nm`3Yk~mewyX5q^Ir)=}a=Z-jbImaD!$Y_lsxuH;R8v^f +zDHTa7Mo`CFl+W8b;*#RUiJn+J`~ge+NgZdrH#&Tc$NXI6>W_CsMNIXdz(S(_?vo() +zhkZ4S`Ec%-s}#hvEr@9&h-oc|XHTppBHoWtwu>~RqJBm>*tUv=icQQD^MJz!cpYwJmn +zWM_Dd-G5A)*bq2FxAlY%WPfkoMJ-?2bh9gH?mNKBpTtVfGx%{+J#DVwr_H_nw0-wJ +z9TG{zkZCs721!a3%UH^<4XXM!f7)F3Pphl)slrc*43a!E$l4DGte)l}#0?=k`afmb +zUj(nF(<>(+L4;oxq{W3hI!oBjq3RH-%n1cX>(H@cj{;U|ImfALnH6tKCe5(8VqlBa +zv&^e_Rx`2Uaa#^n5Obir9}p+Yedor@%N2fXvu0z}*ddw?V<#orDiGo2(L~ijaw~Q& +zQc8zIB%t$@w7MX~Vkn}7DEpjtJ|wk$cQq49|Y +zPuoySUhp|1t~ku*pat1Ie0Fl|{BhB=bV`p;YD_3JmPRDuvs6Zh&S1 +zGggUG_2OsY610BW)8R>2oTp3W_@M(;7~hgR_G|pG6!Ir%*t$4ZG63-Evq;q28obw} +zgrEx5Rr_)M=mRJ$nfK1gDlWDj${gqb&l<(c(X%QR-}w=`bpZ=F%phY`(TMdjp3BQ;3Te0&wx_Az(*ZW6-$A7H-> +z^h^8ekNH--oFmknh%@t=wCS{Jfhxa~mX1@8R*%$`9E +z##8(^9FYgbTt6!cFuSvo$#%b0fRua%MjkDRZu1Qs*e_fR!%bqVM!tc9d{CbC2tfmeoO(m`kE5$5PBk#gvo%D_zgr`p~R?uU46heOlyLE48w>` +z)K_$;fj2pi`ATlh0j1yZmQ7R{NyErG!*gMZ)+>$bq3xQpmX88UYjcVZ$1c{LdM2r~ +z+8ubyS}L10CuG!;i+Kk!cfv&lxa35{PMw{CekG*?*jh5WPE#u`);qvF=xX&{_#nzO +zAJbc)P}k}E-;b9JSdoh^Oo<=pm4D%u3l2hm0FMK^&>8-@Ud%M+&c7Fnd!nn4yDF)BrBzNc!{ +z*Tqx#_GhgP9KujV24Xx}m)~NjNeBY-Oi*^4QJFB`&6%}S^{sW~Op4>%{?V7&ttvq9Vw%WHyB +zzKrjQ#tQ{go{k{y3M2Ss-jxtk-FJ=Xvs!1QGSBacu;=r{&tKo4^$k^li1DvpFkfok +zQBliJ{Z8eHiJ|VQ?gBByylYt=jVBbUDh9^D{UAllIWFRZ1nyK#Pj_{7byf9O +zb&IvE +zQ#Tg+n!V};@aDmQ=mpP`4LLe{UyCsE1;T_4aH4U@7F7QNZe)EW-kZP-DH0 +z>^|vEWl(SHe+LiB*dcO2v4eKW5vkwaz5{RHz_%j3O>aF{a#mhF$(gsbUC(|smL$)f +zjh%3N{%)4*^4yU0%*5Ckx>YX|x2ynK(|LBdXbM_%YIf=bkM02H>u|vEJn~;VnqM;$ +zl2r*E9)y)0vFBkq{^_xl*gF1tW~ec_k(+QSU#}OsQ+>BzfBmI<&*=#C2jc^`V&3Sl +zQxh3v;Atd>DsU>X3H0zbNE~)R7z*Tishbs(Io;T8oM;XW7p1Fb`xnsY{N$RzAc%D| +ztEo@i%Jk-2+i(8f)s4aZtvjd9yt>^xxbjfEHZ}D+H5=F*3hPiTu?Qh?NRmvepA9?AyO6C+#6{LMZQ6#(PO=II&-bGK2X(nX11>NCN!$Ms=cY@9N%B477 +z*<4@rmmp8re4$qtZ^w8dW2xGIb-MjMXMI^tmSOvw-Gth#2t^j{ys4_=h2a)xyGN%6 +z&sj=mcAzx2gt+7Fe$jI&UPO<#+tyI#V*M@d3bkM4F``+c<_f)Mmg}lEI-uj?tf%F5 +z&IOGJya0Dh9DkcRVSH=tinR{GMc1qDyJk`5+svDe3uE`~<$>8K^{r)qH^Hrg=;e8G +zVHskk_}=D8Hr@Di`|}bMz(EFmJ(K3~#y8yGzqtlJtyNEK!%k!CtT};!+d}^T*R>uq +zS(#nR8vmbl-xu7Wkao)h0uwss+r^Cz#X-Up +zt*ZWlt6BX0Ej!k6dl$H?#lb-4Z^`?-#2pY19>m+%1J+S-25F~u;5N=^&OO?>=-{S1 +z5o(Wcx}&4hXK=lmAswkB2r+{<@Q=^*P@9WUqH{cs9TU +z-M?t&opt1k-}0!*qv?^f+mDvAG8%9djB^Z=f3ef;;(=<$xiqb2|MxAo6{$} +z8>i5xQ+rDh3tP0?MYsAEp7gD4&@FPJ+pX1jWn0^b2YpCAE+bd@Xs4G)M`^1I1G>?)6 +z#)|^w@MJ-Ej>DJpbHL|UdJ>Him0WM9M1J~{ZZMQqP>=^E85;{5K +z5mT?j)zvc0HX9|TYPGrVT~xGK_-&;%hL#I`+D;bwb-nT05TJPkxO*?Xe)pw&FWp_O +zvtLX~gH8KgI)0BG`4YA*l2fKZ!a|+^H9g!zH3BA*GS!Tl$Dv#6Q_HB&TKrsTs(C;f +zVWF7#^~U>%rc8x6>>og&Dgukfq2L-q~}`^zr1?H@M7X +zF-zbQMef58t*V?8M|6HfzjKb;MZ_*&)YA*M@4kFnDPF#EckeqXj|E$1E_$I3A3UHP +z)GFwus&hEXRYBK-ch|dSOoG4Q`QpiH)m`tT`Sycm1z8|rKe@~8=io88Mj#@0MmD+o=;7d##TV?~_W68Ch?Ez=ya*k;RiL3@P +zzs=QNCU=&S#BRc4xpkCHBEF#AIFKTFLr*uVng| +z7sda}j{P##<4|CW0Dp?F{8(7LlKp|xNeuz$~2%;$Pu2_o?a`&AkoiD9F}k|t_BH0 +zri9vkmYUJ(B4qF~$N0-lD}e{vd(c1uWD)ahbwN#0T&c@r)FVESNvvgQ-h%t)bn{%E +zm(DCJ`)L#L_APznGh@l56p;#gqELFd7pl23V`ES054Z+DQe%#IV?)uG4(#0Eln{@!rh8Cat +zkgnJ|{iA6^5J@={JScdIUAUE3VTuHtmX6Vh#+g(LqQ_yNzE&n>{&JN?Fm!qCmHT&A +zjwOAkhR<$}tYI+Qfg28nvm{M7$ZMW;P$3u3P;M;?W{U^yh%q5FrndWmfULnN(d?-j24eLk{cf>n$8v^h8qf0*0AcDT3%|H?DvuopM}a3Nzlka%E$M9kQ_+ +z$Pvbh!iu{QfXe%|q7;2Z#X-^Gg$P9P50o(MHV +z-u2BD9Deo!m;ksoNx7;?k!dbrnf#NJPs#oa}8jf +z-`a1SEemQMQUu6@12o0zz*gQk5sEByOPS~q6qmks9h->`4pc5PC5zSRil3O*Z-x&p +z=ma*v{)^1c0bsjt<_8CQ_;2TME?-@VvW&XIcV0lf0^-i0?*;ExyqMtKl%Rb;`dbkL +zcYDMN@I+~r5-!-Gqra2AzhN{TQ9ThKJ-==i5?832D>1 +zhHfqoWs1VOus+8)F9jW5HC)-)xk7ddnU0piGFqe+3{<&3D+NQRs714Dt&3WQyWMp& +zT-jTF69bRKaE7+-S>$~!fK%AJf})fwF=Sce1>^zb$)is{%;fY7vZ=gmpl@f#Fm~dz +zNh26!v$&bZfBy2}e|_+auYT~+SO54)^9vXewoF$M>eIh(y!@XZzW?hF|LWI2`MdxA +z!Cx%?>iC$I&Cwg +zKSS`7_ntiZv3>aP$)g`NzWnshGv502qt8AD%l_HN3CmjI(~o!|hK*ETeDvk}U;N~Y +zkH7rmFF*L=9~KBZ^*23TehZfvZ~|Rlj6|E0_t!4AHaDzjZ(ZKODRa~XTBp^|q{;Re}QAEBhLQx(Y +z?F{}V7<>XovJ^df0zJlZyp)5N`c+x5Bc6cdl&5RG+1b1cHYCtpVEy9xyh@Zq(pHeN +zYGIv168AKYzyQ_VpG-;==C!dxFTkrlWBTJ!mrkkNi_b0kn-#V{VQRM8!OlndDI +zz~}*c9DXXrSg-Jyw`TwP3L1>zNEF=EdQp_?Jii@!WG_y5JHE>kbgm|TW!j*9@#|AQ +zE})QDX2UDjwKxH7y+lxpv{TuWO1DmX$oVm78^M+7O(hI>xGkXFs8kzi7?)Zq3wAtF +z1EHZF_^6Cd9!2eb?-2B-{yMEnVp@Ar9aUwukY;kv^FfI+xpElfmD2X^)XM6iR+`Ja +z(clY{Vto7q8aC)QywN%-;nvRf&I)EasKS%;{oS`-d(~XCYq}bQ}TK6px^Ize38VEOWjn)pi{a>&OZii#8JYx!G~W +z)ypfOr$9DTJz}ZXT#jOS! +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 +zbx)=^bS#>I5Y%b)Lcv81}5@$ +zM~DWs5Oeny!;{Jd0G1g09%)WQQ%7wpmY65&!#y{mQPtW5Y1*MsG=6Otn8F-TEZr7> +z5H^xa+2Tp>l{q54Q9A%Y +zf2PgST$oxJ$-ve5Q`^dd2*XjPvd55CNGgau_5liW06LRymjad#{qzT6dBZ!Va2M+k +z#zsL+0jh(TK_ll#f4B}`7hZ1jvPFe2^rpiE~iFsO7%*PA{t3@wrWF+9q3{n)e +zm1m+LHBc^67XHv)DXR!im5KvzgbAd-q+d1kHGG$r>CII>vN2@h9eq#L@Eiu)K3iC5 +zsIePpF+gklj@4=;d?D6Q7-h8vyJ6Cj2K|7oCO(e&g}~@IcTbecm0=xHAQsS^d~#^X@o2s2Y_EYT=qPO1h~?YS*6;N=ennD +zi*n=ER;|wo+pb0^L`pp?%sUg2(3)5BgmX6x_s$u^0t9E2%PX!Xv$Ri4DT +zS{X;Y7!+lHgkL=M+KRT2GBZFgAZfVq+twhU!Icq`6McroE(f}8&6dv1??fMR25wv# +zglr=`IIM6^t%YTc!F=d3VUUeX9&AIT`bQW)3=6qUzQ+;4#2#p`;()TpC`}O>ZZoqN +zX&AwOl?ON4cTNKf*v7nzom~d9QV4Q$Q^z4Ak;u*V$hwMtGgzBdU9?w7XE-J4_QXZU +znK(&QE=eYdW#H4Z(nr$kIAfINP6Fg@w5MQmEUqtCMc7&e7El+a>|?G69f*l2R{dpm +z@yzQU!H$YO4Jo#!1m4>ks6QkPIhdD?Q7s6xB+bJ>AkJ-Ic{6PsVz^rgPI{0xuU_m& +z*F+_V9r+3%V=*4Q^Afs<*DmNM=;3G}7Z3MlgBsY_og32D!Oa_PW;) +z0H;H?42BacVd}N`R3IziDo>Mpv{E +z#A%ZrhGeb7Hvmrd+I~c~BwEDFd}h%gv9ld(T%UGCek&uT%wYac +zaegq#RAob+JVYu_c+ari-;g=eS|u%wNv1N}*5@nwqYGshN(wI<%SzLYMNHdT(G1xj +zqrBtJ8xh-G-})+%LR^_^8sS!tMSvw5InH-*ifO{&$FOn1vvo7tJ`kHXBYK0EyQl6M +zhK8NesP_vI8gD=bX+W%ed;?L~JHoyZp6#DRtzc<;KEHf=W}AKD!oRFS(coPpPqKnUNix+Nt^yA6`)WG=fUJd<#FO4`8f{423zlyw~uSYLWcGvDig%Y +z>V*+va9VD>CQKg;geByJPv8`7^k$f8540x+nOwy5a31aqiJ|-hI2zrSxDAgH0lCDU +z#r9p^9I^N=9+^9fSxn<#p0o08y4ekUlK6t6&yPVY(A?cL(c+dwg&ub%%+#$Ud`ZSm +zs +zt@oors3;*u$rHe&fBtl0-%Swq`;0%3LBk;t6TomqLbcg`0jrWkwz%_PJ!u|bAEoq4 +zA-Mz|TC=vcPpRnpbz?f0zD#4UOD^>M3AOTJf^dn)QezRpq +zAN-QPgU_D4H{rO!$w_(6#>Fy9VDdH`Lxm)LymoEU%$!RX&mQ}#`D~azMaM6Irl{=^ +zCqXu7I)}XXJ__yc<|| +zh)(kID(F{AMT(VKcq#p|(bn-;rVFAhrr`;eggK)c- +z27UX6#`x#o8Vd!=-eCk1+G6t#d!<1;(~rHc-=&GV&P$xPQ{$p!lNhyV-)u}yp1K(z +zSX3V%)Bw!ViCja>hlqR#)@?NzAQq%*4`9-BhlpnQ0|+1a@CZeNi0DN&3_al;!s6kg +z&w{Alm^4yK@OXabpybk7I9)&?~9G +zf#Jc|FxrS+FrWDdM=&1F(@iy&_uKxLNNnlF+-w>Kfho$$I58CP2p-&DsNTh>AYr93 +zl5p*OJ$)?UyiXwkZs1B#h?d0Jj_s7=l{hJ+Xa=VmK=39M8yTUHGWI<+3Ko->uAQaJ +z-u6rjm$-U{Y;$@@#yRd6);e$5%h-EGb(1AuSt +z2keW94yV}Fy+@R?n$YIaOGg~nLGK+rYDm`}!mUAzb9*i@^Az=mMB@RW^nggmfD933 +z<{@P50Za`Js`ZnG-U$xljOBz$>%3>%3^#fXdIDnP+C4_a)IdL574%E{@Q#!>%$2s> +zsic*e*5=hLupVPd+b2|SLr|H>gnJ}sp$)u)AVO$~-&%(BO*mGzMsB`Oe|Fpnu{yP&=zmd9XV^)g;(07@u7#ubua7#ZzFM0o1YEqhJA +z#5mh1lM;)m_n>2Mo&Z5X28`+b@P{d_G8|Ep#)G<9OBYX#g6efZ?8=3dGbU`iwrODi +z(KmVQikQOyUcaGdMh0t7=IS0fYiJyKH3OdaiYOqY4UKySst1W5;4FxxTsayn6G2al +z_*&XBMu}Bi*g|q)bads(UF +z`fqBMNj11}T_ae`^${(RK)Qs_7&coQc*dr92(%^iO>>^C$pfw@zFqrZYBhuEcVw2ZbTYGLiYLD +zxkL1gsbXCnEP%i>+c#8qdSJoXQP{V@VX=n1-q5Nor3Y~UCAV{7 +zj-)h@d+j1MXU7_}ju<^k|vGT#(E=rY% +z#CtRxC;X1gNFVDV8djB79^A_%3>RLnjpJBkAk}CmONMBps=Sw0GA+E`)x3?tG{K-z +z&-?4f_uE^>YR-kkbbF&q6w6%RU{Ls_|}5x3+btzR3~?#9VvOaT6n^k73;X +zjJp|vF6h3;IFBBOYE(}V93pP^6Af75pAm^YvIVs4FTgP1!qN=FQ=ft9q)6Q5&YJfC +ztQ?uqCOK8!ybz3dR_&GPaCzG1HtdVNNH`y5mI5FajO`eW#>55sG+n8pk47sIbYYy^ +z*l_0~SnXv*mswhE5gBZ$42LFKEvp@Zg-MbKc-a!H^}halAPai3ANyOW#t}YXbEx4C +zIW*Gh!3^=~yARU(;8A9%v7U2f+YFAvN~4C*sv;dEcE?1emYUJ$*RNszW$f#gR;ikJ +zM})vs+R4a)IPL2Uh}cNC4)l7gtu?I@5gck#l4IKef~E$?#|D=co%e(?jfpfkvYCJe +zfwOKVE3sIM`Xr2+OlZY=k!eVI7HAL0SO)&j=|UJTEEi%h_GStQ6F%wSY467jFl{=U +zJjCHlB$$7jPQd5ADEBVMp39m=#ZD-$*f_>hOU*(p{M%SmvQubad)}mzq+VLSPav|R +z(Dn}pwK658NEs^@EifYL3eug|E&2>q^Fgk%-&P7DTZH6Umj-=mXJ25AYrJYI@A$q- +zo0SdAc7p)i@D6t=!)}a>3jEdBr%jeLUEUG5sJiYgd0f+Rn2(H69N{&{{B}BF(0}! +z@gbQq@)4=0jUqisA|N7B21l}h@EjIuQjhy}qoF>0vc^F%)NCX;Bxup66swU>rkl1F +zf_rMOVd%W}w3y7H4yo=fM@n0YuVwG9TuXh*NPlCKx2=}5x@s$}lGL*BOrJ_z9A%Q=Ncj5OQ4wkZI>*{^d?C4^{f +zkCwF7jPbKJ{vm#9IpCaW*}V#;u--(^h;AM^fUnunTc%pGaSRpiwJ6EZkGNcdQHdt8 +zKBt_v$pqe^ZS`}s=eDJ26k=6H-taC}B#lov05-Ld_UI5Kjv?cNg|Ty(5nu9@89cX1 +zlQ%}P;IX{`$QtntSPUQ=mu|r2GP7W78_0(#>Zm`9*3VI(Rt#HmMRe{~r6#;8tl +z4pc{z%g$v7to^C7L5Vo^0vM;(s}qop2(|WFV60zqk7&cdpQ;YdQl3eg4c5H@wFi3> +z5aVFV(N&o&$~!FbJM5)0Vi4wScenryY|I17=P&U6)@?`hXbk$%AjO7;5*qW&<~6Jn +z2@$amDKQa3X7?oN%0|4>y5i?+u(H{$Y(!B5zY`xrgSYZw2T%tl_D;o1&fBVW_Qr_w +zS#Zotoh)SDf#34V!YL35??lnPk*rSh5?*#5kEDk>$+u1|!{q*_jZK}!7iXwwyNHZ( +zL10mICbwEW>s*GTI^*LmSs|#=V5C^dK0uPRg;}GBGKor1NdUHUPGw>)HpmHPZJagH +zO2s-h_bFF2e2sA_rtL!*WrJiCCui4crotQ3L=@^6St~LCT8K4Hys75QDsMBA=BJQx +zjW1D6Y8>i_^>eMizorHO{Cegy9!Lo}u?XTx80G#z`pti|K%nzt_ +zrUQ~$vze?yHqat~pk}8I>w!@>X$Di^ +zWg21BC+>)kK)yuBX98vn-eXhGPfla>;Mu3v=Dpl+Mj-2h-2~b&PUlP8&WR3*>;lf& +z$^8HhfeqCpa}HWH;%)jfKLWjtv@JT4q{k$)=nB|jPmL{9CE1(H>jgZM*0Vq|Rwsk* +znHz9yuH-!dkU5g@*Co)toUuqtBLgfu8@_Iu{B0|_oXJwo9Mt=;vyXM)No0)RfhFM| +zfnbHp>cr`jOwtA|9Mkf>p>H4pvEFy+HUa?*K{R0+Y8>Rm!SNAelGq84E`z&02=x%p +z)({uxYY4ZDfI5F_EM6v0ty31c%bU4t8RbRt>4f5;3GoF)E35CMCT9maR|AJ(d$fHQ +z?Oj$<12{Z`u*UU%f3PR3fsIacXRnLewQaTu3p-CUA0Y;}=)K;*$M6YSEzEO}eXdUY +zA<>zib)LHZM4zt+VxiIlt>9wh>oXsC;sb-8_RPw5!txyk^d{f`8ZHYyvDB&<414XU +z)&c`p1nU>?lh@LCT)~zL>T?Kk$H(MF6IP`iJO!jesk`z4S_&mo*3oyUmOg8su2mwLoB*%C!<6V&KzDnN1MV%Xomo@1^_r1P+}i2jhq +zd`gdid1!z++qmc4p?Xon4tOHXEW7^rRX0u${by`Rrm3B;0od~alE+&d6!yHdNz<`N +zPa5{n?srRUNTD%3Ho5Oq-W0;=^^KZ!P;%kOQq}!2c%z`r5Y5DnT2!uLft-z{GKd1M +zr2Q{cVO3WG%AsE)$|bE2y(+mvh7+S%F*1HF0gtD-&p5VPu3~5OsC4w +z9JQfU$@rvk22*`QB@#AK8vt<@JgMA#?4dJ6+!^h(vC-~*j?88wj2)PoGxpMu>1=5l +z2d&0QN=@Z$piLckPprKyO=sPARB2hda&ef9^4(;Nsh3{H%`hcSmAWgjJ?3D*f9@ok +zySAU;7!BUR;Jv3a17;Kdhv<*XT<;LIO_g9VCL8DgXRSjPrVZ3cWvoBR{+X56>`#{U +zn&RV78^WENrgON~`NoERjXb7Y0mY0iXY|Re!bnKfy5WTnXk`Gsd_3C;5n!mMo@m+3 +z^VpE^+=^jH17K3-Y3anVb3k1FZWDCciKs|8Tf11GWvJE7+x12CH0H +zU#piQHng^+4Xe_=u`%_z7X5>W-w^B<&X}{y4^qB(QEY^SV?@-_IB2X{Ry^)ZT$XMe +zM(OG$XsmhP>qF^S&U_yiZ&5=coznMUS_|}K{Rh9G-t*Ss5SS@^(g4A) +zBRKDnud%;w*RuoIp@QU3Mrfa%bF*19%I19M2ew{!yD-%P&_agLPGfUkLLfZ3r#Sn! +z*Q?ZX!xh(8i +zYFnssb7%KR9F0Il!(M>IOp=k@N*t^Uj +zw|kNaCLq3 +zU+T&}7-M5PK-26O>)$$7j;Nvq8%OVuJ0s#x8WOr&xP$znXlO~t0N@Nu=klRf_5z6#?Zzo89ri9 +zG7LDi##RHftBVJhHUWTv?OBKQd8h_ZjiS#Mv((!HgI#Yg>P!{6P6vE=43#ho>1=wP +zB#pCYC0#n{g1%TzH;4u3lqZuCgCYIZ)!`)2Qc5q&u-PH7-=?A73ZY|VAh+`XGbk&^ +z?0qDE7CTfpzj#L+J!bf1XRoo)@E6!_rxOp+n_3)-WG<;a5lw}g{?=y;3gNO(R +zG3k&gz0WSP3f)aBSrBz)F|UYKlF7K>Vpl6yMKfx(s-J3?`#P%9vN?)X)bcTGoRSPp +zul*GDz>o6o(`;u!RPp6UJFk7j)q#G${#ung@A-83d0dUzHEicSq&I$Iy7o1SpGInT +ze?DER&w2AWe8-sh?!QAi-5u^c*uO8;r%U=)Qptb*+2zytCZ64V^2zVlse1N!-{Td% +zK<)1?3T7--w*RJ5m1#2?gp2PhHQc^TXpiRMvZaj7}d;V6C(7OJ9Z9IoB_aAoKB$7FvF;Uz8%txm;^&E~O +z)u|}Uv3ug+>*0lrSUG-jsz#?T`KJ2x=5-5!3EjEb=*{NGk4}-ZyQv@E?Jbd@ec|GC +z``!N6SQ$#T!$G^D{}#IPH1+Q%Z}OaUIt^Ud(1Dft&QY0^YrnWhT(EAY8`yRhAfHk; +zUZgQ+&6Ue$bbBjmnb)&c*K_#(9n-hLkLj)fd|EHOK_8uB+eCEH-3E6Jrk>42AeO|* +zhzw*kI<3?A;XAu#Chx>)HW66S=9XRbb-RdEpPg;AM*SxPiaqfub`J*&e@49clXO1v +zgJU;sOfsMz-8;>%BK%LD+HIohdc-ovy +z2xN2TNr)b9sx)ki1EcYd-~ge~vqnA2g|^0{Jypu)H38U|^bz;&r4y1r<#(}YM4)d9 +z%;d=`NaI&;{G=vrGWq=YMT{`AwB|ke_|A_x*&GQjk5h5VhLgA=I*D(#z3?)qNP@t) +z9?>`$5;8CDI|<@UFl_8V`QOKRTzI +zH+rn!;*Tir2t1lwZuVyYnW<3AitXYgFh2xc<`PXDp1Ne5HTb7_uJlFDGV)j +z#nHs}4<66zSq$#87JPjJC_`de&WMa?)Hks@#89h3Nk6x7|Yr +zKib~GdpC7JKM(llyDy^;n^(Vssf?DBCiH7`MHAgMO^+V2i>u2~j{1xfy +z*Prwm`bl-o6H(4FN>z4jhBqqJcvJW)w1N!X;?%_m;AE_mYpuzF05BN)H +z==7ym4+am!xgC~Xrl!|!B=CA7;eBuZR+S&T;k)$24}L@+{edBf{sm#Yn47f}r +z`Zw#-p3^kc$RW7?Fnzltt~Y=725G#-Q}*3|h}_@eIdA)0+UT!ELF7pS39b5TRt?vd +z|64qUZDQ+OWc?=Aa~k4xde_)}FVc>s%*sjjk7XL#5d4Y<&W*%p%%8YGGR=DNL=)16A86;n19ZZ3yb#r)c!x#4>CT_v;U#|4+URg05CX-mMX +z&Dnb6kEG9wQ=J0g4nO}wRq}|5{|{uiWuE;RX0)2vW#Qj=+N4OA7|u?ifykm>mYcut +z@u#Pvj^mpgcW+KLbvsM-oVP-XzdP0~YlpKs-|`GiY4>^``uI-`sk~#zWw~G +z7oU9k%{Bk|WQ26*#Dk>GXAzO=-9XWa4jkNkEh|28A} +zYY~s*^tG;Ul}7_Za*v{$r&U&zc^HkSq$H0A{c%4SU}2wLo1N2IRm7GmXMWx?eYrxp=Y+FUsQJ-RDVDHfQP8>`DG~dGPK_u~?pGPgFXuALWO8(mWBD +zt5BUkek`6Hes**9`dM|>Jr?J189dZ)wTzfN>a~25?z=B* +zA3vRy(`R|wo$a|Vn@#ek;p^2|Snhr8MOU{fySeEmuf?AGF3Z`YC(l$^zMek`ciopx +z3pPXDWi9^x%dfs1!>U|N(@BS)-r+}4CPhU{Oscjyf{AW4;kW|i*fnX{v4q2Hfm$^h +zXd97m=vFP}u9iz%%c?e6C=ex*(6^-YblP-XC^F$u#=+*PLxF0^1vO;^o3L>QRMQ*x^7P4=kQIKx~CvIG^PFhO_nCn3XJD)d6z3!R93p1wRd3 +z*7z9-o$#+HlS1Zaf +zO-F5%x{_yIolf)Cq}nXgLUoml5M}3|dmlK9r&)_p4P6%T$FL$1^r?o$jBjtZrV<7P&4r +zxckOj4-xz%jt;yqtz{X_>u~>FlPHW2d}2LmqL_mfPDPZL +z-wz!TP>MvE(ikHjIB~#D*|&?VZ;7W0N|N77W=6`>y6`EAq +zU#NvBy4$ZsQz@*;Se-ujb$-u7^F4o&zs0xpCh0WcdM12Q_80DJdbnzdx0W2A*SJ%^ +zBi1pF?iXzLKZ0z3f5fqnja-PXY;9sFXe3D`C(n=XK?B)y2kThA;6V4^-mc3Mz4yY# +zgGT;lyIY(+J;gMAn8vTZ(+&WyPKRCrX?$`l;(dMtJjW-;dEU@ny_EZSBv-UuR`R4Y +z9u)AHKv}11+|2iQItY>r>f{R%RjMB4vw38z&6kiW*kco}#R!z)+IP+Tg#Fue$x}24 +z!w7ot?#*@Z8r$h7qp3}E2XBWH2h~yEmbGnxrv@ii0?PbwGO|0>c& +zB)DS2#U+1N2(NJMkj(C%O+6MU{3OfFgwvmJ6dDJ|m==97lZN*4;{h>VT_y`E-f1%Z +z?3FlZt%W1fv+LG)y-sWMBWeMc7N&tB#E)9^0bYCTJma$BR;nSPFUULF<2ySC>O*Ja +zA9(bVMcy$HeEu;_^~bcX-mr6f$n2*nyCc&Znv0R=1-G9zF+QYPyX>G@nz|e{yNC4) +zT5IDvEk@hiwKDNmqvJdlAC2y|6i(iVv@JbPt^ZTe-kr7&66js$1rAmw5N`MAq7OSw +zDY|;*&%gQXV^p9iFmSZe%C>=J5K#_U8y*<{>$7DTonP7ke|9nI+Ey3AU#hS0fKntZm@gGSP~(dI>;Z8F0I@tG+J>i691*raVj +zl_5l3j`hWpZfclzfX*9)Y +z16vRyZt|EL3{6^v^p3TthZjGX^GY*$gZY +z%u~v=%9Pg0IoEpCrZN--{oio3NHgvUw31$1-3Xm!TF_&dM20BM{7%qwk*T`V3D58u +zCc%pao}K#;k~zQ~Str^ZFtk=# +zk@dh0Aqnc??#n9?iP`SUGqq}8dot=J@3vK&tuU@nY)@2B8-e^5^2|D +zq!81)05N18km%yYPQmk%Cfq@)Q@S%9(?qzECxfEQ6j +zv=vg{Q{mSD6p1q$MDar+$MqIg2mqBOB7zXAkK +z+_VtLwXS!SZbpvQ1t%E50*ycs#AVa^WIzwPYSut4K?$^G+@xiV5?fH^9d|86dL#UN +z?mA5i?*%#`^GtRKge+8ic`@Y7oJ5)D2GtR)RQA|ZJFqZ`tR4hTT{lR78n-y;TbFm* +z*N!>~9hyW~Xu6hEH)&y#u@E>B>^X{NrZ{tn5vj3`eCZnPK0OZofO2hEspoahgG5|dLSzIUn5inh=utGAvvw*?LQ@ld +z`xGl@Y1Wmtag*q6Nd17U3r*!{HJR${;!X~{8eKRYVF#-<(&O3k;^~vgZeE5PCXX)n +z-f;eSay4pHxmehGe7kuwDwJgKGQb&eD4o8 +zuJ%8?*!#nctNjo6{cPut?lk1PZt5Si*E!Jh&@0P{c>eIW_r9*V#=d+VR*LPD&2RBr>D|0t%j!4qe$7Ci5@!}uLEu>Jd)Vzz@S%vZhoa=~aEhkYZLQbi9n?X1=)&c2$ +ziGy3*R$KofgJYR=iN~nry^IhY1Em?0u&=Jb~rtWJFaMH6j;{xMVK$o +zO|uDbrmKPc#=MAkCYg(=uwErxD_ynKLdLp6si}2K${Nn*YZ~O5ha&IhTy`A!vI?k( +zg5KS9(W+nt6m=~`DM(_#IdqL`F?1trr7|mok@RX37*vMS{F&)coz7;ms3VoZ?vWx# +zFYSL2>*$sAju`+<`Y7zd>_w4H2b>`9-QoW*u~pC?7{P6b1;oSt3!vVzt-`&|D$IsQDq6vihwbE +z(F0kas#F9z +z7SINtZ0(ls8H%&_wSMZ3as2%obV_)`j+K0J%+@*`g?Npa=);HjJWqou_qzI~llCEp +zd~hhg-Tr|Ecd1F`qojz{QZnGReX}xgiCYHGw;NJJ{PM_=QuKHAlAO64?jn` +zXpk1|ih&K43Pf6GlA{3j|A-IZ*qtRH9xkWI1(?u29^edz1K8J|(EG-i+plpu%}yV~ +ze136$iEx*i^8xK0_yL(vZz7^q2|2G0*pGXCp>Ezc;4oQw|Bf#n-{H+3Ytj0#H&;y0 +zeB+77RyHQre|#u{T*YlhoyZjS{oYaMauiC4glSV-a~mJN#yYcWWoy4g?0_}r!<0!1 +z3DD_iI#X(B%a^1j%9S|lFtJLJg_&4cHy*wSXDJ*h*vGR?86WIAK|&shhb&=wVacyt +zkT+To^9>#t9rkXj4ZC9IuV5b0LdB?r5|S4ERhJtBDT?OESV2!&yX$1|DLajM +zwQQ`Dc%fAJQ<9Z;`%+j(6eNlm<5ktqzWw6!_m6fw`>T+vvS>r#*XB}h89dsV$maBv +z=hZQA9$~#x4udKj#Rv2sB7-(I(Dyf~`!_onmJeM%emrVYR8dPw|2eR8yQP}ZO?7|* +z9><4yJT|Af+_LbQ%jQ+|{1^ogjyFS5?%c8UO)(OAiOp~*i0W(CO*Nwz<@K%}sVx36 +z?}p8Zi$0{yn||{)v2R|7L8-LpclU{MI+EADhbQ`-)G5RUZIkFc2g^5kn~QoQ_E{j{ +zZrA%^qO0FKJspnGchKY3hY=yMm_|V?`+3$zaw=#L_K6fm*GVM!)O$yG@KE4+Ns9T4 +zwo$lparY0Lq*J2<`|qY9913QeqtL&dQwsINZ|9tzO!E1iJAzmC6ZR(KzDAR8LUVuV +z=xbHBAu^W+HBpT#*^wYwH`hnesc-^a#!?@e&QzYxB4Kh{f7|qil{-gQKH?| +zpd<)G3+3X3_NxhP!F>jGHw6IuUcJ$xYM=tjDDx +zBRD{rl4x`p>%m+Yn+(_}hQ{uprU0XbxVV-6Qjes$C!5&5=2|1hr9ANn*VSKhtHA^N +z5^oIBh^~=*587^H|?u+H74}pbO)~jm~^b4BL^@l0i*Ycb1 +zcZ?me&lZQw!6)c9#~BbTZamv$%T6diV$nONo&$@2uBczj6WP*tr%U5D*F(lHM@}+f +zt0qk|8H*e5=*M%IHb2Cqc${IEE6t6V!-JBaN^Ko#ZCpFK^b-$;ai(Dxr#94!Fz@;T +zR+@2m2wnmMgc^WZI+1IL`4Ev0!Md#`0|aRrLs(U_A)*=nK(il{BAY)Dl%=n0Z%(iG +zSPpBQ>p@+TVDRe9yIp6H8~&!|?r2b7mx$9GV7y;w1b?%S;JWYBDAM9a=*oq^L;PwN +zk6Pm#Z^N|=E4&l0>eoEubZx;cHQV;oW1FYtTNh{}qB0ARy>&JUhtWD!EA1KP`($~} +zP2SFY$iw|N$O(VPC~HU?Lpoa{qjj3}c1n+qh7@@x%DUsc2sJwAyd0=s&5vZq^2Sxi +zV;A+jYnCRPev_A%QoB$-Gb!-Z$to?&PLl^NXg@gpu1&<t~dtdA#SVpdn%idjokxog+&^pC#H#;IecUS*l +zAYB%HT~1;{TPLHroU?!==WhL%EKpOcEs^(m +zzcb?k2k(pV_4Q|8e)jEWFFwD1`R$8uKfS&lafMPt3w^1yp|HEVr?RjU!v3Nh*5dhE +zBVxpg;KTrg@qo9n3tli}oQZOFB{JhXI~3igs-<7#G^8vvRdN|;MkdKwsDaxzNNYo) +z8OR!ITy<@23`M1(7`0s>{m@6YcWK3~ny)WS_!zguB`2yh%)#KgPSe=*O1r +zu3do`KN7$LJBKOlK_Y6b_J;@eII1ad9IMF +zf~QWyVb^%Y(Tv|mE;#fvU!JTKanQ8fPm=>T*x!N|y$Ml0z%xIgAMGgfVFM@jL`6j3 +zyol@FmzUq{z52EK`bGS52S@^Jf9A$=drU +zA*Q)70SY+Uo>-fX2x+CZuELK7-Ioc{8d0sjkS1s*2~4&dkyL5m)$bKE(bVlM4GI-> +z%4BE}*_CZ%Vp64%U&xMd93oR|IS(ZkQ9IKF2HT%;86;bom0(?Cnuypwqh-+#C5h}~ +zRpZ9TT%lbB8=H>`r64|2c0P_v*}J+*2078$jeSh3qaf{TO{6;QR|cbNIC;-mp=cOt +z99iX<!V00eC7 +zbfV3)Vs4dFgx|m|(LGCMnd%G8!YsmZG`6%j5L2IwfJox0Hz$nYRq56+P%L_q7{mZC +zDJD<;cEX_KyIXXO&{e{F9*vY!wm>uwQ(DEXFZI)Q?tn?wL0+Pk_c8d8L5X^e!5u+q +z%l9$Pt}CvZ*WVhEdJ=Y?NszHJ?mrZ;euG!^kFjjqeci(-nr%p%VJ=3=bZE*9nm*_e +zB2-^aGgP6K-z)>xd?TTdUrf +zkfcE55hR@G#PDKUqtUyc@w(J8mtNEXj~cDV{^Cj(9F4*za9JIU80&6iU}G(jn*vo +zi+36neB`5*giNlrCkA?@J{FUHyNxk#Iv^2%ESscKq6xek>NHViya41}n$b3m))lAI +zw4sTWq9sapD2BySZ!S?I^y5+|V=nSZQEmLhG +zcmxE3EZ{z$2$SrNfz*WO7KI3i%pwuADmNWb?Xu@}I+8X(C~cqv9QlXD(Ykt$fPQ*< +zo0r;z&O(P_H+>~ljjijR14{@ZooNyg&cKqtK6g7c8NeO3)&*0#L7HIZv#;p^uRML5r(tO!*9&q +z;ul4pMB|KEMl(lmUqa +zK~Fx6(hqg35jYXIS!1`$h*30D%=miF2JF=RcI^W1ttPm`N-7p_Lm +z*L%w#PWT8@CoFpxmV+{?j?59QhSqknNmbewNjql9wa{53y|OACic5qusSsd}6PNZE +zRi#IX2bZ&&B#OUmEUFXBQ-rD7Jr#)5u&e^Z-k)t644*Vh8}Mxqh)&VRZ^E8s!{#MA +z&0UeeNpzNI`936C)5rLJR6T0YDJ{KB6WPGpC9K3TO(&#u#hnScuQD#$l-tCgz>r>s +zAYqcR9rs~$3&E2%9~bTgEUOOsRgh{zNEyV5rb-h(H8Lf8LL@f0QkLN&KWNY|rm3f= +zY2q4uE9ZG~lBoF!kcF+l%PC3gyw!u6h(xhwl;|W@ZKxAWo}j!l%9}YMJ&9bw^&}23 +z>3s4@A}&3-_mOaNwKj9n2YL~C372zT+BV&`5~YE3$z#0#1dOe6XDeE(bDG +z?yf>E>}_U!YU!3>`UrceRN4s`?Mfgmk9k&;PFi!NO{4BIwmbDrd(&&?1d!s?1~WlB +zxp{TVdb0_G(ce46%+u1L?H?&S5pX(7g(ICAlD(&f#%NEPIazc@8fE{sS%y$WPF0d= +zEVto{h0sL1ivdyT%(vXGMX?axQ*bb_(up!=IKVXef-G+qe!YEvnSro-BkG!J*>K+S*G?LNaimnze`$;b!hSa?Z5qUZ +z11xuc?T)U-tiaFsR`#R&JL*;ROfwVKVKaiwy_E|yb`1eP7K3l +zV~w-KvxvwjJ*hpc$#_hxv(pHKEO;i<0%rsRxSb|Vx5Au^SK@?bl4e&=Sdqd4zU+GA +zC1Daz{w(0Fje&L3MGLb?rKXvJ2&+g?7I}gZNQ~Wx(5jzxKw4224z}VPioe6q)usAA4-M+z&So9XkUz&mEQSNMYSe+CxkYL>(3KU!V3JD$b? +zy0|hwvWT`$X2Qey_63tIQ}Y4>I^-GaUGfNFwKEUVxqKgtNL&H#bss*p$T*uWdkK@& +zg~)rPSnM~R5|5T@%=7GFfd`;wM~mHQQzeG +zDkGcYhVL>EvxXKLiy;Iz$kd7JPVg-gK{v#4=N}A|NX6#1`5uD5G)d4b{b@HwZG^N2 +zaD8_nI-9Hv?KuruM$@visNOk=hOb|KJp_9C?RrSw%^xyr^U}8q!Fi0x*W_MPkb{{^ +z@-YRc@pmrd0XUD-K6s#~3aRCoWH5wb6uWCtB8*{GL#c@qWXnKmj8p(<()vB05t!V* +zgRr)=A+weKme>6?(LXAQz2;MPR&#Cp6-k`-&q?HzSWgenymz32eBSpVladxViCWr{ +z(U$$C-1tXmJ4NnZ1*Yak0C_+9pQr#9RuAm;M-7|wjtrcg_wC1zANRjv#ow|~#)Q?F +zy!eZtBMs3~th_E)(xwGvP+OF&>79i;A|?lr +zDx?jh22_2gYYsmq)jjpz4O7{G)=2U1$EWe;urVi~cI(y>Df87ESf0`1g9&@o0mRTN +z513Ah#9dzX!!RetLMo4jP_KT0%$8ZIvltq^A5!5-*}_n7KN83EY-Q38vn&@H!Pg1B +zjD&_`Ue-1PHJ~(XoW7x(s@NTU7?xxV1Fv5rR6sXdDJ#;L&4^SYf>upRSk?{@Bwj+T +zGPo&8$jVcRDp95}^1)(VlfI=U6B0X`q|J?l0Qm{kq9>{{=IZs35%~T!ojuz#I1;Yo +z(0*&>WGA=M2?cYiPS+b3YT;iQoc$QsdP&fbI@?qw8~Zbe1C{5fQjsbP_nxW^L!*gQ +zScJx-ptW8PI7w3duaJW%)*cTGSHh{Z8}Trt9wq%REr7iMiqlMKi@j%7BQz_4MhCA2 +z>Gy+FtF)<-lHF3X%-l^yqi73~D1MZf6vKj+weXbOTA0-T+AmiudRGBN$B~rKS_oD} +znp{(&sit`KLdLpA;sjtG|WQF@&rhG)=h09DI<*H418`| +z3hvWHzh2jtP}YezN(*Co>aYR1wPdRyBw3DSf7N71GfM&} +z=Pgn@ZU;0Uhq)~e81HPD!4?_OtroyKfs}=BG}Q4~T>q~(@*3;1v8IzipgmF|K0;%= +zaGerQavC>Lk3A{ppOY+CbjGou&ZJn$-pXI+s-fklw=xLL!f@#t#S_Ic$RyDu>7ilj +z(xu}P->;2+Maqk%R;0%gzeXJbWvmKy*#*l$AFa7xm)%@-)@^~vDx1kFY+#@#**=5V +z!@=nMdp>XoEX^`x^1S!{@m5%`+b~Y&hKAZOPdO`S086TVRg0{7vKN!NfEt^2nO;av +zvIDN0{G*jz&SWWP4(jcgYgwQ3b1tz5))KUOC;f>$6nj!jP5bu(9Zj$**GEthHh#3cudz3 +zAY9j*E*jD|``_2znIWFxd$3wFq7@;SE3bNrAaJR4X8h1rO>9~{7k+mAwhGnMbG~Zk +zmW8xj!vl|K(-rgv`~l^(nLR6G|3A*-l36FYwn#~c!#d;}%76s{{2JSXK13o?>Ge0- +zvh>=jgMOR!6ZmVa87xMcRtq5>J}9CTsT$ndF<9W-gkohc@t7gY`NV@@WcRCi=oZzWO;FAUbNI9`}T=TNEvzsBWNGm +zxQ#M4K|oH_pdCuC{4nH9M%ua0cz%)4Pg0ByW};0Zu+pk=`e9u}a|JYQjFG+MMKpt; +z%_r$&CG$cOgk)x$5X=peG*q+k!odivg-Ijc%J=cY`GR)fGZ4E2P>tFV2iW$e>Iq8H=We>xqNPtTc{#U9mz5*taAqUif-4K +zu)F!8s2-axhj?1my_6^mtEv}Sc2uhJ3o%Wj(b@ULqqg&lOILe}IOo267n|8J9@z)6 +zvCV`AA~v;;5`4A{+c?&H`m?1;mX8taAx?Oa!DtzKjGi#_G<8?e)-ji&oaLMgNO^AU +z{KOvAYjT)H!}`F6(ltr%am^LGeY=w!2WVez+Tpu1?MSp4fgjS~s8`2svp|R- +z@mSPy%JsK&3iGjXqU<~3LDWr}JUcGMZ>z=#mv73;D+Bf=N6Pw=aWYjP6jyPBn)n(U +zWafMcmy-8RSB45s5;QPAtiKb#>99B^b`_E8!qzo#{Oel3cbM|4hD$V=wKd}Al=#)6WIf5GLbz91=Rr@UfV-U*JSo?0RU=1mA}%x +zU9$~cn?vv%1fA)`|9sahz4oGTfVR3jsF~RI1t!C_*?m(3Q+8T2fOWOA5Qfo|)iFgA +z2lPw2_cX0@lJyj_qE9mwip;vytyOXyR4VkY67%Q*Q{c~n`QSOF+*Jv1&gn4B-i`yU +z5~X`L3IfihUduXj1{~k|(v-A`dNDQd4l7|-VKayav71&8>fs)GeR)L|q34h$q1%08 +zj9i +zmwF|4P`lDGDGy53ppfL&{2^+l7n7KJfOYpU=UEv+Bq_^My0|T@qBgg6gf+?r<0oE? +zAJXgBEB?4yXI74+Nkqd9PRO|q635ll?O)J?e?QjN6nPt_I4N3^u3{s;uz#>h9B1ntGAFk#mA?ja{yepYewrQc1 +zY9^bxS4Pep>FKsM(Sh?2^Mjw!mP)dN0Q$a+Cl;E6K*2cg>&r()6%Go#Lj=DZE)3X+ +zfVY+Xo{dH1n$V4H8(s42`EiPlL?mfU3q#@eU`K{=Ge6=;Z&-jGK-3EF1|21a#H94K +znj?8pJFJfGy-p9kR8s9-SWq!uxeLnB3901*Kg3j&FnA(`x#D{W4mod +z&O9|0nOJfNzCpmma7(PWjJIzw0pSQW-2uDovvA?t73DpydI&231=(u976^$ +zA69QOmGr2@*@A~iTSQGG&_nn1W^SHu9tO@gtz_q%;9S)-9%p+R>@1C)w8le-Q9VSO +zLl4ZO6C0fg8aHP`8GvE5BCd5whU#%z(mq1F`p-fY!a$ +zRdunkoBC4}`l?5DRdbA&DtGrm7ov)mF3Iw!H;9nZ+5=!216#?S>@!>KOCweyC#C@D +zfpJXhKS&X#`VIXQxmicLP^7W@4%}F1YNl<~zD<{2WZCFy=9~c{k%txAIv~Rf>j{*Mfxct%*?dT(X!t0>81DIu0j5F^QA(Z*@W(V{lma#WLcQFIu@aoHEhY +zNA9{MYtxuiC%&|8+BSyHfNLYXy|df1j5n2luL`mm`(~mR%6H}YO@p0$vpIoh0UfIW81c^LqJ1^=F+{>8ub(ejW?3eF& +zMwjKY7v)&Q@xMd&?t7Z%#uHN+(R}@=4rvF|QgtZv&=}2OcvgF$TL+eMcJT(^yZ} +zc-odsP|b_FE258ea&6MtcK>*vh@z#UNRT`<8u-TDHR;&LHl^5IzfrCr +zl{Vuni!`b`#BA$}x_)#qLP7*1yRbbgR#44|5n5^TYUUkxF_Ua+qOoW<$*^!(v*4Fb +zxnn<7!d({#5TJVH@K2%gYl{d)wvQ{bhy +zOPJsJ^|(1|YvQ-MhyD-PPZlWz^qrhs?z;5vFqz*GxyH}62kX4o-|8c4bS#mTDG4g4 +zf_sXuI<4{cx^Bnw3wr8L=FcC#^^-^U?r~M1@1Gx^o-VISq@lsttPcG>J$^-FD2$0u +z8GGwPJ1rwTUD=dloUmc{ru{~#50PYy_RTrY)A@Az-cRnm#}xyV3882alITCKSY)5oI1Ym2lwuM +zshV#j+(iGHYJVo?@?}oISH*!}ebIfAMzhcApNeMG7P>B8fOOs3heHMysSOo$ArzI( +z=S_dyWph6`>sfy{z#%jMRJ0DBufZ2<@a6s){;OYo@&z*Or#1Vljt2JsyQO8^ovW}{ +z;&)3;XUj*?)zf{~uP)>Beb>*QTy9OaXs=&9ojfMJQ#%3gSD6oemS*PlloXVgdY$Q@ +z)HBk8wPyI69ZL78Meto0*LZgT8u$*~9 +znr9UU+CXVHfkD1yVk30%b|VS%ZC*(u6O24-j<~NmR}K +z{TjM4Y}oKro2PrGlM`3cnxXL@y%|USbgBL-7|Kf&M5@Nv)kd1v)Uc}I6bdz_;eNbb +z0Mb3Kl=d(Gd9_>3i4wT2zLXVR-qc^-$`JMb(T3cjt5CICqki|n`y==UrL#NkD?91j +zx97b-Ql&YO)eU_x#ffn})6>Q?h$=rrt;4z4tu^(OyYm*Gp8nF&7oWZScqG!QR+9!U +z%xUhG-`eqnCcZ`qURUl}mv+9^#dt=W?k$JPKG+P&9GnsiVky>8vR=nbs&x!!W?9d* +zJV=r}NW6?#Sf&Re^=m#Y7P)tRAdCqqJy(%2tTZt;1a>8mfF3!%M +zao-pcQ6x7l9dr__Mz+d9{Ywk~<_+I8cUz!*KW9=Pm*#(T0aDlh{19`>%4 +z&r|t{Y_x3=ZqwQme;)_@mE)+wQH6 +zFmOL$6?7^P6+Ro|;8ZS949T2hu;eE^U}?@G&C$m;2O-VJjeAe8tM#58=J8wVju=G^ +zWW3rv8ZU&KqcWX{g4g7MY5Lj}njJaszkLFbBwjhPD}48Dutt5!1v6jLypCL{nLE9M +z=CmC7Z0t?z8thrBej@bIjaZnIWrZ{?Cd2}9jUGfRdS9~mH(-oIHuZLvt1YKlqmX@U +z!WO>Q)7qx)x|8vEG*9PBt4D`SOrt?*v6YEJ^oxq6z56yB$}j4|5Q2YJ40MXc|C?S7eqr +z!42mojEjpb#I4fvR==}O5m=2r!dv-Zn=*VmPN +z-KLd1I*nY#zSB|8p4K**ipR7LOb%GdR(c*5fH<&4pMh8~UfaUW?rQtoX2(d4vmqSr +ztl!~24GxOx#f2Oh1}Ejon?6CrD4X+zKpNK(TxPjK^c_a>oue1=N1R~)_BQX>0Hb#y +zXInxXzp$=)siONx>zY*}Wi!Lh+t%QF_r^03h$ZpTa-4_3<%p9bn7li?Ka954kNG@h +zluoCCOT@86!q +z)}557ji#+}!iNG=HK=>C1$QvGV*0@napHC)R@#Z#blv~%t_X-6sJgt5NTwjBa*8s +zrJA7Vv)MTpn5yPr%&D?rK7Jg_zRFDcydHiV);ljLPLj3~rrQxa?q%tcOH>_v(rPlT +zO)(jTRiRhUUd_lATN3e4Rh5gTW~YOy_2sHvzX~6P;rX+tPcENmOJN~1wYQ(!nb&BL +z`)>EI*;Fyf6e$SEY2@WkepB<^ZcPfNOrGFMaxQ1>*`ynRCeK+~qx38Yc}a +zP8Bnk%c*WlBlzuMOFk8F4hADC_9+zyiXEH?le7$>r%?t_Z;n4yzs(CwKrqRnWjjUb~kxP58FS@ +zGgsDhi_cf4^>8rcrr7 +z+=Cq{PQT~s@IQI)4^RIP1>*m3j8o56=k@(V{N@i&zdH+_iD2^T-#x$h>wid}e!BMQ +z-Y@uz*Wf+=Nas&IXNfyGzTLYwYp%7K=jekY!Kb^gzFRNJKH8;RA6ODEK5o7c#R$xm-)#+BwVC1z394;%jWpidw~ecAQAPuAJ9D-a)+}o%<%^Eiw6%zq3Uk9;ELe^ +z-YfR^X>eNQm7XI(#CgF4oO_A1US-LmqVpqzGKUZEose}f#5SM3CM`Nx^t4xV +z8_#vzhT+R0$5WfG9IQk*IOyEsEU;UxnHVx@N*(7@%=Rebi~O2|7NlmWwQO{8ZVSim +zdBx={s|Bs`)@2h*IL87?MzMtpHGsg=y%fXek6lGtoe)!1E+^&yvH$DztM793J1Tjz +zU!^yuOou6YxA*y;N7SU-eRymJz@%R#tsp_}>H}5!Jn?JilcDx~ODe|5rtUmc%vJ1m +zq!jTrl4UC5BlIrS-V6cPi< +zV*33%jB&^E>%Teh9C7F8#BG@&i7y}a9~gW6z3(3-7>sm+G$BaT5U`KY(f#r1>BH|n +zOygIl;=2#^4*H?qLSLQI;5#oO?LBn<>i*6rX?LX$d3$_*9A#2elXQ9f>J;UO6jA-u +zcp&i|uTI%^(_akgG|V<`8a(q_l=PomlInQ8)4xgo@Vkpw_eX2$GmX;jL7;E-T&+ab +zoE*c6szg1B#((tlV;np~6sJc}H@5Tx&pLmT_n)3>Uu=J<@Q@E-)AFW3xN+I>@oD`0 +zxQWy2i)Y95{@dHN9-J<;R6?J0YO*DqKJ3rY9}ekm?Z?bO(j}j`?Xxp)vr&uJX;kdD +z3y6%`qj}rTG9#aAiH;;K_6X>&oVM`RgEW$c(&VT?-4yuyAxfMBeP@XYm!yrDOF|r^ +zfXO1@L&ji2x)u#|0e+A$FTTomlmx+apiKkA?GJ2MMDY5Z?J +z1$Uu{wP||0c^Ew8Ur)tbPQ{O355vCxMV^S?7QO!_reU8PNE;xh59MPne*<(o-*+F1 +zwqaZ5{!Q@xQSWQ|mPS?7|_Vy+(iOh~0gm_K|pND0^I|1$!`>bNthXFq&2*O9w3BzN3A} +zD#=RabJ*r8sU`0B*h(1W<(1R6%(INbw(Aupv*3?@K9u`dX}Ok-LZ{Ssbo~t6-GBRg*MH(4H>rJ^uhULTQG0r3;4FKIkGU?za`^Y#; +zdmRyiEvC|2ux;j18r|EIC;#Z=Sj0>LpEVLZa4$nk&fRkS6343azoQrYwlzI#<0U`$ +z-l9udtSf_if3mq=cHUmQNXA27v$do6uC*82UWz;2J?tjZXOXJ0NSkEakM7=C<^{}B +z3;sEdFp#%)F!W;Q`(DKUoAwX5xhm*D_GT&E)N +zi07c6RXf1JJcWe`#ir=lr{BE$l(i9nv?d%!n?h$7DDpD7+n@kr6Q8{2tIe$)0JolarxIzkM3h!iOtLBur|Cp +za-hk;_UgVl(0YD+j|4fsbPOZ@@vHycd>ZX2Ke@h+Ce8Kr|Bk+DbHYA=V5t8I5Asa? +zL%ieo)c|GQ!xl%9!>d#TnFwX}-T3*j?Y)TAF@#w{@dpSCeZ;P=V89kb<6{TNqCQC* +zapQiX2e>BjU=5?Hc<_=+I9LyI8jIl_iX~H_sfB0vA +z_s{;;(Xaj)8t%eB{?(uS>Yx1TPyXfKJNmQ#;aC6cSO4f={=HxQ7r*+GKl?jC{B3Id +zt$+FV+`a#lZlO!R`lrA8C;#97&|>Mq|7U*q|LM>EuYdNpEcS;#{zpIj=YRi)KmOAn +z{`i0R;gA3E5C8f9@rOVD2S5Dr|Mo{PX|A55M@&e)z>d`QaD;j~{;V@Bi?N{}+S*=!akYM;58u +zzo38ZPyf~5`P={MzxwAE`v3p4zx%KL?)u=Xv~k1wh3Jl64(aKC`oH|ofBOIX@BXvs +zsQDNFX?oOD)INT-p*5_LGHt$wWvlZ2J8}5ktB18OHh|Z46<%WnUGrApi+h7Z2D7~S +zrIg7y>^QDkBV!3AH3at6S}?YjD^EP?-Bgk8_Tc-p$9>agvOa1O0e!f*-y9Xx`=dsg +zn8VSBAKu=skIwh+aH(_DUXINjYr{3Xy*5mxQcAvQQHY$x2xBb?1>+MOmdNaE1ccI&U`?>A+nOn1)xYxzE +z-u`jxZ5+3Q9plz*6}SE#aXZ``Zu?!~c4IrZy~{puJKO+nhn)X*56i#Z%Ik06g2~@% +z?tZJ;`mM*$Z#_nSyM=?_9-qJj6p4l=l-h>t9TD(gsAggEFPN8ox+J+jg%M9=Z_N!7 +z0lgr0bjcdX(Zi$r{GzQ){*N9WC6|Ah77HA(?%(;&BbLj&74_aEt?DLFlK`ZT)%QU? +zpV9+Q$EW!B-JBR;S_EuneeWpv?lO4v3T|<)#t#>1+$8TEou56p-MH;4c)Whw`Ig%r +z1y9y*yV!EuP7!F0K+UE2p +zzk%-kMkjew2Kb#DUQ9XN^gGt2p{T^ye@8}+Ui_O}EeD9~kM2y4f3$nL->}b~ptQ#% +z#f6X7j8TuDoqJ{}gL`~A5-k^+E=hd0MWJ(sz6C +zU#bfqdQoTA5hRV#fj2Rakca0=rz!bKUN3@iVp +z(y}ac2okMpywMWU1>Jex&CknZHog(7G3R&3u`B(~r6Z$T=Fj3M^X0x<((p39M82wU +zjEgs_tqPHCf6U&S^18lRPA4Ux>uHwdMYo2Jmy?yKi#2S~sd|>G`5IcOM9!AUyjjC{i*9jKWntZ} +z|Kg_0rtumsQ6f#J>o-PXu8ZKf=#OQd;e@O*afG+G?Nq94vi8H**=4T`Mv1uKC4Z*87+~Z(AIp83DJ<)NCzsEUP>JbS+A%qPM&Z5_yOezm3+M1XY +zDsZBP0Ww3!ZC?rHc@nGpS8a=>MHN64h@<)NR$-}uER +z2mH}3ydPpogYu%>@1@TXjOUX|Czjxhj5t1O+O+907dNui +z@dpfws7WX5pibgsA(INK%@L|*FOg7yi+YMO)LLe=0dv|JW!xeRg!wQ#o>K2%F{+g- +z=|a1As){_#Q0>-a>fjw)Ka1WqCwe5!T(#DHl(cW0wv&)UJ6Ans84c^^_|=TUJh8NRiIh_6^PVSv+Q=7(cS@w$KrbIZ9Sw@05x*P29B;pd +znad$YmzWr!uy_Xu4$U1@TT|uU@@u-{&;WzPMcXU1t>LzGNSCSDxRVnt`NchU51!6A +z^dfem$CJ_aU;gNnI}?}F3d9=!zmt@y2J3LJ^yNREEZ4%IrZe-JEUGagzHpF#*dobPO{Ld?wt^8dtga4p|Y2tn0=_nf1W-d;?yBGZO>@IUEM4$e` +ztd&200U+4YPpns{p`W^HYSxaUPGZUjl=g?YE7>@Dj-ZFUD> +z8twYVT(~x^x4ElwZ(69BHGz33H+iOa^G4<`{Hqmbv$0TTez~0!oh-ycL@B$4_H7yU +zZCm!rfXMBMAmcz3MJrIa29+7tFv{H1Z@0`?34Gh!#=5o>>L&d9OG@1(f%BcqPI=v{|dFoGCPHRso3Hs +z*xP711#T?&o^p%tK7808T8~eTe_o`MRL0+k0wn=oMzSDfM;$+S^~#G%d8Iu=htZjR +zBxaUw^#iSg)c7oK$YG}+y99xxCy91bxOr<)iKdK8*&R-A)6djk;zym}kd(c_o7dM| +zmAJa5Jq#Aq>xcuVudl5U%N7LOHy@{iA?6V#ZC6rXt5VSbb=w0fblBx?Qb{Cz$YPCD +zo<2JpEku?mmivy8^!YSNe17vCjhjOG*6H)(LLKXS?^W$Y +zwKXigNQCxa_e<~r>>v%}kdCC-eY3vPB;XYDV3LVxz3+bNvgfehl+jrKxbBKLjrxG# +znub}#2uI!dEZ87meh}q*a+x-PDAO?-@0wG<`w(_$6yR5V|Ku9)VRHW5B({3K|KV$~ +z1+#gatZpV%8;fO?$#8u9>g32p0-xsNGAVzuN~Z#kHHRSQkDiVafs(2#^W2`soXgJU +z!PM#J@Nue7kBl?;QF3WcSbjZEyRc8&Lz^vWN>w`GWV`O=*s*n%_xSNME`-zMklim! +z{P7~EO{hlF +zJYktsKW$$kNS|)^j6^1y`Q6xYM$_5S%eP3Ok4G_$emc(foLyYU*<>u@Wh18k-Ft%B +zF8e@MGpmO}iBO~xV|i3IHVF7=Jz{BJMwg8UC>`vK5Xh`KHCbyyJaIEk%-uf9k5R)X +zogAAYc4HIb%u=Apn*Hfso*!3gp);O{7@GhH>(u16Gl`1pQyT5@O>L7m+y3o~ue_=I +z&$#EppiXO%*R*l-2Fg6?{1K7$-ftbqwu9JQon
    lO*?;zsSEXiD=+k5g4x1=KLBMG+E( -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 -z3t4jxRFpIgd>6=WB{$6s$P?%Js&ZmMVVF1HZ# -zqJtC>k#xNQ`t>ja_-=uxI?%qa_1zdg=7WQS1`z;yJBJxo -zX0lIO(5K`zA^ehYi}?+BaJD-+lQv*@kdVa*Q=4Ur+*Nx3|JF-#`gr1XZU6yqetCO -z8^ih#mkX;=7sUQhKUHRU<1j0i&>q?osLuz}=+MKHo0siUbfdEgKVLs^kwfx+9?LmSx8I7qil4kkq-VXbZSAZc_&)OQ3K+iZ(>!BLWW^ -ziT^D9ko>g4eg%+IO(n^je1H$(v*{MlpE#(UcMps=Nt$_BZ=1T!C(8;_?lPn8X-^=V -z#_AP=9Bu$Y+C>X54%$C_sMuC{crr0o4u~3+#cSVe(95Wt(DGT6e8|}SJM~5zzQm{e -z4jXCX40=o@cXc4}RSXkL+a;fn6v7!2Tu9@t{g1!$A5S3Ew%uZZg=RncGI;p#p`FQT -z0bwTH~rFP2NF&Sb_a0Mt^?(Tq$oM%9IB8Z9WNdWigPXoalQ( -z3v)-``1+T>^!Uqfy!y&tk#_HbKzOPsM(>QJGtSBqUOe9CahxUjXt!!hlkIty+kcj -z^ZRTYE@-AxVrbx7X77e_A&Y6KjReM1+}q}djU=_GUM2vXAzs)5w?DOi_GUk(kHo11 -zL)Gr;1Z&M7d=u#%BG_fWEq`pDITI!GaWo1k@r(d15%W5S2eQdink^dZ4AFLBQY{v} -z!uhRblPqXYJb!eQRtRp6*EPp-9-%Kj1gveTN)^IAmIs>}J-kqhTv;uixRV&vHBR}Q -z=YWGWWNr#I8uVlp%^0l8$K|=ZFwNiU-Meuu*DhcoSm66_`NFyHG!i9k7{% -zS7Gcko-+r70*_DX2eC1jp{%5$)?`wEU4a-#;?cCx3Cca~+M99a9UZ!3nToSQmnwrr -zkI=`Y5a2*3omc`$a##l+db=3bU7-Z#2+WR`pn1AWc1c+6E_s4?9UMO3vdZCDkd+wxseAZ0FFRlS=u -z-G!w>n~PK5@QC1skzIsup#${D#+=YXJEB9Ik)inDM%r=h^cDRbrfZwcW=5M!)WLW` -z+onYyFn*x5-{9zFlO^p@%BHpjDAW+)+J6GRD(rRzATrw-%gt%ig~(pJS$ZGIt|JX% -z)QG4}e@;HsTN7Pue}Wc)4NMA*hGIq4%4 -zVb6O(6(oPqUZHk|wn$sBDbI8JzaZ|Fg=y*|n_>kEXmpS{8}gY(~x4yv-2l -z&l~W5v>f>59BONtdLN5})FmEyOE}%QA|5i~(~qi=Z^E7B)P~34h1+Mx$5hD~21RXY -zEAF2@fK;&WG;-&TdW#k#xNd%Il=RRt$`d#}k+iu5a`2H`W3a5Jl(HxJER-b8mT-sQ -z$myEyh0n63*)VV*S488PKEy-^L^=njlaaJYd~7(269gm2CJ{MJ+>Tj=$hzeJ$tF!A%?`H|E88FXJ_}fYz|bGVWjEb#rebF7whu#B$m7eqD@~C!VPH3 -zKU5T9V$dPJcF`uq;M&#KO|{+i)pF@-yOL>VUvCPaUB%9oj_r@zt-o>0#Czmy>#&L5 -zMtjU-QdDtC{0#FZ7<0|3miAhuB&lw9h$Cm#_eC1k7r;VbZvcgtN$&n#L|N1lNyGSmR(D=@=Uo16`2LbL9loY+_HvsAs?*0iu*dc<8bj1Om~2T-0_Y7NejvH~a>pCZK5 -z)rfuep8n3@>H9Qh`Q!pt^idKw -z#A~KT*gC|p@ylAFrSS^Ozx4Ym)D84YmDFAH+0ymn?8fdfh00?gQ0b@a#^qCp6ry=!cc%s)EE1; -zUw!D60^@H>zjNJ`I@z -ztmoxMd|0n68@GO$o#P`>V*6%?VYB(%Ju~1hT4jft872`P0CVP*n`)WF>A^QU{mEna -zCRsv4u -z9v6mP7-SV-g^%+;7~X8v3MJ(38GHnWE#v^??_XQ(&yX`=rMB_={79V1kP~@wX{j>$ -zT-s#uoITGWIPs`pr1Xk?BPN-2DR$gt)LxWq8=4l`+{7 -z3)FOp97}5?1Rk}Zb1b5b`u60>MwRWT(m1Ws3}F`ZSCjBD9T8u~QB86T9hAcRy7tii -z2W)s!#sl5pCU74Qy}=oq#Fgt&tY6CzMP4l=wO&u)!+dWUeGZC2ymZQRIUQUS%Y_i**N=RVn6URvx)W@F(u=7E>k8 -zG6(mQZNahV5KoN^dP*${oK3q?TW%na@^aX^>Zr|+kLPc``Nfx5!AeAP=!fVULNmF< -zN3)kH8pCnOX7chH)*T4|^N(nybaz3^zB8)Nkzbu_)0$y7q7Ea`k6zx&11{5S(bw?G -z|I|R?#LBCInu|4wtrEV)Bx$q3gq}8Lifm*dO$h?Dg)Bwj!=j}%h_Ozv-MF}KI{r-H -zgpjQY2nBr(WGyHi(^_#}2a$+NlZ7magJK60nL&NFVBBooQqyfK;20z$cwg!?d}qh> -zl~|r53~Sf2*YuhF$0OnEs_Y}8iig8(lcAFDp=s2pOV7v7=+^_lnaEZE&nV#V1|6wD -z_#F`jI=r({-`?p}hNm}|IN3| -z=cqV7E}z=cG<=w2B;l2CF;tk3A#$ -zJbL99Uwz}vFFbzrwO7CN=AP8DgyR7FcnrB_hPw*0)*9Hkv4EFDczK(1xu(ewETyj> -zTBcN7CrPd0i!J#WS$#%gFXN-n02Dj5#^+q6-P!5Mj6O7(@~H;(&P+Gcj+IbAdYpwx -z|1z_%-2k4RoZmlxaCYzf9%R_lGm$TOm7N%L7AWzir=6)OlIb~{-q~}&{7lp7L-_?) -zfvJkxwMqKIr6F~qt>m|O6>xvO>y36-<>juo?-R2R$5x`_a!qFfjL+UhyOxVuEoodM -zzR0#5LXTJ0D`G&P37>|lt*prxZk0Ci;b>&xLQxURYyw(nwn7siokM=^RY`GDgh?!( -zayLy!3UneOd%1Fv#r-7JtKp21T-c${kp3Cj`ka^|B|%)fOHRnb!J>Wv(!h81G_BIg -zOiJQii2c03&a2$JBGHYnFjn#zX@!sA(Iz^b_20UTFOr7-cWSN>ih#9&KtvNO1}-dB -zJ0+vFT*hX-;0u8-3Zn(_lq>{)}0*mz>_1t$R%mr%Ygm5tivOC3;8 -z`^z>XvLWuWbVsXa$Gx!w`$tjRtWPeRJsy0qQ%vPxO>=Y!4TUQH{-_Tro!!jtqKy!fwm!u&c6v+H- -z0M@`1nFd_aOO!o7wF^!Qt3=sV{cO137;|?~=iYDc2BO2e78$SU6}y(Uc^B&8X?5cP -za-Z$vUhuBF#~iIB;NJQixEi*x)r#ZZdQT8kLE`BBbMw_yz!|cL{wy*?PiNMbI@w%i1=0D93>1N1z-p;)aWn`;;=x}^0Z7du9NBq6S@Hdbg*8FUhM^TJhZZ+#dz -ztA66Eu9~q_Mf9hPmey+xj_o2Bz)~t85%7I;*}bZ8selR%5GX+xbd-664# -zhLDruL@<^+07l77-s=j>iV4;vw7NF~yJx(ePuWe@Q?%Y@r=zB=8;droiy&r*Oi%uA -zW09BXj;@6RJ0R&I68~@T9ijH-TTbpBv+a}?4x+2FwbeDT&%?=saftjNLjM0yn`;YG -zM;qVz>-3L14|<=BL!aFdw_CS*fmA~h -zwY}s(T1&o=kIlNexeH^_9$bU2B-@HTMTCC^%m~894SNaaSioG{-lBjr`Q{eQB=4dX -zKMVXatYxi@;MsYfR?9O@o*TK{zNGGmutQ%8`DCZoxe?w!|K@97oEW33A~{KZMaumu -z-LGnPQF|8{FMCmVKRKm*e-$Q!tH!@7w*FP?>SA|KlDc2o{#v+pnd@BE+FxaEf7R}n -zcAul&lQk``JEd9&dQ(UOl~3v*=!nr+3|Px2cNnbQ`gId@d^$Htspp(c>k~RIGkB{6 -z?7Yb=wvQ9{NgWa$u1#Dyte=v?8cXIAJ0fopA7WgW=WMeHBID+cOjR5#m{(O{FW3O{ -z2^}i7?~O)l4*QV}#MjS8XE-``(ZtWzjXyFk+}2s44W2!yvL*p7X88Q`d8CVZ#!!M- -zQmhiTNLSCsa4?2-z(9in&Y~TKid0h}6liV>cGaNa{P@{8j>fTBE^Zz^s(dzNdqV~g -zUKT2!y6#-7XCwHO5j2DlhJ(5J{cP->Hgx3?)lc|pN-96Y>F;#Gr^jFwrqw&Lxg+pz(c-0&M8Yn24vDt -z_>hTrryCy5OhP<9A|1Z=wcD9~JW^Mo^m+UPZ&3VwHh%Dq4YK&zI0Ur+0@;5bjZ;5) -zws`gi?HRBBbB!V56CQoxOTlMfee~v6-gxzu`J=~Q_|oI~7r*fM%}@I2xIa=p>mZ6| -zk!a?xy#6>V^!(X?9UL%*-+j8~8UJY$uJmjOHT@^i0nC>1NEz8#7N1G`$0N3+*4ZbX -zmHp6xb1UrGc=e$owNW#Cf(Jv_s@xNVo*juFXP^d@{6+%x@}oCidHieuKXd@cgvyPZ -zA4GgdMM2&qCbfA`FD-~TRpD2#$SVbJyLIKIkQ0>CNe!3YMn~ezb;m#r2XLPPhB>>R -znG`iiJSjM;b5<|!+?gTV#bj+qSSV6g*rWhaAJc2I*qUr|7aP+{i}oJ*=vZ_sd%FK3 -z_$e2IJ3(Z1Ar7pjRa$6ay0q`>P{KDeu~;iJ`>qKGPkCTgqhRzYlI|?CMK-!`K4<4V -z&AALFY^2L+DEsuSaCV!o9u&>}FsSBV4y53u)hAC*mml}7^f}1r4UgK%PAw}FO?5}d -zD){0nZ@hG{@N~cQjaOejSa`VU*}>BDz0%hnJ$`e-An}75EX}<)!rPT*m|q%*)3;wg -z`)rcLKqwy+BGb8l9Vw-QSPjZ(DDwj)-V)fa%i%Yr;z3P{BpcbdG;5P02ot3F8C2)#wHSyDz8S9Y(h0qL-A-nZW#-2L_*xL~4c)93y%M@1Ors~0&Y-#vK< -zs-T0LYuym+H{rg>H~?p2h@^mkgO{r9^cWI8-B3Jwwe0QL9D`c1U6-R0s4(m7G;O4jKl@#A4ZN -z?lgHH(hQG_Eckw6<-ZTRgFC*1eAK(yHT7U?13GoE&VJp8ywFUvZN13R>fmaZ=1rBt{r~B;Y=Ip%c`IjFisxML -zvWXfWH2T|YFOO7G&L_AXY5 -zf6;gs<)wGgF1-t633C@~{{feM7bUL8{G6#~aMk%&;h-+6{Hr7yT&4cia^+tUx9?x= -z{Hr<{TrCGzgQwJk`?MNd4c^`kdfjgPt8Q>#H+bf{p9(j?vFl&#dK0_a#MP3NVty?$ -z_sjJob-$MVFE`SedrIckTi*X#+h3(yH>I12+LhJrj>gqCu2+qFn|5#0E7}Y#omU}}`z`Lb&N+N>y>Ao}zq?xGd`v+y;u3vB?iG)tX_>TODTs^>(1O-Z+aDMl31-VOF? -z{J3YE^4X^R#BNHf=i*GY<UDd*Ktj7Y>3;OFclv1jPWObA&v5Dn3$1-}`LWJli#& -z*j*zU)weFRC}Ll@jl|_7^$1q(Y_r_GxyR!xWzr|L;zVgi+vQU9&5%$zFo|+i>{Xbw5^ua=lHhn% -zj4N6uZ3f_Vt6wPTsVI^U*-M=`wRhWg*nLFU2r}xuccN+QmJsR -z;<@KN>hcb{C++89^O6$|ggAC0zx7D#OaprK=9bAzYIl1tk*KF}j5A#(J0u;Rh2`C? -zP2YX<4GrATW;RoTTt5Ad&F1dinOZC|&Y|+5FMtm8BCeiPkxNhQ8jqz}@#sRp^|%$& -zTI+ExKpG|xd#2kat7+{mtGcH3^x=0(dqI)4bA<#92E6vpojYMtFREEx)m`m!O{_DW -zg;`GD{QNEcohO5vX0#l1yJ2p)=TV?-`DlINfqOp -zzL>|z#;5_x8&@qm{=aCm^*tY`unv|=|Fv1!t^+r4!IKV2f~xY1rC1%^`zvjZ}KmEVU(_jDcmmYuljaOfx -zrvsLYZb#Oo1c3&L0g1+&=nIi1XFhLLr~`S?=moBcir1f>sI)R^gX!+q0s7jsJ7k3W -z!r(4iexn|}ZpZS|6IwqB)+;@w?pm)im2Md{Y;@}*tesDDRuZJ}HO=#EhV%g{O-9X^ -zNUeyh=eHEi9OH;rt66Sy$G*tv3Zsq&q<9=PRi3}38gUJO`oDv(Gieunm-44yWQJ*? -zZW2*0k{52jk^ss4_S?7qy4TW77gE0um*rd3(*$&agDMzc?Y4ahZ`8N@{vjS`G$==( -zOL(QwbX~cnclEg>qz%IbmlYAfKm4t-a@9@JUj6jjKmE!7@GC$4(NBMe{(j@9fAG^E -z{`BAe^hZ~(Ba>m2#VWR~tE}zp?@a&Uzq)z}K{(}r9%Juu-=gW7m-~VrHq5OWI{=Irl -z?QT6Db~Ep;{=*Od`Jeylzxwn4Ei18Tkl?f`y1EadhhyM-@E?y -zuU&uZH?F_+lk0DN^XmHDcd!4uZ(P6o-u1gbzJB+6*Z!+!n!cdviv8`s}|@A~^czW)CAu7Bs( -zuD|~q*Wdri_4nyHKY0K8hu`?0{_a1z{=vJ~Km4`pAO1d<{K2j3AN>0D5C4(}4>rqq3d>wbLw&F@|R%U`?x=5Jho^Cw*Q -zop-PQ)i-u+p-WAzKd%1WfARl(?|=L^ -z|0258{^4(Cx7vn&Uw!afAN=HlAAj&~|L9jf`0*e8-4EWU|K9uH-+u7ptCy>yKmy2? -zI_4IxYTXSV{K(w!D{{jTC~T2-O;21#nXhh1=K68Q`ICDne0m0`&)j}{Ky_x1;=Q-c -zKBs`Yy$c>2Kc3f#jJj~M;qA_EdBgDAW3n&6AX(&1DXe*+!U)HncfuA3}MT-K-;$4UI?jh}z>i}NqN`c;lm{lb?% -zH%H9ieDuVdPZ~N{lhmH?5)%ag`(b~$xaSSRYCFDBZ-{N8gJgIg@zl{Wt3N&PpMQ}Z -z=#f~0&r#{qa=@1>$c}Lu_FqdkbWMPt&^`?|e -z5O}Uw8#Nt!-h(&G-O1}Ta~q<)H{BRk@$Peg^`{f)Z`^!uMSMh3OWI1h%_bv|RD%q) -z4F6O`Uj0s9kMzlJV}+*-Ditt%+5V1C^Vs`8@Sb -zVJ?l3pqb9J|JP5x{y+cfkN*50d>bbYHt;R&ou&VufBN_T*Wdb$|MlJP{BQr@zaG|_ -zBlY)wf+O|MzW!hR+1LO3Kl}Rs{m;Js2Y>eWe)MNw|Ms7K{dcb3Y?A-SfBWzL(_7p- -zI!x8zFqOW6zWv{bs{QzbAAIor58nUacZjzA@Q?o9AN|T7{bM>Jn-w+Hi$DBb>h+gY -zW}{D@df@)v-@AVQzqLPp>-zow>go^w%QCt3hu{8pzr9k;zx!jOPoX>^0)+F36hJPh%Q##6{W$Q80 -z=9TtEvPT@l{u=cQi6C1eI`krlTeXia=sG8k>FTGyNpi?f{)d0~)Aval`GcSS_auk> -zWVk0CoA;#qAAkQ}l=NtdU4f|=Z8OMjXApLm0z3CkQqW -zHq=F&X<#!ivP+Yn_m0V&`+CE3Nrc0GV6u(!PDAO7vvUGnL%US1P5VhL7Ak~ZHd&^mG+{ydI^plX@y{i_~Mad+F>WfLiNmIarb1F-7Th*$3 -z_67Ou5K%ojX%g}cd2R)%ZX$6R>_Zuc7dx;!N^mOzfwW)pY)R;%;M^U^a&W5c{ -zb?tVRDIfgyp42~vL>2m!HldA4J6n|xY?WY#s5tgJiHfS$FYVrJpbd}yR#&celMA&* -zeppxE)m}I_%|g50x=LEH^sM=kSTfnYbA*#13!z@>W#jS)->I7fgsatu<{p4Nz?aF^ -z&Z+@C*D%%vQ3$j0WLNtH#}*oad5_QxXOWvShRf?jxVY<8ZR(IjGEF(JqMmqzjVcbg -z20F-Nk$tF#{jux6rSq_U^63Hp@S2eyD-?TBMlY_&;J#nV6^*yj*3xOCiw -zg{lQD2cK(6`X(#A2}h0D2vCbgs?ayL=x{Wcb>Ld7C@xv0DiM55vLb?j41IZ`y~sXJ -zb%#B_j`FOw75qdAGM{Xc79ZND1h@6~PajO;2A^s-ob9k~=OzyxpJJ6+DzmQzi@=^Q -zbS^DBn^2wV=5wSM7ShEyIDBuKu#$D!W&NkmR1gR238zYKNdUI^IO^=~=>cLoQ}dA4 -z@PzkMW+8)=nzLPJLW32Cn5!vrZFWs))0kpF!^$SA!(rYcx2hplQ=O${*hMRok&`t% -zAYXJ&sWP%4Jjv41E2JG1>OwMj9=oDW@<6xQsx={((~c7u;$_=NE$rZ_c(O{0s;p); -zF%!FKot2zv*4BDk8C~z`B-IfiZIZ?OLbFAN_=5qbD_GPp(ZE)2l}VaOqaf2QBheMe -z>}fL1r4@biZU!v7>5|S`>K73bO(Tz=0&$12_0l63I~3sY47J4R=luDeLiw-Ou77$W -zFVEFB?hCyy!YX?pck(Y}o8%vh#zvvGLg_A;($T5XXVIqNssO5x0HkVK(d-mR@LaPo -zwbgmo+S%BV$hz!I3QvDZHbjQX80Te*)$97WK5$&3*ie0yS4-s|9Pwbv)^sWj+qmMS -z2q!dNsiG~Ad+(zTPlnU8$ah4@EIFjva%-QaiB@f}AsX%|myq?r^GwRgJ=#9ibg*CU -z%0%hi=mvVBIVxl7hfuni$_%=gsX9eYXL}>T}7)SY-KP -zQAsbVJmw_G3M)oIwWbqfYvjDs-aebk!SBw9CR^K%4%ap=x3o~?_l4{NNw_TIX3|=7 -z;V#Uii(8C_{G#dSA2@Mpee?tV3hoOZ_o)EFXQs9GH -zxh^G0_3I8wRfkn>7gk7%8_eBg`NZe_X3Ra$7fnX2h|s%MSK<@|v3F?js=YfAH#{5#{R+m|iHE4@Pb{p_yGiJPoLduK*h~tD7jB_BF={H~nDp{-L}}Ud4qyE-`?vb{69vZ@<1s$TsxixPK8l^u<>IUg!ly3T61r-uv5 -zJh^2GrKIngcnxTd-= -zY2LXGGI&{)U!=KERuG&lou~kwDYY5Hx!)iKcsefF&X`5^VFJr)_pv`Swu-;PlYIB& -zY1=Z%nPu@9M1M9-qg(|S#IQ}ySFUHn6Khddh7OxM#QrP1C@Y!lvR)W$*$LRJkT^^? -z_lvf<+@4IlNk(DUK++;PfJIe%B%8GMG~5i06c)OtSZG -zm*+IE#IQqZv}ehb4h3HsQIi1K@cKEx>rQ>5fW}65DJ$vZfj|%sDh1KcrYqP)SX=JdMc^v_GBJW*DKlO`ZD^*Cf6s|>Pw3nYsOqUrw_ciM5tHcYWNjy1uzSC0M9STB;4MeX#8HzMSa1FJ9piX086b^B=?MG-& -z`hrARiCDK%FbdlD^A|={aY#m+j`$^~)R2zKNo8*~Wr13N#Lz4V|3G|*2=KCQ_^~vg -zS)}p-26NT!bJ(V0E{E>C7;xWEG+Lh9KbNLMkzVM*-fq-gXc!@#6?ML|9E7cuF2HTQFq8HII2yVU^Ui{R`pZ{pah%Cdu^&?+eMxUApX?7C8dWveve~9;R&r@IIb$0L*D*4> -zH4ydeCTBx1o0RsG(WA0BMOBEO7-=X`(a>@sCdp@rq?n|uMwS^5V82Iv^NsCgmM{8= -z-xaLpxo_w*ko(md`miwrE~vnZEQc_2GGvUT&g5Az4u6N$ZPJp36jWR~rGr$I?Rqj| -zoTLJ{K`^251{LdyxDER1jp^v)?K8p|J>WKJ7kPV1qeu6(*zOVw2GjA1s9NhULVAwVKxca4DE`+FJ+qzLN*g -za%9wIYk5zzAZej(ZK8`|opF~QvBj4l)l0Z1VVv_rwQNct0)M01$c(reVyKfOGwTElGs=8IR>Zt9A-*YW=L6!d4^+z=^BktmK -zblY$o=n?w@j>&Go4c_jpShj)>G^C?ESo8LP7P_#iCPADU(b}+gelgX?0sQ%+ql+pl -zXU2rd5qH$+h{Z<^a?7+czl}Y|^VxEj&|Fb3_$F%ZJ1O{{5KpnnO+6F+^l2&`m%|}c -zI=Kfqe4uaL^VB~*uD7>-A%i^v;fSBP1$J_gSDWW=iB91&ro(c-i$?n^^apWhG<7w? -zl!QejB2|Mgc2`5QC|ePh#O1OZfP`mCO&peVaLK9Y%jwf}v5S;{@UDpq$9Z3LD38?!)u2Rc(^b27_5|a1Iv6kz=#0*zvsN#$2 -zLKqlYx|(EB8RQ{vHcb}Ysx_QE5g6TOFv#usHHn=M7DZh2lYxG0^-~4`TtXs7!A-Wx -zgv9ViBua=_{{i)~M$d0tE5f9uN*8uXz)0$>qcCe{`3|GFjIC+YQ?vFhBTkkAK`KmCCxNn4Z1|H0ZY9-5_=a{mX+&;p -zEB`5JWobj6h2vL%eW*GPzg24!a_-j?8KEhP5KipWQqzwh2_1Sy5G_Gq^D(J9v`4T( -z(rj^Pp*vbTrfW0;GL}7I!ouG54i8?hUR14SI)ha}tXP3@1#RQo6v>H67WZNV6CER` -zV~WEH^7=@8^LWo`)U`TFKy7%^k~MEBmi8asWo+)YB8mjxPub-3wOVyi;w?pInV%Xa -z1mUCn`ekhm(!6m(BZ_538X9{z{cP1%`aWc)jn{|Rw|YN2~f0oi8M*JW(naQix0xkqEQbKk%yBgbocq&HKe -zV_(I3<~zdJ5O{BGe8>(NI1%mz%-{6{BCjKzq--n%VFoF6?D?X#DB}&ZDaJ=sqOh& -zXQv!$IEXyNBJvn?<16m*=f#el -zY$jTKkyp7PQpR~Ju88#Y3`y_lLK~vYYMmP*x#uo8-CBhKmE5@#sdBCK&{tIgxJ~M| -zv4k#_tQ#<4)Nh4V6N8_Q5g3zb?P>K2;~ij~qo6_IQ0ShEqBGWK_3I9{|K2HY3mVB2>>AeQeRDMDGi}0UjDM*Z7ekZhkUnH<@3vpS>i9d4?qvE)++@fM^Z-w -z8?OKNu}Z4*_1CIwP1?53um;L+iq -zy6xhunp&SE+YXo93O^to%P$B>)8T1LQl{o|>BV5M1~g2s(>*dRL`!D(h1>VeaMOph -zIp;Q`>GX&njaH$yfgC1G>$i~@%Gjzcc5z=&JSdqD=7H~d3*Ohz7yR$PyC*$_7Gl@skT+;j{$ots6o)o&<_~D@_=+PGK0W!HfAi`JESaL!&={%zDD1L4 -z)<>U`5ZY;6!9e!{ppKZe$;2zw-Af}zn?>AojvmF2+3a<6p^xfK`*>GI^q?+`tEhv= -zjeQz;jT&+BtVo%4EBCmjqTS3C=4gF#)CcWDJFGvoEpo6?O~Uv-_G$e+_AzI(ZC9`s -z;GIvIMyG3=g7}J_7Y^GKy{w7Vr;!w$%u%NF>#x2!8x2B}0L?}}_0Bc1nl#<2#&Iv$ -zVF3w4vkN_XSjzUz5MWC(23NU??Ik+7|1R3nFlNSCnzbtD*FAS+Jlz*rI->{n@3D9B -zgv|7cBnH@90t431chjs|-g-xa9bIS;>la5ob@$HV}U6i@sm#wTL -zX8n1cKcZ>B(Bqd9QynJW=QEBNa?dd;giYR{7W~O{&0!ywo -zD#<f&ys?{58RXsBO -z|7Gt3rb803cehPd@saOsK^>8$o2UjHr#dK7vI<`$-8@W__=q;)XjdtsZNo~^kzW-_ -ztLW1V&HV7U#I%?W%)!TaJm6bW4U^TD<8DrySR||G%xqEgj>z%eMtwxej -zlP%Vz>@$8#T*cK)MMq_QB;FNv&dq~MT1c5w-SbOzZZDPE6X5b9e;I?YACYM0=!cOt<1{Lx(6%9|7yRBDzIPzzluR -zND*8cg4GlqiQhZ6s#}`XFCZdp(B=xQfd)R=CQ;WKj^N5a_xU2ClZa-`d01VQN?f%2 -zSt`TGBe>-*lKf&<^>U}Ph!(7_8^F}aL3Blnv(=Wq`k%Z>!XkFVnPg?V?6gAY*b$9Z -zn8n_~y0=glo1!Ur!9Pc=$!q+T&FF+oXM1ymXuTNc>J59FxDDEDNt6CX4es7}9v-C| -z`U{#${1z=OZ!CVs1vUJ%I9W4KEf>OdFoK1YB=K(6s1?y{%-igu{u!4aaf7=P@$~%* -zSc)II)LQ74`NYN9MPtz_?BttQU7F-!RW;1#A6Z&LE9AftBJG8EK6j*FeD1G2dEsf~ -z(9v@XrfhFkt^F0cvM_bOcJ^1K+^?nkmAhX6Q}!JJ-AP+ -z!PVgH?V#7~#=q(Y_jQA3uKTHQ101{l#jZE8t4&;OqV2Cm=6<<;r0&!x%wQMl^9KXC7*IvuZU -zdbT=~aiuYhNR~bd8wdc;&EO?;NI3sx5aw*L`|!t6DeTq6iBpp^Z?;a)?|TCWzK}jN -zNy>+E$OyanVW&?N>Rvz#wf8_`=OdL?ZIgwaxXO?OC-#`Ds974}2!gHHQLey3Hwbwe -za1d7sy^Lo%i#X7n7ZkCQ7O+r`sTnnIE2DX(!=RdR5TSUY8wPxx@Ojp>md3>eyjI!H -z(HO)WE;bIT9qprKwb5<2Sil}7-<8p^*Vr==I;=!u-=w68+Q`uDA&-9ryMNW?nOU1Y -z+VB;Ej;XUXH3bqZE{m!wTkF+xWw>q?sz?cpk1axHmWJImMR3=r)4bnlbyY`QZWXCl -zaC#_I++;?=ZJEaKDzCMtx46<(N!+qLyA_MxRohq({j0VMGxKI)8p=@Z^M=@{aEhT- -znRZ4r)))NuGPVoiG9fnc^5ZV%InD8n3))|&I624bHo~zyT(XCjnhv!+`3`)F^w!4; -zW_fdc0?zd4LuITB&5E7Iu)pFr2~{7xQ@ii-78Tzm;@m2`p#P_j5DE7NHitfi_EbYN -zMbyWO{44>XXYh`vzqp+(_&t-RzgpxEQgRc@cpV3`_sIMd#pFo^?Nf -zWAz42Q(kEn1P|!yE;`-92yKs=z14^ZZ?eW{$E&=>^0-VoeI%Q@7rMqf#7L+rHqK)2 -z+@vfb2BPdont2zu1CBJnz@sB?Ss&df@!q690*fQX-^ -zd28k$}5tL0|=?+IRnsMxw&B+ -z$zIhPZx0%4sGI~-zNM>~_>B~QnNg!zYQR<8em!$47zoVi(aDPu@ii~3>2RDI{?3AT -z%n!}M=m9l7z)1v=;RTtUzAG1ntmDMv;ot)5dHsN?cYD2zl=9gdcxUCR1&bqeH!Eu5 -zR6OmYV+8lQM~9)-(zh9X$-%G5Vx}ytyrK>HDITe56=FM0*=oz}Hc1$WZH4KLD!iW-7gHmdYRnZ`PxmzULWF>*V>}n6V4v_le{^*6@N{-^@4@VNcJir|m;>PVBf@=9d9qh| -zb)}*R(y|^{#P%B1^-WdmO+hD1R_)h8cZ~^u>azj1Qzzx&2Ou~q`jE~M{})waU_MxB -zb7~!~uc8lmI{S@0y+u_UcZ>bXG;573%fY%_-B7nAzD(Wl%uGy}2kU5`O+M14_RJ0`;Z3y!6D%N_FjWwic!zzY*=2y!dey;{f{M)L$ia -z1nkzZfX=>wk(hY2q0v~4uJf@`8C=u2h}flZ(dGC-2h7vpnfA-N{j%^tJK~~-WutDz -zqdpOzHN4itYvMPC*Q0l)qwD49`O9(r=sSpY9bS({o*3BSbvwK!o_26e+~DwfH@q%K -z<5Q2`M?B*2dh|W@Xy)rtf11(ro6+~`(ff$E9A1y!$9ufF+Ll2eOSb8-VuOcS2>Ib) -zIY|iz%k4QFbMQD*#e;h@WPB8()jDvh^v)ay?lov6PWah7=(=cy|HS-!^x~5j_G!l< -zA!^(RL6!nzWSSi9w^4CxdL!zyeW`uPv0@}@8W*V6C~^*PFB?SLX-1jZul4OAN0KiT -zcBB%A88;2~7e+onM`F_yu{U*s{QiKTG*j@gK-A^ao-K{edh}Y(?3Kzd8S* -z-GK#f&qm^F(p<&)4qCc0*-*jJl~YvjG0G~0B2*VVjT>XKP)D2Erhz?DTEnLgI#~zH -z+h82$`~F)hUUW^i>PSqfkKBcm`46<$0mGj4z7P70?oAIj_0pCcbsPVzT5yh@9hB$U -z+UY0``6wnwQSstIWmF4>7}Qbj)w+rTc>>>Pof|*u?M9G^iZC@&h%DrhXqIz!h*EW) -z_j7~W&FT$sjgW(Pf&hL-e?;@^`Z(~?zp9x$P=t1QZBBizs}v%hQV+FV?gUp(A1&&p>! -za9Y~hMx)&j>$Rt7&T}M0O5D3Yx~;m4d(FG!y9(ng#uQfguCage!L|G`7`KIL7KvUu -zJM3U=+jW4r?#zt)nnj6rJsjYVVV56`R@YW5gzC|mKelC#yM-8JP%bD;RDrN@+6pjG -zxus#uDhY%=2nlN#E3z`GDR<%BPQWY!99=4!^U3Fu5i~TF`!AgFVGM0whkaq -z9XLD6N-uHDupZAK&_jki4>5qJc>JnXkeJKVVAbCH%gIH`b`yM6tj?WlL6 -z#MxqTWD~dOBRbXCmM1625jC_BI-~8~pA2FPlapZf5j{uEL#ljhmm!~NE|LU2J3Bi$ -zK8k1y-eA!5da!q|ie4<~lzsuv7;8YEcHi=-1ZdBTU{mS#oA2yu3z$HYOXI~J6Ig6^ -z$P1VZ5nE&ED3PEU4Z5Dyg*B&*Y=!|lPTBhhM0m%_T(<-+%w#KCv5_~;t13)_vNoh( -zJn7&}=|D-WYlygbJXLzI-0RR0(GEYZtxg^&S(17%!p_N6&$e`IMkqAN)YB -z+E-~M+e$ZVW;rr&lbpiEJNvhA$y-W1$uHb`?z!h~0sEH2(;@IIvLp^j;3WBD)^1xg -zm>?}(qDe&4k7E61RSyeZ63E0mcV;9rNSwQhC!C{#SlNbCSOTgbknCEVrt{`n1HkwT -zx9*&tJvh5RVH=q98Oym2!F1cv`=U%uC -z%zGCmPMz?Y5z!_lIad2+5VTi-vH{AtB!~}TF)JsYUBBzt+2%Rn#`f&_eam;A^CH!Y -z3KET;KkbGirJfvZ7WBV>JqLpQ#ylA3XJ?psaTu^g=aXLFHFZDfVDT=xmA!})`zz7* -z*P^k%veNx(-R;W#D*H!*#`{;QvscQ!K`SH{RHdw!$mZq_koDw++d5na7Lb*px=p%w -zP7gnGwKPoe$>NwqzVPfkI!RAwY|mXZRoNQvB$9l$jOoOgXdLBmoxAc!<;owGD>o`v -zZd9(^s9d>Galcx3yK=wEtHG#T4Mye4jmni96*F_^rypl$AYVgOW8r_S?R5Y20q1V` -zcz1owJMPTuXp^@2Qh%J+=z6Z=;A8ge?BwpGpk=gUn?seGUHsZhr^koN7uhz67ga+; -z$7vX-MOMZxZ(~$wmkmf@vQ9p{$?3QWT{1zEv@532BvmJJMrXr{&YpmQeZ;yDG*#v2 -zn~?=^?{xT#T^sYRQBfPX$H|s~Ru&-B`!{^Zd+mMZjpwwzmN|_->|@Uzg-Oe*iis`j -zk%)8Zafobudo^@;teVoV*bW -z!L31-_C-r)z}Idk+1GAA|Fzrp5IU#BgXqYP(c+54`cR)9LqLZ=xO&bzpc~bM>8!1; -z_{Zt-$wT(%=PSkP!v4C*n#P#7{p(SE689xELECIxu=6js{Y6{hw|vCi<9p-jE^b^G -za>uDTGpokt;4z$mHIA@iWqA?2PoIapha^bdUN8@0+TrVu$kkay5GL&qgrf+>MeKoa8$tu@h(uT -zxau^0TGJ);UBh;Fs%%aRDQxIjJWB-*7MF2D*3R9t3ExuE{%D2>_t0nww|KCL0-g?- -zOyUbw2?ldeKY+oDHMIq3;zwvIExC91&K`mjQtdiY^{u~t>yG?DlJ~L+BFXapGcdnY -zduw)~q7|UDITeW|{(UYwdiGc9^l!f!BOhJ)OTYBR&qjith?;ej$-39U!i?m-^D`no -zyx?VmS$y#226hs2^TT@O=Z-bhtQSnT?5zXu6TNm1% -zk}ur;J7xFeODu87{x!S!jq>CoOzcMH!NI#!lc|7HQM_=QrtQ0thKLRs{Sdhca-)z@16<2%=2kfChbJ>E#g+$R1q+9xVy+88Z -zh_~GDn{=Bdv;}8@d)H@A;Y-bfnV&5M18>BwoSZ*69-QhPG3!6z`CE75FpiV6U-*JU -z?Kfmf$lR^t&)5ldkeG3%5z_NKLmz%dXr7Qf1D4rO<%83SFbFj3QgrwDL`*w3&+l{0 -zO%RP58^HP?o~PYye#g(n3C&FoYv$nxnGO*pu^fP5%5W-!F|!R$!R{uTtc#eCjJ3Dy_CwX|SaWc3LIHaI9S-BGE7A)WaXNesM%4Lq~9bi8tA -z$Nj@_k9M94?L=0hoM;tm&_OgBkctMH}LYgPD>MxV{oigQzM;Poe(pGfIX&LcVrMB#V>n@ -zC8VE1mE!V@GdEt-bZ2|#C!)r&qUui258h$+CotLH&F>&!KRM`O`XZ|k%u9T^h+;V?XbjUV5JS5#wZI4Uw -zfOXw?_`o=dz|lfiO;;~7Lwfgu(6N1!06x(0%9SUao>E_RlIfKq_HeKkAH|Q#*m5-U -zxxsgR+ue8%LdJFzYex|D@{;~<7B7H?kg3XTSvs-}VR~oaNjP9q>~rrvz_wS_`T2Qd -zpW*5rP7s`tT`rSyvmMsat|GDKB3zZ>sN#4cVN5finIxATYjOK(99_BtSjsF+lIESs -z^Cze0=Vv4lJr~gb&kk*KbMx5=2H{c{yGz>bjtA8%Hm)l|ST{KUlC)ae#-d%Sm2cqBn -zZ<*4qx{6lGO`vU|s`Rqkb_U&ren061oYcMrY9Dq{kF9-y@irZIzJJHr2}ZqnvPz?P -z*x?gQ|Ek(NiO+Dxc@_BnYLTwAvJ30s2^}h|_Z|!~774K+MHX>l5HniYlderhqx0~b -z&hl{Q;aSgE;Oc5nPMbw~&}7;wy^1PD+=x+1CVAdJ@XQ=Ly0&HK4^AdX_R(}ugUPw( -zs#v6jqx|`OkzN6ZG4V>qqFO)XcPD!uvv@(EKxeb6IanRTlq3ALdCV2(Ei*(kkDHqSL*S6XqV$Y9mXif84`| -z!$U60D@`jei&nd^Ep4-hr}ssxxMG@Z^82DPppA9{e#K~#f=92+->@|&_a+D|NaD;$ -zs@9O0c@{gTu#%h3?w?PHiCuJzC=@4yGuA3A&Txi8dvQp=L1P$HC&B;# +literal 141330 +zcmV(%K;pk2iwFqydmUr|17%@zd2DHObS`vwbO4N7UytOtaetprF#+zu8CdGw*|qO{ +z!J;v_a|{D^e9oOONP?h2No+NzB~ccsp6U@2?{h^z~?S1*~e{cTj_Pc|vk74e=y}kVIn{WQoUfPF${qGN^e|&z9fBWly{S`!h +zwo`C^`1bbx-TjAmAMQWCfA`@%@PBf#v)|tS-h|7aT!^>7>fPY>&NlxHg?}=@>3u^C +zsQU5t&t{?)Zr{KA_QU(zzy0(bi2eRNy2*xbZ{OcG<`QmyHII#n_I5wnzt484FVGf< +z-QC^YTIi>PehTfTjOU0YH-%}6$_#^@3c|JT=6+z@*?lYt^=2@woi<;64)N02aIiK~ +z!Q|S5$OPBe%1lI*k7K(fFdjw%n+CeyAmZLgY~Q&$!tf9=_^0x##`nezpFTgEafAwf +zvSsaiEDlBGWAuH=1Z&jWfg25rirU1JpPCWICzO6_Nv3Swo`Gr=HYNlc1GRCoQ*^;D +zN}we4{_@#nrGt$xpZhA~v{P0)Zwa;AEwmfjjKab~Nk2K$(U+mtVNs#>Lzug0Kvv60 +zqc`~b>E*LMkI>p$6wJYPW~l8ivG@2LbM!QvH)<6yvl%Wk911XpdU7L}0_YPbSJB|E +zjRfX>?97EqZi;q9?V#eh?+!7JWU2wg4t@@n`f@$YBTNk9&ci>hIhg29mQ@%*q8LGc +z80{bG{?ERdJ6rr@D(^c3)yBC3%W@3~lZkRY=wYf4(qK6FCxvXfA{1SHyzqC&15Dxu +z?F6tNNuUH%wGoEwm|KdnoPEita76LZOc6~!6IWLK{E|_P&8f!`D^Kv%Q1!E~9&H_e +zy)?lEwSP%C+WJ6Md;~v0n!;pv(WeQ{X^dZqS@T +z5PTC^PF|Kqi!>cOduH2zGSm3v#J5QOt%A-~8^vVI+~u{!s>J3i?pEd}%vIy-8CQ4e +zy|E|Td03g?fxK@!%UT4m*NB$9cU>QHT|!bO>=d0g`BcG}nuFtZfCN8aU|k+-KaIi! +zLwDl@E2ECG;$eYCKQyj&5u8od-6?f|xCpb?4`Xdc8ph&4$vdH5`r#V&8F@pq-!^miiIK5lS4+*dy4xQ>$_v&7uP2 +z3<>PLLe=?kWS!r#p+hLZz0#`e%=1ND6Ev+JqU_HKE&{+0Y)DfE;8qD$!-R#Z((o(* +zY-BhuOOi>NJB9(=+jN5~johPvWr$&q@4$l_+VP|m+Z_)Hj68A-!0&xx4Bj;eeD;Ig +zr2?dw(1{pT?a`0((4eD&5ubD{CtcY=hb3z7@g$QmA6Ed1W}Sg2TlvZKh8jIzbYz~* +z+L&OoAD+?vq2y+>I~!g#igq^}vyq*LK0_?|X7li{0jKUe-@4j#7$3k&H57!P3En}) +zYPav8`&0#nx|jzCVGcr#LKvS50`P4^gG1koxHFaQSf0ZyLVgi| +zwR>`jnk?+s;lLGGu}~z+cO8p~cTfBB!rR=5e`MZhYf&)Tv-FPN$jq{C-IhTJ3}~ql +zf)J90D2PG;p7Eszf{1iclqx5PMz^P +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 +z-kqBqX +zQ_z~iSU=Kp5SS1R%@<*u`i$a+m0Z%$*<@bjp;fvz@OeRGW#7tvVUXl{dkh7JePnk} +zu4(xRL@JNK9pM{_(T7-E>7*_|GC;~k4+)*6lkut!1nl75BOGa^GUk4+RFmZb65=Zn +zjo`29v1f|z(XQ%Ad-vsnxsiD+s@dVAh(aH{zp6Rjlb0bVHZfV;&1F}EPs|f*#K3pr +zZaMcsj3(OBPbt*2ln5*8lu?giB}>1-Sl-sGG))3)@!eNn5VPfqTGx_^f#ET~lZUoN +zYiTDQInXZl#ry%97mS3s}VH+Jq +zrbBT>tD^|`8v=EciNJANeoZD=CUic1q;8}9YArn{RYv-?fG~E~j0etLE{q?o{F;*9 +zJn;%ZluxwK_zsofRzXP8^hI%~`}BEnh?2(BU%?5WLfYC&1@O`Hs0o|ZRU8EGRtv9_ +zsg=1n$)YX-w6S1#m4AWI`173`&h?Utr~8eeMJlhwkd~4UYXo0>suBzH4Mk4KB=T!8 +z`YwgL1qNm3nkfU{Z~TmyqgR37aY}KUDrRjgz0(N?_aeHkSssIf=iwRz)<4}_SZMwE +zFKCd!xG_!SlkH%P7J6#PEF!r^iFUVA&UDj)Uo#%%97-5yWJcH13&+Mc`Du~twLB{5U45+!A3h4=pU +z1^5D}%&ODlh@GBONq`hZ@c{xL0J_pXBXEG`v~lGa59G;&<;rYc=g%dQFAaoeZK}3eFqdJ$)p;%0=~}?p +zb6pSVOyM!}@9y5Rz}_G*1OI3{{~zvPf^F9J7mrOBC)|L01{O_~_+@k!FEVF+WG4Lx +zV`*6$d;AH=8l>u>bEk#?`{&H;ap}Hirip7YHl6N`{XvEfbsVkMng~n{^)|pcyjY6US-=YpCt$Wk*%i +z3bq{wwG;4v&OAY{YtajI*CHFxHOkW+3?9Qk*TAdt@DxljQBPE$Nrg*DJnrjYNjPtl +zbZ{A^%31lPO$?&)lekP;FqCoZNhL3(wQ;Zx9o1-Hsoemynfq0ZmTa!K3O*Pn{Gqon +zn(`V+j*4{kIZXA1nF^v_C!xhak|^cCs&t92s?{;frlFhA{=~INi$bl+Cav5lzDARZ +zQ5nZ!s!PkdP;3dHLmJM;HU_)(SS>Kr&kSX)5@OUPLLK9W`nX!(9}d)I1dgW&oP8r3 +zqboVFF4C>&vr4e;w03+z^~ER$h6Yhi6&HpWr~Kj!t-|Ozj*Ci->Ns|+8_{E~H-RuL +zJY5%=)luIX&6$-si4pA_aKK=X$7ARw^+q|cGQ})f4J1GdI-VlOxnd&>v35z=D&!b)obl9pc5MKH=usH=!98^8 +z8Z`}y<_&OocH1am=)BP*m%X1X3MY>v>=>;;)38^Y@V$vqEGNnP1yT520ZKaDQqI8zr(sS9QLadXnA!y-j#s1Emw2b`Ct4 +z&aAtnOFQRK1Js@Ncr!pIi6^}#;k`^Sjrwbg1)knG1zN~O3kpetWexERGNvnOwda`Z +zK<+Rpci3UHD)xouIUm%-BuDhU#guVRNStKk6L&tL+{bVW)dfr^a?a2*%g{(Q6f(-w +zgxL|sP~stDc$AR&PZErDcsgO}IRJ)LN7rdvf*YwY0CK`p@gt +zp_Y(#1hSIjoI5!M$@Dl(+0mW>K>pssPl7N6~jx4`L3n0|j!79R}IU@gqHxG)js_l)G +z-Ht`(j{N#UqQTK%3|ij}jiZO`uJ5P2-`xoi7>E5sem5VLG47h`@p7#0RNrs+cTdJ# +zNy_4`%*S1Me>bM)_yj2WvCi+uyX@HC75VP8HwVFYt@Gu)@!q?7zLUB=zLVRx_fH^6 +z4R-}}!`+*hQzP)d-i>*E_wsO;TLWF4?Tg`VI2FZR@dC{XTG=~sk{ZoLjsEQJ<*t$n +z#$%Qzqr1zR6x}K?69t~O6G!cI#csvuyAJJp?#MT^x!~S>=gx}5DH9(^SEQ*&Z0=W! +zY(FjoEAX8H-`22?X!r*l+c>~h!gt}Ny@qvjyBoEi6U9{5Ha?a!tYLvna^U$oH9E6V +zW2}LaD0b8$YX;`T_LzLjYV^Xucxmw3RAE>wo4^n-7ULaJ9ZdU{gUxXs+MxAAnkSFz +z&CB}U*<`n?Ds{$Dceb=KLP?lGjELh4(eNN%qa +zlV{bLHjVl@fLzb4e5)LcpZ&jn4oRS9)_D|XhHSGx+z8ULGEohUu>x?X!Br_`R`aIB +z3ML48AuJIt6o5e`AE35`Th?S@6&#^Mi+FYIs1lK`fA`JP_WAsB|IP1Ko9+Gi@&0}l +zQVFCUO==xdfCJ`dwS7Pwq|T7K5q!?&*wU_s{o^yFRzBe{&xm<~7rxlU^Xdh&Y^zp2 +z5irT`)}c*npLgdPOeyU2@D+FNiB(9gLke=k_h2e9t;W=O6H@q%A+`P+r=1Poc;~)x +z6;g=XJ)XDE24_?2kb+$J@&voUB`n7Dj!UqJLlyx=@D&?V248`FarXp?&Am&VH|EQ1 +zAFfOyd2tw5-1X{R=sBCf?(+S6_w;yg6EE;q^WvB1dsF%kuG2u|a3B9oNZo~0^1DCS +zCPOhlxm*HxMI4pw9@*zGXvxOB2p&wr3z9HqNf@&vj9KEwY-LjT(!UKU!mUHfKH+K! +zW0dS3T<>AZ_Fl3#xtMqi2|HGaAFISqV3)Y_373VVp6s9R?NfGcn}i*X#1BW}ha>UB +zk%VpvvwacK?Qe|oeQ_%8kw#0?V=yI$@!DepeG?rqdSy;fNW^8X^Z>v6{qKJdBIb|o +z_t&nsDPW{cB42q_{@JoyCXHt_P@x<`?w<@>ZPQ=SaC5`bTbADWG>RfFeZ0V`5WR;( +zr73%*cIQG4N>DWLt6&^@yE{$`tpDM-xiv~S2>uz>GS6e5PnQq +z!_`kF{imNj_D?@=eabvz-|o@||HEfIJTs~9{8K-Cw+*RXNbOw;dc{8a#h7}U+Xf~?TEb!7|T +z-YXiEZ&xSO(b#_CrLD01UhZhe7*Q^&r~~ia@5cRZ-S5u-+O_YXz59J|zmM+s$^AaN +z-xv2Q+%E=`z<@(-9uVfFY7>L$Sa?L~6RNJ$P7L8e+=h8NwAgk)0M3*OMKV9*!ix!m +z2gg0dc3I~82gnh@A&Od_S@$BNYrn?7G@2=kiL#g{0P>d`Q&yL*#Q@B66_$tz&=(p} +z8$9nPhFOWwtsHAl_HSfFFF`^UlIA4PLkh$HWupU~HKK!zzRIVmQ&&c1f?awm(`YZU +zki{y;q(GC(CAouI7@~>HNchwI}YqQ +z@W6pOH2f*BSDVX;^%3>sl)%9hu628E6 +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 +zGd!Jy*OOlq{0CXK3N2Y5|r0A1Qg`r+w00-%=( +zcC&dEruS^a_^@QuR|bcHfLRd>I;Fg0j9AjSXsxo=y;q(Du%T+aEb2aqI`3BTL}%Sf +zL46EVx_#D_Sb016i(q2cTb}*VX)df0$J+IP{t}Ed*Pp((ZMO+0<^y1vC`edt4ibhk +zw??cHW@JFTxTmRE9|7Nj}_^F>*qy7oQ3JsT)GiqIZrlW|p +z-JZTL`YX^EU!wo$tdrKvD`Nd8SdJJ~{4+YGBniwgcW}S{q5Z^8lh*(I$*#xsKa2UZ +z+lND +z2|`;E9l3p!ogk?gW@Epw7OpSw7pRUie{kSprdwomD(7$~|Ckth8Sm3;fg+qe;W3B5 +zbeO(2=g6y|xAXHIYjjixlfi)7K>Tq4!$uk)B?k%ntJd-gTL~aZ0n5y!EW+E<7${n6 +zh@dkH3!*3R;zbS@y~g3J8pR`nzT7~8XETs9ZE%aoV%%!@9DQt1>^g{LEe9^%FA&67 +z4R}`X*9TsSXJd$Vdz(8Eh*IbXAq7o+j;gnE?F4ay>t>c(L8oJv3rG +zf${rzJmTbHv^M_tKBTrGWu$(SvaW~@+WOyzdrF-N+WFt`1lo%|a_E1s(iVbAmR|_P +zUbovlQVKmv9Td%eN`&UWJl#`@6?nR*$AtgQ*f2TcC=az6FaaLuH7#j8;g+EWw>d>~ +z&uUdM6**SLh*dC^wRr1cWj9VjELWXF8-IOHQ}WpEks)rC(g7Oc#b$*U8=1nR{1QnO +zOGRYHo`6Nbs&Mvu78O$#Z;uwzF{!brQz+4f_t0EPyMeX38!5%=v6}2g45c|$w74^+ +z!jv`#d(+qv7;^B)KcrDMiVTYkdJL6M@WL4Iy@*#fThA2>_0D|HLZN3cc{S$IM6p2V +zT4z!1Aq+$j(j7E5YEl*mh_kk~$(mBulg9#0BUyQOMbg57F3yXmn){3xf(gl{C?TVP +zBQz)Cgl#Z_dSA<{j9`)*qp#b=zswyt(VF(C3G3kPay6M%{qvq+p=$G&%9^^w0cf7y7dkBH7+!(JG +z#1JsZ8TYos)cCr5786R$Wp+Mo{k(m071Y8E$=M-$M+OKk)VXxm!WF_RmJOEIY82Oc +z6xU?VI)-D)&l>WEFc1+zb81Ds7EeKcnzWGLbH_!*a~{{!iC6q4&28fvSh)yE(?TC5 +z`dNi$1$piIg#qD(7<=>+fY3!o{~z&3jEdRJ8>j|mKu^73ak#44IRNFjOHLL@HZ~SB +zE-Ex<4n}{`iuo$%_N(I6V$VpqU=a>R`S=@TMD`8ldbt`jo7EPUeXXRvQNdz%ki)+P +zCr>ua@taR~(-5XPpYoU{LIhBl2Hpk50!F$gD0Hzo^@@O7A4qWr95@ET5@`tB89+Rv +zE$*s!EqXCB23g6WyF#q4TM@D>ry1`-dP+yHh&EsY`=M{A|9qp+2CqBMk#= +z(S1msN0#JUJ2s4-rY7fy~$ubXyMQ$2*$hAf+hEa`NWh!C)SH6 +zG4vq`n-X5Y=Hb%6G??WOu$Yb~HAv1k2Y6Y|T21(5oPm3B&~12xH|PoqoHyb+Fu5Gf +zbbB9^GtxV($}=_vg){1Gc-6*t>)m +zjUs*B);|!23KAigLN{2TKZoQgq%fKo0lYZr@euHOx824kxJGa1pWFLq_K(jYk@#jl +z`0sk~)rEJ22?mK5!kHtj0EJcr1>vV4@?+|s8Q+TVuU-Eu5r)sCvNFlfjFf)%bKrB( +z8$s$%Y=imE>U(|-E9*NZMSf>gI6jSnm`gKt%y;2SzT*<&_g=*RBdvx%2I=}wL9XC! +z!8CCQe=>)hTi=s^V%y6PY>EBQxRvrl8#UkuyiUiZ!lL*gO#dHAbo_C-5S-orI>c>( +z)K5+tqP(BDc=J=KxyJt|wvzritka)~>Hm4TWBwd7)jvmE^e-_Z`-{8l%|XQfnB*6~ +zxBlX}(Jy={e<4lsm%ufC!5d;+^5`YNFAHYyOV~d!^nD!vb4(u|6_z;r}=x$`w +z_zPn(!ttPw1hWp2U|j0Yft3ELLL#h=U;P$=&aIza(mzg*{+Scu{~1Os+4$crBOFO| +z`T$V#H2C)=TmKvKx1Ja#fu1Ftpd}GSGteV1c#iVeivuxA77WnJ`!-;R^CK8947unDRE6VAydVGmB6>%2>DDH$eA +zP}V10k(ZD@JPG>ngzLkNy?sXjON}hahdRJE+;|F +zn?!2fgzEqjM#|$*Kn_PLs0E(Ss0x|yqyk>cA#99TpY|WX_(ML0`3$ZDeNTu#H%UKy +zb?1ergcNFtxv^)&F9jIUGMfg;XCkdi0xjC<0h$Od-;702@&C*`J +z{w*f7I?g&TwP}co^b&|*13^>{iCnaC0fOGbP60_y;S?}BNA!W4Xl-V-@H$!|m6(cl +zPDJpHkrU8BGKpe(+7||uM3Gpa$Zr^p0hY!l(7>Gajf;!4X7QiaF4B`r22PpNJZlH| +zDP~qU9aMqmRqcU`Y>e<3Vz(mu9eyrC%s2HfJ9WTA2TE-y=?0n~LNssow+-JEXb@9w +zU-1T{E@pIRz^ec`dp&e`U72&!&>rVjvRm)oc4$A+8d1M +zRW#TEj3>U1%|mo-6{1PWpj~`*2Av6_#&V*igC+o@MYSc`LDZKR!xpMTh2^EWMS}yZ +z#*~P*j`%RWtj{k23_(Sy=nPadLjfI~Luxw2*YOcEf?jnP3P=2drgLH)of~NP@ZM3=Tbu=MK1E<$6 +zYK%$Kvyoa&dxJL}em!m2c#J1do<4s~kSUl1}B-C6I)KQJV_@I*9k6t9$X(rj}>rYv{j3{BkA{rPt +z?i5DOn24jfjH8*5qnQk&Be_KO5>&Z5VYDJyu!foo4VsAudN~@FEG+uPA=yB& +zMbCMC9hG5WN)3Xo;+SREqD8wRfj%59Enec;G_{ZqZM3*yY`NX0PA~G@F(WrXxc#W@ +zL|O|k#Q}aaSDt2vsSQLfz09>I`%!0DfPFuI#d6X}Z_{V2MafLnf+CM{`IlKln79VK +zQMq(BLAUcFt7VI#;qh?*eL8{0B}A_bDjp;`%v2lAAYySfo8D|f6O*dr76sAj>M+-x +zzQ%JHa6ug(0wDYJmZf(ry=Q5nU%s7^I^L!Kia1(pG?2E&Omg0#t8*&*N=OfITiV-ZijXy^( +z9vfF&e6fft5yqg=V}tgAI67yHxSB;Ki%&+2I5X(hBN0h37;XS<5KDg3Al0H(e4bth +z1@+k5U;VBDpA96+CcO(Axj|vYV10gpCPoN +z>WwM`KAJrS +zTMFZd7S9l+d0NI(6A`2?aF}1CQ3XUYUSZ((mv}Pxn65F6V;RH(bL_G?21x>KguT%j +zE^9fpJ)UV;IC?QE0Uc49fL-x)xyUdvOph%R!C0mAaz%JXK3RDx%6M|rE{tWlz(~OC#^hB +zUcsaJdHIknYZ#pKcoZ<1L5qbz_&}KgN^>xZj~lQ&#!EoDa4iw4>*GQp8U+vKOh7o^ +z@tQM{&k?LJHs8uQe8g2JODN1Thv5N@J#qoqPp2SFAx#{=9ZPrIQc{^0b>_ +z9-}hh`Y4ZZ3IT!~m5&V2S-cy+jtLdbJwk^qlu+Kn-*4WO!zOz`>Ij-+$W5gP!5)Y@ +z=Bi(uiIN4P4p@HwC-(VhGIiebij%9FldB$2mQ^OaOA}_%5rrUMv-mnLjhdzCVeO$X +zpVBNdYanzF8Vz|PK{k8S(uC~`+LyHSRh8lWRTu(=w;T;Vh9SV^C!a_HDkN;sUkf-l +z<{R)0SA~$hUKIB)F#`Q60`j6Ki026JsmW0~0+4)}3+hb>S~g6sz#IX-M;T0k7Z+%! +zJ#sgA^ClLPw&6oqQ`*bfjE2#o5n8LJuboB|zGkH3Xqw+u^FsErPyWmtT02!e|-T50*K+m0{?+F=SAiR4JF*%;n5q{ +z?Cy(@ju(5tl4c{I*viLes7@bf;s!!rV{Y8V%t~B6QX8)>sv5s7#7Wc~8<&YZn+O>_ +z5p5?#q9vm&t3mwz+q}U*M`n( +zA*tE-ct8`BTtUHB*5LEq%EVYCK0VL;Zk7Al>%(X)A?8I(NF9UzpeSIjWI>m+j-XE* +zNTMtk6yJm4jU$Dh3joXVl@#H<_7an5HQc<|#ACy!6#as7nhQ;WZo@!9QGesklJ(-w +zlIu2jcYjR#eZ-_a18y!Y5#_R#Zhvser5{7?mz +zU8Ag$*eVBebsV_&x#1&xo&4%}54m;ZAU{YdT>jxhzh7O1y162ThLoqZTSJzpD|6(6gQQ5kr(D=QM331*8o{BoK8-hz_ +z?^9xNuw{xjy@I{Wj7vY@1%PodFaLuQLUWStVN6iWnwz!m<`T-qdX&pK%2Y8 +z3(g%s7K8~Pht>pzw~yg9EzIDN!@S4jTjyW&20Yd(PQ(9E1#C~fEz;lY!q!;fo+?sp +zSj5Hpb)k>_7&1^>n6gyqX@cXi@jkqwzAShtf9Z@4fcu65ozHzzo-LCX3S!HBroW!X +z<@nKX_tN-e*a_(d1~Z6GP>Ankh%h>a{Cp0WNZ?@C*sS@rH4bobE5Eqg8y%Ljz5IF` +z0(1n;1o3jd7}8j$hAB+sVK1v#3D!NLL$v{gA&#Qt9MZ6uX>2(np2`#@iIq(#>D&)I +z80lpYL3h#^(8Q^Tf(&?>xwIW`lAG0)R-p8~R4!YHh;Z2#L0b!1am2kMKv2WvHQfx$ +z0=ksK-8Qo>f$vpevXyP)H@rnNOopS#R5sH6m0d`D3P*+(4r+pM*-!*5-WAX;%+F0^ +z61FVLS{y>t%|X|8SG99kD^EbapjX{ofhJ+hxC`YfuG1h +zk6*k*z<1ZZ_i6c+4ndZ&9z7F)&cPrnf612LmhiSF(YN?5lX=Cl>z>wjGpAJ4Z+HbO +zm(>iyDKFv~(T{5$0s>$>O}Dle-z`dpLW8+&X1US;i)IR+wU|Cs8g$YAgth5QFawZH$pg`XMuD3jmNg(YN42hxcpnVUbb0a^c{|b33mIIONXGz?*6Sr +zEFc|&i;3bhuC96VISWAF8V_H_94?0GTfrifo{Uy>%2d(0Qspo5SXYhv4R?k4r1ojx +zD}OS9%sz$e#G1PL^6}ka46$A!K3&27_`mAxjYK?co6rZ3M&J4|yvd}Ngt;1<`g&Qhc(%T(s?3s?hd>~FDfKK2UR<|Pw;Ga3P=<*M=fu4=^9lJa+h +zEt+Z3c(5I2XoPZ7s%re12cA$yQX@Iy1VloK=onMA(Fvu$v~4DUYe8sU37z=k +z8SyYu+X)v+;ItJ|Zm1Q2_52Mx9gAgL~v4{XDZNf82dQFKp*s!4*&k-$0YNX>(|EZlHpTrv*Jdvk)8N +zLy&w-%5M_}@P-!%ME4KCXC7c!rEgqxZElS7pNQUP@XnmR$SuADI)Ir-`>Y}HB}WFs +zRi+1=Jn^L-h(1nGCteB^+{*~#t$X~0s8`Hl!63v?%8*9m?iB~VpaqR|)1VfoB+`>d +zhiMi_ssO%SSdym#wPeJIBkvOoLsGv+Ext1s40 +zAvyYkv8M1c-qOB?<(S>eM=)$k6-`@vO{I28*HV>}T@t^xk^oIm!n1t3br;`+=UU}w +zX>&B{4W{O6yl{=N_T2+5FjH2H@)}yytQqbyHjr^yzH)z;W(2HSS=tz~LAOkKq~8xX +zUX|Y#u_)1jcQcv$tS$42H6>XpmmS(G>v*&Ihljb+(O`AC@rPbDw-)eB< +z_JKo=g+!2ZR0tn51BOL<`Fm{9u>X*Go0z@1l~QJ*EgCn6dS-WdVqAdV +zS_aUlD_N5w7x=M|(1dflKc)!R<26MtoRGt|E)ox(f^qdbaM6wM7q_n4o|zH^gZOp~ +zFFdc7##VshZW}8-O5XP7#VfDAWL;!3u2wwW9i!M6TkYr-wD|gf*9>%H +z={zOTKy;??q +z@vKg`wK)PbgZve;D2AkjPncTBVQy(Fdb8nr>8iKZZFDx>H#ii)RCIVB0dP^PeoB3W +z5+(z?q!+OqsD1iVDC9*Plcpr4QblzF=c`&j^nDuUNk1h0pk}8$PRP_X(hG-TPMVF5 +zVJOq;tUTIGM)Xs@k3l=egG^(d4{y8{;Vi}7e;wyvDOucQt>GCDX$KaLb6O0PnZn_j +zrb{S(je%KKum=RFC*o!>;qGla;8Wp=q)P?|4bvQd5jXAoualhoyz=wXcPg$2my((4 +zhF3LKtFL1y +z&lU`o<4d-h?i63so#H;ZVQH$_Xy%#V&sB-x>TpLb +z_@&_ipl(UX6qYUw_epxjcZ8wPd5m5RBzNH%I(Gm}2QEC=j)~)i7q%LDL?L4afBE-% +z2n)+IU_+P^{)>H%-g@h<=vT+>w-F3Is~nH8%|lBG*9SWH=B<`VFvH?p^R1q2 +z6`fUHW$OrOV=RB>M$tTjE~&Iwd*|gRR)KNsv`3L~$uK(@(!ZJCr%6zthlJ7`G&TgD +zHR2iUhJfhqc7VEQcIs-icscAe-0g>{D6g_2HJZuw?eo{dujyL&wML~-c*IAM4FgZo +z3R}G{xtIYKxnXG?(uUDX=9>?F3UwO4W(IcWFC$1L(&_9xKA~3Ns@-wG@emHwEIs=) +zJ)IY}a7&@4?G$YJH) +zyJDS!W#T8|#wS;e_ob~P$Fc+1P87 +zOHv#WX3?*bT~rcK-`!|jviRKO))yErJ$<7?rMV6nc0z|6YsMhzevG|o-PJT4_{7q_ +zDT5%bwAMW*cjoe#y7R{yHZ1Xq13{H!Q40ONLNYAWum`aT8*uSx2Q(9s0#e6NH2eYU +z^#B1gyI385aq;_h;ugl;XK^B(E&`0>6bB9f2ePDW#OtKHB5H7{^;TrFb)D>gL2KQuoS{>55I-@!<9%W1o?EQE`MN +z%ab6mt?)8t?=)bg<=a`i_p|ozXFd3=@X~zMP_n1wNNHRxv_?lM$bQbaN-$n-H20@# +zpY*)OXf9Kyl#?z-x?|lXqnQ%SLXBIjEmkSK0#OXX#(J!*hlUP-_LAF3=Psu8K2829 +zE*Vcy+&VE{kSiTFQm5ae3zQw=`aWWpaaC(<;_NUe;tv@|_y8A7p|}9!_js+71viw` +zEJ<5{N8D(hzOH>{Nk`iVV*B{jWoQxN`ej!x;)sltun{7BRm`Cx2L1u#?pHmzw4gi7 +z_dXFYfqfo>po6Je4kLj{D9@^mQY;LQL#PED_hdq&VU+I6{z#~&>0_O4!ld}{(EwcfGsr8FF2p-KjJWdp37Dj!J@#?`XhJ>uUCsCRmI5 +zcb%-rV7qs)A;JSLkk3fKau?7 +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 +zVRO^q*Q=jYhR!?dcNwkY7J4na>xXypkwIRk +zgLr!b%FbE-_cdAmF|;ST_2h?7Y;HaB&Jz-qQGNYhh0-3}eaIHqT?(B2dunr6qO+^% +z{f2bt4vO|1!$(xHSsT^#-N)*hMxfQ&SYZs7{zF#4M2d6j2x)A-BPkU&b(q`MKOf%w +z&idq)lyi2qPJdG!O6&euf7Ddq6k93tkED*KImr~*q`XG;N>Qw=>iB~vT45B|t(bse +zya4Mqs7!oyO|<#=@Budt+&73N=EUj~V +zCD7fsUw-)hooS3kk-#-#{HVkFp;%XK5OzIXy+dVI@ed!(%J-fG2IRl|D3DZ)N%r;U +zF=kBq(MkZQ7yFm{-NWPK2g)o{?Cp3^XFM?bpcpb+FcEv8w_`pvX=LwoRbETEKEfKP +zKbqZ^D;B3FD0V(5+h0ndo3CnO{)^{B_EFr>{A~FxT9Ds*Tzjj$JQE514aL2Y)5je9 +z2+P8lO}=-Aa0Id$(nL#v8an$o$-+4gE}>I +zFih2TxfR8SM@o1uGvr@c_qNRCqq#Q$$w3{zHm`kGjdT)tZfM*O(W16SJ=F)bo>0Rv +zjq>ApdQzjk$Pq*Rmg>XPPCSx*XxeV~l`^ozk5cyX0~zqvIX4rXK0Mc^=g<0M<&Ck^ +z6YiTnkjG3pIqn`G77Ymu=0^|y#o~rJmH!L$jOJio%40fR`~Wepo)2CUByBv`$Q+k! +z!%N46u%7~FF)q+@FCR}-AN4krseVNCoZD? +zh`+)zNGvsO6QgoILAVY4wt2<&3XyrQiQiE8wgp5ec=7%?!RF|#YX_W4{bWRSp%U!xsKxSWGib-EQAAOR*8u{ZuS0p+}3xwe*~Vl0?{BL%C| +z2AcmJS}$x+$3Oh_r(Bz75bqre0XJT1nI}nzYPPy6ijBuA3?llXv_by~8dk>`AO(Z9Y`#-Cm|_t>b2 +z@sZ3UlnY?{I^or8i#&S=3Gnz4w&|x$gc!OS_J#p!{Ewc;fG|s>_s)*- +z*?=Yg-7JDA!`&qkm&Q&*FX(G5nqbFRdn;vcqW3JaoRKv;MlUk@@w$oj-i}2TLw5V) +zDOypCpQq_q%j>3GgbQ46&>@&vRWlEFYY2X2Sx)BRu7Dmgu9Pra{?_pWTzCzn4))u{ +zLsl|h_Y?2{eH*LV%p7ia>4)#X +z|M4GV+^_%gGa&$2eg5>%|NM`?Anu?OA8}UOds@uWMJf!x$d0BL`{{uBeN(0sbpkjI +zL?B+{y`X7#mKp<|n;m22@11ZlJPUQk=u9T)?kdDakBgek+-b|)2KBoeu7$wBXXp@y +zZb`)TmrCZ +zxwdViixOwiCh$c`CI-CA&4+7Q8LP0?%)n)lBQh!U(k8imWT34QBotoy>w7x0H#D>j{wM$BV)_ +zX1yyRppUfFqkjU8Ek@Pg-6=9tqF&)@{Z_y}{O%#N9D&yy3SEi89!h#!f6w6lZQxZu +zGzVzAA;)I8Dn3-7bwfGf-Ak_Q*FMsc7Z9HZ;Xm{v(eW=EEh{;~5^am2v*PA_=?8f9 +zTl3h$mi?=YJH~v6vA0*Up^r95qWU*UdVJ^?*7F*OXD0uECogvL!h|=GtNcx09=1_j +z?IsHk|72_#{z-8*4bWe*LG|M=T{p7tKqsjYX6(2|hSX$u?<>f11O#4W`!TGltg>;t +zOcW2BW%-*cJiLBg0CD)C{k}WlUivq{Fv9=j>m+LUU{hm^gQq_Il8^L3yU#aq$tL +z(&>N~W6|4xPr*n-u8G2iH#~K-zd&Wx;~%f5!RU(d^(5)aMwX=bk@PMKqG==gCO*qd +zP4kJJ^|vDW+yg}mRhSjylr~oD>WQp-cpB=6Km6^_dL8b6@o{?bZ+h^r{{Oh4bCex$bg5(O6l1D^6S<7yA`HkU8l8ZkN^MGi@n#S +zj#hsCCBLl`{tK=DFIIfr{ACILTK3le_zODCu&F+f`^p%q)WQWK^c-9v4U71DpDQ9L +zE^Fe7wm|swZza-7EN>@wV#5+@z=N&~^BIds_#W*ee0!Lvox>~wUJh9T%<~y!BPX}Y{0A46&*!;&SrS<{9~Og+ +zoGLYv}8?JD7SMCczuMgryyd(`~(j1h1v +z|IJEVz!?3v|M&0ycX;-wFb*!PzV)I1rd0>ED#e>I2mAg1iHw?yH=Dzhyx{eeYZJ`j +z8=QYG)QEyL?#Z27fEiFJAK3 +zT`FL)Fm$}_3XGyPTy!_KFog3Oh<0wMmB}n{q!sYycGO&ip_K`=g2VF-Mjq;6kGR+& +zL$3cQfULD<4uTX?Om%Hanrp#~@eCGSPvRTkSgVy5cy)vJ9f3=~v?0X*q3y>1jzJ&) +z&ZN>Vzx>_rU_l+%R)e=rFW+#`d<=t+ZxJ|55jee>ubDg5qo``0MnI2~ZQ(Z;k*l>f +zed$Kg1U=Oq@QUWPTHj`hvyQr-u5s=_-xS9D#)P(#ZUlRANsY#;{^q0)z5;hMI!3Sq +zfp~yfzgGGiqsh?gJu=JaxD+8;StAag4tJ`;^6r2L4yCWx-?fLFuM4DyXbOxg8Xyp6 +zzy2l@EqVaMs1>lCU;wHHcyzlGmCm-N1;$9poC(@w4+OQaFwCO0%%^XfNy8YLnQQP} +zea5e4AFg2?;5FxM??@F&9=aRnW +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 +zGS+bpkHeT8Wy33vDQ+}DnC`~NKHBd2^VVzg8 +zyjG>~w+A>(S1LWSX#q3K#YeGl1FOuP);NS*wY*zw5cawCP%c!fy??1kj(lVR1PZPD +z?kHQ0+CR2q-x +zA$!GEDV{2`r7{ctJO-#ob8LyBU|U%5>BTsG^Ura26QW9WyTEE=AjbBD{A@d(A%Lx8 +zuRmuUU#4ew$HLmXk~#GGO!W7yqpz1R1=~Sg^l7XZRu%ngp$?rcsH1^h8oSc~OaToa +zaE*+f%D1x3#|R{DqQIM3_|hr{J}V2fy&z~5eX6s|nPFth +zzVXyk*F}*n9Y(c%hf|=NG{g4LU+&=0VcvS#_jvAw`?JMK;}eD_pI|0s^Ub_ +zR@I%=plKRb5m%+s)8VzJ?O2ttxwRxos>7IP#e5`TMm1v0X!uow0u&m3oM02xW6e1( +z^$J^SRt(g2YCxk3_yb!tx;PYKM#px_)*Vue@cQB6!omTs*a92Gwk~*Csmt@Mhs&uV +zdZgwK$gZIFp85A4Huo?0&Qs7K9v)s|#N*~MM!eiVMF`Yj#E6IOBT$gsLl5@^6|JN; +z9}Z)2(M-lW9J6Ku36k1>(6A<}qNh$dOc#-zTX~?5I*#+(MKI>zIG)R?BMBIG1C{#7 +z@eZT+N6|Kgcoh3)N*T8WQk7^AO#Z1QM(TbODVKR_K(rWi()hSqR51Y`-!RFct~$nt +z*GgzSzK;;&a1ph?ImBT>aF9KSSR%p!bDlE>< +zT^sAP1KPh_EL%LVM=^xRs_)msV|nA968Aqazma{<1g8`#Wl%DfyIbU;S~>T2NT6`K1p +z`KVDfbTRDA*|^5|=9c$p8vK5kh#3qGYNU__RIvSWU0egZK5I~Sfz>)S{e_7rz_Y_s +zxrAAyTR}TQ(@!JbHaO!~@bbD+gB+`Z?VZg`%?* +z&=6&8&#FT`);Ni1mb8~fz+hjfJr~qm?HItgc>%;#b`i%TBh&-T0K9!rJ8NyqXklF(M3Xy{T8Hc~ +zOmRsai^@srv!RDx*C*o324Gin49pnXIdIZ5=vK`a_EHTi%PB+(HZ9#1cqSl6m{U4Z +zoa-!x6tE1co|RxYAYqMqdt>~a&P$N~3&vLI9O%P%nU1X{qM+reE)K8or#?!e)v&WR +zG6$;FGgQ=!s+)REy`_P$pE@~Q@P_muCo-vzStl_nlafqk)JK_jJq)4|U~|De|n_3=VewI`xK0qR;!`_0-jGj4dI9fZ&M^Kj-w$B +zK#hSNLMO`{nXg=MLNLxCCNK&;p1PW#3C(k*82DKL5a}+*Lm!}m+V;aG?!=O|CzWw +zpAHpc7Eb~3v}_24+d>?sNplYQU|AkMRSfEx +z((6ybsn6>E`}^yS?9$NlCgz(=zcy1|;dWdrWsPKz3-h +zr@Ke7eJpmwyQB~D=^=ZdnjfDY?o%|ZB+T>keNm(@)W)aHOSZ{3GFWk>;(qh6y-&&H +z7BSCTA)X!xlfud)4FtfK7InnNfj%ICxtC%brq;*&b?6RgZkx-p44N`P;sJ(b)TLJr +z03QY1)G$#gkas#HzqMrVMrI2n)>084lL9+EPF-KI6YNx=nAul;-lhULq7?5KyHJrM +zY#iO88yQOn$k*w}-dBqf=2+PR4el8hDDkD2ybbkHXX40fYEsdy>#nv?iyBir9fMWj +znb;J2W=jfFfTf=0xtMA$9bk+*ydQOHS%0_HD+7+OA#{U@-x5EF`tDrkf_-+2y+48E +z420ZRK(Mbs!3|@|L6*PYJ<7Y76Kci!d4Tyapc@$;lDcywHA`MV*1+WqQ`xY71^EHp +zSMvUHKn+GNN4l2TmjKTE1Og9UHD5=^pqQx@%@jOh$i2n&MjL7uf(`+)s7%VvsNOh{yMAHef`GQedKo7k*VOz%wL&7N6Xd0tM5gI6spHnl{vn0AKGhm7sl(9L8iVF=~7#)xRYCzQ* +zZhb?Hgo!DStO>be@UJoWzRaPdC~9$J;uhdwV^bZkKF532J33=efo=h@1#&x@%W52M +zmOW`PQ)yxiF+m3~AjYDTRfQKJ25gCzIKa)zj-CZxZDNdFDl5hNyi$yiN!1RDAXx3i +zQSmOTfjdLTM20CR)&TTpf~}-2xp;(V_@cptB4kJ)Qu#_5&pS^QWDRU@*3}*BvIgTX +zFe4?z0N6}zRxuJU(I2j#*b7=Tkvrzp6>Zn`o+o@C>vcD41Ca;%3>h6KkGxGAhHYM%OgaxG6az{}+04L?W*^Ga&IS +zcB#-tEb33EI*mGSd=q`%F~gh`2yZ-A7g#*Q2qbF=;#i6?9|IFnJl@~SO-{zCX;Hn7 +zQuR5Jr{eWg^oN{G1=8Yt8P9po=6tyaLbshBsB?gq5_N^wB3IOA)TL1omAgw;b5eK! +z62~c*vx8te5hKYEse*NYc1fdR^Ffub$26TzqpVWJumkFS!pEuuY)c(`RSlas5K5&v +zu7(+%PZ$M7GwdP;oy9gN?DdQ+sJ3h1Z99$_3WB&fW2#UDhYhsnA2R0Z*f9_`SDaq3 +zdL*j**~>@dSOu#N=T3c54Ni7xj-`1Xnug9!3G*J_;!c;d>VX;Y@@RE5Yh#v>l*NuAEG1AWW!(u-HE*zO8)@F>q9 +zH3R2fO5*~Zb^V3qXGi2i&}0VhAf*ghVcfcrA@J^-fsQ-V8n&Bg4%X@ozB$iS+nN&@ +zuREp!9bTWO+m2P+wYiC=Qvp>QTQh~F)OUA +zrqgt?pEj_K?IMVTo2J71^-sa +z>3~zsAapPfP$y7{s2Dt;X`MOnF@eKaXLi7EqhG7L9LbroupZ*y24)&z=h +zzz+{ba^SeZg|6Rh!;0eA9Z_aL!!Cj$%UZO#HonkQk-b3liD4!HQ$Vc0JSFAUJNN|N +z>d0YtQ3Z&O91DWL+vV-;GK&bSOAdDVM7vej!A8{tY9yOwO%U5=y$JKG3X)(UcVwy9|T4wp>)7D +zvayHFfb{_^zEguI2_qUq>8KYCjX}#EHjqGq2N3yMj>6NtE}a-l0F(wqa$u^aA!U7n +z?ynVl@+3_dlZH+%4KA1dvPX{^E+=M(2yBp?(~ORz(_tsxRK45n+iBE9QGti3frSB9 +zeZbRZZfOX4CCc8w(|X-~cHx=5zGO(&J0P+Rv#B!?iRudtYS +zfj=%M-UL+Fi-x8?Mi&LbX~V3^nzqbALcidShH@9P>%a^R-P4jq9SH3pMdx`}*IbtZ +z3sRyjq__x%t5I2Nq6%per_qL7XV#RHeYfh2-9#>#p$1^_prgURj3xqBi@qy`%7PjQ +z&;3A7Yk`l&ILN$a*u!$k)N2;8=Lm1-P4+N=>_9STQfE!jE8Z+z^23Ba5V#rf3=G`L +z>OebTIYjR|X@yiR!gS~(BALQqm~h$Xf=P*h0=_Jlc#$wsY~5#laZZnCI%!Ww(S_r` +zbPQKC8F0#u(8EVG9A)jE@>!ffdeF{@CY^A5qwE4mQYX){=|?m`=gibpmt+VCP>s@_ +z%mhclT5XvF5TFK0{0q9K=rNZthGYk8gEznia$$T8NNWO(`J%eIOKz^Vo(AjkVdF1` +z?APv?v3Ctx>~^7Z@L;(FHi0>-peqjYIB0J?@}59d-?qG^pxkJIoWoz6;ChuLtv7! +zM}Y3rT!dlF#OCouY__B+227r24-cev$%JVV+RM`3lZiBYEi2$OCn^V=KCs8Yb&=f` +zAlr6eP?yyhext95+eR!1cOWpff=DgDklVsXlnf=>Fg2d80P>QFT9BB67VKx#yoC}d +z%;Zx;>R&`PvcuR<7+=m!HpIdng#?4UlmHsPxrI5XgI*=W5foDo9QT`~H#PF4@TAgw +zgOmCJtGet&)iw4yRfgz0WH8Yvab#GHS8&tEHyQ)muoko{jHjqEe1vr%$k1F7bpq^! +z2ypFG8)LF{Ia%UiV$Kjh3*cLaC+s~R5%^{_yTJdzIgTU@Z%5Mu<-b}_X|8w$!v(mthI_66a_qXc$5`Qw +z@pa_>O_|VWZ^}h2K%u+f3D3&ejsoZk_IKzi9Q5t|Gs`$?!#WT`ckKarV~~Xzg8&&* +z)5THXEgrTP0TMu)8S9=U{v@Swk7D?&>IV!X#_P~HW!a>eY6UAB+oDNOc3Nm2Ix>p&_nzQWiHi`LlpvGqXu%n +z0?A&X#>$wWNFPE2vF=JrKLPW0&u3cRE+E`MxJfGF-qt6#`100mZD=mcoIW7~BZD=f +zCNTqWrJ&Om0MR4Bu)R+30~AIMW-35@OUB1(p0h=nhO#zA}Th`pM +zf{8pL(-rojN`eU1nJ7A}su`wzA(%i2l3)s3cE@0lj&d!gR<^2XZ +zE%UkpM0aN9H~_nWEa%cdqe*M$;5N2IYiXUKWdr97P3e0n1T +zxD2=~w45*KgF$S5WBEf?qt$1d!y;@+P{fQ0-jg@XH^3p$ZdZ(v6_&|qj8;McLx2iT +zbkJ21-BTd{^iwc*$UuG)Gdh)13E#sM|sv=_iml9SDIhKEM#&G7Yu +zG?ro-wPW<=!*r>N)4A#AJSZ5m!<-kiFppiO&S`deqnU>aXf*0)Zv7_Y0MN{K#^a_y +zmRRn1ff +zNCvpejl{Jymy$VURu6h)eTX#;Fki=x +zZD6%=k<1j+J7i4-^6#aYo7eJuqTy@wxyxJP+!`1)ahm3`Ka@o4+ZBu8kij&}%kTt@ +zSYwREG9YD)9Cg5Rwjvw&?vEr4r1=irFlEk;ZDC~as@bW{j1vlBWq~Wy@lgN*H3u;& +zmvs<3P_y1KO4MQG3)sFVRDe=VrF94zfJvgS?@&kDTN8dlBIA;wjK#D_z_y-c$3G7w +zt22Xgn1_Wnp(`0y0k>bsX}CaR8dh12icZ)qBkmKhG8;ia0$CLp5{7R&Z4aawg+(ue +z7C19>9vUyjz-K(>O&n^0nej#8n>(^c#@q=nhXf+YS^ut{`O6yA7k~%?WkqR}qfPX} +zCP(RSY9g7k!$2u`C(JDBNd|t|NLnVAN`W&5z5&S$8x=2!nL8%e!avoc^(+W$F#Yg8 +z-3~S>#zkSid8!*yjs)4#NCRDOSQdL%5HEnkT%(<~TA2nkl10FaKU>1@J6+ +z3L7OxS&90}ggXUMvzP6xIM;?*#_hJpY1h)Pu?mmsz*GLR#uI_)`Dut4wywD}X5e&C +zO&bekQKu5^?ecD78@ab#hQ4Q%2e6arxE>~;@$Skn#0?t{^p=wHJlbO(j-QOB*)X9Y +zI3vSdTbRH$@{9@yvlA%e*H}kITC_t!|KSX6$R)2CgB?u+_76s%foV{yzULAx#wf~0 +zLA0U8GaNF%#sI;nKj0jaL9szZGrS?gAWzZ(iVmz7emYSqun^3b0I)nIkK4m8`Q|5ak#)*tVPpA%oFD5Y9M<%b35Gy +z-i2X^*+vWF}mQ)kq%SFn&v6TUM$ +zq30&G+0g9S+q(mZx=1^-V62QWsL<4QFzRN{01Z9R>q~n+v&N2jn!z++h*69+8xR=6 +z*pLWmK1^4%!9{~yG;Gr>j*!Wo8X$LitU2u%Ku`s_pv6;mt}D?X?saVM(XVAS_nKHH +zpb7_(j%S@^B(;EiHJ?XuY-k#e9eUE7&t$v>s5jMDifxP|kXou_Y|ASW*@Q|M;P0x7Y*}r2DeK6# +zBAcYWZHf@J21-R@H{RAhluWn+1X`;*&JgHq&KC5rRn8Vkl|5wdaV!8 +z!kI|lrA{wzNTUb?41hpePh{zUHzr%&>;e?0dYy;E%-(((>-1DqY1hBP@?_|aY0WMu +zksaj-f^fjSiJ?LsL<|@7(qLnmZ|~db_3dRpopuDzFqlyCRqxGT1)SApl- +z2Pt4Y9Qyl7_vfdVr#ZV-2ku8B9-8GUrzLD|Yyc+QSfMfY9q_OifDRL52B;G- +z(I^Yd&$bw^R28NUx`382(Vr`%bbM1w> +z{FhgVu^I&4cJ3D{MkqAK3@sk$I|eC7Z#KMhAv}my1t9dbHWs7CYfz$0Jr>B>utuO{ +zDSAKfxtLNVkuNuA+>R{gVg{DEXCX&&ae|HA*b=c9oM0V*%vds9`n1iqkGuT~VMKMj +zG*y;2M`9K8$atAvlMa=9t*hXVm1oc5{(k>>ANIRE!%!${gxS$>t7mhLgg&bkJv+gu +zO{F>x5=<`j8bz9hPDaqF8+~;!~I{fI>U7 +zTAoymkwREmkfre0AJ1B9h90XeUR(i7*x2q);+P8liuuw`9n6ES3Y=FCLIqH)Zekis +z#I>;AJ07$OkT5B{aW6n#Fo9sHdjZ$E?Tlyw#|8WxuUbM$v?WZQ>#407 +z+mTC!39$z2tfgHFaL6!?tjq}yj$!Y}6nhyO6812>AWLbE1pyR< +zsiV8^HqOD|uV{+iQeZsDKwBi;s-o~#yzC*2FM>|tNM^LK92(DVF{XiNdd2&p=t>O@ +zE((qs8Y4gqR;q_j%t;Xj`4<=oqPQSFG)2>uG{_3Q%*!HY-&*6ENugQwxImU2Fn_!x +z9uouU!F$225mfkklVzjT$$T6-vQ+fGlg?JMWB9IWIMf}LYK1P0;aBFdJu@K9(JKN( +z6wRiBId;@j-`5vHND#|v_;TKzO$R)8hN>Q!f;0jWo7HHu8!!Elc~Fk90+qnS +zab&Ie3lyJls4Eu{!o*y{c#6pApx+?Nn=)CK0^^nBFmZ0$m7!Vu661b$QK?Dj*kmQ=ANu^B$0D +z^l3!T#vUiLb{DiqJ%&ZlOQ)S!Kc6xaSXna0NS;vHau8XUax!{$ktqYFsKntS=X29{ +z6x|Ite^{N}sp_IFHel&2EiYf|)2qzi0R0;DHhDRs$b6zEmgiZLK~|ZN;wlK_oujvyN$0&8lipJK1#whP&dgz+emqR!=Lc2BX{7 +zBthmd=|RdcG&AD36_5+uoS<5^r6RV$=qPwv*9|;F%S(g$J(?uOCbB@wPUhkV*ow_y +zJiA188&xD1jvbIgu>sdU+%lkzWS58#nx13etZ8UD+WVovTEjaJqZnzFZ;ZQTR3Eer +zCh7|P*#nISG?N63d1`AsBW#S$C?kW6KtJTg9cvc +zb3GAL56BbRq!bt%%+O+t;KI~=x$&!$Ep9B3#)Aw#IVe+4=1xj@g$aDjKddofw|d+@ +zq2DE5cE;(d0s@6>E5o`w_;4k*Ar#_)M#oq~L&G(q6qxd>&wyanY)92P1y<2a;@ojB@KKQ^Zh{v%njUO5N-z^m7*fx@w&oi^T+hptwql%4{1 +z2S!_6Wq-Lr^10EdTyfgyE+ +z#8ATKkdi&tVeHY-#FCX1YcvPy3{(>M;R^<}6g~T_CZ`zu0AaB)y1l|8G47OMRZKJp +z*s1}S^D?@o(d*FO3(Xcz>_zBJHnG9NV_i+N41^TezZ!yJTgK~#`S_t<2CTh~duZj| +zFrhd;GRC*lZI>4^9VX_yly@VfHuuD1n!7G-5N!4(h(v>@&=5pG+i2?b>3JMpFZH3) +z#3J>LrdZnf@aThL=L1NX)`PU+vMV|b$=v$Rp~3(}Az-7;nNeJ36ej_z9i#-t+zg^S +z4&8yS`$8)>)V$}Mt`5k?l&BCRWhEf-L>9}oDr_4A#sLF9jWOgyHfD8Rq{WFfC?5+| +zpFr-Qr~^4(S>2=8s;5PWKt%{46pM(8(1?*#@sy3a%;TC5D%UC)E+RZA@o95 +zW29R)s(AK?9R$LUo2TY<6vKeBr;Qs6$})VF4fw&pj}CQ&ol3Sf46r4kAl7n!wj59W +zU=4J9+tKZ%8IJeIeZQM;DVVg*X?~2r{sSQ~cWm%5fKdix!12I}j8XD&t{R~2)2q7V +z6i+grFi@(dKzhJODibnuK%X?W&BN}cWF{nRpMoPb`o`%7y`e4?(+hIuqe$PFZez-s +zF+x5SV<*T9A)k&Is#>rWiFPwRheigVfju!-Q>TrpE7y+nn->6r**9aK8oT*Yy{i&@}+9pq@v^&@BP*c>Z{B-WMQfEC-NTvKNQkjmrBo~JK +ze9jIRGU&`N=`_$#UYerIUr(oz!h+=(Ru~V>iTk;4mg3ozqJ4Gqx~xdj%EK}GghZ1#EZLy-HIm#3GP%>%;}&)fUm%VYQ!`LKD~+!xz@ +zXq$Z8X1o11qYK64;}f!k`Kc|YCye(&8Dg`|@1OH6VWg1H&rdJG)muJ2@3)WH6WyFE +zpI>rOr2FT4!W56$%VxI=jFx5d&4+#`xk +zcMU}S0OTi^I-{T{1~X__Nk==_j-E*4fkCAPG+PFazX!%jI#exs-BVyY#3wV*Y#ORKe>kq{k|8E?NH7r3yO`~U +zz0D$mUIZ~_1EM14HlA8Z*-)PYkA&^P@W=s~Zp7nm`;yY&rgHlti)>3{k@jbiojX

    Ws$J9~pa|#Kl&pe#|audxi~# +zT9-d>i~G$(LCZF`-d_F}y&TR`M-HE`7u#bmbPb@|^GY=o95wV}jm+sd5UB&+F-T@okdF+ZGN5A|>+RIM;%yWi7k +z$eTdx0oT-3HeGVv(Q_b(*HTg$yfaL*SAksG5i^XZC9sjxqygbdOca~}VaZ~LNQr(f +zD)>{#Vk=~p3c8=r@|iZM{K9LNXK`x}!aLg*qXxKs%t`3))#|c8e%R*ft88!M5xy&M +z%XpA6s0mFjL8@W4ZRmnedpyX)+0^R-86ehQz*Y~yQBiypSyt^Oz09;KN_Fg1-KM7_ +zq44BAN71g89Qg*URIgF{%!D^O(s3YQ%Bf`#3nn9t(|mxAW!+_OsZJTyJsx{;u7kmVti_=_vHKS!5_*jR?ilT^ +zF;H(tCWF!(iw2WDb|7JMecwx{{UNnmgBpVQ|j;Ms1dWHl+z0UFQm{3RnbGFQ%ZANVcOM9ig(%O5+&cf4n(ewoQh=E +z8PzHXY9fUBmz|bYv^BzH*Vgam@be$sNl6b1oHVsYVi@_l3n7`L?gkTYolfBJ)Ds9u +zY4qQ?qDG9W$b>Mh?Uh|Ui2pR(&FLe$E5T=on(IhR)+Eg}suV*Wut&Ttg}rygBZICN +zC^`hsF*&Bgp=aw4-*V}uhE+8pcZ&voAkIwvRCDpd~W<71A&+b=0hU%p82q*3GD +z1;9Rs4nqzTjmBVYtuZKvMUIDgI7|mxD3hpWn0y4Y8z}I|7i$^1tTvbCpo=39@MzA2 +zD?^e{?@AvwN7T(&sEoj=u#ib|KB{B>mgdymGfX~=TV%}0=#%HSa}8VHDI5M9N{{l$ZKLHGRS=|ImFG&?P(4#?Oh2M% +z!txBXLWNJ`qUxm`2|@qW{5w7k_(+^&(9GBY_8bK(9-TVnMy?a&7opkc)WKXvl=3?C=#M +zKUD(w1DFUGSjtmf^20))60+;bd=CVibMYpr3*Qb^C3@H(2-6+tW8Uz#>{CWsJdBH; +z-RGM$NPxwDyL)(i*~t(jxOk8cTLFa#^K}1`?Oz`AN5aTwA?}~IA-<<^5rf{yyek*& +zahTPXCGa5OWF1g=JKJb3kP7RvKwm06siaXXgetm&WJS>Qh2^5V{+Y>OpJsap@TwMhxKgPQCnPV1d7LO#bCL2ZV2czs +zi(^L>!#;B8PjB;qF!^c74`+g5Hfz~aOEVx${a7Af57e{yLkEKOGmTH47q92@`8Ay? +z9aP;g8tAujM1iPcvN_@>2BB6kf?x+Vj4f4!j)6Wp1=(yCQsygmdq)An`+T6GM5!AF +zTbS56d34>L$r~#Y-wKowdxBtVV`tC>-oA+ujaw#I1F{qS7~DGwpe)ceG9#iC-KDHJew6RvaGLkope3y&=&9qRzHqN8uT!}oBy)Wx~2XHgNl +z#_$n+rz5KqKqK$x?sUrdnpUkbewfl}NR6LP#dbu +zjE~-JDc$P>A +z&jIjjLLtY1uPDkVbu+@kN2HFSz*->DE?M(U!v`N3E&y+w)J73qK*Tnc$CN4kVO0~ir^va>1(~%*4w#V7;(P!u3a0q +z3UR=@v2jgXi!+vv_s!Id6+{GLrzEAnswSSLxNqMOLrC!j<{@!JRbn9S{WFOeMh)R~utqs>AYwkS-fmRz2dj+PL-II$Ul!>XwCswE3Dp +zWUlO}EgM?f46qtDDYl5V1y1;^;B&id9Yl{ojr_&3RTZt+EC?0=&|&5vmKIe~W(_f% +z&l*IAVAcSuaH~8>J)J?J?XHw{5<&VcK&VzF4bN>xbRt|sP(<%&%59DSolFJk=e67s +zH!^Q$KrIh^JdTY{a3l-Tc_J0{c6A=WUYaSJu~Q>_?d>*+8|=+KSKCz8LJK)M>sDhg +zn6dVtueN~g^N{!$;!%y=%xEj^1MnjcKKZ(zs$~(PQy;>x+LakV?W37>n@$nOMn0mx +zyR3+gB3=e^!ZY@!Q>~qpYW%>l1|%85eR=uJJ2k4wGCWj=0_rNd5X2ox4A6RYtJ0EY +zni&uSf@CVBxRY=DZiv1B0cmKhAjp@!~;|ScqHY5307DFyN0AW +z#R?$_?U(<6{`OVk9-UOCqxHGgJ8g#f812{``~%~%X-7`m?DRN4mR4LIfzYA_MbFR) +zQer#LQ20hb6PzPT4eM3@tm9*&1Ly~Fb}tDL(Uho;8zeQy=Cd-<0hrPN>fy$Q23KXfDY4%* +zysMpP3IU8-!-Y9R4MggSJ_zYP4RUxA%1ftLqs5oqD%Fmcrr5O&iA*Cx1TRgtYe`ZI +zgJC>Ugtel4c?6#AHLP2XZX{8cPrt4Uqc_#s*8`Jcdx^$$JSRu0WDf+#r-i384e1q( +zpVt8i3s5*vS6@!Ujy4MbpaQ9s{E-lb;t&Jcu!c=U?G0NBs7;z?M!ID<1MIz)K@FYp +zI@5V+>ildvBVS?p +zodsASn?k4^4+Q_c4i6%b?8+`TYCnuU3Jc`-rL9CK+(t~Dg^Uj6c@#shl(uucpDpoi +zxSg(kGZ8P2++Q+mPmovI;nxF^#+p~h!>k`h-A#Qap@uK!l<%Dw<*IC6nMn4*aFZJX&J&&eM`OR5U?Ay6%SIX*2*>=K}xoFLd~rK7BPSWn!m%%K!@Jo*TiHsb_!rInM55TWiQLcVk(qY2|Bij5|DA`QCb1aZ +zIo0fSw!upRv+EV?0a{6hMkPrleRy5TkGQJIP_rs&Ut)F9a;y#%%I1g(sI5n93&?{! +zADlyVOi0mBM2C}-RQHU(5OYp97S*n(9Z4XbcyE@fcCflI1-O?SrPjfkNlSAyA&Kjd +zmN*%dl$zz;GD$UgUb0Jfxz8c+trph=&LzaHdPH{dSzPjSFOsN&oWp`>$Y0J^rtR9H +z@APA2;yjFVUc~1khB-MQh4_?muK9HHd7;-}X6ZMlwcAI&F#>%`BHTf5n{0+_nxkbp +z1R2Fx*rRYrfgD8XveHg;dUu>@3fjX7Av2s%A=iaAk@D$dO%fnk_&IQ +z28@3A09u%+JxX*aITtKaOkGiWzr}2O;G9Zz0$!^-}U6$%2%8`JQIYo@*{p`|+@)PR}YwO#r-zJ`uf@aq1+6fXuJ)Ryheqv(q&;wWk2=SGE*O6!tbVVx#=cBkeFp=O# +z7cx*Frg(g`NZq|IO=67Vy1`wnyRIJBiI-%lOtL2)Vd92_7Sr%!$A?kvFmxPC+hr0V +ziRo?}>q;cz@;SlH!*4>wSkqZ9xOYYYHd3-b?2W1C!P#vv4evnG#9^5KAf;B^#rl$i +zo{I-kvW85o5CQ=S*36aiWK|C@qY<)EA)n@2**uzUxu&(JFLx>=W8~FL)Msqx6_X-Jqc!sP^lR`5 +zQi=@^ZdA4OmELN`sv}}F(}SB`smGLZf%3W71P%#+CBN1nHGpSKlAJgudv!)(_sE*L +z%sIWXb#HUCnT`kAmi}dS4+32XI~gGY;_0Bmqt-_)>?NqJ#FiCctLRep7Ex23n64?7 +z+R{KX5Y(BZ_D(hUY#cXLkRGw^8TJPxKqd7?x8(+Kamdb6iNK1oFd)WH7^sEj%}88O +z@rRhZ#&xX@?d^(P0^lGL+{Gn*uTbj{W>ZAU&0=o6KRg^8y$BfXk*e$r%rpqBK)lLr +z=0ZW9>V-LyXf2)C+axLTf5i7A88_%%R!jqp&hi;q590F!6;3rAh1;VtXcH$0)=v`< +zk>bbie=0Eqp@F)DwB&hJ&VQ9BG^oTlDVrJ<8D&Vc#nHK`TV3d{# +zjDYGY>ZkW`&ZCH=IPeOMPK)ECf$sNVK7M}x=kjFqnj|KV*r*_8#l1IbBd25*Pv|Az +zc;%ZM@iKCi(C`WYvSkT9!)c4h)S+bX_A+9C1iMm47fe9=&>Z(beG^II<-eq(qN;28 +zCZFujKmkN^Qw_{5z +zjS~?1&JM%D)})?v(REk4w(D?kJ=DIh4&OLk^QY@aP8Uam@6ZGEK)@>WefDZw3`q?SlH`Gw +z0;67yoS8rO$ZVQVz0I4)klpW+WSY#u$%IlDxHxSu#suAxwwV`<6*+br +z9X}Itldl`&!eA6ap6iEkG{j3>wwITpA7-_XNH7g5@`*BzzOCoQsUfigqaWj_9@8aS +z_O^0cJB@uk3W>K7Pkg~Bnl6lN{U8!)BjE*#wY?VRewU+15{@xXNMzfPA=-R1blc +zCN1?*_W2}RtN3P7fEuFM2t3yX8>K)lo@atXoHw8rS!;0V_jsKdE}h-e>oU(a2gF?@ +zc?Dhe3zB;I0g$#eCo|Es(nP{PDEeTg%JXS&d{Mm_Mj>-}laFI>s_AjCpSfRt@g`l` +zsWz$AQ_el}{$<+o+OQzFq;|+%O=2+D3+V%Cvm!MGNdKX2+Ri=Gj$dbaD3uL$(of46 +z{{UevC|Z=tO1~5@pI!d`e+MP*`h9gqVhjfdgpadW% +zq%xJ~27KxSiq?7_oIt~W_NG3qiFN}Ud8wld2du5YS~gbP0@-L*gwP_;PF^v@1c6g* +z(u_cMgS09RbL-cA8L{NnWcj;q3Wae+^H^uQR%_pOBlGL6?$^$<%CY&`)xJ)Ae(c?{ +z?9R7LugMzv7BItFV)ge2F+XJBTm?t_1Hfzv +z8Aw8!JUrl{Z%x$qaAJYbM@Qh^5hs{fVybAPY6*Fd5f7(IRoTk~WmMx3vW+|qFXEm| +z)eKFVXttiuWoV7-X#^KHJZRf}RUagO@(*hb#0!&H@-wvoUXiddn-Xy?yws*%Nz*a= +zvE)V%mo#GPZSV6MI%Va1Y8O{h&DBI;v$Lxn=E{^$_PY?IbM0B}vtskxEeMc%Xzq +zMm>lQu`wkbpLi+p*(XH|d0`;+>KOr*<`Zr8%NT=*AY_>lw}!?j2gFoo8KZg9o|wAc +zmnv(~qj0A13mKc6iCaKA??fv$!|lzZ8O6}qkJTP7k-?C3SC^VNgXeZojmhzYb>Wlz +zsayz%3F$t`G>0Uvra{dDcO_UHe6>--)#S5i;|oyqWof7QmZSTI%qs(;u>?Eg<5Gje?%d +z%#2gb-NelWf13f34;->EvQA&nJ%gi1rcX`+7R*fXZ78gnQS+QM)BW~bRWqpv@9HPu +z;sk%mZ6%;=OjL~~-WLS%RXwOiQWc=53qZaYfc$P)XpSpT*CT+GKlfZP#SLnBp~3(s +zR~KZIZ4*t@CPFcw0ug+xe2C5tCNVdADPR@)xt*snQ6)7}9GUY8xJswf{Ln>JndPGa +zg(xfAU_}bDgWdXGiHw$Jg<{kIN_5Tkf{H=X7CtcWtU}#q2*%<{7nFzBa@I)PPouFj +zDyRx+^F%8v>6OodPqd2RsTa`BW0O?K%{Q;pr$%l@G1<;nK1t_26j9bI;)3&1gh2Sa$ +zo07N^fT2}=3%#aMv^Zfg5hnuh8T$0fl{JE%XxW29*2dcsiym(K>4`1)M4fF5io)k! +zB$~|uNnuE)>BN(uaEvLbt|D;eN%kbI_)j!=kp*QwqoZxn;Y&F=nhj!+;gF+{x}Z^8 +zI(?>+CNCk(3%N5lHdtz$*pFM)ixZ<1L0g#F8Kw9HHK(w(|br7O5?7xk$E1xxF +z=^>D}LnlEBa&taGlfCdjm>JFoI^jp*&M>mzy>Sh(!C~YuJ>$BeuV#|_`9N}|Xcnny +zVKRn6IgFErc2tjwC@v!ki<>8^yF5Z6=Uh7)jT`>0@tX^_`A~euF8$g!;pnWWU}Zu@ +zveGvfG~49TQ(C +z`%BP+8;s670~p|!SEz_)<@C4?Kze52nFqOxV(K!DQ`#1BQ|`~0NSdu?(T;Td_L}D~ +zZhb*RLX^VkG6DeFaaBLK1}0Q3ZWW`W5amIN!BmN_lz=79&rjR%lKa^jN@QRF26?Fh +z>JW}BZSW>7Tjl3=&&Pa-v2i5z+F^@6W8MmGTos-{ymFe;R_fnX#N8z8&$abcw;yf8 +zfgmRP&<{ev$-7$OFpb)AWI7P%g#ltk&}TD}2zE1R7hHN*_d!59nKd^t*H^5T*@%6p +z>MY?--0!4e9V-EpU> +ztG`2cG)z@X*VKD82+BIEI&$g5L7~*4N{_@We&Et&gKD?Q?0MS6FNiBvw{mX-DF8TE +zD`8lo$tEEe*$#?HQ)Le2Q2>q3K{2NT_S>?FAA1oAg4V2o_l^i(L0(9~sc2UiCPjV3 +z3N>`Ns4Ee}5-T=>4%IltaiBf5j`IbJFjUju^CpUfSxPV`vLMmdn9%6ejHHi9pRI&7u86HqQi^N +z_(7x8C2HM~bQ`1>d7yh$Byt!bu@BIT8jJiFNsD5g6&1G>IBzZh=|Lw_OUFLjM!emo +zVOF8{j;Lp|iu{cMX{VR9duYw7+R=2wrF#y&n>jIHFqP6MRxJpmjFdo6eo;dLcE1nX +z>YZ*c^U8o+_QRLCtavOWdgupCAxWy+N8j0pAV%nRCUj2RIyWUY5_w^TFf{w>8pG>v +zSZCY%W9zD&!-a>j9;a;7U>km~v2AA8&JQNolH-#}dcR&^oQI)woAK6w4lm5ORGzcohZ*djaX+tDYqd`aE!kco~yW1VgbX`Zu_#1cJPnGqu;FpW1yP +z4!ZMA4`gqaEDW(=eJ6l725*O1)T$l)nN0fj>m*nizu>tS(ox`UFfr+E0(*S5DY~sU{4-K9Ly7TP@^Sg(LH7C= +z3F*IA+7hIl3Z;)aN2BAGvC1-`c2tGCN5=_GL|PRpOB*pNxrS@wP%|ShOG(S~2yj~3_OCTF +zR@n@OWcRvb>1C{&hNgMuVwyhd@$@5|=0`+G|IC>TL_`s4Y}qJj4?X5VYztidSBUjL&i<=^@kRz6;^pKj +z^Jz1m&ytv~`hm@k#{bF_`V{TjT +zY%#YNE+c22=GON57GN~asOaWaBP1uHZMExJhab<%YJDlm9IjXZkS)SCpEhPWe1=os +z2t({R$N6aeTpenh`R=5>9m8JaG+B-FU(}Wu-6J25x;EjWoz@ +z+j*7`(qiT+7j&%~Lpk=tCUc}TlU#p&ef#^b78sO2$NjpfRln-*f7$TMF{M(CD0yxH +z647ZJqq+DRBX_XoSM8C +zh>$nyOL!jQZ{aDpo)EFvofPbe)GdmHo6CekIWfY|0m9kIVrgI*q +zEgb}Lg&XX^(cjGSp-~del0FN(qZf~}YKy9A5I_X@o>qiuTeTyoWk!)9fmdbK<0#Qj +zCH^np>jT?b)wK(ZU1IBINowp&^jB&g@w&ckUF-F7@f6#b2}b6_Hk~0sLVoyLm-zNg +z!QqWg)W?L=?Z-E7Uw=cQd!~)Ptm@Ytfjf!-Pe8E0=u8MW0VxgA{(|0qaw$1Mf%684 +z`ccqUUFFGdsIX+^wO8h-7WJAB0DB7H0js<6wG~oCji3gO+k-gu2FcHA1IScYfU7Rr +zJWfVDEWoT8kcP +z4k)q+)DPwM;_f5?O+{`Niiw4^2v;1P=CbslEqK74PAFBPY|zCGDZNy-9n`XIvEv|j +z+uBF1A{~bWuCrobpR@ui3=cxlcpV0>NC&R|Wv5gxx=O^6F6qn8e(tw+sQ3C{`+=R;Dvm3Q +z7Oor#n-aVc2D*EDP#aequrSs^i}{#DMo}RTz +zWj9F}P?5xjaCMHEM3f}0&DOQ!?#5;0rQ_(iE0aP7`+059vQ&`@sJ!Qqa|h;6m-N1!PJ&rppd$L +z2_hxRzRrSmkoZgIV;Dykzb*7Jl$LlcB$t~>PpF#wRLU&Gm`KkUMbRS*=>KdF@iW@y +zs8A~2WQE0@#4zzl+gh)Uc%TPT;MVe?4GEbAFi>z&|MT}hJnMc+q%RH&6Slcow^{c# +zvT|*gV;;A0j~r2N!-se-IDU!Wagqc{^p&axPTscZi1h@g(`(u1x>x{9y#oH4xgJZg +z`qxb5#?`UnJX4$7%5|g*?hio{NJ=($9i75}7_Iw8h?aR+w;`IP7mPGd*=K&D(A{K< +z9OyQ?;Q&YybJu#xba?hHC%f9bD#WF7dox7_gLK13U*5C-_WWr0o3@j9=!1Cc$G`t! +z%GRldImb~uPWG^eo(xbhTjFvY#%K?qBJrRAF$7{GlTsh@G&@~@Eah5%eE3{RSULL$ +zW|WfXV{i7KzYj(gntpy$=KQ0$Prsd>$?4b6Z^a~B8o%okJ>~TqRl8V4zt1A-c`Ct{ +zBTeo@i;+$3C)q5C{jCcky%tn+XxamfB%##&6L4OTN$C-n!xADERQzy>X08~h57A#H +zPnQgIrjkGwNTCUUVtegC0Ly$N^HDqT5D1K1Ws^>M@z{uTVoXG82VlQONdN-H>&s4R +zAUPD=u;wAd32+J&R?pN?Pr78Gzjlx$U5l|0&jNbaFYVZQ(j`b>HzVKJ0;jjvsN^7C +zZvwdgluPJ?6uYU%<`GtF5o1O~I+nEC)$RGG<8&G@Wv&j9>@}U`h7u_ddzq@IswL^- +zL5bf%qpV3yRtW0MbCNdRsZ@q->QZ4iAOSbZI}7whM4%{NY91*uq!f6cn@XSgwb#Q0 +z^_aw$Bqc5JLxqwjc7tM>kiH6Zl}!{JKC3NTiiM=6$uTHn6h(3fUp0Sh$ +zUX-LNd&m*MRY4R8yt^Wz2IrL~$)vdx=xV)@W$Z!zQYDLs)|*rjqt1fnd;KtCw!@Nj +z0Xw>_y5i>mQX~(I1Fb?&vnzl(rvh(aNI-4GyurIJZ2R2Q7X=+omodKmcD8?0Hh#U*VtQ-}o=^(6so*`&qJJdhWg*z-=nt77@|%1Pp0_ +z5fubA(dXuyggB`Kz(r~03oPTuDGzuv0fGYR(TAGv+%#-%|&7Wd%gSNptq4m_Re +zwCir@8`5PM7iX#;)g_ot4T5&sF}G@pJXuX=eK+v7Y!+j*Gs}8e;o+E%1=2I3mYc8^ +zppxOORl=)!V5vp^HJvhI3>}kypKAD>2*_-Gqs&uolev%binI*jtA1up6y!`(SHJ?B +zWnbMEjqvsWhoaRe&ix5qrDP7#E{UZm+$3()eSxQ%;6kJIZI5DAIFQ)OS*}xY9z=i8 +z5?A-Nt&wQ_QGlFYM;6NSbvgl2Q(S*4#jt2CpGh>N#%h6dLj8Fj>a|^YvPxItA( +zK2hl27u>0r*#X2I_EXs4IGB#exgg*m$IU_MBSDXOq4ps+(GKE0Nu7Wu2xrC15jJT! +z+7Hwf7{&V#5fA{C6Yr2zFP^{D!OF9jusl=w9#Lu5c!>njfJSGLt%HD967y~w1Edjk +zPtrG@|E+siJ2Q&v)Yf_%16RMDS^#$>613O>F?C37eQ~lbjBPb~285XU;Ko+eL!bK9 +z+Le|@>$w~yYEs7(N93~`K?L;0b!{|f65dz`D5OY7IdXi7YYT>mz$Q9MGy?nu(dDfd +zH)x1KqDX4(0<BOJ{4(GO5C5$ +zWREakD@a2=*7_jPlA)@JI?MMeaZ@E!d{%yB#REM_9rZ1x0~r^VmT9SbTU+7RASEds +zrJSR{0%+oyQKCN>`6}s00 +zIdxOly~*;fNMSpIefG=CR^wbHM$<0W@Oln_%vGd41s +z3fdWlu_;F(T@nW|`iE%JkpPkQi3jr}hDZY6%14uPtE^K!IX?p+4A$`arnb=G%OG56 +z(SB|PlP$GEU||%tLn1anW94>{m}2faDF`~c6p#ig*NC4IXD`_NH+9Qpfy6l#B~Q(z +zRG-!Sml%M|71>TMIz2|E8Y^CU73Ymx1>_IPR^rQe2am~TDhUiMDL9fIRP)zg*Gk!* +zXm>~?RU#06^1nP6ikf`PuoXOiwWw-H9mkrH*ljt+VWLydHnY@gVC{rYWO +zyAERQpd#_YydiDltVlC=eq4u*$;5Aa(=EJ+3rc&a4=*!5o>Vx^Ss2N5DCkDDFiNwL +zB=@eWI68OAwk9#R=`QOVDJdoIS)vZ4b90x6pr6=XyU-ce~NoAu|8?`^Phe#T!7-vAGt3d`Mo_IN_X; +z<6;&g0%}Xsr8Y_OS#M!mE(U^7EDLxDItxjZpOm;CJ?ScN7>U|f1(uWf1_88UW=N|K;6imA-RWgR37=IPlh5RCtxs +zuVL=fPK}$;9cSGSGwu8|@ki0da=a+Dpl_loNGbIxz`16P;2~8&C6!dBXHB|dpC)k; +z*fGUcE~&8d!7m57yqUb1DdbERdup@t8y1sKRJ$tyMCw-6{@I({ZfZIoKJ(aFuYDVK +zI&vp*!L2e2>hwMJZz7oR%cdiD|NN_r$UsK$)(4#*dN7iNu*XD_1Zy&&PHIQE{3i^& +zS?{U4D&0#el;fvca@LQ`Lf71lO*ak?X1R0cEb2m%=ySbAw>nb;MmAeMDrTVT9-C+q +z|K){8TFV|R+ofhiW1NK;Z=Vu2>VgEG>2m{0O@+ew-G6ndIlOAB@x6 +zRx`zb8z4l9YjMxxmWJf_xN$n%Jf+^Ftd1LpYPOv#W%ke0B)c?Hs#Nh=SZn8FW260G}d04OrbK-RT)tH3WIy#vjC5 +zP>*KjLhLi~^(GZFZw{?cGtiMlnG9+>+De*cfftsWTb1bGDm8yzB0NzYeYbBo=gzi! +z45sD$)7kmt#EpVL9GHPcXGJRlB%dDw0*;~u$VPm+8Pp?BJ1pFuANJoD-u-o^InrxJ +z^WY0g`F(Z|H|9!RljECX?^oUCWxVXcv!AQ2^=%sbvR$Ir>|wc8q=!BD>6gVn^7KgV +z!BZA$q7GNO44uQv*3yNVbSbNIY&X@2lLSSFxZz+rZ6+Qqv2#noJCcjP)rUK`R-(gf +zsOQZrZNKxd9FCxi-oUi=iNHjEjX$0Wz?^G4Ji7H^IYN0x#!b^AW6$1b#N*hkLzG9& +zo|QQp_QR5TSuwEXjAWpOgLUVeUWT+m1o99Wh4oS?4WEjy$y?#Jl%bINnZ`V?%ite- +zZh0@Qk6^;S_53=U?jhR=#}*QOEwibx{|0t +zEX#)(y*NuAlYV-+zs+U1`}K>%iJfXuIUDAJ%k)E>MCHIDro%Cqx9bE&+bOQ0>r|5Gf{Ha!p@a%Bvw$6 +zJg%D)Z^w>05>iS#_~U9gwT +zD4Y6}!wU5s%FWr~V5pWfQha(6832V~<)zmtx7_Sp2a6*wf;Qx-7cdCdrgm-8Gf>R{ +zJ6VYuq^|3_Jk@4vY9{r|+P0JU;HV-c(jr_JY%;31O<>Z23OjXwNxZ0W(p9t)MO_Bh +zw{Gz64ZTVHOyd}HEt>PB +ztl#IMzr-XrG6#XZg_Ij%Aa}%ukDex(Q{5aM%P3`0{;pzbH=_5kD-?mx!8%HuNend4^U5_V@v7&#r1&Kr3yJFN<8n+1mU(=kt< +zk58wQ^umY{EEVN5fCk8QTyc>N5(eJ*0|5lmvMy{EQ +zgN*@y9kC3RS%D=6RS*xkO)FS&*afvoq~S;fYG=A^8>SQ=Or!(N20o=-01oJ@vwvamC>8U$H7{s+9i?B9>Hm&XlzmA1iavtCp&Fy^Rc$7orx%5djaP6Fe +zEj4@k5|u{TMWHM>guj(Q0g(;@;#6vELma@nn#buta+^4g%czGIUN0hX@Go?o+%xJZ +zwGRMz)&exw`Ca+7@ylFQ;zUJc;Vb0(8j8~L%AT3{696?2(M6lAr3KkYQdg?fw&847 +z@;O5V)#-^+ac(sd=|dYzc|{&}!hMze95H91+3U;@#16?}fLzVAU3fjhLiVv*aZ|ud +z=~w3bixn}Id3Z2gp4l7e!svk947r2H_+BG(+{tAdkWrwOD8x#7Nu(o>F|kO^thE`Z +zJx+qeI96vZQC+}xubahMLQpLW~sZVmpv*#Ld1@VKpL5(nZpp +z>08qbAlTyx^W;iI4@m|jjq?JCp&AsiXFft>JjEHofa%qh9gVp>vawL4JT#w@&YHTk`TqJ;~;in%#Cy1MGycb>dh8Wiv(krdKjv +zMDn^c)OBl{BX#4*I2*_}wTg5n2B>qyr|Dcksz}G{E-m}IJerOfeWDEp=mKO)FtMal +zxe|}@)KmBiArNlhI(TS@EHs!*QlMtThs&cgW;bcn4c9J*EdiLhAtK?Lw*X4)O?kZ7 +zBApFRIEn!I?w)yha!W9o)At2VgP`SDIym} +ze(9VVVA>Uo!+=84q6gMv;$Y5-N1&sK)J(ojvPP?iYUROBMBo8v+MPn`2i1)LRTfJ+ +zCsI~`QXCGs)N(>y@ktV*F6C||t`4Zybe$7tY6hSmFagABT9qx8+?hbKh>%CSwzfcCEA*KC9u)GvLfD@sDtgeBIS1Y7e3GhGkx3q5ofOM}Wj~;tow5F#M*Ml~K +zupor9(=?D^jGPd0+P=onmm`)k(@pav-)9~6VOa-3*z&A4&Ud&AvM#{rfJuSASlI`d%sU5C0*9ql+{QPw-FHgs=;%aCBBPHgJvT_+xuofLXgMm^jN5%8z +zRi7?@8XCI2HM`~3>}4;ph*BOxB@nE96HRn +zK?TN9U0kt7<_V(qJzF0t%p1#>+ep6hl&{BaUO{x?%5*~sUg-S(8j$g +zl@+*!Siw@9U2rx*-o$sNm1>%3{B2$4hZ@*9;?;Ug&S)Vud$o;6$?DbOzPoCb`N8d@ +zQuTNSr-`|&YAzh;t8pP=c7ToUIjhw!_(lEWKi_|R=S$Xqi8wl6S9$RySuJYL?WKeG +zx>k`h-#l${Kh<@;67x*FlxjO(P8?rP)Z_~{tC9~1b-f;IByu)pfC=bYMi8ovItwp0^hf9&eo5cI$%2u}VK6#AYYxz%uI5o1cf6); +zAX{T>0^%*7$n`R0%)|R`I4O_XUezSRoIYhmLIlFh#Zzb)16qMx&M>6xI(zqlC@P73l_B@xk%^l=5CbMeXom4O~_R94ewDPiNNr#RQQVdm7= +zK9!(7Ys{MVfTgDUM2?l)3u@LUa~yiTd7>nf;EqyKEC!ce;-sPqBhuI1Dh8y3mU%80 +zAhtoL7d4Nb4Lq8mu1T&QE!IYB=b*6v~x)LGP(M`s@l*= +ztBmiPZI9XTPY^TvjI8HDMz>M4f_rHBl-AKTs(*d~|DIn3sCZV0Iz4QMnk5I~g;gbb +z-9YSv9|TDyS@uVIpQIJi`4hr=Mb`@;uvAxQjX(v1#=4m)@?DV`cx#iCCBFKzoV(kM +zAVtVq>O>{^Os;H3zyw<*UL6fi)k$um(qZUm37;;rWL@gxo;As&<-*f&r>s!rh(ZG0 +zJnH$N?RA;Cu{YGNH`?dI*959=tlA3x=uNON^-TY`f($Yv&$Co(6Fk?{&H`W8$=}3} +z8anV5#85~t&>d0i4)hu|t6s*0LcmYI5N_8Z{(c*Q_Wi1$+2`}35pa;li+H`Yyy73G;v$R7f-%#o?Ub0`mn3}=x;bxxJrH*H2XLGmM;v{d5*aC_Y73Ab#n#TZ#J`&koU4+c(c>d@O0x+W9PIZKP+`$w_Dl-W!lwl$8F?H1wW?# +z@Grn;Kjubl)mXF0Vrdn)R>Yy6Dr-z4$`_=$6nG*(-am1aD +z8!46Tb4Ag3huW1bfVH65ynzA426$dAGBw?P;54K4ljr+8J2iic{qyfw(TOJ)Zwc=x +zOv2S8tsO7AlIlb{H3&sP^ZNEVL5w7%=?D|0qJ7oe<}*39>06uLPH(ggaVqKiP*Fd# +zxI&5zvC-#hpxxKs#?xqgK$`Vlzp2t&M!-8mpY1jyYeDgpv#{9~8_kjo(md-ca4#)0 +zA*%#0vaNl1?KeTnO0xRgD8Zj->5x7`YZ%P-p0n)3en{g$RA!7EW#wVrRe8I1aa1{y +ze#7k^*dx5mVoxo8jc7>6?q(kDiYuHi?{eqFmy40v3M3Ytgu^oC3O^U^fYQJmY5kefCL_5*3Y<3Cl6@loJ@&Xy2nt3NqalK7aTL~e*+Ni&X +z{Wyv*pG*rY1rIV?FH&)QnnT*Bb@O`VY7Pi?18~Ewopi^)Dj^#j_Uh9%$w$qV#0Q{e +z8*)J`id%_8>%_?3(Jb$RK#T*PLexVe(wowP;+p+yKU`KGOAEmBZ@?&u)svK0Pv7dyn# +zXZgl5Wk{^riBa=JoIAuZ36i5_4JY{7^u|uP+2qp8sJej-|9bTh +zpsjTU=~j$_RhA?xVU+<5eljF#=vh8itUA5ebOmGi{Heq>YPxx$>(b1#eIPpREECsq{FXn0G{+n_7as~!B-w(*8cKNF6?<~5i&IXEbP0d# +zCe{U&;99)PzyF#ai~0MRv%h?*Keeb~ZOx+Eg#qOkMJHju*34oSMK3OXvw2hRnX|%{ +zids$AaeUxXH~TP{)vk81eB3T|+lCMiwbylhc~F)*k(xF4?bz1?n@X34Rvc}pYghwd +zUI`w(XuDWC!K&-~F0E7T;5=KbmacWS=9G@5bIVx!E0A*O_R8iyb{w(3nAH#qZAvBH +zYj&4mqlbi5>sqJF=(5`8fmHBj<tm~y_AiBl2 +z%Q)D)^2<#mT^sB=rtIC=9i!40k6vbkBD8M5G<8}g3{=`%)?P?n)N5!NEM$>^$RsdcZp|go|7~zeU94k?>)N|2vcGL1`D|PsJhLfpK|R!# +zyclz+<$)S?7bUBP>o-t~?)(8XB0(Afu%?7~zvTKVXbaji3}qpn59HVU +z1tg)lgEDYuvQPB6N|6+(fB?O+=sxl$x8alAsZP~|pOik6MOKn&Vw+;Pq)MHRAEQY`T +zp4l}_(o)3-FSS}V($*OP=P9gK;95E~TK)jB3v@*S_>po)Q| +zB!@kBNl>Pl70D7pl_FYaO@GN(2)KiFViE)9gH-%H&9d?fk>RhEZI}0KxpAVApxP6*Tv)H$K=uWD7Z2{<6hM?9d1f3#7!O#I8m#>I#sCb;Epw}>B_H0QUZPImk3DB%@Mz9 +zN~6}OF0yo@0!OHQN^s<|SQ6^2YEm(gkjeQ3pTh;Vi~=yyBncwA4iK-1cX1P2yw1WE +zPgJR9lJ8GFS&YL*Y1o7Xj38@ciRBj`oTzgXM|C(Ye;YVoo74dWnKU&j1JRO{2?Syc +zt%^+`+k#RoU?kW{Yd(iX1KK~)zqb^LqI=L}AzU;_qMKo+VksY>uSE}NO9&Eh4oZ=F +z{&2eaIN`rvpPgm{A;L9cAr3Ljgx}YWMK)`xrIrq>ugwQ)V&D~cJF8GKBH}S~&K2kd +zMdEd=h7yxr*O;j*vVe%hG~2Gk_4C8&)j2Qbp{?L;3}TAGnjmC#l2qmZK42sSksM#@ +zGsyugQKN-gX4(l#XJEf<i5oL_h+=$^z+fj2_07GUYU7(glJrb%;JON^2Z(jFG{NC)ibcstUx +z0NU*8FDVVvEjzss+gl43p7YGSlUGd~4%MZKA)M29(7Pj$_UCV20;mim259+_t!h{4ON_8c0 +ztPC6WD?CqL7$F9g3UJ&3F%dCbpL(a_OF2K3oMIRlOLi&BGz#*K$9l|PVJbCa|CZ2J +z*U}a*@MK1OV_KGv3C3W#@xbmX6DDz8h?<>jB2v1l#8x;F6gGv2M`aEv&`@VO(FtJR +zldFn4Vo8yg_m8DsE(z8`ASv!#_JbVl`(i?{FkQ!rRaSyptZRVE);eQl4-VU~ +zR*(KwweSVnhVOM}WTiASfXm?I{Zh|06ojc515V#NA^`SFsXCNIq1AcSKs$e-eakRX)x +zC*Q@B`sIQMeWmr1tLpGhZt>NP+7~o$B^m1qCqDh6qNS+WR8I0tW6px4C%;$~tzf_F~Ma +zQOIK!$cF({%1Gp&c4l6t)I6bO{*p`#gfiNF#4glWEK0@V&Od;ss?wxFkK)necxb?S +z)AuiFD%^w5fGikQ+)SnwPq-Gqe9@N3Q(+j*qWn?KYb=@Z$#$;-kZ0s)3)<|7ci +z0WvMmq8X?wsd#3rB-;jM#+k!7RnY83d(ZpGHRXeYo9KuTlEo+qI}=bqE0Lu2lDk}^ +z%v4Y+#eQ>zrBe&&+*b%ia2kPaC>3JG4kun6XVhGm`js<)cS(-smSIDJv&-NcS21LC +zK>QDhlq(-!$Phw&{K(!QxcY#7!R^pVC|_zLMF+?-^1)EFl#XsOKk+~T6QjhH5^55? +zBuq!!Q%pl99-owvMIedTxF(CwsqqQc!TSl#qf~F2OD3)I_Q*|VK39Z-( +zgB@TrP~jn@lUItbx-|z0Q)&`#x4ZP=l@!_iMhEA#m6bV<(^r8*B(} +z&Yio$=Rz2}AqgHIKc52eJmLZU=uUTBh$L0f=h=>(0Wd?1VIlRcS6#*0S*iqh9ku8% +zpBa{y2oW(`(_WUJth5Ec& +z1iu6nOoqx*{N;iglazNd^6k_vWVPHB>?a(E*%ZN=w8pwe>e@s8j>{Z}T8yy+$(Ae3j-DARHwh!JQ0phrPSk2r4fTr`}wJ@Zkr +z-(IRho;M{lm+a_3X=8tMky#$C_nC7@Q2&OWy;6V~5RxD&;Wmm^KTqsBffIEy6#b&b +z8!;Ze>PI^OsPgset({5wKQ1Rv*p`@G)y8oTw&j(x?Z`adJ3G{g^|)OV!&oDuvIb)A +z(@we{ui^tC5PoFnKjOB%2KxBiCDhje{b|bm)ODq~#ShgyL;`J8Ds3hSp*q5e8OzZp +ziseP6r)lly>-C~)5ra$vBadl`=ebSPx&W!m$bv?8rPRI9LnkW?$&(>9!fM%r@&7uNXRHuRkGg-$khXU#_cR3Lz7EucbB8LUQ +zHdC!Y<}HpGJTDURU#uenD34yH$h5*}O!SLDq2KVR>_ZUV&6cW#M|0>yS +zYAPP|P@CFtqF$ten%rk-r9OxdCUl_wXv??+L_!p*zVG2$&Cd);!(16@Lo5LTF@(O` +z^sLBa4;09jovl^HWF%8xLAN>~pm{TYNvdmSVb3nGI8n4_?*5 +z*mbB5k%w9{I8kh-_E^TQf9Qq_;Kt_Ib(~tgR{Ud4i_bMBRt>3iVr6LnZX=OGipUXx +zYwRyX#f}V4K;n?I7mkPM28NouiY5{v$xfc1m5!;BK +z{#v8DJ(5vtuhzg33M8(gpms#4n4mrAL1;ZhpmM1jomEGCTERRtP?p7;kI^AX;JUkQ +z3&aV6OqXoJkq+V52HK5EB|}2Z;x~EjnhdAUjp1q(NaCO3TtYbUnee-6mdB&^eHI@F +zK|`l|TX71abZT@eyc$U(ZP +z4m$R8x~&_4I9FmP6QTQYZI3fDhJ-e8rKl?Xa)I$ZQ;aY@l3FKo1W+-VCSJ0glAvrW +z@J&G@t!n2T0krg4=ds}kh^Y4uI;%fgdz%o{IRNsGsFE7>q1VCJ!&uKFFQOLZx%f;W +z?y|1#ehg~S2(n*MhD6k}cMIR}_h8G$!=&aWOD3MW6y(USb +zrPclXAD|1s+nVG(!&sTe3%skeTUrM9XUJ3Hpet(cy5j_d*jEoNZc8Eswjc2~xyXBs +z%zh9h)*jo8x+ZCuWl+Bh_@Op2A};wioH@hoe@lVT#t_9TPcA&Q8eN&yB|q!H!U +zJI?H(HhqO=ea7$GbnDPflPAx2cDfWGvWTcHCI$&GgKiR9;P``#e0z7K|A^z2+Hgmm +z`M%HK`5cAyv|~lar)$!v9iF9fY~0;PcYFxcfWh)p6QSNpvQT>5QV4{~JPL0iO_XHZByouZCwGZaWw;B3RD +zeoc4MqS_al$Yx;fVD>hBsM~>S9>CvHqV@`r9u_&zt`&yDIF`w4={U+POc7C5Rik#Q +zkfOsYlqhxI+AQ%N<7i+n#=#(Y7Y;R@NP(n1X#^FA@SycWl41i$3zI}7IgtVQae;$U +z8wHRcS8MTvd2E#%xzKpDYC+DuIQ(sajiy6ch4M*HXlDL_*8bRp=xIq~;~yiF{{$2f +zGKnR1vQ}+NbEr|wWxn+Yp&HE-kGtS9a_kQEOz;P?#CDc8CC#J6G~5>GvkQqCjpiTh +zZL1z^8H|%s>4F%d7Lp@Klo1~kG#I~OUSMx0qQBD5dLDBB>-SLI$jNznZknC>WbCB% +zk5CoFn;_F8$(CS~Xo- +zgVEXQnY`=G@1fUSv{x)#$qgkb`}$6 +zASFkt@@{cS+%E(N@aQ^w@w~7TKqxPAqIhC@VaF~oYA50;gR-O?yzD!OWa09#zk<=MS2V$(HO6_mQxraNrJMIh_d5oi*#gm+IuYJLD +z)i-kVS^8!`6T2FyO%;%L#Qja@(x_UJ&#y%V?28in{bHux%$3`Jh#v)$5b!2XUgU8@ +z9BlwT6`Tk{EB<>IywG4vdN+z1k*tna(Hx9f`i{y70O{ftDG{EZG6W)0eQT7R)|^}o +zVxEih<)|G>wF@1O`aY$vlD4E$EGfi6d_^!@(hl$9F+^3sI@e>CL+SIEBIQiV`XSI5 +zsXdPevQi|+^M^9q+PBM8Ur9v~C{V;xtvdv}L;%kN*h=)8qCges#C+X+OoG&>X6d@s +z@8X)K#7O|Y#EM9RxExL2kyypwC731;J&924_K9Kr`SZ7ErNC)>2s-6o$8jogudgE_ +z+MjAZNRD8m65TVeY85-3b`VEMMr=#({3z6;qyW2>Z*5WyX`M^Sk*J#qEb}Hr0RiGe +z6jBD!Vh+d|)^Vym2rFVev=&bT^?noO +zkFnxDf)5r&;?+HD|N)jDYpWR)B+=NpvCqM(w1*1#ZY<KvS2CW2a&@T78(2scLE6H;44VOxHu35UiX(Q=ngE+32}yT& +z=mZNDP`8boG#n!+EMGf8gT^xBEbFus7)zvD2dMr{3U&#R8%S3blw3`KcjeDWJA)+L +zk}eGIt~@ytEoeHv5hx{=XKrrHBqKPa1`L*v@KdH`*tn)3%-;~NsH-ClT5!;8g=Hh1 +zk8mq*hcG8=4kwufiAZWzTq%b3SVQwUkoGFVl88zNGeUBWq``R~^JT6= +zNbosSXVuB0#1B_@CqqW{Dbg1QH{Wg>>2O~;JpvTcf@pzlk|dP&TqUbN&Ui`zB_0t= +zFvmf2>_p5Om6oj#RWaKkmFR!^k1r68R`#0xiJU@0^en4IQ>PI=uWaDr(I_Jqh?9^4 +zLaR#L$6B1d0SWs|M95ALQC7SSG4e1Yz)>tm#10^spmX6saS*xG5JnIh1+SA>*9hsy +zp(NcHpzZrkPav-B<<`k(px+6_jOy*&6I357BTXn7N$^Iuz|FeFf};l!f|?ExphgM~ +zoRM#cew+W0KKwU84x-1BDwQ~k$B>5&CmEuEsBT1$WXY?%$2t`S3#CV+$>s4&G +zH)?PN+Ld*ZP5ZOh2B53NP^gsNiDxv^8DSBKg~JpfEZ4{^CpI1!^doMIx2tVcSXf-% +zveXXtacG0vIdL%3c5Cd+w>;Fp$6U|9*i>*dvpzc7VL}r-V1gxay*Pbd0ip4*D?mC+ +z@&$kLV?wdpad +z2J1X>k8iZbmyH#Io9m9_U=+IeSoZZg+>%mDAO40s+5BYIc79N}!naFq +zCmIQqR-5Y-qoccnyA64PPgOkuN`NI +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 +zh+8?UUXqoY+&BzJ +zzjbE3Rzp^i6!os{*g-@4qh-%kt_16)RljX +zkis`2+VbQG_*E$<4rJ9@N#ke`2 +zAd#H>MO!@vI@*@8u{>wPuy0k{`SzGD`)R(Wc1AH(CY!?@8r~+x9mt~u9?Z7x`Jm0v +zbEA3yHA@R(5yu?@2wqpV2&?B2v|EuDOKd`>fB+dYbn0=vqm?!RYCYWA=CKDAI-E-2)i3g`{gr3qE34kBsvG%ez0 +z1QSA-74YqHC*f0av5?9ZgPI~M3Ajc|I0T3$+~1{)L@io)3}UH?qj#S{?j6^Q;yRkJ +z$`M0M2aqlMMK`NzhO|g(Uf?4d+i}6eI#fz{w^hpG>K6|u;rY~i1T4JQ#ec)(FM7QHyWX3baQS6K2N(yQe +z?~q7Xm#v8;p&%(izA>HPFzXZZ>I?OW#&GN43eTsFg@#QM>j;s;2>j7OQbGy$1EMNF +zubT$H62qC(ENBsKf{xd<|DC^`rIfSpvPEe>9`1VtJzu^Iq&XIsse%U=U)|>F*|F-S +z8o73JhKugTZc*&1fFj+vW+|Uyp8(qzEP3|GK#4%5ngwt1Cq9u94_HDrdf=8y8eql{ +z0m1F?BjzVIx-Q%evu=`9^D-Q2jcg^+*C;vCOgPr-mOoLTFD~kv +z6DKU*2Y$6k%*3>pNiG+NM5KaVTLT|gb;5R%

    ;GAEI$nd2W0Qe#Gv;qeBA<3kUp~jUJG^>xfxP#>H&mzs0JKcUx_UJ&% +z4FB1gI+e=N-Nd5AO6w=Y-E-Twd9!0?m?9!M=w(5snIP7z5>J8*R;v+k8AMz_p_lSN +zNIDq+PI$<^;vFM~QJg)u4xIIhR2fk^_@o~I$`p3h+cR*W6}4zmyc&X91g%)exgCow +z8wUod`+PB2`_g>eN?xo6f?%gY5R`%q3%Foj +z8K(ItWuf_$Dx|wV10>oLZ^$GGjN)45QkOU3MYz5di3lVKRhP_B2(XW+(;ITp;#p4R +z6Vm6|Rj?~>B;>+;i~F;EuWAi~v@oFkrFt}oU#dqFu|PvVk=j?I>vpcUG?MPM@f)1b +zl^=Z$SMdH?AU>a4-&oQ;+~zqwv0wC6!^Cl#=y;a@*RcL9_|uh;iJdbLWI0!+|h +z(yb$YjOUM-YJqrOfDNRqif|kDGp^3LW>f$kt^1Lynym2QbX=Qkb*Z+auEl}sa%bDL +zyMC;5X6n`ykdcCxU1diCdCe@@SGCS|ZY%z7e*W>TZcBd3x(xGh414bq+mlHAQmNVK +zX8dq*oV(dJ$7P>diF*>)6C=(xpPETAIwTtF%iVo8uAZUwHjmrx?AYOO$IKiSNI0Qc1uXuDQhS^|0+Q>tmgk +zi}avXFpx0JVY{1BUY!644b$3K;CyQQ4~lUN2uVfcIsBZZ8%R4?Nr<( +zr_L(q_-%plFW3adQN|L%R&pqZtGqI`H-`fDv*9(fDO$cwE#3DU$}-UoOa)Iv7-Kdd +zZVXl+%x%bcj)@Mz+j|!T7ncQP5sCd!8iRwkq`=9GJqS<~7~6DRsC+ShWZiwBwi%qS&(q;aPDt_-tA?N4p0+sbp%&|}^1Zi942|Ab{#Ny&{Axx{>fRcC +z?lJ5NsmH%_El={8eGBQa9KF1{qz-P94uC3c?PnUUSLyDfL$3bmCzOy8H6;PPfDDTzmS&ekaccNnA2Gnww +zd(m!Mx7mo&t%5k(gU_F9T4d1nrU$e1tnr{M3!oxhV59e@WuncdXHm*+D+&6db;8$Z +zw*7B(ECNWof|stA?@RPOJUAYC)9C|PD?Fr&#NkcP*YA~DNl9;=ppXjBz*f`_iS(;$ +zGa$Fay3mOcT0{9B#M-Eq53&0B9Bee8K#g5CJ6MCneX%knTd +zL^wRAwBx-E&cf5^U_D9vd%vuc+5;1^jfxc)YQxZbd0aM_b(%gC>jSc1Re*`F!2op3 +zzII;P3OB&D9t9$~E-)Ap$O4_5>V_JXf|(km7@~~QS>aaDVP7%Up^U5kM4pX6CD}^o +zI$+(V``JMBGpaEOthddel0Yg2rK8}vCkXvaa$GVu)fDbrp@wZm19jG{Vx19fP{-zI +z*FU`^oAKHpozt8(M@eLKlan5o&4hwPhf{6ef_(MZ58^mAC~bMHs)Jx4ZN6|J(`?k3 +zA|6dM&;o-*l4#vS`RH^}hnS9ek7lByA0Yh5*yhgNg~ct?!j#7tn%%5C!Q*gfz1yYg +zD)z;0Q^#N}+vHQt_-Nbo2-9S{g=c}5ShYR)2Trw4G1?BbXX5I-{hS_n=fSq){CT_s +zcU*)s;A7}efakCs1mPV%YiLW8!-n`o`Ye_s8MY$t#A5ws +zT4;<80C5>54N-+Mwi2{rsGCJ`0wUUm_#r}@qUSq@QjNXT$tHe^EK)6g5=oVha29?l +z2fjIM`m05P=`?pd?Ves{-8yvvl5Bn!W+rMqb$*?n?U3dv=q=AMv58-aP>9XP5O%-K +zxo(2s2UiX54S-13mRW|%HZw5a9ES;&h&5n=RiZXPA;REgD~x2zkE$R18d=;}r&eXdlfAXt5AmTl98`27zM!*+o_U;{ +zoYsfy%+@N-`Pm-J+~oB!n`Bx0+u2x3e~zXm6;coi;u*Jb2An0%E|Odzd$k{Z$LH_< +z#CUm5`QDg~Yu)d}S>lvYGvgw)TV=hQb{^El4u!(6+1`7lbFMhkbnnA={yT4n*VVo- +z(B$4f9=|3x{AeP-sUi7s-q*fj%HRg#IS(dmTYtFf5*qel+3gmTU#y^oZKqGfzL$O6 +zh#zhHrrTw_KE`fMUC@`=p;jj5 +z!E}vCUEQa(P0H~E%9aNSJtG?^Jns_8$!FODvkUk{^$;s +z_I0bTLvLTELswuPbnISY@*ao!cbxj_7_LoqTGUTl?`v2-+W{%m*EobK(5*vu$5Qdo +zMWr!r{3a`%IEP*Qb>tAmv}@)xrG3p&*1O!-hx2`IM%P&Wwi~JPX&oQ@pxd$@DVvcm +zwC~1<8trJW_x8PY>ZY0lYlyafzQpYcM^pJ~=IF!yu0RFy`b0Eb5^w;M8kwulD+MDAC(&{TAy` +zA1zb6&a1uivlX;yCg~+#zQ?21lYQ}{qfTlx +z;P7;_x?6VniIG=XI$uwl>v5XWp9j>T3mBReS#C#LHF>d@HgdF0qevjjOdtjA%yC2w +zzW3xZo6jf>xbaHe-Ge`Mn|<3a`?N94?9o?qx6q__OtEX{m&l){U-h6!;&OC=U3=*; +zO=A{V@sVZr8VZrvs;k1+*(QyH4&;v)xSZ^RSUCZ0;dX^DmGlbrR^8w*rgLUs`SLKM +z{`vjqukXLU|9wSn7d5j&<|BVFQjXP8A4j@0wPWbUx>~1s0f6@<10Lhy`!Keo6>JwP +zJ|OS)BvBY3AwuNmZ}Fuo%I`7NJqge2Oo!|B3xI1ln-_k%X>^nAyGP{>>#D^;jjR}J +z81(FLwEU+%$8D@OuDp4;j&|PUEq!g)Cy5HXJ|tPzc?uDjo>nC19i-=Q)uaOjiL4<- +zERJjhA}R@s2=@>v;Y6fegz^>wR`YN!PX#D|_dSWo>gJsx%G{mxQ4r89@lL5L6ugW( +zNj3Tt%pj<(2~gEY)3Y@mPJikrrLIyzynZeahKLJ!8Fmi0F7q}|p1lf(U&BmvWIWd` +zua0HfTOJhJajq*dMWKbU&o)C~lK@I)P0CDFzjKilB2G;kEgh5B$$Uf|J7d~7^95tB +z`!w{hi!vuk{lMs`NB;if=da&?{mq1FIzBpeA%-7WCUjB@af=)^c&ydZ*qzZfkF{F{ +zq=9aNGznqv*dc234fk%M?X~k2cR!`(VI#lV;pbhOrlN^%80neF=?Gz9_vk^BV8h}M +z=2eenAYHKOxzfZ#(Q+}D5$2&9l?68TLyfA}T_?Rw4`tQ1MAgqs2?FEhq0-D19I2Hb +zB&k1o(gg>m!h|+Cz7HLDKUZhR9~X@00|hKdBLdL$A&D&9KXl_%ID#&yT1*|0@>+{w +zb5lyBzCI)I%Zk6+L+7ZtjQpc@UX5cC?Y(!5((>pmiN?dqk${h0>vft|yLC*O+jjK} +zF@ue-Y!HzgC#OVA>cdRkx4}REl*Kt7hICt%)Fz6YJq%I@I{E}NTU?1q!abYf9wsTD +zNZ{uIdp<5<{{eCAT5^y1FlwLKy+u0DH;g#{p0hU(ep8gXGYTP^hMCj@*gL>3&Qm<3 +z>E{vajq3(IqKhNx*gQ$;gHD^@&yf8`%5X<|t`GglLhpIxp_H@Z_9*gx9>kqeW)uH| +zj+}5Ee~)c;dU-@HT|!H;&AV8pNBjNPb*?<lZ3mJSD*Ym3mSXK7j9apzrVR +zFr@Hc`>zlVZz99qLPJgBU +z{`WsXyFnS`uYH|*MqYpEQnh+wA$;v>Rs$ahX7p>PeU_6WQSWQ#^ekEVrpp6o=YRe8 +z86^I{zjo{W?IlSHn%+NV{X%E@(gUO8`=@VELPd3&0e9YCp@g-(T|+2^0tm_XeFeY% +zbU=OS>kx#d-+b8))h6kXd(#t4^LAFcu)lu*U`fn>=t7m7x3kil^mv_eUpuk#-~P;u +zi8$%|UlB8WyCP9t4gB*>$5oW*Yv09Zzjj?#^)Fq+D_QM-o#mjutho_Bf?8b +zI(_YSZZE05e;hG=0~WQb%-gqx)v9|lJ#Y+Pvf`WGKzjFiHopBLukAN|OK&f}n?LNO +z|LLY@@vr?4chrC4B5<*oI=&!KzV<)Mx4gfs+4Uc`@boePeCe6hWZv!;K$P1zmm<1) +zK{Wrb|2|jA**`n`d@pVwHm&3cqIP3|BZj8<$dir(?ebk +zp|AZp_W2L9cLoo?o4)X}*?;XpEwU^B|4sK*Ch2Y83%T`8C-H(mc0Tbg-t@RXoe1&6 +zo87GMr#jL;hwWOu=>pn09F@wv>DGOv^H@iPwHRM11D0?>Le(79+zVXL{W-XxFe>hl6MF+s)y#0dcJqywP +z`PUpV`@Xwm!T-5G2LyS3?K(N#u#&D`)IW*SRI1^6r=Jxp{(2oB=mqx=jr`C)miFzSTU_ +zS3Y+wS$$lYN$&;(Qb@b^hYx^FKj>{9e~=wyfBSX+0)HDG#r*!)ITb)m94+tqX!_M# +zrdXA#9__0L;M?9ft2f;Cf71!0%=~}-w;a^y_4-+nRn8^!-*2U%s(OYxyxp9YuHNp; +zN_R8|U-w1Dn2}$4yeoJW`pu6@@;bt>P$aVyn*TB+{rdYaV4PUUB!75TAga9WF(hiM +zw~K|kR`>Sos7#8*q5O5jR@T5%@}>jl;#FSiOD9$b087#zSYegI`*WT{l2S|)_GNbLWPi*tpdRy??;mW~!ZlG9_^t4hnz#Xx#Y`xEyNZ-G|o%4eh@4F8DK|0}Ckl|f#rH;DP#AuNz +zS0Y^A-S#Z#ex=5|8*#qFS9_LjW^dn%pt=(uv}~Fd|6`F)^C4Kd%e +zZw5igQrCxiD>D|~keN=917y&BnS_>BM4wP~`2A-&VJ}F?3UA*M;IZc>ee=~iH32%b +z`*@wyf3VSX+CAP1XdTYRLDhel1nLIX-TPhJ0k>VhlO8(%DuMlWrFKCT40hb|TmB-8 +zqT~yzFg4#w4Bgjm=TcHs}%)W`K=|4sU3 +zr$4DBqw>MLmm){v|8MU%8W&#)6rZ|my|t=JZ&{`_gL%8pY?<7b2mb9R#E>e#iZ^`j +zL?!D$8rs{ycgEdRr9E+ejzqF*|vDga99t(^dK@IM?UmkK<88HXQt?|1D4m{8iZUv0gUX;l39 +zpC;Dq0=f2Ur}@KcxT<}>gC<}AAvoyA_qPjlDl+H%eg#e_$@un=1=8LhtthjaP4_CE +z@TCuI&;V;=0W1^H~VEbmySF&Z{r2R&+6wpGOaiNN<9AB +zXDidaXC2bP^~RqKciSH%Gjz=_@5_6CZ74PN@QL1i1`>EBfbG{_;NG@YzdcKWM)2;( +z`#w|mFBA6Lenj`GcV^v?tD~}SS4Je=>CGzth@Jn61~%_5a{Q= +zN!1_km5Y+D@<&I=H4FD)jlO;v<9icI=>-VPyQLc^WA#QG@x7c~91tIW)OaHa9olaC +ztqm}``44(obn74H6?^-=(n>Oj)%9a`u{LjC#D^D{;8P7LPyI;^DYcQGApgyKMHFBw +zF}^oRluDFt{-dWHbtvu8hCc*rp;)AT7gH3ss(H_S;^y32*@`w)l>xAZFut#SPps)b +z{PIGge%tLy-A0Xv_gsbg|Lmbnr94lg-twyxLO;j18xFo6eHvKbKQ(On??XwR=KgD$ +zzOnf{hak!ug-B4m==})b2mbN))cuF(!Dsh?g6{u+`~UO`F1)fM-}FxJ87Lh1f0*nX +z)Bet24&Xm&%KhrV%X6u0@qW)26xs9#hj^Y%Q9|T4uA6zp_`Qt`SyPHsNOCOL>Ckg +z*RK*hLV9~tD*CE^Y`sb-QS^SZY(3DK-U`0kR?g2a-{(qsdH18zIlaAJ>AH$ueCm9t +z`Bahr%lq}ezI6I;uugsX(H|nw9>Ae_Z$5dLwr$jE-aN#A{oh~-jsLIz=l}Vy|MOq} +z_y4o~e|~-c-~ZqLLqa08Uyc8IA6WR~@1Ng({zd=(`2FoSoIO8&{`#2Qij?t+9@{&g +zJ;?t8R&NGYagQgwBGIk^S(`EH<;N%T4hQaSlv`e!20MUz3&FWO(z?0(%z|G4_E>WBHY{xN(}2pze;26vT!a2V6!&Ok1jn(N-JpI$^Y +zAEi`u$u<#G5k$?z!s$MUoqZG}YOYB0WeoLyAT8gzm;Cl=gbp9^tTtfpFMsu4-S2)b +z1D8Y>;6A>Y+toN=nrSby<|}gW>s!1=Jj>gB?rw`z^W!twOq1C^6Kx5?`b@=VPoLj> +zGU@AdAxR|Y8>NV|?0XbF_?909_2~1p@g`57FcZtc_JG?hx#L-t`ct=%60eT7{h--t +z?3amY+uE!2GC~NlRq2=hJYStc#kIuIQf`M;D(R1H3%{yc5g +z2E8;dd}Bd}R(w>r5-p+ms_)DrCZJs&rGifUeE(^pLmTS_cv#qahGDVF&}$@Jxkf!Z +z>d3R+Q4H?OGoH1(P;e$ZK^9Tp-G1gZ%KOJ9e_lis7%k<7Kfhrq^o3-<63=##BLKKQ +z)7+0w%cPWmMGSZM@$xf>zTigGbNsyQ3iC~fWUAR8 +zBzi5`d>*aG(dEgT@Oe8_+N#xYgg?_``rW?3(QagL-T3kI`_G?W`$&EN5>;^Zn`h6L +zXD}Vi5yWnLZT+{{%j2gqvzxA90;ZFD@rjD$v|3H_>wXRl +zd=2^W{qt|>$Z!+w{jaO0VBzS9$`WqU&)js;T}ox$y;j`mNTUGUk@6pd-n0$Jvv}60-}MOf +zqWP*WU*6SaLY=1q0%l0ovcy~(6H1Ap&o`$#e0qhNc>9VY+SPUT>gzV80rQu$rX0)_ +zP^xI6|LgzZpa=iIP4j=<2Q=z4lRW`UI8yRXcYmVZ*5^s((p>ir5uf*oj@XUQ9WFOQ +zJ-X4?avq3!F};IWs!BxH7J{)KOHfR +z+U9{6Q8NA+k9hSU&-U`kF|{SmPfr>P;PaQhnWRts|0C>5n&j4z^IgAV4l@cB*{iyB +znsC?`hwY2QH_M&?NsvSrNw5KuRjkpQ-#+;PTobJKE>blT+_2<^%rDdPwr0SVZsdOE +zvs_*Tjxtok-dZ7KYa|6gELqtbqID^j30XnbVRZ&{BcTf={aCAFDJr;jsAff+y$&q^ +z**U-nc7bkCPF8C(;iGIQt;+^p +zB**45+-y5$y{P;#4|s*qC^pS|oE3@{aIQc)-&pj9eV%-Ne(ken_@0^K?LB#8RGOSj +z!mj1*c7!OJERy~AOXMMR8RDndRYg6rjV{6aU0VN)g|;DeIT?Fh$?t-qCWf@J6uKrY +zNWRY`5KTJ0UvIK*;co2g3}U`g0K|v@^&~>zh22n$INy-boM+ocL$bp1+uIT@XSFdE +zWxurreLllNyQT)^58-TPFMrh=$MB}ra#IPqv#)OHP-uxEHLlt;zcv?@m6rwRcWtM! +zZ@L+~b8SYRJ962rRWqu~hS-n>t(&n9xLdAZ;Pq*!T +zo{u!s=O!?^0ZRYDn|cHMO?Pe%{>fjlEfBMJ2}Z)8vZtuq6L9mZ(ID!3t9<9qlYpZf +z!>{a9ngL78tu2WkDG_y>Y0i6JpB~?yDjR-xZ;ZaQsCwZFeTN!x-rsJc!}}xs6rq2C +zf}4+Zbzw`RcoI1`(a2;!c~JojQYIycNDsIKZWM%8mJS)dnbS}fl4@F4f}4qzqJl@| +z%m&J}YR&Xkk36_IHrOTl2^v}O9ol=eg6;^c-y@@JX|g$iiKpdh3b5xLMweZ^e?8ji +z?Rd(e`?&L#4WZGZEraf@VtPr@6PJdYbtw$Ll7{r2##ss&*`_2bFjD}B;bcYc>dHv( +z$G)VALhaxVB|w6UdfL~Qp0^GtaAQlRYLuz*mC@2YpDUqyqAU$_9r^ZZJONFI>?+Rs +zVPlo3)RO2cpScp@y{ak0R>kEy8e7hJkjcK*emyiJ&}E`i&p+xC>SM$ZX{D2%akdrX +z{3X4lZa#?huuB?K)G2Gz#b=%Iwkorv=vr=V(uPNIlxp+=om?+3wX67xqU|H`m%b?y +zx>MNeVzJeojTP+S(%PqM*u?K)yP%h^yKK|GLcoHg?;p7mH}&btZs_P`8-CZ348N?9 +zKtCrHqxDWJ-UpVw=$K`V`X+#cZ#3V>s4F|JwVc=X875b%X3^nOnrpH>0yWl0D9?ah +zd(!sm79zZve5o&q+&!8BG@JvGshpdw)FSZ3 +z!SjXy7t$kB)mEs?1~)e!k!C`8%E)-Bp4_IA_4bchBQVUd4_#p*nmn77m6QDcauo0Q|m{>ajmaNhW!cCcVk{2-OnuSB<>2mdL2Iz6Rx{-J)i-^dNWn +z81A83Wi%T#%o}YoQB7D6+k2DUC|Z|{!U^5jNSX0B)Cs`#=R;A`Z%L$#-L&EtAcVZ& +zjXKk3uB?0Tb!!2+7>q2^fr|Ws)wXHvvz%5MXU;VWtP$U?29%s3Q%r>dpdNvS#Es^9 +zOdP)Ege|ve2O4gp3_57Z-~2E?Ga(}M_Zg{--#Go^W5YQ(HIUk +z!B8OK-AOY*T2ZrP&mbDn(iG9Y2m~~-Q)@Rd8EZT3dfIZ{1PIlMhIoGU(RVcp*94x{ +zCcS;|_s=d+G=OW#-c2f3OGLW@Au`;6jXQc4v^nJz9eFhd}YbOw^C>+>@ab>yrw- +z&yEz0z%!r|Xz~JZr>Lz{se~A87bvtk?P$S?CP%JdtJ#*&q<$mJvf6(Hln9z7UuJ+- +z#Ql}#y>URQZ94kooqxj7?rUW_CsBYC5G3&@k~2MhKHENJ8wDqra$ +zB{9TE*Ce@JKl5hb?YYJ>_E`8!b1SMA+b<`pq_;NEZQN;6qRtY5Np%>afunM;8B2Q~ +z)q3GR=}mCh;JZypgTOeoj$^V;Qj%Ko*(<-91S%LeDR(Ni^5aHIcYnTWPSB)7Bc#dh +zj-XnJn14uY=?fU{u7O>EdNw^XGTX8zB`Ij7k)Tf`ZrfYMNi?*TRX0+!_$yaJ5v%8d +z20kP*NzU)@;whxq4Cu9N;_3g%1LM+1_Yp7d|1FtaYML_HkBqjZZAp#F_;hLO4UM$Y +zEmuWb-C0po{azhxQDDBW;U{6;CugFo#D!ttgG0kfHiL4-J(n2NEfpaSK3pNixaUE{ +zlPllS>6Z2|t*-syA5t_t+Y{BMINFw8yTj;I75w1LCvc$bvdhL?3M6hjAT!x%y&A`0 +zq76E9nrAa*c;6%;3x?Y_Mq!jg(8BTMnpj~Hjg>Tum`@_5my3RZEMX~Kd0_kPHqRFE1 +zG5BnoQ9Ekt!FOg*{HeJFM}>&dATx3Z&gFoQ)=A=neZ`#tu*_+#(_CtPWI6@;sJhmf +z6Uei%#ho6ciHH%n7+mlX0k$#@Ly@;aMgc**4lmDVgRWN&lKEs;iV!=oZaCZ(`Kif|ibr>DChK)N#!YJCAJsJBh +z2LU3`L;J9&Xgk&uF7>X_^e7#~M_CUI^En#Z&N*?cZ(k#AnsztWIjqQC6iw#}zHAbS +z)(&S$iYLlBHfhOeM&xbQ^H$Q$TL@DU;_O8{v_h70^9xovN+8z!D``^~1u}DJ1=8#D +zmn&W26;k`#xz5&xmfU2}MpB<-bD@AHVCxmHckMxJ+qxRKq+q19LU{*Yvx@AXFtWo| +zG*0l|)2ela4f)4Zs>abeACyWtrC~~(5P@8>mA+gq`?GNZkV3~>$tvmHtk~(Wk?xeB{uk?b!TvJx6A3=39gRiBy%_fPc^#NK +z-4U08ras4y?CndJH8iNeS>2_#+pW5^TxaPdipmvPpERz_!XXuSAsR>HvTkwA%sbUB +zj`UpsWhS`QNF0;%Sa?j~S_ks;g-0cKC6tgxnDOLtk&Mq0+K^oY6L6=4(-!!INP2D46a!O;7V(63` +zSB@?mQ$_I2k>SKdr|)0`(ba=ElC#l5y>-47*fn-9-y!uR!~H_cUr +z!@{69o{2)?9e*yOgTSOUPjk4G$|C#7(r3EmJ5?;=z38nCU(!KA(koKwy5&H5NfefLqwe+R+Y;%ma +zKI5OHhtT`B*6m?lzJm%umg~_)!_y&#gls +zrN`A8o^w@&Io!ni#CF%sl+tM@o3)t=C;hw+|u-kpg@FhIiMsc2+;pRPgx|x%!$l@@-Q(Edh1z&3c@TdA +z^1|Ee%j?6B?{5*Yr-&HF+uK|SUYr*68dE1#bg`~AiyUUc&bjW}Q2~tDf9x^&Vpp4~ +z?CL7skr&+38E0u~|Md^&f1LjEmt3sQ)(4PfIYeBnJ4zl^WBg%b>EaeX?5+_?-pR$J +z0?A;Z!iYth-#i+DqP6sx!d$~1)+vyHEj!v*pj$ESDw(=Ad?v9`VYaQKC})enkB@H` +z@Fm+uZMC{DzA_9=DjBdaE@@D|xJ>ydneY(jZgcQ_M9av?GrfmXDtw_1G5eIKnRtAD +ze!J3I|K)zTUno)R0Zi58)TWJ|Wn<-FiNK4NRIXOdjFR-6Yu`Hb270?+swhq_HQCY5 +zrbmtlj>C-q9ulc!UL;aSwftqDGOv@R%g=0WRd)H=RLf6#&k04$-9d}?iOl&(r0ef= +z`}?~7w&nVpZqt#aMK6Z(lh>n$VQ#2}W9+~DXP#cKE745vV;|s!G=|blg*RPC7}iE5e`_5_`_KtJDX;&E +zz9n3x5N +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 +z&3ctZe%{BR3KpXpmfr8@O{I2 +zrtyk%m9Gof|2;{j#!sqnVc`56ZAdp^!cxIKO0~g$l4cFM6r4WQ^e8ur1 +zg8tZ=6x<}wblr<>88YqUg6+7er!g>gB-*-$?Vh^3F5Xi@Cz%=IArynp_Cr0g?K(8ARjn8 +zWWMdMKw@bWNQ+GJBHus4#D9&-G0mcRlr1V-YTzCg?DFjilDYzLOpP@gtY=^=H5oeo +zjQ*(b7(E==$CSEyp4RdwY8!0r&W_*d@!n2>Q1(ONt7f7OOG+Bh`OZ2Aq>GXdJdD3)p +zx#Fm5x{xb`%YLwS<%}Hc>mhnII$YsLl-8GbwXvaKz47Ol=noQN0&Pu>1(#Uml2sQi +zX+m5-N5B|1bw~_A(D%o8?w#10PS-RH%jQC12k#n$cP&7Zo^^En{2>%*G6|MP{EXZ; +z;auJ`8^{$xV(55}&UNoEq14Q?SDWhSgy9Fq;}rx31T^UmeF(If%Sl`HBkBn@Q1)kp +zj`lpv>#zr^Z#dC6TaVc0F>*8a64GMXT3r+l6R%*FP76>F{QvO}|3NY{EkDz2C09 +zE3X6E%*SLK4Lh4)>R-;^fBT5(XjYS?&80c{9Q^+<9XC-LKbBF_I?*LYd6l83s{3*X +zH_B9Nrp5+!U!v9+5h?Y32J&vR+COUk%@)u^`r*VxnO2o&0uY(&Ro~jQLZ&qPb%F|E +zY0YzPC;=94dhQ-ZJ|%ghcH5@PH&_xQL3-$SgGrrl0*M4-x+V0Su5KPLY_J`blf1Ldzr?h30jXwy_)>+FN@0s|LKcJZ<1Tszjt(#ZZlcvoKkQ&n@-sH +zZqsNgB6fPu!EO&Rhi~@So7UgHeGX0cZ2An7y3I3@bLyWqtGD+%SI_(2RUBs!dB1~q +z(DT>${KX&L^m4HF9|yzB&j(sxkILosXgFSvpLF!u9V+i%BfEc1 +z&tKv>0P(!Du)+8?WAk}FRo7L-(oCZXI5^{NrRF8jPnPZP{{JxxBg<s<=Af-!0DS +zuXR}Fae9?Im9Ja*B&==Ay(@9<+q@#? +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 +ziGa|S!Du^NneWOn4Vy9LAzM|}j*Hjg +z^!|JG{SWi;>^*V-6r1Awd^kVT>Yf!F`Wv60PxL1{KmYji=`~m_dvtyB9cuOHU;p*Y +zgDq~6?%eLv?TPMA)`m0m5k-5SLEdV&e6Zg>7?q#$;X8=BE?~9({KNF8ev^l3glr(l +zjYM}lQpwjiMJ`ow_L1EL=?v*t&$N8Yqt_(Tt2#%Jo6jjNCjdJ~q<4vnG@sGn2%I(! +z5;7EYFWl@foj%qo>|M +zRWT`0;N4Y5N$o3h-c{R^BOLTIbRRo3l)!Y_(k|<}Cit2b)b?l&3{-xEW!a49H83uC +z>J5Ed9MtG0NihIe<@Scitd&$wZ@kDOQ6})Q`@_H$?*4&zSGp08A6igRR3H~vnAk+_ +zXC(TiVX(*g=XIpZFoB;)?P~!pJZ}_~I#?Kp8Pj$Tj0u)K#t%}R>l(+*)D?H+(^jf2 +z*+r#dU+!kh2a`#Ctdm+y5hQdKa&UjH{Sssc3aFI`f=!fiuICb&w2VoH>gD{B?+=76 +zlSY;nAm`L0#WOlULKKn<7crgZB+FkyR<*9bLD1|;me?3F{ii6+n`ozzxJ*1c&VNej +z?Z6@alqGccwq@kpu#Xd(9!}6*?`YBJykJKiCd|+R@Mim~zO3;J&SgDH^p-fM%00<8YpQFF9Jpn;x3WCRI!RO?t%ww9 +z(K02OG=~ao63L)E5+83;ERrm#OltZ;!ipqsNM%Tm*BjWT>&ZsHHWi&-#^vIAQV67} +zw*H7b_cze^dL0K7cG(kJ#;!XfSG%xlHy;nD;huv^1_=&0o3O#u#EJ^Ufr0TnJC3v$ +zxPj_qq3`J9cen8cb$J!m5+;{6718w{>lbBg*;C@+Q&kkxOP)*|sM;HOX|nRZ|6w-1 +z|Ks_?1WB^uuQy0gH +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 +zHlv&Hd=BIH2GpKwzkxI7+B +za*aLECIL9JZH%=3Ge1@N_OreV&wNfqTR5PR$KWaJ1Rvg0yaz;nQHI3&Ne%mxv6hAT +z%ZpemFJN{~M7?F_B>D=DK~ile>9G%0FpPu|FT<-KJFT^+8?oO3wi)8mtaTSL#BhiW +zy}dQsF%ElQ2=K~=abRBO*?q>`kJUDt6@yHVbc}ar{ka2r3vgzGdfDfkg&nNh9`hoZeO9!9~-?Y +zJh!FBXflT>5_k%XG@d+*xpxuT*@jK^D5G7S%V{9B`@8-%F#E*R0p8`irkz+ps6h@3?0^E!#oh>NOrYv632pNXR!YJ^FhD`H=} +zx&~TU@%gmBvF|J(2E%a87oJ7%VpC-Y;|shgQK>`nx`y;Mse`sKznjllJaaYRElalE +zwRIex*ZEcEl%-eD!ft`*m|MzrdILLW-dK>1QlFPX)7I +z(^oKf9HDe*JR;*i>2 +zyyoz?7UwFt-kWQyMfw)8z)#jessJj_pR;ag*;_LW|DuUwdo)1<ar069qzmBYKyQj|i$B9h3_UQKB4w|Bv&xpy67`Q_%;C22m-g!FFG}%5$m#7nW=5m6n*R(dWjc4v;ue0 +zrTO-_gCTVV5w0K-++m{qh?3Y$0c%HbN$bz7nK(Vtb_r}iSPLO%fybD@wCXx>sV>A# +zEl@UH-rdKWv*qWM~O)u}w0a7%^jr +zzBiC}TzTF$GrATRksm^4MBYV$m@GhWw@BPO3mQM1fIIiVbgoKH+g*UOD?#Yn?wE~0 +zPRLTLtK)`gJ^Y-qxd9&dAXXAw`b1|W%B6=Z$k%*VKDFf{ +zM|is*;*>ZNV<%}Eaj7#}qZ3GQLqYIUFbd1&uYp(CGxJz{sY%}8VA2$bH089R5>ejr +zP1@teR#dy3NRb`rMT +zH73;+SO&HQjt#Q~yjkC{#5!cZMhO2k^V92yLPUAjNv+aO&8{PW-#_-dvslrGBPtb1 +zc@^zI3qQ7+w=cTtLnADQ@VA(k9o9pQj` +zd(=c%+2$c=MV*krOZ+0|qaU`{!f$M`7WhWEWr%FduKlJUbiR$Z!|?(AIdf=#tN4iN +z701=)OFA(C0_)6bIqN4;i--A^Qu8{H&|3;md!IK^d`uy4ZYV`oce<$|y`>FV7#=Pp +zB%!Gq#w9OC+`M5y08%%mm*91r9TLci@^63u#M;xVusfXU!5GFGPO)UKOQR(X6*H3V +zBH9A<1f1JONMjL|S{qf(xXqBxrbtdmD^{>B@pW!OjpihBSw&5=5w{DMV=+W;0OVBl +z5G|)b3J3Wqu5tuX7SKWv_y18SI)81{922N%)l0d6esK*KwXK1G*H=M_&JK0bL51wL +zPF-c(Jlcv@$?k)&8YStGXW)=~9(NQ@>?Kb^z*>l%Bpl%Fv@+pQcX)v-khJBli|#eY +zp)#f8U3Cks=V*q7zWG=i-42%|1U9~jXRQr6!f`%bh;Q&bj;F5Ta5%UM&eXZIvch_;1 +z==b77`+K(SP8sRGMsBu|$rR>Q(V?a07HnObxZ3pum`F_DBOTlHcH9W{!)j>U?vlW{ +z)Nn;^{O(ahUF4v9T59?P&j*a5cYhZ%D!)q0BoEBtdhTx}=NJu0ba0?LQ!Nhq`H|B< +z^4BR-V{_iUn?h}6I2ChH@3J$HkOxExPEgVP@{9VImIO)k(uyA@YeYBWD4E++RXp5r +zL#cMUjv_HXOl#FvTGMV2T-E`V0ZOy4EX;@BXc{qb78lkH)amEU{njkyCM7l69m85z-c>jPTi}IM$ +zoS83KEbbSNzIuOm_b6{jqq9xiuvahJm(!la6i%1m(pfS-M+R*{ybCVc>aE=k7i|w2 +zOfQm)y4a~CwT>2&C64ygrp}NokBtE$6p#*Rl7Vq}Ly4P9uz;kNK^RGRBq=6WObX0% +zN%xZ#gne7f_7ef@S?xsSn{swjZa`0)%S6}1Dpns&_7GxUu}Qn3D$Z}Did==-?Q^Lr +zqTCpo={28^_3?DtX66=gR1-sFAOcy7SSz&dbY{{%xNJ?Vl!q=@;SYUEuvQh5V|1={ +zAuD6Cd~Y5@+dRF`)7VH)86i<-*?k +zqA^a(xq-8xv1pUwae_u1y_hA<>6`Zc9)eZMS&Txw3?E-%s>*0PH77MHG1eN;$SDc% +zEs#@m2wbOFe1$oE%X25EQm>^-6PFZhKy3}l^SXl%dyD5kUd{fhp{&8UG%YAO!F +z!-N?%(QK@dhxy~vok_kyKdJ1V3Q`rwIg`EHAwL{AJ4n&})MtIHcsUStWsIz6Q-6F6 +zgNs$MRdJZ^kNf56q6wa(a*TJtTJy|Q^s1|73DL$gFO?-}Y$wTA?iZa}_{sRLdP^d{ +zOMOOsNm2oGP!ce4_z~DllC&4_Rs73bHS0|c$fY%})lQ-oGpO4+lgK=;l4Wu6Ww}0? +zJVlV{UhC9xpnbY3Jt*0gDsG6; +zJg-*Ec}aTW7^(EY`BO<1ws#a-=$G0g(q)R?O)iTL&+!@J6?FLO@_9ocoDt#egE;E=$`9xFzMFZ +zTNr4>=_X;XWt$1AadhyYHu=j&rIJaisj8zxkD11e4<|iU%M#YHlIX9HHl5=HhA^%5 +z*L9i7o0L^O={%g18W}2A1i>lar@2Yo8y$pSN70l>6)j5hg2M(7vZ}e#U@MvMmWdc3 +zre#d%sed2b1;P9&jNh9@(Bb4$b^4D@<=0hn;v7QAnwlRai*ab*Ln;kO +z4RJKCIuf1mjZ7Q!XS3iS$(5(6)YoKiCod-&uB*?t&_V5U}++NtgD?Q}ez6JG`JP`~4n+)8rZt^;%+d +zSd$LF6B2g62>gd|_IRh3OQI*dYo0>{qlRS*HDi=?a8E5o6 +zm|Ueni?Ielk)xgaxy}wU1()|W^)x)a>cgSh5F_pG;&{adU3t%L`}I#b=K7db(eh&W +zNFB91><_OXigvo$pRAPypajm6Q%TJGbsv7ZtDc4o;VJ^^_dhIc5S?63I`~6>y5i;Q +zhgEhEBR8o=A)K_i0Pe-_%cWMTBRTG**PSbA*R|EA&q?mS6BqB_zjxR6m(?c9R2ngu +z-nq8oJMUZ(h2S?Uu$6Y-_6$+GXHiPdJKGAI0O@XgE8rkqfua*6y2QtE+0xm*T}(wuW3_+Nn_&px|$a03pflX`6UR>ar0u#7I7n= +z&>iDQ?T(%_Z!pF?7O$A)aV12jleA~7{xHxPig^-5Za|0QPp^{|uGDh+map?w>aKLH +zYh}*kPgb +zx9iftUUE{2nzs_4KKF#4zcpU)a_a`YvuILXyUAB+u~DtFRo6y>fD5Dmdo=6n*#5{F +zL(aYmpY^jj^QTSA+J_htAp!H@hY`PrMvlJ80$_#PEOKa|DsEpg@^yZc*B}MhoD)R{ +zZDzK&fK|chu%^K&#}{g^_=M9FP+dnGeV*v&X+v*Qm|o*n^1xdsfsp-*r2r8 +z9u}QWe)dA+<;G$2;x6sBU<#G-nF&Dd_>NmxXxyw3YxNUl-WEf6B>B6pW4Bjv2A%@V3~*)9d*as`bUpZL*wOQTNA43146 +zwPl`NDe~NuRO@cC>(X8*PFfhw0Y*Z(;*f5>+PqjFATAybo?TWLN?6|_#5&cs*?58Q +zfKgHB9Zuv}ISL0Jn3M0`#9UtU7Bj{u8z9fXsjb^F{T-H%e!-p +zeD}D1bfowZiR|SfF3-*`a(+#C!8g47*>w8ui`%h8u`Zjen$R02DrL|&k!9^Ny!N8) +zo4qPJwI)hPujU^N)s)*{3a6(wfVxop`BBm8zhNB*4Iko&!?SB4Wqf+~+PztL0 +z?e<9Xj1W%mOTX~GjpF*%4!;4&!-%vkj}r#h#vVx>f2YeL3iSx+4^XBf+wfmWNQK$# +zX3KKa0g0yS51$EAvk2v*ZaQ0PU9J3exWX|e-_T?Bi(iiW!?3FIrtr!-Ja}oiE@va_ +z+f8lCTg>mg_jjX+Sc0ld932{#_rd*QF&nW7#}|Ve>Q(3o;=K1-+x(Tb#b^nM4tp34 +ze&7Y9Tx6L7?0gbUno3CmE%VDD^XSL5T6?M5^BLzVjEfafhAk;yD^+e4Nq*U1euowD +zWYYWiJbhFZb&SXX{654y3x>F=00%K?wp{O3#8YWq(OA6IWBz83#hX2rBLP~#0vKnt +zifYB=ew+gnKHpYH-toK!28p!CI2v0=s*_@lsz@^}i85#$!yXygi5mb8K)(%*1N0bX +z@=a0{+Lg-495>q`4rimm6S;Oi%CyF@YNEOPHNF0*B7#u)O?j+3dBW|-{+9N!7t78K +zf0cigHZ&K+JVQ}pxX*tkUnV2ssKi!v=+?OkSE`OzPY-t^m8KqzQLVL5yD_XbmGVpD +zOEhLxp5_@)_(~3j$J=C|_=!XiP4d&2_Fi6>TDM=bTBq7q=?VcT`&F)XG%2G9SW(r+ +zQZDXD^EhJpE7`g_P2{a00xYOXUbZF0Mizt+7iQOr%ET)MJ2s+RwM^eG{yx9ikeR~kDYIMX_C{@h-G6^h5`my +zH`xN{CL}LKB`xL9V+5Tx%% +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 +zP*ySWVujD0I@}W<>}|AYYgs>@b2^P1C!33p +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 +zzJOGcJD*{0-21k1`Rjl0;hP3}sWhqwW7|{l +z+t{yg%j_4_9DdrqkEv2M73Jo87f4q1F`4`8nx!VxF<%8M%*SFwL@+V@A1si +z?{Z>>9nrjQwUo4?$9vQ&F8nJ7~HjHQE%A73t0*@eBswbA+6dLSn$2 +z4`&9TrEGO}3bl?&6G^{P&dE7VtF^E##G!$KwDQ)#7!YS`Wp*)40gh(FWSTW5)6sMg +zu0LH7WdgWik(i_85YaDyWR;jy=~BYH#jIWum*{5K(lgURJivSp5vSd_>iJ!GP8JY$U$L2sSzx}w-|NZ@kE2GdOxEo}IZ>9ya)X%3IQYGHl4rNNvglLW*)H;-6{I|Cdr +zFrpnWsLo%|sBx<#@F6gv;;ZN&0?vU-VLm$5uA-8rdGH^;GE@KADYeM4lfT`86 +z7y@sKmG%(gJYYZ6^NF&5TMbvc5&$jqnfR7LJ(Fa`5iGGF=!Gx|M4*O^_3G|g>ei@> +z&Ee(=)t5=j9);GH)>s>WhYrE}5=-vVfaPO@AYML}$!n^m${MTE1>?pTHg1NlLgd`D +zgI>GyEf~7bqt0;u!Rh(EkJ9Yy>|}EB5cwLkb0n=o1!QE5EL^I>+GF8Dh7;R4E>u8x +zsv1MdB0z^2FZQ_X(llx9;vt#89C*_}Hz+Pb)SpPdT!faJBomf$TD7g@1dW_1$E3(2 +z8`5T>@96?|p{#{_UZ{)GYwgGCVBaB}^jP*GMcGc7RJA>d>KW7j(}lOeVcP9hDK0D@VSh +zpn>TF#xx%$k{p2xa^cmw1}u{LWA;qB2HWn9~O6IQEk|)XfWweO0U=d)UABN +zf$f~D;+kiTf0N)e2zi<&CRo7(F6&!wN!DtY!%0DUv~o0HPq&XtpA$vm;dX~Km(AJzhde5dgrnejo +zR(wM9)m3OXm=fx1`e#w)D@(}G4#faGpe@(>-=L;VVoVBf#EyexIF5najf)9NnX-!W~NtuyTzpf1kXI0Imn +z!nkU{EM_UkApCxc2)vy&5OvW?d*1vTg@n^k)NSYuMvHT^99(6ZHvMw63pP7YwI#Bq +z#;mytkrXB!E?6Nfh~ysy`J3VZ%8ZF0)HrjSF<`izV%ac>j*w>6*i2}{wrkh( +zGAc!b+7W-so5bI9<&Ba8al< +zt?$8IA+}zxFeUzqmTAJ!I3%LwS?WEBda+KTxQ-+*gZxf%1NSVK +zILA0cvaw!BVUp{l@6X8Q-ZiLyPOO=YWJ4)rJAYt(c#?f~pG{XT#cC_RMU7;C+iBu! +z=gA^hRlab~SXMOeB!KxdwCo@P>jlX+u~+C#J8M&{CTj0f=4vpRc>-mNRa$Zht+l4E +zXdL}K0tUg_(ad$%_Kzn5A0yQP6NA3A=pVysAQu2FMV%z^;0uQFp%vcGH&JjLM&30q +zCiNOBP;dhG{F;@~FCuI#up7OQ9x`zGc!C^B!QN8}qv?Gq-k0C~28z=-aMsT?fDC$oon}%NHgt5NBd_(GC2l*9>#I(Nj%Q1|6a$iEh@aBlsTl9r}Cr(Bk>1QY|!8 +zk!%pQ&5KFh`l#XT-oTYr!*H-MfYhRqs}^AfM=7J@_koCEScCLM$4#%W@)`tiqsbMW +zWX*)*6L{I~cNFw6V}am|d}z;-7X8`1iU_u7*oVhP#M)zkf!IkTF5?KsA9`r-nv4sx +zAK2X5n_e5I$&1)f4!0K$ykU+Ff?`+GDP?_#t7rhDYgCkgH8cq)rWJ1r)h-GM9Nop({B{_ZQ2 +z!M?*ii-69&B4G5GNds&YW&9br)_`pL!AV(ERxZM1$(sBu*c>b`soV$2ovAD!b`F8C +z0PZGXm)$2?lRRe1>}9g+!B(LNNtAaW3g9L&4(?RyO3C4##70PEPnBw;eKo_VHM0EY2|zJi^rk#1W=kl0O!Dt?@f@8fnY$;0L@ZaL4!CbNZkWfE#z>+ +zfB8UPX4*LOvuxm9mnvUJmdy=bDQ)BoIe84|UMraVJj}-G2XWwVCTX`kSHv?_&VnWO +z8(7ZhM^s& +zO8|6w0AET08`Vh-6Dz|0B)G)+Ba8nY$#ao$Gtt(DQ@@pWX;ykB!q_YbqeQ9}J+nq) +zF|ZB?iwVPwvag6h!T1kv>sD`1o4jE8cDQ|ZQar^~4 +z_eS1IXMAQBK;*agvfU;K28KasWqQ(rCTpGwCa|Z6fCIUW1qqz=x^T1TcX=Sdd86=F +zb@dBh`uq0eYt>* +z8+IS3m1p#OowdXh5dW|mXz3bAhl7aj@U>T-ES5kWVpzCGvjSnPNNP{VNKL12(`;v{GTO-ryFPkkgZsQ#me$v!a)QE=q`} +zESaz}5RNd#5KSRUOdrJPFtZhGaIKf=BFtEkLF}|BXrc53*Hh)aH85-=8z{=hg$fq= +z&IO~X3}S8{cft@MM$LnGyP|Sj9x*K#B=Kk_%nJrj4S3yw^0O)-FeQ!e=xKD9px~ZY +zTsN>*AYj+zo)j8Iypc6ONcdAug4=4KpQTp$x~(L^($s^hiW3LAYzSUM^O%s_OcQI0 +zx{`L=Y}rjyCJ4ZpkY9{c!);O`OKG*~$DAU6VKhy34ID@#{USD#);aNRJtWu^IZLuW +ztIKki)ieSmY%#6{p_?`0xxFhWX&}T9>ue!NjO&}I(EF3YIdf#XQAutk>t2_m>fQ!7 +zyR4^|?v51_ih=NGn*}5y-kv{Z|FTZtc8kl;wqQ&SeRIg-OBUH(d$E*4|1T|wE3bUW +ziJVTTRkADHn-@jZ)W%P*3Qcs3k-!J>F`7=}sSEREt*S`F)-T8@TWJck@BQN{I>f_5 +zBp&LJsf%50fEF%Z +zCA0>Bz^xUB^@hZe?d}Q?DvqgMD4V@bU^oEUR9DuPA&w;$&;+w${6Cp{G;U?QM5RTM +z!QR}J>~!M))?EVgYBT)R{4Ip@8cxF#owxTy72DMCjO()#C +zx%*x_DwKNPEyDoVuy@9U7KZ-32{~?K+WoQ%c0Jcq#@I*&&R_k>Xn`OoODIT`< +z@nSdn^lVrQ|86iZPb`N+GdS6s=f1t~HG@N>MzoRxe6Z*|#+4=JWL@Ii{TtYGxK)LJ18F{G>z4F3px$xh)8>LIb)6iPMI0US-3%93iQZ(%L)8O +zJ&|;eCD98P*_wjs2BsoyG0z*u_^dc)ruR|ld9k|7oq4Aq>ewVkkIsQ`IMiqK!X(V8 +zKIIrA>Uv?eptQPcTJcPlP$Kl33`VafO*<@@)8~hAYXUZ4@U}Yfp_Dn-g5+K@vO>uC +zBQ*PN4C8DyaQS9fW=BVO9{dvSXF=aJnIIHsfVhl08bc^zpNIeUv&C8xFG~+CHg(%0 +zCHe!WP{7Y-y4Yp9_N%%CfPvQGeDKa`usFg0PiVyn>GT{vs1_W1a7I)k%&p6zt5g#( +zyAdegd2GbIFlA%Ez&7AIOJAwBy}UcJn!v@$p<}6h1!Xa`fx +zb+MWVKzOnmloS8Q)FOx%B#5ZWr3N+ioYPIWV_zb!oWm#EdfMAU9h^@jku%gZvn-a1 +zE$i1j!IW0VWG`QyJ!eNr^k!i>I7`^_lsz@99cMaR=bb^gsX&WjTjGI*^AtAfh4fL}XIW2nUo&q*!ZY-h_x*WpA&F(GA` +z!ib66kS0a}d{r!n{efFVz?{0|LNyC{HoSHIb=PWB5q)HMIqY^3a+R8Isxeod}H9+|93Ok<>C($vPNG1bl +z8`LV|L3Tr}NDL3;frd9ywbvw0)(l8u{n5CApw%7J22Ph*8}$w8ObpEVRnnLkNXOQO +zhB<^a*XsJY{A!RQz(RCd)MFAei+SCpwA$wKrT3t)XA=BRuXj3OKtxY7(E3+s3h%QC +zo3ApLh6BH`T(|D3R&|p}um@k0q@ip$yEyzZwo<@b$}2^odox6l(~Mc%N6{Y5TSa>b +zOrAmRHki1Gr0-!HX-oCUYWrzOxOW{a=`gnNa}H6GXp#j+7(pIGbC5Y$f0bD +z@i4L+Yi7ln=&>j$aka# +zZqi%wWwMQFcWq7dW!G2~4@uDGSl|T~ActiZJLAzo6j2DFToJXg`x#*VHOFFPY#C~e +zb9>3wuds1A|n&uB@ozjIkzC5MVR|TRO2#!1;pftcgZX +zj3*d%6&r6SMs#KG4@(^?DCZ>xn{^@ZmEY}E2B(t|f#&M0yn?qApg$cc?3~Iys`8+S +zgVQtEwLpI-O{EP@GpCHSxR{KB21hXyexTsNxImk~ax#vf;5uUI9P@K1PJ774MK&#{ +zM9aAB3~6OQB$HjyKlXH2?#fi|8cHd3!I@y=$+C0UEaJG5@{xK3X!= +zzQggRUw`S2an?7d@QZieCC;P>yPZ|TdxG>KG1;DgvMAw(yVAsAug{=_4|iS*N&Uh) +zCBb^*D3jY#DY)C%PG{k$yZ!!WQGNj}uVYt~f6BuF-n9#EYAZJ=oYvohy= +z(1*Tbt$6J2u6`?&AEwdxiSZy`(!(Q6fSh1RpnHtT& +zYaHVf2YG6a6(0*aey!8Lq$Z%y&J790zwp_wK6yG})<(}RI13G9b9e=%_)MX-A|_FC +zs{6jmT(hn;Zv^D!VY>)OmmF-U4<9@{PgZ3dKRi9t@m0WqTjB^Jxw=e0K)W1!1u!y| +z+hH*=m%y^{)8fpy&>GW;Q>>dj-O1mAX*LBrj1F<@g!exDnNKBuc6zd(kwG~l#N +zbSkW7J3v2+{OMmK5zb7M>Vc>&=Oz~zt1ZUKo~bE=wac609patVNLt|ScXl4ASoboo +z&pt{k_O;-B?o?oL1~#w>Or)HrLLkaWBC*+J$ap?3@Y=eFE>u;;94Su_9}QCpyI~-p +z|5=UT&&fgm14$PR@pUYwPh2?_RIH8KY*=RIO};1z1R6wvBMC_?;wCy?EU-t#P+}4# +znfsB8IRNek`@bD-BJzZ2_ORo?M>tp>wfr +zFWbujSx(++-gx@f$mxYxrSi?B>|W^*9wT9NP%E=%i*1v$gKyOY=2vjOxSu?XiPK2#@E?Dh)Wr`~#7Vgc-hAsThm_>W +zHp)o^TPI=(5u|YAhz;|fd!a2-vrp=5i(pT8vwZb{_5HxyNJ#K8m5aB&@XNpac+#%h +zhK<0|&w@$)9zOmeI!o@|fA|o(-NO3GpuA6F)_d?hqmgHiTLSUTJXHJ;=hCBg4lX5-f6^)UOfl){!SMB)l63w+etARL~0>U9-YZCZBlSUS| +zh_W5-RZG=sj^*)y6AnACxclrUN)wurs_6!mkK?mR9lG_xWpvyV1DL{_(R!CJT7wQk +zvb#bCCx-$o-!9kYT-GtynLOSY=$y&M;vPOSbUSO#!FytUaf +zcyxkT3RU#U3KorMHR&)g5rXSXMVaTO9YXr7!cLS%D4K<(hm}t!LF%~yJJ&CR@5boq +z4%Tj*LIdZ9wJ8pL9IiHUZ7r+pqQ@p`cOo8Ab*i1`2U=bYLW1}5bzI^jN!VR7gm+{r +z0S2RYH-P%nvDWb5svAvLgbaIWa=gQC5Rt@i_c`g9V-O~q+<&8mYG+|v@#ue@}J!CN9Y +zdz3F85ocB&oqYy6mSuks@Qtuo2MjT0^iCv7Z3Cd__Q`B#Dda9XC7`KQx{q|L+RAFX +z(JGG8z!``=I1|(XgGJ?EGWKyK4V74VRg@{m(~tS!lpkQC+(c2O%R8HL8!yx +zf#0j<>l_Szv5%=OkmZzuZw`Xjf +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 +zwhu}2CL%htFyqscvwQL#i6dpTy?ANL0vmUv +z%~u->cYRZd%mRzhDI!9yQtNOx@pad?YEt+0gy} +zfCZw@>23eI4B&yW#=H4P$v7^;?ov*aci +z0$(rkD!i(yz9~e{GlS|w%Z9NVh}EzACTz6|jN09~UW<<7w$?^Ylc<#)POVn{dW$uw2)xvrc~wCKQMQ1m8w@L*61 +zS}+-kFyL~n*5f1wejypeGxrizpK +zZ0K0?xm8a{_S{~>21dLlL84oLAq+JbVZ$k)tJq@U2{vb(k~okw!^|ou2jlF&5MygM +zG<$oK7b1Jg7+n(rxa2>5;>fN8+=l1(+jA? +z;=R5N^kZ&R=zF84d85i5Qk`5Smh+B?#!2QEU<&S~^NFffZ-@d8MS=(dOF7766E*a* +zBd%VuH1(e=2HXW7QJfJP;eXXYCW#^0xBeZ-v<=C2?`7hSglPZmNm4`Kz6Oi>3H%m< +zK@N&v!;`yosh{dveBo&3Mz4^pk#o5iCveJnB?84Sv7NZ(F!+>aHvM6kqQUH$vf-^} +zB*CB*K@7UuB&F9Ql_Bgj-pd13vrIKsd(i4a%1&>lmJIc{yKWmn+@^O}`74otTzu*d9jg49IdfBzD8}h2`T3+;{&x5RgO1#oX +z_@a5j`IAPv&m2!3e$1Q}QnlGzUnKg(yiU!w9?b?MBifh4cPfyI6(_&*4YaRTNP4Xy +z%|R=@tm?W?VFkEQe2LL(R$IQihqk5lOZ?v;EfdyWYrZ0fU+`jQ7?7D$UBm!^-+R|* +z>NJe&Ka{3`1KrD91}d5C_WSHgMEf&gj!B|->FYRZfJ8BTo#B_TIk_bN#Bgd^;el|) +z;b#y%2)2Z3(oXM{j^^tbku35vzJ05v`MMGtYaG9c|z9*hX1C4Q)J;Nfo36m +z{AhNS+|MmXJohT$$$+BJ=AVL9&wC*xRj7c}>pd6KVbqp0O=Ox27;cu9Ur#|H;ziH~ +z>gC|2{e;{+rGuwA?b<%EG-{5bIsn`&iXqdYPiQPvG*3kFM>k+04GG+alaS#>#yX-~ +zl}Do88|l`J@G_r(e9B4&I6y|^)t05{0ptfFj)$V2J +zqqh^@$NQYSq*@c>?L)saKJM_kYY^+351;C@eIk;|PM?Ve6F-R?y-e>nU2=Bsta_@q +z&92%KrBa)+s4nh5-CeA9S$1#JJ}ozk%Zm!>DaITn$G(cz-MXdx)EL+4rpLjM=Kza9 +zbicvb@$}Kdlb}ayXU$Sj)aQYK!7#hX)o{}>(lV%hmwE`?eg;13z=V4I@Cp<**AP;EO`C>zyh;ys2L8NTgB>sOtq9 +z!nFWVbg)Mw|By~9c00D!+w+qPXKz#!uZZ`JE!%&vFAnFAGtzwan$ +z^(n(&3TDA8tagO>ItZ6C)^Oy2js6wzp~)K(kfU?N-Q9*L5eNU^H_ +zLaaF-A*Dz(H|;}Wln2^csSsB!lSl)G8n{6AO;))oJgv_&C!IF>L{b5GA$0om1lX)L +zBu6%=TuborqtxMZQ*mq2u=dKG1ADb-!RWiXLi!04nioWFIPZz60jAVM)6`rWC06B^di6lm99?olNP9ey3#!FCx +z!-Rub+URR?P`R#VSUpH+GOtV+gTIYk1rtIREsWkiH&!rCUy +znX!}p6o;r4NWhXnX&|m5fKwyR(U&o@Uft9jbzKY|-=H%@wSu;Z9hlECD!h7_DJ#_J~5{_CrW9y}fTb|G9 +z^RdZf6x-sfrJvn_i3<)&2*^;j<+~@#3T_6;TY0A^>0%c-MLSbQCM}24Em+SnPA6bI +z%DrM^*`u=sygmb$GF@PA!OYnXZ1ZJRttNREA~I)G$xlP}%{=n&l^3u=VQjXgJbFbp38f5-#O%BX66} +zHZe#Su4Srl`VT|7bas^lKw_AwwpApzvvG#5Z*PrB=!ywPiDXdsiuv6(xh%jBdVpU= +z6@kZ$c#0(BlCW=md~46u`Y<1(V8rQ&1+zCX6(UA|rJzK0kO*oTLgyv82mI`)V~`~7 +z3o06z8(gkF1+s4xKOkYmnd+)U;tv-NuBLI46A`FtVmqw2S5Z|uxm24TsE;1MVSOs2 +zC(>PI?|)urPdolh1K;Pm0pw|#z>43iT2T%lXE_axP9<<%!IPLqv5b}$;uq?5->Y!V +zZg^{i=&B6|I@p=RKHRg%q7+N!i_Uuh9Ey0#71gEq!+FSzXzv^*4p>%oWuXJ;6fz-) +z-HhjnYmw~_L{cKd5BIPER%PrW78l?x`yf7DOSMi1Aynm}dg@w~dJMmhvUpPLV&XcL +z=jxAgoM&;9Y#Hza8L@Or +zoAovBq80v=BNN`LJ7rU-EV6}jZ(W9s>PDSnK +z&#hKUTWDwEOeIzeuHhMfHVe@ro>uma2OYGkhj8WNT+^w;fj`6CO#Kworm-SD1I;)P +z{Qjtrh)0pglW0}#HCUfC>4r1q0K{e%dQSa)^F7U8RbBmQY!h5l+h&_;munV7V{mT_`$JouV0rz2V +z&YlGD-^4{N;y_p>qcTQYO#8hRH6@Y%q%=92D?}$n2(>7c^-9(3 +z7B=iokpSLT_B`w7m>ev^dB!=`;59|gwXs#HFDWDF2irDF5}RrWEjVX5 +zo6`881{7MUJa11R|9bc)2&m=UqgQMLwE4Q*aGsns&HYFBsDs+X8l#*9G=V5Wz6FcR +zasadp!Oh!-&xbCJAUsgDlIBQx3$1z +zMIu-+HUS71UAgp}?v6|)rbRba!O2kC(Mu+&Qn4!sh +zOff6QRdgB)XYRl#B%Wkx7^qbO<{|KMZW13yTs4pmEC4UDjjghWxR(fpqs?@dgGF7# +zd&?Bl`cUNn*;B$y*j1e~VZspx0BbJOgTQ@kTS+*I!a4%d$0rtDn@oHpHM5(xa2+jsnjqVl$ps0qLHvt^^1eZ +zMVEGhm}gi0$RbEg*9ON6r{)@jeDVT^&vV!y4-+4=$p0}|vaEC$Ibt93j-Iwl^fFs3 +zAO60LeLw~y-;Ng(x69_I567D>o8LcYE{V80?`Uh|!thrjortoZ*0ahRldK)B02?Y1 +zlrwS0j*~4^JqPL~Fz{>doSigD@wIooln{efZE){E(l~D7j5O>HzOZiLhCoq^SCj@* +zSC*a1AIExrHsRoV26sNprWVaWis +znk~41$jzd=qIVc3EN0f6zS&awNOMq+fSAFIxK4saZsLg@wqsusEpiC;T(F=WQi8?T +zmXixPLM^kz3!ImzRNVatolhcUcA?J)$6n4B$W$OwM%x`Nt172QySrqFx0)9EIu4s1 +z0OO+$N+ZvFa(eRM6oyZ$Tu5s`h1stv$dmA45GG`#Biyr5a^R)cJFr8*zOzZ2_hpu| +zL$^&{kR?+r1?(nPh9b08ciwnkv1nN9goLwQwct_NAo77Q57=MeAlbyEpyxZ<0P->i +z!ZmS&MJLGfGNWUcXr-UThpkEu^aNWOFY65tCotf|Km!{s`lzXJRI1NBM-83ha+m6H +zsX-G+aH_RM0MtpplPG0v`=7G?(cMAcf-5!)eyVTI9}gX|-rt7rjh1kBUK^J_$o?2;{OCG&eY)qZ+O^;oKRrEP7#ICb +zm2UeviK|Ak4vm2RTm)B`r5plsTRl6&NQ)ak*YaL-YKxT_>ir8yM;<+ +z-Kh0k&FkoZy?Ap@JmbiVX?iG6qWHl>DVRf+>4>k|@o7&(>oW`?4gD&rlmp`ga0MN9 +zniwHPwB9Joh)R`uA^kaD!BJVkcQ+(`q?3=?J~(JrLhc#om&fWeieU2Uh38%iQ)FGJ|6E5G*ZL+5^0XIwM#NsRW|Fw +za3;hZZ@z4cTyiy-B=jtjMtP+N=~3eZ>5x=ti5wi78mMKWtg>k +zWzj`TuhZ4apou^Y#Gw&8C=i4P7G?&kb%c9S4onVZwyMgeD{R=&e*Q_;P}pAUMqLum +zL$9MU!y1QKNs>yhd+D=CHahgsN~b33|H1&uiQwpzXuRrZ$F`m1bQ5jAjZGv1)Gp0y +zZ&Gu*;D-sm-{i^K*#-KK#I}0L%i}o>_VrRWj~6upj*VQZq8f%E7iDP>RqDw2uL4y= +zF&Ai$Ia)m>=aKia1e+)5+B}|CL<^3=1_aAoWmq{-E4b;~Bq1>cS9EH}a9IZPm61dNr0%Rmo7%Kc3nCC1@J8#rOS3Xy +za7q)Z4UADO6cA*-UuaAYA=rl(CB)k==ln +z5WCkj91NK{L=uu+VXx2C-rYtM55rxOW*+eBrf&1evVz#Z%!t%j#fi;H{F=!kV=$lE +zMT=lZq6M5j$hOME(}^)wfvc{ps(!O!-DNVH-KIJj^V;LofQ$9TE5Myn7gF?H$!*DqyqA +z3oqSyY{evMo~rOrlPC6gM-I@9zT9i$H97hcJi;}e?Lol36JcLdSIWYL!OXMoHSXF$ +zxT7ZYHlm7KC&c>js+T5T$H3W`^B5MR8sRv87gYZQmd{A^I^1Zm{=J4Oe${%IQ7bSP +zeF%lu%tM@;i+i+7&llV>gcc#?HJke8^H(!K7t44YWO$$>+)Uex-9Lu6Z<-Px<*%P0 +zR2&Ia{O$y(gl)JBvvyeHiONA1{}dmZ6m`3!7hGe}S}+i)g2&uTcfLRzjX(c=N?vJ& +z=xkm$o<0!E@Bog0-0)OUbK_?kRxu2oAKKo_n8mGCQP1{3tfe`v@|H7IymaRj=~{+v +z4$?;CA&gqj++Oq&y-m&U^KH1Gm7XrGk<{D{NWhp^Fsnv*^+r{XRWWX8^{{SL8TY$q +zzPG*ElLA5P@b+QETQ{u^wujCqV84QhK5r-{TL~Wz5pg@XiOx~X!)Sv@jyR)v;U*F9 +zj^LxWbn_aOgYScNW~tI!DvOWa5|oRhS4B3VI~MT7Z#{{F^?t+-+kR*(zI5j<*s@Fq +zv7|4qaA%%5#}5`jX~Co<>;e}~9H^GG6vUB4nk^cu@Wz2tEf&4y>78YhEQr*-czjF~ +zT~#LKttAs#gj#kEe6X +zWteo2`3~%DUMXY|VKp&)HF|Fs)RI&tu5#kX0;f@D>SaW1I)U7C#@5}uigP5boH9EZ +zFGXu9gl-U!F%z5JEvi)s+nC +zu`gC9C4fw%k&)DekC>HI)S3)$uyl(2pp6AX?rGQFqF`~>VT6~dIFfa# +zG8wV}fRPk}IxW`?@?^=W(XOZKu22rjY7<2ZXPn+8yCkf3SNz#`9lQ`t%@sXC?1{tO +zf-^4PVKXJk8WS_DUbbzmY42U;Q5`Yc^Px?(T4SXo1?L;EYJg*=vJDZHL>T4WAZG@5 +zB7IO7o6Tkxu6iUj+zc0DFQ~}70S~2PZvj=7+4IrUz}pR`^}FxLiG#P!Rk@;eBbzWc +zBbMUW9`*Dh$HcBNGABsB^G$LsMdCQN%B~qy4+m%H>+bDnOn~&7sXX)CIq;5cn-)Ft +z(C9Wyir?V)Rg**gamwcVMZu((h{vTh?D{=mmY8PIhBTWMpQO&cV7_ttFz*sp_3O*^ +zEUPfYVIrNq8@gQqO!s!i%E`3p!jML^S(^B%V__ZP<4whMroxDH%V6mgNnlKcP$4he +z!#(L^K7iqtPjYk;HN8uN+_v+q=HrfG++}@=WT&>{x&`=bd^cUy>e0#l^YcgdUg&as-@osG$78_ +zwmOKG@DbO36LC45W05Be&5+q_Q3sUa@6h}p9=3t&Q?z^OPDg_8A_=-C=V#QlOH9lP +z0_)Mhd8b_$kUX7YnQ3gEvxl3CA{YDdj&35NRp5NHvP))lnPQB@zjH7l(P<+!Qaj8s +zafmOnF37w|1HZP$wt+&Ep1Ppk0>quXczRNAe@Y^l?VO!=mWW?!UpzYb%&p^~6=@os +zpU5bPd+lA8_nMtOq*k0jQo(}-Q9`SkwHhyr;XUm2WA3|W?mL_w&fdYUK7g4mUpx}0 +zpwI9+W!f?WKA5!px^&JtR$n}NaQ09-AJKo?)Mn~?@rVO5&~o6G=o)&DH&6FoL9%8N +zm%gm5hsZnZvh&iN*IxV5li>56$c#l5Gi1FPgoqPPj_4C3nwq#GUOHj=M%5Qkw}@%! +z9e%r)?$Fz@G!Z3k6WWW-YFTHrD2nan0|j@b?!mgeybS4t+Fm|g?vnFj8R}*FV70y1 +zE_TjKR=uMxY1c1yv{L?N0&(lzqrZKm_D+zQ|5UoHm-WltOOP`6-S)UwsD)UL{Amx@ +zQvx|vQgZ|n^|N{yzO3~DR+eX*;Yo(CXA+LJK_@n&_xG(hYIK$|n`i?YsC$G%*+T|O +zL?rKP#sVY5K|2J_EUifBP~j|2fcFzi+9#~}X^|nJ3)lvH8IBVZSX+lS1G5kbEtM+a +z^I?G7riX2=Zt%yLWD;a~?AcWh+&+vm>oW%vZI`U3MjRW*pE*M8`{HIK?)U8JbX66V +zfBxPccJ|CbvV=o`yr6wQ>5c!6?gYSFGM-ztv5vc5yYpyk_`aW}&${a#r;K$_pVRx6 +z@!ZmdpYijE8qiUFXgT-Pfn~qhqB>?=Yq0m_Rftuk{aK@9S<@6c{uIerrXC~Zqvub>tFo5 +z)iQn5Te2^v_Lkc|fzLi0On!GfiD`0LZDcmb8j*X|_Q*Y3RdwL7v74~ZKJVIyL9dDn63 +zQPDazo9+VDr_CMN3Wp8n^WIj*(m_)# +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 +zC4!y>Ew*cE>cx^aLln0kY`41_KBYcNxSjM +zodxSd@RnFc^x1roz|%UJ!`0}MIxjQ0{RHf|%u<|(=kbZ15*@BhI&zyQK$grWc1GTb +zlH33}%-O|1h)nE?jlrDfRaMvvHu!x)r;1I=quH7(gAyq0^Yhsm%#K|&@$+@#&kS4^ +z0!Gt~IXY3h-DOj3&27Q18Z?}rJfFwWJT}Y4?bAn<&!=o}%Jed;SxkK9x^u0b&)_p= +zP|)Q9*hS{%_w%{CZSLUK_u0?A9XxsbxzEl&_vOcLe)jpfFq|G0_uRyb&*x?^H$|7X +zS-?)u&zH?`YKSE5k#eM))*QYZHh|Cmgio2cdAjN0gk)6-XYa3l?Q3^3{bZy>K&>ReN5gkV{DtA>B9f{ +z{1r@jT4>P``e|L+Vc0``7zH^^ky~V$Eo|-)`%0YgwOwi?5o;#gtGFI(+p>^njq^0s +zRi5kM;{NFbyr9Y#dDW*2g~f8ddRR0M!l0UeDUgEGR-ZmSTLOJd)!8<&S(pr{HV0t1 +zDPF?oaZ^?CFq@048asMgG&{Ad43ybj9joAt*S`G9!NRls(l3AZ)q{nHo1Pymz1S;# +z^YN3nCycl~sKJgOKXLZCgg&`q;LW}esQ3PLq?8U~H7KL+oF6Fh7Q}vC4pR&RdG>AWjz`?bbOaJHkd%={@7rr@!Y{3-&z*M%ckhKjhKZ`pqx)`-i!jPpFAu-zFf@-9 +zn77orH`#B(y1rMdBCI%~%Yc)b4+A9Cpx&+hsT(vvI&g&L@zf1#k|shb>Lg!`Y7D*L +zFX>mz5FA33j5hhv&mS@3(>9r7m$9Rh_?C8zn0gNC!{9Bl4*$Pa0T?xHrZ +zaqwm!A9e>1fHPe@qb1j!Yvjczk| +z40_P`&sci5-p$tigRKpcz`;861?@{Na$Xrxt8QuDR4JUfo?XkjtznaQWX-+c;%!Vg +z(x4G@Y{YCt*{k3$za`&s6WwC!Ts42aR%i6nGCH_U@U6fbeMZ5Gakiy7a +zto;tI`XP!(rujKj&ETr@ufjoHRQXp)G`LFrtL4hSBDUSX+WA*?GPqg}t_Ho-gZs1^ +zTn(Py4o2N>{HtzoUpMG;-G2%_!v2+Qik8xM6-RGWW}kBXz%){VzAund>EU +z>n-npt?jSUt(($)iQ1Lb?vBRQHf~gndzyAn(ESe7k&dw@XVbn};{{d^dl0mcolevjB0G6|TM0jefDL+Mk;hWfMf7p2S_W!hbd!!|amt +zGIn{ZS%Y(^-X^%GdT@MYQ_?LE0O8PUP|8i~A^`AdRh2exB@{{HCRrJn)NUVI8#L8s +zk`>5*ORqM_oL*Ns5s1>}*T{EqUq*5WBh4bDg +z^!Bt(^p0^t3kE2GoXU@_P{$0?HF){GJL623$qrd;W?^}6YjYpD8zLQ;yqb#LnY}@d +z#m0VK{SF36EaZLPQfV@8ZGsJN&gbJBB@Mj^{*Z`j6MHw)ZIjgrvf9<~L`{1;@r~+uA_@CUN@6Y*ia9`L*o?r!x +zuU`=;t5NA2O1G~rvwW}lTaP*K%PSme)7SNR=aejyJm%C|#DdjuBV{yl5MtdTrFCOd +z?!0W%4jE56mpUV&p}!cYu%;!if9^n~?|NsF`_Npp%XdFL(SjmNWSjb*z1d~2RNDY~ +zM7$1X)@rO`{pm^FWNQ_fgzQ;`+uTO!Z<@6#J(?}>Jft93IXw!{j&a3V?faMUZYkS! +z;68uwv_me9s{C{h3xDV)>%RMGKTqh(423AI%;5CTJ${YGz}~=K+{VkCOsNQivxj}B +zhi;}<$Gca^kJ9Jnp_fN2LqJQtZp*>2Xy2A))s+${{^?0pq+QcLbDW#N|Ae!*Dg=$R +zNfB@w_EI5^;nRSW_nzG6km9rpwgYd-pPooA_G;tZM$h&a3$Y_#>fj@o6Wk1%OeLTj-xQCn^az0*`k5&)!B1aD!bxsAdT +z`|dN>!|~(tiauO&{rQBKY|^yXEKmF>D +zzW<{?pugYv(Vzb44}bJ;fAsz9K9h%SU1e=&e`osN{p;&jXgA5FE55o?ZFT)ufAVX8 +z^-q8O`hWf2KmA|-;J2?|%UX4*qzOIGjIwI_jyFX8uHRB^Q$<;+;_CXxzy0Gs{PCas +z_}~2a{U877kKdPebgo_B{P91$`QV@3{P91&`QTsPeDHfWAN=Oc2fupr!SD0sdp95a +zceYS|e?b3Uzo~XdPlm(HyX*h>hyUWQe*Itn)qnYq{^~n_eElE4_v>_VeehD&3o_N{P*9udGGz3_kM8m-gj^Q``@^E@3(H= +z`{B)dRQJsfZvNFbZoc{6&AIH8{t1`->Cw&i +ze)HxJ|I3^2eb-ih6aV|eZ(Q>;e-)47A^eA5p$Go+n}79dH{blG)O~~NesJ^6@80~Y +z-?;haZ{2+Jhg|pV_iq06H*UWD{>`_4aP#f&-u&y|xcT;P-F*9pH{YhZKl}^RBpcWhd1B(;mvpc;O0Bux%uulZoc#0&3E3v`OY_QzVieA@je&+ +zb2Ruaz1jO8-2C1*Zr*?I=KUYsy#H&4KmNYC;aBB`Vh-a+DLjX65!3_nL+ij~txl47MFk;kXU`WWQ(r#rIQ{QmA?JAR&d9GweYd;BtT +zm+$5V-tQ&ixNDA{Oz6zi7?B@)^D+nD0Bu|jMjLU{KjD^0Av$ZiBwm%7c1QN1&s#a3 +z6)tMTtc?l2TQgXh&qe;{BL62<;sfx2xxrq76JoBfL1S=Jg}d7>CWF& +zaR>7b?eV2rC&XGNWlca$Bk(bu_(?87&^B$*W(_wyv~O4g|LKqZ +zM-useNP;?3IGwFj*-KPUyZ_}+{$-gSh5zn%uK(Zv)wlnOBrE*+;~(PBfBe6Ei~oG% +zzq$U)U;DrQ<*)sZfB9?wkH7r2KmE)9;`@L3Yrp%KzxD^$|KET15C6B{`K|x$y>I`2 +z{?UJXee=QpjV1N>Z$9{SmfGKAdHr{8KKK{>gGBcK_U4cOi7&nWCJV6dThaAf{{xHU +zzr}L;zqt9<4HTaW%|4**}>|gxZ@BZ08|Fi$|pZ(vDY3ZbN64_&DrgJ2= +z36dDuc1ZwRR$1h!`HWV%iJ&&^WiY6Au?*v6ovE_5m`HO;i8VLs;YoxP;<}X#w|7Mm +zttZ>HE|)He!66#O!8U2u +zVO+fKGz5QHRj1B9llQ=gCBJ^3rl=8AkGLn6j)$?HwZF%sC~L0gfW(1S%@X +zOP86XL86u>YwBAK^4^f7Wv%{qlWmlD8kPklV4J9Nr(NA5@3MFfXal-|1G!nbIO=*) +zVM~|+*NwIBIpJ`Ch**P2uau?4TY+){g +z!UWE%a$YN9H|ZQsR#a=Bz}B6&7+d2Nlg4K-(fp|l_6AArP)m>AsVd(>$8R-X5@-(d +zc7-Yw)ZEm-l+(hqQt8zD4Z+7=B6SM&juE6bGwIzroD1p}ikDp&ug%f=-=y$e+~#;7Osu&_~A^6GRES0u1>rTwXw_=R+8?V5kZCK)6B*2JirV&cLQ +z&b=vpBQw@3)pqnXI9&$AiM>Tzl^3uinE{Sepu05XL~eSrCMkdI)k#p=T+(fLGs<;H +zCjh*uC&KSzebZF7J2ufgsa2FrNHPJ7m~4YS|L}notyeo8AuY4r1&hiqTp?wXB1sj` +zH4&FS0fqs~ +zotG!>U1;_=Yt{syeMOz|=5)zb7hRsyE4U?3zqd3!-ZJXK=Fqy~huha0*H3BY)?V%= +z(^_!WWJV=zC7yHl?(8eS_}1gHtVB`&3u>)s_OrVEV$~ExI51eOK(W1jEm#DW$nzFV +zSoc5evVN9kDu{#igg2H=tUXg|&KA`P%~KfS!%dMLuxmn_zY%W}RyL~@;A?oX8>%(c +zSz3l&v@$sak>j}m9ivl7m664zOO}>!A)lGNEXk#L?20-`dfR5JHZv*uI?jxShixOZ +zu&=7($to$TvYH_layPB%L_~^BTkGK((HPHNIjb)xc$=PvqIeDgeSWFgFgXcnGBhA+ +zTV+!B(Zt9%lF8``M{PMbc1FwI^C +zAR_vZG}wwhR)OTUHK*fib>6l1I#x0npS*CO8$L9{fN +zK40sm<5Jbg__-t|%Thohz=KEi`R?}jwx;v`YF8#o??yM!1I_M^X&gctXDTy5$)@TI +zNp9_pw1e6p#@i4PX_AD$B-Qn^QFbM<|C%WG{YSP8(`yyFj!xPNA&!&Nhb^s5^Tm-y +zTl1pk2hg`HRI^HKI!&aUUD)4kLJUkEn{PZ-rOGiswG3&>yQWal(oRQ+Jn_;Zl3T(I +zdFn?+B&TpBvsc!wR%$gYixg)=9F{H0VpuSwTCAqXqG1z5>xYFzyQ(}Ml@)p^Yr~bv +z+rvg+GI}!CJ7}`N*{BUb>w>m-(Vr;e^@8teZ3~yQa5gC6(oHRbw-S9YkpHNRZTmx8eeO_pubnfjsE=tGgh#)-cUE$ +z!h0+;C2n4}cwOz@ay#gV*yBinqivBGUfZ&U(>6P47)4t{^-Z=_q7ndFcrz)5Qs8iXmQXd +z#DU-dV4*=-ZXryN#n^G@PkpI!7UqCVUo^yE>~K3O$M=_}U;Z7m@CakBw4!A~bdbc> +z#-zCR8N09)v0b(%|0|^oyWyT?hD>BbR**ZU#)Hs7C~PvlOjcUp3!~|vDYM5ip43PN +zR<9PH1FM*Lj+zK9y1C_`AKar4hy}Jq&zPdS&C+B+?i;|$t4Uxr3(i%{ZQoa+$Ie5h +zUl7CEXqv7Hg$7#ls8U5cW)V%5cj`1S>;333MaiPvXQ9wgg*qPx{Jc(Zw~geD&qr^?`XZdH4!j(I#3O8Wx^i1&~*;?%7N|Y +zAab}TU!Mji&S=)|>f~%Pl47KiJv@1`;s)f=z9n5*bEbJ&uYQ_EK9@r?X4r_zm99xl +zw}Q+-QDJ*-Sr%2xz+@Ot)h?~%?MdjNHu6+@B?WC7-bixB?}T^fc9m)aYP57J1&C^? +z&795;1);Q>4Z{(efrvWO5iOq%+bSM{r-<8A@7b0~&O(v5(=S%;@xw!lq?*pKr;EBW +zXN2j7q>nT!Cy>s<4!n$gO50p*PoKH*rh8%~R5*d00eB7Xn{j0WeUK`nWJ0@pU9nWe +z9m%CpXx;t25W}nfrf8#Ur5`H6-?~CS$X1bL5ruhRYT{lLOp&ebj+XRzpa=6kc6!%`1 +zJ|!q|&@+@D`Ss23mKgo&Cz_0bW^Hf`G9)o?;-UI+W^lLIrhEZsJF=4Hf>&Q6AE`Ps5=RS3QEa=A1` +zL?YzH%#1&@z&+Wtq&OF#}qW9S8Loml$kNHcrZqD!8$i+PQ%PF#tobm#nPytFP}_x~_qy77ePD&0PLiVb^igb( +zar^=aRXEaV<%+;U=SJ&~ElbOWKip)y1UYmc(arop88tY@zSw+GdUtv&5H#K!W@@QaU@+CTWL`lv45<*^=$#(?1Cd^GXPXX+LnNo +z!6W?TI~}c9!xl{z-PUzVq@t5RpHIIYi76**bVFAM>Jld9aX-KW$c8HgqqluNzhP7rhX{{oS=g*CtAE|o9X?DT*YjCIXQ+t4a;%zj +zFU^Q^_coR=bz@%9RLq4e&x-*c38jJM9@o%8_2wp++O^k#p6INobDZ1w-nNG3wlO*d +zZ>fll&2CJg~3CmoL6zwEcxN#Lt +zOnooZ%34Se*e^1EneU`q&H?2`X*VD2!Q^I<`5mrCy1h~ +z*rf};B0hL6>tmZXRb_u~w|YtAGxOfUVQ?slwIqrSzdLI^dZ)xuxz}^PG2MrGmkj#{+~t@V*<{;okeCm7unwls +zcG(r-t<~D{(}NFZm`v}hc?@)4Kc6=Vd_3YnZ1eUZrw<{lXVh?Oc^|V8Xzgq*6Fsa8 +zM00jP?%(0K*o@x*krbD=zMrjiuXm_k*MZur*gmt{?T2)`wcYMp34sy*7LxKBPV83Z +zhj^bFD@lwYVxcC{*C?!X#hXnUyxW_! +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 +z?RZrmCqG@2%j-x +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 +z#n5zB +z#12?K(43!E>D5OgSenx}Rgr(AiU(K8;3^+n6@x21xM~MiSN;|4djD$hgm5vqN(Wcj +z;OcU4HF$bBczU?=uOc7O9uIw; +zjS8;DBfT1bhO5!6kLrt=TI`jidnMUkNwZhdjZ4CKuVlGbQtp*hdnJ3%8m)DdT#ZYj +zy`H1Jo};}nM|(ZTdv_(#Udi5!CGEImaXBtY_huvAo9A?|pXF*?a=G_SFZag0+I!Y& +zyf9{YxL2|_8^zwUioFpQ+r5&#eoD1hvNwn2-fWchxMY7l*LywJ$zI9cv+BM1srTl& +z-dl(D-g`aWdwR3C#`Inry*KlEZ-hGED_M_A+PyW_?(Kqh?=9NBmC)^tu-kjn_1-QR +zlPfkq`X$5h4t8ujxHlfWM?Clv@!*TcgI93x9<>bjH%PVJZi(Ee69?!SO^X+lV_7HvJ +z^ZoIBe>~qG!~LORXXv7x66LGs?#|D5#wT-UT<`6O=s;kDijULd)0bc1d>HrUFbUcn +z^AFN4&tcrX{s)EbZPMZZ%D$dWcWcB-)a-PN0MBN{!D7D4iNQm#AYZri&?MGR1LHis +zcd|V@ISG274h5ejlbM>9cJJNYTgBk=5^R$2Smn7byVO;gBRGt%kfv&TcJG8_#oW +z(O`1-?%gKQUEb=)v3|R%hXt=lf)3d$dV?vVbF31x7C_- +zAAjTM?%Dan^9K|De9p`L?%g~SWKraY3bGimiVGTcn*=&)syq+g`s^29ef^C)?@||^ +zdpme=J}F}f$($1L4R8@K8Hvl8Dry^aCD~(;zs*7q^X+G+CsX`AJwH9cpe527@8=E4 +zfjqwO(w$4)rwR&yCEqtA`mA&itNk)KFRZd?#n}ltzg!R|iWcF-3j^pn_S_PwW8eM1 +zZ~65XJovYwVlbllvu-$6>gn-jLH`Rl&>+}v%#(3(evU8SLU9n;qKk>3ckv9npR^pk +zi*98v;>7++wEeYc?60hJzgl;@a=*&HOOSK_N_F;1xhH6K_bwp4WxYhmI$9!l5P4)@ +zx}(E&VAK2v*kx129g+zg{ru6))zUP@r;C$B@51wo=rlc>F;!s~029ol;$+)4s??lQ +z*LmlWiUAbT7^4jYcM4VY+eYP2!PfxxaG-EIbW +zf3i?fVm&EosTFe^yNe`==W-Stna?6rX3^3a@U=Th_O&}Ne(jDugf8gtAUd++tN}%0 +zokY$~pglq`wtB%kpc~bMDHOZ>4Ez%JPVSFCcX8{wkUP%InOQY9QL*6+*jbxSJ0uXGO-nO+YE$LXo{a3e +zTx5-IEyREv&+|=FA1ZgpHWKqzP4<|dqhjKjwn*_g+A{*){?)XdaMoVCw`e$99?pyz +zHgT`ZkoBF;(I7d`72PQLWk-YlICPP&1CG^xM~))SW0(U-{bSIgxe&cM@o0f$i@(K( +z^q>o+eb7hssvY`Lxx0t6>QLVmhh}%0Uajd8daq%-yHz%)g%mc_7k{M!2TNcx7|YtZ +zcWx49)Bb3N84{^`n~Qbj9dQNvVQNu(#%==&>m`gcDY({pF#FaPoz +zpTqMc1;uO~WwP#durM=u|Kgm84=;H6z+e$S<;yS}tLDBBJMz7741t684hA+tee)Y1 +zSOF#{T1|Tb8A9llUOYMlL_Z${D$mmL#Uoj3S_sV&co-wTkG>P?-0DczGTL>8cq&P2Uc7{ +zXU%MaU<1>cOmo1%CT4a;Tf)j|6HAii +zwAYmt-P|aca%7Da-Ok17vxib*2}m5_4TQb9!gMEf^96+G~?mku8hW8l%d +zsL3sR}qwQ8Wy|}m!X|6w;5$G}J4S^}Hh5);RL;UZ!9IkW@e*|U@ +z&=H53zuB&3Dz5k#4mci#zGVv%7ZODSx>gx`JLMza4H%*QvB|LMgSOx-aPRv38GNbf +znEBaKQXh=CmD7udCxcVnBWC>zym)js4&yjE{~NEnERTjv37I=O`HcObE^SGiX&`&N +z$Qds_<0mmOIZXOb`S5Ha3<7<1DY|!ZDjK8PzwZmoO%RP5qr!5=jSs!s{ElCU6Z$qe +z9LEoLWClc(#Bu_T21G}4SvNGzzOtqDy_4>N0KR-Wx1}AxVtwE%*K;4rf +zD^~*Bg#|p|EU{zfb0exU-^OG}Qsm4*Xs)k`;icmh$*c4I!*Gvwo(b(la_5|A6)Vd@ +zK8aO$j7&)fYhFQ`J>J2%dR6E$@uUFNQzUj&3z|@u4F}s?$p0<%a$L?;cv}N{Vboq< +zAF4lwVo^f5=!4@J94pn-NT*gO#0&vLhw0W`nZ(EOtKMM=>8DVo#AM^ljo0+Kv%T{Z +zL4{aRbtf2xUuX6wkQ2xL4g%z0RM5lpMOGo0r6x--&%&Y5bqykve>QJeBd2=^oXw%0w9%HAZr)fxwZgtKH*~==8Io +zS3;2*$8n#g{?e-pt|{%SVrIc)O|xrBAxr6}rcaXoZ^`P<1m< +zEEmb!>9wPBx_-gE&7nr4KKug#4}W-eKB1AdZJxMDD^MKpebDTBYnaQX*J&z)W+-JbW%IXv-}RCPk;SXf`|~-BE3i%c6=q+A?++j~<%H9E8c} +zs_E*b$*8!G0Eg|H1c=KNv2nd*u%kEd>lV6W6ROZ=U)|B?Ok`{eFz!b +zO{^V3(90|OzgfI!=^Zjvxh+dawjoSk9|T7Zm=xRZy@%NLs=Bzih-@FO?$HG35!ux; +zDL30;9qlR-Yc9i88ICGWCW4qU0|;bt)v*@0ug1}(JD{A-!X#0)<9yS@B+U(V{EtL@cxSbPu7)9C5;@(M|h%da0nAEv4uZCsAB +zr2^ad1oBR?3ziM{aeW-o;KjP%xGxBU=gmF^dL9lqj;%p~Q*k(UeE*K~Q%rO7bd^T&aKNYd-m7Z!G(N|n +z=2hVRt3|rf%C4kGr*w+2qI)o_SQW%`6j{WXX3cD6PZ3%@eAuH4I=sU^4Ws75m#qv +zwwQP&W7({q@_UoLFlIa;P#~;X)f}vjVY?BA+H`dP0vjc*)~l{87~g=WiwYvzRcYM$ +zbNle(!Q^-6%TSD>-F$A+0vDg!=9tJsO^BQC?|Ud0DjD +zg>7k@Jvw_JYQz;2X<_BKGN7Gx3I@ffj)KRp&A)7GPVY~UKsuqLPP(_2!^|_$ISrNE +zbpGICLR{;jW9;8J862usJ8_Of6Y7dX3JsdWV5HQbl0ni_9HO^BTI@!+mwqhF9@*)NljE8u`H-I<5E +sDp$zaC{n-WMw`fKFWgj{q1}IQJ~^(Jbr?csKYro=2kD3?VX%A#07b@Y4FCWD literal 0 HcmV?d00001 @@ -68366,7 +72486,7 @@ new file mode 100644 + { + if (attempt == 50) // time-out = 50 attempts with 100 ms delay = 5 seconds + { -+ console.log("Too many attempts for selector " + selector + " with url " + url + ", exiting"); ++ console.debug("Too many attempts for selector " + selector + " with url " + url + ", exiting"); + return; + } + @@ -68386,7 +72506,7 @@ new file mode 100644 + } + else + { -+ console.log("Nothing found for selector " + selector + ", retrying elemhide in 100 millis"); ++ console.debug("Nothing found for selector " + selector + ", retrying elemhide in 100 millis"); + setTimeout(elemhideForSelector, 100, url, selector, attempt + 1); + } + } @@ -69837,13076 +73957,12909 @@ new file mode 100644 +elemHideEmulation.apply(elemHidingEmulatedPatterns); diff --git a/components/resources/adblocking/exceptionrules.txt.gz b/components/resources/adblocking/exceptionrules.txt.gz new file mode 100644 -index 0000000000000000000000000000000000000000..f0f02dbd044d71710c205e0877edf8a2c612a013 +index 0000000000000000000000000000000000000000..267ef347cf7bb0bc094ea4ffe20ca02dfdc53051 GIT binary patch -literal 696362 -zcmZttV~j3L(}0VPZF|<(<~_D;+qP}nwr#FiW81cE&z$G|PWF$T>|dR(uIfrxr|asZ -zQiRb^P(L5f#z3H^9>%5)E|&IoPOdhl&h#!GESOn6N!;pJdDxQG -z+qDa=t$O_I<0JLiDZa{yFr)h*3|U -z(>myehA=jrC`ONM-XlJ8%bT<4TY=XE|RQz|K44ymhmRE%5C -z+E5hJk0U}@#i*d;Usy6f&kB+0h5mzXEj&sqLc*)1Qu9eu$f9T;DmBx8{5w-A1kS9>412xb%9xzMn-> -z*`azpKL3|vOok$cKDhj5%+-78o@L!({Z3jB8Ix_a`mnH#`5MLyT+MRrN4IXwp5-Q# -z`Lc3AACo1^`d^3Vjt|t;6b}qcI1T{h2@;w$b6j5?W!}HJxgJ{r{6v9&w`*r3rjws?(exemNnn~ -z!w@;dcqVnn_|Txa+cbTP@6!E&DvS7yC+fwJ^Jcw -zgt>N(|54jfO?(|f1muH*3VhW@i#=79y>jH_+{uT|9-&QQJmS^X8!+k0ZYeormHME> -z+V}B7s|5ss;7%Tx#nKqD_^pJK9=EqN$Gq>L|hmEpR0} -zM2H%R?se~JW=ar2L`Hu*3AA2g{8F1*h4I8V7{2N^i4X}a?o0tCqz?{{Q|U$F=}l9j -z5Db9zBBlXiQmXOn@nq^vhS(iuIiiXyOL(&zUoZeR^2!~eeV3Y5h* -zXA8XxpYAWC`v%HRejV>l83CAzGlKIqG2x_1?PRn1Z|kw1H<{9y?z7kNW%R8*zGjl# -zRaZ9c-E%LsbQ-(}n%bRiZGZb~cb0EPcYZlF92W?>yf;(CR)Zk81cI$_Bd?tuK!SH(11u@|u{%Oq8p)Z360DUa(Q6fx5trbWP2%UKwJ0;mO867*$z -zF})S~ZoPLzh+npJB<}K&aj^g>nRun3zQ;``53U*-DIe5%S;8{O%%-q^c -zSXG;Ws{g`dY29Out-=Ct|J(>P7wkuHzknlAbFNmUP0eJ@nQm^7H^3~&tQ7d3XQ4Ir -zSp8!lI&!*t$6LURh*pU^4@qNIkK@wN6-!MOu3d{%kbpv?h^fMfH3SDzx+tO1=q^LV -zh^s7?QNcnP{W0qz#x6b<61tL_c7v~)wC$Gk19k`{b~)fN;%;F|5;;sW6v19}NJ|jV -z^SGA+VJOm8OkOOJiNUoDa#L*dp#rK9EcpMNRu)oHMWCBc`B@ckJ`{? -znUrQiKVS;xg0@!UPRw+?1D?!mNG{kpj#~XQ+k)JPYa*O*29&UNM^rCp;b4JB;((H6 -z(zLNZW?WTbx5b%)o)MMIZe*5#$7NtT6bx6K0(lZ`cK{0q8XIP-d{!d(9rx&-<}0cN -z1Abr!Odtn+{}*au8k!q%T-vImuwHHB}zrnGqeR -z^=hZH5}Hd90=E|*JOCX)`V6oTe+ZUQ~T -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 -zvud0}iS}ex)rAIlHhu=3=6%g -zsE)fTgg(A51!*G(%F|WfN_goc)6O{@6{zaDbVm+h*5Od=0gM)fRHHB7hs8Px_F?tb -z)Rov$h^^k4_t^c6+fOZ)7e;fED3|BAe^ONd4?`_h;J0U&EDm+^qT0SSabU$+8gX-X -zu1}WVdY}oBti2Wuexs>mkgUZIq!u3Vo1Ehi_0aM&4orGMgV!P>=OB=++L(S=kGlSm -zRhrBrL?UCe3;|})Nj3y8na*;dgr{c+(j~oSNcbDvkh~?7tc;`%jp?wqIQeH_XZVjWLl~J{x<*UMudh*?7R7%~ -zkjRH$qw($vXi_SNert`W>Y_pOQVk0|W%V@!40D!7p=Mq_z2GcVJvFzfmvGl!X`6=`y~2sZehH9`un_mcO_B$#_HPIB?(F&~9(dHH3anf*|OZ!MsJ7PhN#t+3%YQ4M#h -z&_4My+@{9#Az{&pcV}+CfEB%ruN5E9P$lM31g;$q(J8X9@cUi}X`u}C=N>SVBpI03 -z6?oyo%qJH@RiyvfkzX4(Cj9zi`KjGMl}1SMOZWYV;w_|OEL5q668t5iu3z)T6`d6m -z{czgfh1j&}tuDYS-n$TDQTcvtVMVfQ*yzWG;-;vOE -z0vb4`>MA2k3z0GX%+Xu9m-N4_ap(Skc)OD9CFCaJd59aJcb|8G4p0vTFjA)LqAuP9 -zB(24s#A!Ns6dDo^ym9lwLJ>SB1#o%@7~es1W?tvQsuNdYv-Gt|0pMSxnP)%TXwV%W -z7VsLJ6>l{y5MO?F!F?K(y!QBfcPe_sfFuW4Q5MRVWsTd+4*nEUkUjLy%_MJL8QcdU -z!ckZdW%-2gjBYkg=JMI)+i6MZUY97T0Y>RvE>3i^?g_lMb0;Omeof37K?X -z&GrXi3Yq2i$GSFii$_tkk(fHC8~Iw$Cbw&eIpP4y4cQIj_04Nmq+fjbt&-aoUq$fX -zKrqtm?=~QbI=Lv|vFn^!u;j_?5K~QugwAYIJf&bUOIOyL$0#Cqs>XUjx78GSME?Mk -zJqBYb{XTM^_0OzGX^1*|(Q8(u&GjP9Er0rb;Aj7=PZjf{Aw9xq7A1?}Efv9l68|M` -zS2T^Gp7o47GzB^dae>F8k2L;#&$Qh%0+9_9wxj*=DmrI4aWN~UYBS%Iq?}5XGLV!} -z5Uv&a61m{nEx6WFi~HqQ$%;VOYP|SF6=;9eL=>!28Xrk|!Y|4qzu3Y9e8lYni_eZ= -zVBu4coc*+W(a&t&2F&O*6?3~&c%Vi9ywESw`u@THUjA`5^w?C2u6V`{d%?MB#s@W{ -zJ1xNm^QM3vw=MDBtRq;n`dN!u_l_;Vg$MD%_0D7@Tf? -zu-7Xtzg~!Ai5;o^$disNFh~P})6Vdw8zz8mk-c*RI}GSBK9rX9%>Met0> -zD8c5hiU^*1D-`Cc6^)DUxkh{@f>l(y*OVv@zsDBy1G@EZ)2tSTT!5X@ -z&BH}P^8VgeQTNLDlJvPf3YuNyPM -z#bA%fQBuH#z4h~WQwOJ00sR4+n+#q{g9qVY7e(lwt0B4|g`nblbJv&p4tx%4Rw#si -z&Vwv$;%$%pHi!-6@nmbDgh!*%@UaCA^^iBUDc?LkwqZkQ)qZ%QGYyoNJYI -z4^RQF|7R}*Cgy!ay7aXWjE0Nb>(D-qAoLiM{MU#`DhVwiSm3kD-M+;J(4AhtM6`rq -z{cayRQWa*ovdkbc#1ObM-#O`9?WFvHA4=iSD|w9e&Z+ye&9`$;DcFJ*dZ(!s8LBa; -z9;zWbw2!q(%LZxtQ`$BoTdH^Ende=iu;m_4-wYO%m_v)TGLDrF7-?4Dp;hnh*LU=b -zUbgIS)7bsUE38>Ftg>}Qx2So`)}e+aHyOi$`dR%X*C>#~x>xn$3ul2MA}fuBUr3|? -z3Y7Djc;*5i!2f%+_Uj!n%&~~l|79tJ)ux!gg$uK@!UHudh&IXSLMS+tW~UYgjXs9x7LhR^m#vJT)SKS1=333r(cyM8M-L+Vwfb!$QoK!R^m*fS -zE;r#gCtez0b0O-0yIqK#ZM(gYygRmlvy*#It1)x;8VO04u@4S$3a5|l(Mvdo>IEc*fkQ_2t}Qq -z%Ble+dYo$h$v46lEY-CNddd*^n7;c&ob=|_TQcj7a`b56P^Q2};o*2xgP8R*G}>O7 -zy=Fafb>pH-sCN5MMaA2RfgPOqN4EsASwpBL<>f!{|}-9XY&tHfie0YqGB8G -zRa6u}UPT3_&wq%Dg7bffiqeWj%YQ2>o){eQq2m9WsL1?NR4B6ir>Ma6`&UsBG_^wW -zDk|g;UPXl`)xU@eRkpv23IXLmMMcZqpQ3^_@qZ8%g?|4cDuSy2MO3tu{994cq4TGx -zz@c#co2W>l`7cp%S@Ex;V%78SqJraG0T9@n0u%BoDkcp7MO0+HrD$o@rhDW@wp7Bf -z&ytzJ@y^HejyfJ~(g;^G2!jw}*`GKK%b31pgP6c!#l_JwJtisD>}cLo_~*EjP%Rw6E$yWwt3m0Scsl8pS5SHv*fj!jwVV -zqL+my6Jt-m%UT@n&^*T#22VKI@-Qfp{7)Sa$`tupJ9E8Oj5oy7^d;3d>fUBV -zkh3N+HziG#Jq?_OO0BtVypz3?SKcNsQ)DCMnN;R+&AG0PtmBj2CcS;Se#6wTG#`?+ -zR}`Y7SrL){qB9zZ$4>2ZKT!uGPvq016l5y-37qhN17=?1M(^s -z^RkfPAHRvK+*c%%S%J#p{ed29T>so+jw9T?RNs@IDfD> -zle}Eyjx8*)DT=h=F0946SAsABz&HN}{QaJ7PVB}{D0MIUF%EgbDq4-4M^eJ+19fyI -zq%bn!6F?{?L&fZQ3Ww}NjeUDXQ3z^VYTc~EvD7zQ#y5fdGxFBdDkBZk3>x$jFj9FL -zNBvr0KtiVfbfHHUX7_d5thnRHOmo&U=`X5GzI!!_OftC6wbH+ -zmslI#aF_yXoF1tGSmO#YKeSu+K6a+eR&cj5sDHSpECVm8r9g~2_RF`yNRvVUa0+N; -zkLZ`NlM^a*Ij(5vSM7ezzD}89Pc;f|6xs3m5~|?()y}a&*u#XoQzCooApEcBhsk># -zwcW;9!FYKoPSw@x|9{GbGlO&g@NSWX9P4koh3*SzKIs$(lENfVGGE>TYBf(h@y! -zwSiwP7a2dhEk{FM|0RoCEKCE6IfVabE$pX)MMERWq8NH@Li?S}z?TX3h#6yotVS(- -zn8Z{|X4AK0@q~C~-%5H~L}4%f=zO3Tv^*7b-5`1_oXPk1nN8rbVf~}?5m_2K5=CY+ -ztI`=o68d`1zJiBBzWqbIAI_za`_m$x$a{xStIf%(Ti3Tih+@=jiBl8FWfxQqQlF|@ -zu48{|;u$$C9({kRXdF!l@1ThqOu-g`$~AhUckz1^vVG+x4H)Vb=sW)AS(FBfI$AaESM^uqbQY6IqvxLYDqAlL8R46S?eKl -zOFy#H>4q&Z=X -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 -z^q=GA8p}_+@ugRlW|3aZ8E$J~82=VW;UF -zbm^L)={--y33#}HZ6&T9$!I+cleJ~S!J18@+h47Q8WfC*CbWIeSf-NJo6W_nw&kz*Uf -zg(@!C>JU#N<5wPTUxWW$s0gXOJKxPnjS4we}~E#qzDclQG(v+X5UAqqQk -z#|G~b*F|u@;J!O6vXUe~gp7*C#QRT^x*482$AB5Fl1DA<1(L0V>^%6^Cld?Nlzg%f -zsp+Qmj`o>U=EV!?p>CcKaf($|Hk*^(_SrT~y(EUUw?X?f-4lA#+$^Czd_uH-9s7u! -zcK@vUPbsdvx}nSW`w&?Sq(HxHqLRUop5dI@ACaI)DGd>@8p3(`8btzHgA!>hU9U}t -z;-AjtwajlPD-3VwjR&Pd;Ir4>=&NRNCBrEHy<`4F@A(dVbnI)cs;CPzFvQ|B{xx|> -zghtQF?(*IB@%_nUA4DoX_;eQ)3uyCM);I>EcZv3gj*h}O$E)Ax{Pm=O=&vRv;4yfX -zmChE;#QZV&V`b;;8`S^y0QQiC-b8R9qYrTKSvqRRkOJhB+&UyN{<^OLU@EupNtVQ* -z*7DUdd4)gb!R+li9%T<6uQlTSuXBw0V+mRdI=WVNijzmf1@KaaYxUETXIC;hov%K= -zpX+{a7dZXp(~(-i;vuXbA(NkXb}>R1?NrEf+mGkR%dKgYf90U(jxeWeQ@4(H5uar>hNo+`WrOxcNCj9A>EYqa$3oBa_ttubI -zcg(KYhbEL%T<6#egc_Gdu|I&q=e0As>1rlM42Ow{w6hKH!P=&IAw&F#i*Ybo`8%C$7;#o;}vwyd|_ -zZhFdFvqSO^fzN)nQonOd&n{CF -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 -z^MdL12hOpdZOftty$Sc;NmA$H -zS%p9_>kqcB0ybk#g)@0S7-vjQ5933=6&o-W>I4$-nmzh#yOXy8ehj{b#{yu`yIs^G -zWTh2#vWC*MfJ7ddp1yzRmPi_kMjh{52cWMGk6~?hI?_*Xs45=iPP$=h-LDP`w^yvV -zca--%utA@{TcIUYx6S^_8E4s0OPQZ2j`%oYmN9n2lB`=lA`|@AAux3F@p6T5Z8Gru -zQ8+))V(&pb6=~SPm{>}Cj5vY?6s>A?%^&t^3>76E1ux|&KtepWy&Wd*1b4eKE?m`a -zA3n<&7nAmJ&xTn~L?RS$K9n<=Itt2C+lu^TH*xzO%&rA=_y_oj%F!H>J -z8@l^lL()z}k^fwU#}fGTwMap#-Ne)~dYRC&n~N7czPPvD=CELFq;rT6*Y=Y?TJX+d -zkACtc@U8yYBAN-$EXVDf^)OJ*8Oua}^>f$XE^@dB%zMbq}5GL6+!xDeQ)a!}N|Ecxbx9dOS#!w(~eZQG*88 -zux?oq5dwBQzd9=xD1)s8z_b4JdVzBTLbwg79&A%wQ~iop@5A!C?C+ZSk(`eLKubd@sDJ(6pbY+t(blu$OH3_D -zX6UHcrwX#{%S}h_MUPDBTSf1H4fEI)dYZtd^b*&(1~ZAd4pr2j>Dk46iFUU)f+O<- -zLYb4I$3VtkOI?|0t$s9l{N_{u96r5Sfz>bK^oza$NUB{Or-KS*u|p(6^X(V2UYa8b -z*m)#4r8A2cRtzeX2gpf#sIny!cvJC;OY*;QjEz#6q4sOTTty`kg0RmK@qcsglXygb -zN!M46H(2o&VU0C&dkQ}Zmv<3_{gy!5AZVO8bZ&$KT3_QflIC0Ab(0Y0Yih4$jC@j- -z{Bi%C<9AL|fZrZH{BZ%ULh))HXn-)y+bJ8sg`wExoEOAVBv@dfch_k-Wc|d7zJiyX -zl%Sr~5tbt_r%OrOx}nD}XRRAAS%A-GF3UDKZ^n<;`@&!#!S|`xTT5apPV>>HTZ;iz -zsd||L%PB^gF12f9ne6kzHO734#6w)fdUy6tJSnG+J)`8?K$_8%&(;032D(OgcD0T< -zB5;$LPS}Fs%?M8$IpIb7K$%gClE1EU@Ugy<4K%Nqc6To6LSDOV=2@2M*mT0R(#mTJ -zcfLVH!xp2jMGbHga)OcuW}50txi<*N6$;(7?HrW1ZD!7Ml*53YrU#AJ&ZQ5~kwEa+TQWaJOD4Nt&0Ej)LwY8$+ -zToMg$%o#R97-mT9Hv1(rsR>zXJm+kK(mh*3DYO?W%a -zoi^R22a_(#6-rTQ;5>M*wHhvEI -zus0gmHs*Z;)EM(V1;Q%4_ke&3FUx9l&Y5b9V_9nSWpx$Q#u7!05%p2-{-<#uS4#tsE%O%%Y@dNwSXROfz4d -z;8uW#chI7l{iaZwxRei|4mcHg4epM+^m+MrZ>VB8sgy%Ebkx?-QW~=+Ro&Db-lNMn -zPl=pyfvmctk#MuO{Q~~(8Vp?vQ@*e*cIk5Q9q!D@`8Kb`Pqu$E-3#7-=AQArjwl#z -z)+-z}xbB_NxFs5jmH`b8=?YcMh0v#JTsU(!%3W(>rF&O?i1EE1^bkKbd5fNFt!CFs -z&C_VM`2n>Y!d$=8MGknE>Hj>|Kc#_HS%_XcNhM+mH(j5k0T3eNxR1R+`N28Ut}pzB -zdMhNU&Pybz961j^8}ufQ5?~4K8`C_mSxGhq&NNs5>RT!3khmx#Y#y&MIz!K$?@*OV -zm_H~30CN@o^wf&NuFD-apm_$P69|T9jn>sIZhS9*#2c-5K$%Gm`jw!SI# -zSot-}CD>SSR98^Wby-s&UpLi}VmN!2t}=m6$iD7xS{g7`;E~id#?_h -zAt7mQ_{G~=i;5#KdbU$Tcyr;aQN21HlH(x(i0bh^3k8?)!<0XrWJB6cIR<&jF^ur7 -zPvOGDeeMuSgBeZrfEDF4B7Z-&kqY)ktcx#Ut}b4&l4k^=)u-dEp?^Ft0Rg_(>QP@n -z{%&wX*2{~62Myn3!=j7nl*xt2~8inqFcdK2{#uT^e!DGes-tDiA}IPR1duDkj5dIR$Tzzvjcq|q+Nvc|5_ -z-^3r4SEWVL)zte6QWJyJKQEGLWOq4QXC~>I@8eI)$_U>HqjJ2e9ER)sxXCwLDe~8^ -z{3s-Y^nwX!>phmbT^DlbBagdS`?R8+T5_=k+JwRo3I>eqYW*R=0Ry=ar}a6TTe0 -zxa%;wnv~KvU=q96zH?gpER7NJ=U;i4LjoN4t1pixHqHDJA&UVLpM}Q8oGTj`_ARA% -z{cd}s%gl^KDBWt(Vx{E&cAPn3C!)4XmqOI90C8;!{nc_7P$jE9l-6}C0a -zSz`!%?rq1nDnq{WY2T-t$5yVs>s;zxQvNxRjv%?0>#Hk2 -zI|QBY&vscT#^PI?)@T6Jwk2b26i+lly@czcEwcYo4ST)IUD2idbi)OAp^HE#heoD32yLAVd}G-0%po7;=FXr9GfM3=rv|vj(2FMw9DI -z(-oBfdft2C)xZN@8>tCTQN^RFH?t#BjjquW+G -zSC9YJr^$$F@9#S?hi%GZnT9BLVn{nCgJ0h2KD&xpv2CM|eF4&#tvrxXhPB+A5nHzW -zt>uy*OmaMHQ~O-B -zfYM=BHE%iVA^5cCXSpeO73KNEg({LnjhXHfj&A+LwrAJC)t?)h@{8yI?^vQnzV1(b -z15rZaSB0Vrp|o#Bf<*wMBo4~$r>w~eg2~tmtCot;5o`^RbzxT8`V_$N;3QoLYAJ>`;`ghDPXRcy -zwdD3KmMAMP=4@&zdpIgsGWwnO^PYpwEnk4VsWE`TbAv3+BcDmRsmmzW4~XRDaL#gJ%?2JTc5D0K=@B77Gt8s -zs<-;1Y!8I_mXdn>3Y!MxwR$NGHWNfE=FF`Eb2hme7c(Ht)CYJH9B#$^sha9ZXE{lW -z`AFu?H+Zysa7s4F+!nry2`>z_kD~SVX)4-o7CBgK(1Nc-HNTw)@5ZQH&H3q#T>W+2 -z9=;wV>6{s2@tJ=LX3Pu}!1at=$i0#0tz7%0!3JNWr0npoe8PW%hd<=NHZ#BWrD)}F -z7W4=Toj3saG-iDN0;ni2xU7wnA9GrK)G`?DwGaI};kW#QzwD$5E?NRR0Br+A{8@b? -zdjjFaiL#OfGWQ_?TwAtMKt9Az=QY!H1-n+@$Mg}WweUL0C)YCQHI2UW&f#}pl_$%V -z^_MD$z2#;Y`r-(6>$hmds`po-54PxMX6^?+LCc+og(~ -zLdbl7L*kAU)F?o_^snRcci7`9Z@(@RAcs|%>@QSlW&-=z(^&3r4T;V`r5~Tbs(M*2 -zB^^pX0*5?3WEUDE$Z@k(K;o?qq?hqt6&9qxZFV8Xhdmz>7H^7mxVWx4?=D=|?zOoW -z-Ced$x58rW=F9-k#dOl$&@7#Y@GCM>%~(XOzZg&{^>@10U18~q#wVZokFbxIZY97byk_;fPV -z0#n%(l`t{8^)9#4tvv}^Yxu{Z2eXrlL*HXpzhHz7RNIaWO4&zI0Hx+#aqm=L*>p0H -z6pGje;lfo69+rHO9XNKhzeuSy)5NPw;{A!auau_NX+nn2Y)+3m8Scoy8=6EKJVICJ -zKeuYG5~fC7=QQ`r+<{vN4!j!?UIIpr2u}m4dZKG;b=J4S7wMe?8#dq!5U%}(xWob~ -za)-}3uCh|DS8Zi~Qj@Q^^e6{{_Pi9LW`rk>QF%EN$6bN~-ylB&ViPn+Za)AkZV%|L -znR|pkE95<|1W%J?a*sEG%Zlu!0TY!K;thbOGE@QLGz!SgjrtrPxalczMvSz?9Y*kQ -z<+tZbk21LO!?GQg-r%gg^Mg#}-0F`7YykogCs*_8u_c!>Ylk?&hvSO$L++EuyL$^! -z&m2sQ{q$V4EGu0Up5c$i))Z0_3B-~KG+I60P? -z>7RIA&gMRuM78i)id4bBDrDdjb%IJ{1<$*Ko+;DdZK*4j9@+L}A!ly_)MVP<%|LJP -z1?~mMc(&d84v$#9pZ79n0E6%yE*RMaS`(75slQm059~~hB??)whGh>ZAr;9Za%vm{J?Bfv?@}NB8p<-OSo$`Rq -zrD&>{-95g*1MT~EFs3%V__P%3RS!B2o%aK7bPi>I1%cg1G;P&QAzou%wm~=_UtZNL -zqHGtGUGa?`lQudH&XdMQ^BqT?UQA(DSBW`1%$6-1WTJl6T?c4k=BZEF2G^MXS)8gGA-mE>`$bjMnDU$1vQIatTeIIXUdWM -znv8~Wjx&zYI-YLWn#(dR>!<|%2KD%Ir2eXBiE|#MGsH;+fEm3Uq6c(Pof0}w6I9* -zoH{I?BZ?VWy-$XO9#J6IKS!z@pV~nMx{vRQ2;KdG>ndjoU;02!l$s?s4J%d{lfT^& -zg{m@3D(c&ZriulX%TC|mS-BEM$gBZvhtu8XU+vf!3MR%wk>?G+&Kq3dJ?RCH5(n8; -zs;t<)mRZLn`@BtM(#$pIVi{)s=5qtcK96JsxrSH99*zY0?SE0%SeyRZEM-9+w%7ZX -zl4x`zDhm=ZgyG`5!KGf`<0~ZIk| -zd$I|hc)ttLq|K^c%jLpPxCupeeqw7iJ{(qN?ywVC{rsZrFg-9w(;YIw$1vo?lJjh#Sv^}X?4 -z1xX3wKh>RJ_NnQd`n<0b^$L*E{OF1Q`@XiQ@_NG^OV?$P_+K3zyRhtnB8Fe9k+bUT -zAEf-&&iYb=I3oPq$FbetGPwZA@_~fxi+(vN?~U5P$`?F)*b;QBBoH(YYUt0)ZY>Ay -z!;ei>#@J`iukEtt0f(?98lnnQ1(q$RkS{)?)8H7DPB80o$< -zw@Qmpcf1g99h}m*nMv*Ixx>srlLyAGiw#Y2D4c}YL!whh(Pqc^G;zF!b_LYzaBZWn -zP(!0;TS0{b>$9`HZ3eP&=m-Hae|nC{FJ*Jd*ALk37Yl?5M(Js=S1f1RobMBEt%_x2 -ztBp;VUFVNYR67c-BPT|6!a1D;%4$3t%#G>_i7y~JxUUjSmu&=?%Kdb^Zt8TR(_ASP -z>SLxE$&}dF*;6hLO7_eYM@$q@#;UUwvR65l$K>*T&bo -z%BB^E9)e>tfNBdkB|)iM9pPj$`OJcaC)doR1t!;w>SyLi&o#Zy-g+WaaUg7-{1SG; -zMlv_lhe*8_X+vznjjU6BIYsL%3ZQ@y8%UTUCD{J{gq3Va%log9q8Xm8+f0RPmlyNS -zc0XiDL5f+jqM{%kbRs(MU;ZWSWw+w`!x$HPOKMaWJN>xmBKjMFs&s_|QDBbX -z-AHohwd(#eCZI-@_3F645WDb+q;vC6%xju@Xq6NoZzgD*4v`%&^y25WW74kKtvp4{ -z%yEZ~ovHMggKP*G3|u!BDv9q0IvcEC5{*g#`Bm -z(Sa??p`6sHbSY%NV=sp}}@NEz{{v -zcvuh8Cmg#Ii4(309^KlGlB_=KZ`nQ&lZ*e+|=5IN&@%Y%Il(AS?Y^BLa+l-#83 -zz~CL?YkIvbr&$YirH=KaSV$yi()_VAYJ%kMd`n?`=w6-RD|wgmZ7sj3SNYStb+btL -zsP2*Z!wfbw`3?IVP~2&9QH?qoIp4;hhAMQv@)9ggqWgIOFIUIyR-onu+1>M|vd<(eM~a33b*p45 -zoSY@Uqipb4Ig{ttafawQ15XCJ6bK=L!2Xln&OT*nja%9E*bpU+B2iVxw88le$*O2{ -zo$cnxNujg5o4 -zNod}b9^Mu!I3H8`&Uu%+x&p_@I;$=mZ$fKrqs0#VXPEPWV@+RlUtN(!)JfJ;tRNb` -zI)nHyvAZRqnHr$`=uW~(niCv6m9!bMOvAT@q#TC45awnBzOQGF6 -z#d@?`SCJ90s(8{V%X!J8v@p{hO0!Mn0^QuobcB{~QQ6gc3JDE4`sY(IEI--(sgdg2 -z^n0?PMZYC-v#D05D*?E!3NmouaX4J8sD&ZV;EPid{5g1R-_9k!*|nKWP4`JMkKC$! -zdGkbmQP+s&ML|UY2Q0qwBYeE-UD{-+-n&GPGWZ;lpwuuKYN^lSxStrq(ID1p&dh>{ -zu?ex-7Ed923H!^1*)?8uF%uSZ_-Q#>g(qHE?RDmR8N>qN4fwOc -z&rHV>5MgzexU0@0l0ISeBGE3AgtUkyJ!<0;1<~NVMT1si??*Sj__|B4l0N2IIe@+4 -zJ0WVvxX(nac6YuUxlQ|-0R-`VlR9SOzxvBak9za7p#&4s5pt^t6R}`*A -z%3g@k3=04=E&iMuXhg9zhGSLXHeSE~B2Nf37_cgmsgOAZ%Nuy@f-8mWSfx`}k+FGtH9{p*~{>(~z&ellgs6OfLt2vX< -zuB82*eC$It(*-OEE1}mj8o)>o5;QB@+k1_P5F{l3{zh8q4&iPj95V#uG)aRfmALRn -zIRpFyxKn9m=@S<4&+Ol2w{pNl@|dM7_MG@G?wo~2mi8BS+%KMLHdy<38ZC%OUu%)r -zFt9A68=*hk@b&!SSMufGIscWup&pl}W6?&gE+YBU0`?Z!m_{c#5B)8!KD(@qY4NAr -zF6DO*L3F11S!;0}U29S=Z>nk0wPgw?3S~;y)i|bPYi&$gK!ZRYyc1LB$1ljWH^lrR -zi>p-;9gGPd_=kqXfCgdUc~6|K9Mec?Cd@XIl%=7BI~J9re?%x-G=)s%pS9kf`?!G8 -zb7wY~8+(C>1i6!uyws6z1hkFp1o=K22?B_tc$JACkqX>wZOE6`n^pOzuVOzZgqlhS -z35M~+ZVq)FI=>nsfD|Ln^r1kds_@)^^=g3##P=c1gHTp(6@D4I%p#sKp%xNT=-$PK -z#Or2|$EEI69&_Qrf(=K&*3Qu`Si^&pCUJPWw{H1~y9xsBhI8>m&N{T?FpH~R-c2(8 -zq;-1D&3#!FkGhv_w#MAbd-LULGN(ej>Kl=qOYnnibD9^ -z&a0{)urvOf9GxV(lsLP>LYG6``S+Z>vH^1k`%Aw)jnXqcJ*+))VUAz|%t0S*m4bc7jYwhd)$u2M5 -z{$`rja``tko7PgFID=!cCt?@erjh|U)@8~&1|eXkw%Qm_I)N4G$#aSW`LAjVV)Iqi -zzeL+Z@(TQ)QOtA!DhAke_UQ=2>%h9~FXI*DOB-gH;G?HdAa^;HvkFLQXIgAzPjxEKh~SO>C7MP=@fm -zfYBZ0Fn`ZqL>nD{Zj(oUD`lyEqYqmtCg!dPv7?#{?>DdrKNJN7iOrp2U&L#)%-$MO -z7FB+9DLVFi8#eOve(Sb?Bd6`*^|1~4X}v(D^BR40ckH_P4}xJL8|qLBHtW5Jh3Op8 -zeMZE7fO4oDBEg{RAY?5fiMG&d7k!t#ANH1mu!0?(Lt6yaWX(Y+@)YX)BR*!bp -z$%P{U=MLpf_f8ib7y7%Z$SR%*zmY;&skt2pIORg%PFHedX{6&q=Gfe!|(GvMcjev@6m093TV+1a8F|kb<11{or2m=NaKIqM@V31?YrhMqA}x9p~~mvwmRCGRwrtfjO6E{t{_V -z@3H@B)#EgFo}9X~_*PTukLvPE(>=yJQi$%H~$XkV8hSpXY+b{Q{dS)W{=X!2+t}=)Z8Wm6E~6 -z?2xgv)*GXbXz+_z5Rq_Ru=*&xSuo^quipdmEocP62u46D^_~T7mxB*}`$;{gTg>+c -zm2SNLX3b~4Y2Qv#0hO)C4sB;%0GU5YydA#o3m@{C_W{?0M&1BQ0`~PNooL>px5}&S -zr-Qq_BmErjpvKeLvkBZG$`mwL)4QG^%rWs -zn7K9A4as27a%ku3NcuaL53O)*zR>>A^$UmB#OMA!!sp}qgaK3ve1F@Cgz}Fy%j6JH -zes+a4w~%MiesPr#awIU@nOFpI0@xOp+uvS8kINqq&4m$zj{7b51|%d#FDe2{BCq>0 -zZr6>Hmi>1RBdXfLsCx^dUml(A^Pw^IO_%?f)um*xw}Ekapz;Qni&3^te^*GLCO-Ss -zDk(3ji--I5Enr7?Cs0FSM^_GNEU+|M-?xB0 -zdU}N|xHP&{@B+EryYMgiJ1w!O&xWCP>`nkWra)^--U~N_3+>+C3({$j>$Bgl%} -z0kE*j6Ta!R@MYEEzTl{#az$j>0}k^2yLeUL&^lf5k_kggjD*Y91p-SAfC;(dLg6~d*R&P1 -zP@2S<(J+=SP+y1imR`Dtj)|N(No9zokgA3hnJuy3Yz)X5cv(67P -zI<_>b)2|U3F|e&?k%{dlULDw0sR+dmoLBTd^HNO$*5>UevOhkTyS*eN3^B5OGg0gK -zlx_-XxAe}=hE;H<@4iSvZ0v?7fsRizsmh;0zF=f_Va_1b>ZWl1L7F8B5sU*0nNJ}ts@ -zl>AQMwZ}^V(^!iEgeD6C)4r7LYjZPm4gZYT9o}fU`ah(<)?C~8=k9Rqu5_#Qsbsp7 -z!xPqVU%J$Ci*BkAboqbS7IPwd)S2(q;-b!o{xxB4{SP#e=cCH`A0n5%= -zto81Bf(wG551JN5?}g?>?^)(VeI2f0$){JaXC~OzFWBrI7HkU~YSpp53Ktk!g-?t< -zL)t`*;t~B5Z^oZ535G4yo5hijRw;1b*XZ-LrWt_?&*f*SwH7BiHMH^=Uxj>Ge8q^2 -zp4xPKvr)TzPHt31`nA1EJ4G?xL6@L86RZXMVQ^_ryympH-F9m)keA&C6&bzOV_z2b -z^@TWcd9`EPKijL<1@NRTzq|)T2&13rskJf?%J@Y9L;bS`?>7=Mc+U(0^|M1TPd96G -zD*djC6JeG)o3$j8xAxT9A^^O>ZHdlWt-?KctZG|unD8>PwlILW#0r0Z4?ZD&Y5%nd -z(l&Yr7c&tB?Ce|Nk8Z&WCxm<(U{D2am^9b9Js{AV=V!W=0qaO@TBSEn8ZRtaYowNH -zNeFN^Tx;{)o2Q}Iv7nl;c7lJs3*h9eChqWsCzC7dtLid_ju!66B+oK-Y -zvL|(Fcr=v=GRd>a19gE8+U=B|xA`vq1Hyvl`Knc&zUE`ycT5xvkoAh)MuXn%vy6+;}8iS8ZFI-jHcFIn^8ReZdMcY;NZ3 -zGG@5g6Wqa{|y1BY7{&mr?| -zg|8#0q7f-6I!z|o1OB*%xaPH9-rnXzn`wzdL!XXQ*x6%@SXU`R6IqOnm*#B4cbwh& -zCN_O;6E5+3R>UG+eBK+eLoC`N1uxIC{fx4|)<$Al-rCgqbz6G#TZZ>k9sBRPv_xVa -za=Ji=A{GNjf{0yGu`sfPbY3E^3J>bX=;!cTBsQFOKY#ICzcN2%?=yavqFd5w -zzpK6dhY7#q>4%6J8DN_a@AD3Fk8$k8)%oEv4BJl>E!)h$x#ywBtbMk}PpQX`D1!fc -zqU)#Mnd~i@>_wR>xtT$_{Gov^{?wa(C7Yd^+mZ$8D)st8aVQj;BUT0@D$sNZdu|9w -zn6fmxvh`ns7yu!XzyRmKK(6yg4%c|wEd$G~2iS1V=rA^7SZ!=L1+<01d2Ymgo@KpV -z1s{b~XB~qDA+yM$cH8H++X*{cz5%H!YoA4<*T0vD9-0fbrc@v@8q&#^GCW3JPCWg@ -zOBoG96iXRb?0}aOJ_RD8P`EktT6+e^iut;r+~>#j)L>gnk}tDejLr;&iUBG%T~ty% -zgB>8fjLfg5hGSr`cX<9c=5e|Gd>P95$rAc!J>cN{;Z38DU|K^%HX_@@g<@IT&Y+(s -zWqM(H?@%x0;Pmhj-O!+Ac>d4~1+P5c^70CujjjHPV%cH#zuHfssqn4qm@8sQM -z)NQ4@uH8@lHi-SO<4lvkPk{MzeAI0|U>zm^S2=e4(^pozv*F*+d6^k!_xObRaLCgR -zsmv7ybj}<*9xVHtKi#`;gjCxb@jM#F%9oe?!y>8+FMIxahKPb>vx@v_FW^BXpm8+vwA= -z_>1xo6%69Nf-e4nIhY4DN1gNAkIlOO{a*fa`?&IO5#2;yr#-FWz_S^7XcwKLfY~+f -zU#qch5a+E)YWl`}Qf0uuzc?u5$;?+}5cvGRl$#^8;Rm6Y;d;m|dgdnc@{rDrLc6%{ -z)S!P!5?IYd=cxQognn8fcSCj?7|J=#efm{NWufxFVSkjmYvv-&vi}^bIW4P^Una3N -z5Hj}}l*JafNNup|Ts0fQYh5fbH__3PnZKG;{HM`WbL9d$WIia+*YmB%QnpjquCIBp -zMe!>oEUVN`HmUThG=?AfShVaDezw=187qryq9@^I?)#?A*R01cUQ7Kco$!K-`4>o= -zF<%dES6gFcxrrDV1^ICwWh+u>mWJ{%-%CiLPjD_gBXe%T`@bxjK$ -zEvC=U8)bFC%OkQd3D1~fP0qP-NJ8jSk*{|cgVYuq_9^6)9@D5H6GC}~GHkXO8 -z=(D_sOxNE+<(+46HDe_8Y<<^T1f$9jT(9p9sr0EAA#z54{iGL;P`TkH+%#JodiU_TQlcSSd*JTivkJ2f*dw)Yx^i=x}S3|W(b|v!nteyae~)uv}*qmE7x@b^Dj_Vo43Bj -z;dxgp)}^n0`9I>v#N*W7f>o%uKFQI)kEj<@orr(2_?*|NFa9Io$2L7J|2o37^iK?) -z_bswRf&^*!diGM^__x05L@;?;!-$M;1!Nz}9kZx>37GDtlbm8);`xi%|Q-y>9{~QUO+H9`;L#&0%#U5S| -zom_}E=hKU$FM%e1d++OP&;CUX5H4^3hlW-ZYGwY@OTDTiz4(V<3zaiHz91(3%*2Ke -z?JEC&U9R{iLc4BLfAC_uDeoG5ry#Kfoqh7QZdg?W)W=-8;!xx2-(yY#pT!&e0ZG7L@?rbYdqn{FZNX!{G^ZS(R2FNR}xG&uaQxseIha -zMtELWDLQt}t=eAlfn_U?`K=#qnbd4bIw -z>{Tz4Cguv`tFX|J)qxl+Z@29A-{)u?@TFblQJ#@Qm5v!gp<7-Ku=wh+7iOPfea#2K -zCP_JwMFh+0m0G-L6wY}ZLt(_d&cdF5S&}<8MXsDKk`d)MbN#FX -zlTiN19|jqNJN)TUNu#?%xnt*RwnukmC#fwWrQHV=us2{&ur|Sn5hQ65H>(&>{61^R -zUfKQkQDuqVp>lI(e=7~2zU8YRDyzu?05;w;s{FPE{7amD25pI;A6% -z+mVZ(J!U0!Ewo_2`7Fe_D`}rDgUScIf(orEw2`>Wiz1}PFZrpBMd#A3dA)vanda{_ -z@5rV)#x$Frxjxe5Wv0NaIS&TQ3REVB+dUbyyx?bAbDdtT)90kZH>Jw~j`?u)gYKY` -zZ{x+G!0$b-ZoMIDvu<_yeKtR}aq^>R3+!PxT9&*dP8Md93^vNz#I#vBoMLpN!|3Xg -zrGr416<4?5U9>`ot_CU3a=yD>+@^A0dBZG&Yx|@?`{RW`k?_snS40wFrgvb$BfqSE -zEp=TZA2UjLM6JsvEU`~uwS853F?QH8X7ZwgTpVA!K~hKqUQa)Op_ac*5l45Lm=(Py -zO{~Qt^h;lj@ea977(c!F@e7U@ZDH_-xv;hAi}`_?4@5PeFHgV06deIe0XfGL#o#os -z5ODT5^D^_zGEa$Jb%O-)hM){0+NE!>*L`tEy^965<#oqkXHEAy=-V^P67; -z1u4W;-yyF)>N4hG@0yqLk7z}};6ejWz-i3vvlm#1;(0vj{9Z-$sYlfKF({1UY4^Da -z{CxWSc>cV-^?3MvA2XL9(AsXz7J%n0Zho5cAV<(d@B|ararxT&o7tUB*DAq&Fo)S) -zDO8uvrD$M$^L3>Ak;-%<(mEiy^NFA|^!GfoXZ6mv91rh(kvHQ9D(?cNS&p-WcyIKg -z{SCt_p20ek%T0<`1<9P`%7O!0Ir3oDiAS~rrEEp@UJ`n{fE`Zy8Qnto&f`ZypM6pj -z+dPh126t1pTuF}R`7m=+t(lY8Uys=3=Ff6Rrgg3pl=E@qa^(tGFO;=fC(p9Etam-T -zAE}$BpXI(^KseO`gXT>+;|(b_g)?Ofm@=o;dOeyh1TC6o8}E(O>ZmE&YwTooadfo4 -z1bEbNme1?m-m7>_1aBSr@}EYMf7+`l0W6wO3*}NR9!E<`_;#Xah&;sRf>oq8{WYuG -zDIeey?Y+5aCLB-dxt@fp3S6W$oWD1j?|)CoJhy=I7%S1W#*<5C{&ZQC_XITWGc7)I -z2amMHTe7!EA6A&n{}9H!UZG&sq-X7HT2BA3cIukq1ikz^SKv}Kk_dm-D&;_hJ6x>X -z0kNK6q_pXfB9QcGoFWN*>nHu6RyH!zEr!SZn?j@Ubf@v}agQxM*GjB-;SiZm^O=k# -zqU`#|K^LLB0Vnj0lnxT1q7RSv+Bh6IkC1eZx@VNnSRI3_%aJoj3?D}x#E_Xmr;5H^HD3TB5~eNO&nZ-CkXFa3 -zbrdfBq1kC_x@p?BTxhsa&eQTHq3G^};jJE3TR?gR=cW8*HB+4|AfUQ*LOSotKCL}_ -z;$0lDz5ulMCDBPir$wJw;wL<(+mloSWGsR -zAqG@x{Zo(Ak*d#QJ4Z#O$N-Egr&zG-eH_7kj}8v^<>_=08_#m@#XImVK8qkGHX3cq4s36o_2CoO@F -z%Yf!>=51uJLB`m_-@o~@VK>B>o^Zt}d+JK6@R%Ph_S8pBf0NRRZ!GZBuxo^H9iMk9 -zhwV?FF(?6Wcm^^uXB7)QO9G6j^hG6 -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 -z+*I$L*okaUUsn|H$B -z0GH_XMgs3?rFFyv_v4`Al~PY>%VLT1l5AqtlzbT&& -zo7P50Ur0*e^KuA7c!_Y}ii8szxoXo#W}S-n>S>L39_~7a3rb9h+ -zUqRM&c7qQe<6^&*&ssoW%F^@>%6)QU6JKGVpBNj>ln>ydP$S -zKQzCj_`KJi8}FEJdV1u$h_-u?;FQJ -zEWvSXx8jF%g?24s>Ask2rR(C6Xm5OH-3rL=GU@E?YrPYaFy3e$D!U|mHZ+gdP;UHl -z)Zjh88EF?Gm}T(=;J5W2sJBIIH?zjO_bmOmT=WdM4EX)@>`*L`RNeTF787q;L|fMQN4_Eqo`05(6|UPt`XSrEt8s_axdg+RnlZt0 -z2pwm?^^l=)Eq@q -zKqAy`(wqvA+iBFk>!zStJXtYE8tX6{7U~k(ddCQc<7}!DHOi~UZMYdPu*KJmdgM0! -zNu#cu%Nh!KV)Jf{h)H*H@+~;~d1F|L9{A^=JaAe$?qfYsx3*;P>r(egWd%>xwpmRZ -zQyv~Z5Levv$h)8hJjec?24Obg?s6NW+m1`L$@it7#OywL?$R%c5Rlj@386%3lX&rp -zh}RALRB|pIzWOBZPTTs~UFLiLl_q)4P59+L5 -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 -zW$jVnOhAB^yVsuXoa?@*7`b`(D(FDV%l~RG -znTb=oKV(`8XG0GspZ}A?)ow3DLhhd6K!O7FhFj}_U3Y_^DIzzgooIkhp1FzRBcV!Q -zJQ!(KeTqHzWy^R=aSSAyHsf8ySVtVdK5su -zy%ehkUBf}cfQ5mh2a!k$jnUr?AG_}b?alAm45|x{jjt}RG=H;7`fBp(Z2Bb4Y|q`@ -z%SAf51&6)12joln19hcRG -z*7);$aYPigBMkWCTwD8=YXezAgW?(AfYBxN&QMh%KVl^Me%@sQ8rgUehwV41hGft_ -zTPbr-Ck?+biww_AOS-i#6lQSre;guv1KwEJAV1FaL(0QbCz|`kbo&A8MN?-x!+Voi -z$#;6~y4RFuis6MVis4#|11N`vX9rvb+m~qvUQ4wDtRr7Hy|RI%S7Y1@;!_T+^Gft# -zn#cHYet@YKr6k{5DBA~ZT^s$ag -zn&73>?&jh>Ek0Tkua5K3+41tNDL7QmR|8wEe@S$>Ir6%B8hY%4Uf(JBTaf2fzF!i4 -z8@*!xR*@!b_ph1H)#Phqft~@i5tw<^ZiJxVQoE~f-S^aIky(uRwMgPjou%o+f(lbe -z>ud(Lh#+VQX7*65)p0mzr~8{b$nT~qMcx6A3^3?dzn|`~uxmkCK%;C?|HbOCP8PbH -z`DG?eS!zM=C`E}Q*j`42)>Kf)=uqy;+BMO(mNm0d5_%_;>Owm?Vo2&vyIM9Pl|lG6 -zt?}!Qpw^-LH;f(7?vTI_FV%h}%Lbxg4r(Tg_y~E>8P`XJ#L4KLQG4FXFI%Pvk{+#9 -z0iUh!TJgiSvK$el-l}JfNOGI+Q21?U1HH|^5&S3MjyoO?0*YgSVhRln$3m*8LaGDf -zlIn(Rx%W&@Hu7m4Scf)fZw^}+GYX<%l!r_N!a;E2nMF`AQax8+WnW!;8zHuo%MLAP -zB%9CXkmqvG=HcS*mckvzPVsAW9tI5!eJ(0Kni9^B~)VRdvcO-7vYX@&QQmP!I -z&9+aiqgh-dQ@=mr*{i(rdIQ#Y+5BjMS~V*uvv#GL-l>)RvZM0%53;kxxhsny@z(Yx -z)2BepB-gXg1$*Vo@gDcYjttN+qu-n_`ydSYe8nQK{|O**-h?aN${zu28Z3C47`$~Y -zGGLo--^*Ee_|nFK-ZZ{?J$?eV5dSlQwxQk9cQk6w*ozf36_|KVlL) -zZsKw>;S(Tt^2VQ}7L0vrC|N=m2pV0jgG9aY*5oTOaF5+YX`+-AfBVc66Gro^>er>A -zmr$}pI`C9ep{{DNNW-ZRs&y|oalolWTh#Welvb@=-jT;bL2Iq#i^B%A`?4TWhF0r< -zb_XS~TjL|t?pPPhL0B%92oLwzui>@EKKrh#wAp|8BTk9{C8cnV7NfpGP~C_3SG4Al -zq4#IKfY`=FTg~S1)UkWDo7zoMQbDt#j7waDPlJr3>|SgGn_#0IX%MeMcbAMs17@q@ -zOhm2}$B}l@f&E!pQjjo7@PEGJ<_kTeY0aiN -zCYDGUcZ#-i4c6~We`m|m^^6=_*_^oi>I(Dg^E48R4fQg74EYY#V?go(P39Riev=wu -z9a_?$++@Jp5>MY0#7aJMGlIR5=X5;nkp*v)$HYoObBEg+s7vRLy+(F429eJ0=)T)+ -z7-BPc9Q{Sg0$TB4vSu4U{*`=DS+a;z1L^u70E<9$zap0o^vtO(9nEO}&u#L2Cx_d$ -zxF_?4uaV7vJBt7+*$5Mh_R_s~QSsMZBSmZIe)0=dyE`+dg%7Ws#uEm?Zrr+|cHN0s -z%j*}X8H~I#>ETnDRmlIM+0&!hCA7{(5|x|23BN-ZMqP2W@Zz*-$p)vD7lvmUNq|f& -zH51!f&M_A)D)nAcR{nYUUXx88@8op5rh779_-u8vC9DyXe~IY;W&#!CqaU8{=n#h|H9n5fo{u(mjo!X(lHVjy -zS68a9$lU)o!LrthvxPUaEcKl-qS~r{L;AT!=dWLc(GM3jn)zsYqdBZ{>gSAyO}3Fp -zA~RQZWOJ%g)vF0Vy+gyh%E)W$puNWLt2=Y)TXuft`duQjOJ2(imi6PM&xKRD^o4i7 -zOA69m+8^pJj^6!FcWvFZKhUxLOm}}K73cJNBV9PTYd7Mxx>i|3n${Hp@c3}7d-gV| -z;ql(6V?a`vtpu_4U{+mXNYAZPeSN50qrEAb`5mrWWiE-@RmOCr32yn9)In5u`TlttSoThVNBH;+ZtWU+eS^4kmt^8INEGR*(;3EuWIzzul@qt -zS;^+-R_|r?!~ZE8^`NV7{t8L8G14{x+32H`(`}=q|~f@(1?_{mkgN -z%OB9%#{9)KeKO|os-iQ%_G`X-jcBh{qZmP**FR=I+}!@I{o&@jo7Gt#YH@~Uvf1m#P -z=Pw^Wd`GYIf9dtV4Meky+WpMUuMZ^sbB5b&pi -z-RGK~UzJvaRM=_V%m>9@9})AC#W&+F#vwLPJC -z*APpun~2_K33YWEYe!`v;QR+nwmm-mtGF7Ehl|eR^>0KmK;P)z&k1Rb6Lke1mCSJfm!|e{=l2d|Uin -zs_ME>@pXw(AlJKVlZxx74tja$k9b1SyQtKuY${SJFW>6+sBIho;S_hJd^ZM) -zCmi)`Uw--*#fR1Lhw~nuM0q;VMsP!F!{Grxzq@oh&mZp#24yU6R4eUN5iO1M>FZ+0 -zeC6UX+M^OXPeDmbPxcJB2v?{B{v$qMFhV7gyiwfGdqP)Ya|H}l)h;q87O1ZO&@~*% -z@VBa#o;){KvH9`2-$->A7t&6Zgw5+TEw9I8y*>c_v%sZmQ!`oah$Vq-rav3?AW35R -zaR2FZ=sLK}oTe}T-)CN1SXw{QWR*3M-?$!<;P~3eq-*4L+jR0;mG$)th9B_L(th{5*3iF<+WqiaUr37mkDG|FGS&@=KZqN{e^s!!S$XY8!*kyAzhnOQv2N`u -zo-qGQzLewzYD3wKa&~~|M2edfBg5G$9KOQ(~sXRQzVPN3t!mDHtLAPM=JgC1xWrZ8a@(3 -zmnGOg>!10}|K~SXSZmSker^SQZF29w{Qj?h7U`eOzwAN3({a))rp{-@1}><}oZ=ra-A{IN*(mwW{MvkiSGyuJM;JGY<0JLtI^T`)lq -zb_W2P&yE3Q`{}4Hpy~f#xcbdsk$yFicug -zS5018dF6KHJB)4i30eE-4QBYjZ`|@h3xvy -z{Iv45JKn}uFPDfJDCX6 -zMhBhtVws)(+IFwK_ip9ATHVV6CLWQ=x*&KDQ}IOAhLSC$rrBXWF%MZ;XEu{Sp6=H!>rF=nai)$o1=g -z`iE9D#I}F@+7soRjrb1;YmX3e9xYtvrvibPGF@#!ADU;eAV`Rf$R1PH8`fzQK -zSeHPsxfXF<-$(C)g7Leiau%GioV)tg&ETzHSpnZmpl$x+yPs;3LVll`siV%8Nm;i% -zkR&nD3l?A772;}o6 -z{G65Qb-u#vuP)@hm;RIe)Nb=SA6jrExZf*2gjf2uxVpqC@>(Aw(WRD+%~EyBMEK(C -zug^lI3+G_5$&^C_;vn48MWCL2_Ed}OMYYx%+8J4_m%h)2yZ-U(592r*F8Yf)z)oo{ -z6nl$|UH&-aMz&EYqfis#-A~iOY8~4`K<&}T;4VCn@6X-b%Z<19^5)y`95gOHKpQW2 -zjfhts>4>nRViG^{_pafQsqZI?H869DI~BH?XV)8o29rJi{Ld5JWv~Dj&{j*^A!B*6 -zZ7wVI@ZjQ$el(NqHb*IIqS|{2EykrixsfK}Qud-Njf~1w?zsIGXap}taAwRsoYGqp_{ -zr)QPx8qtrE^R}){l20DU)h@T`={6x?`Kd;e+T3O$aT__???UDK-C&QWA>D*Ur3m`d -z{J02}_bbB_Vxb!u-vp8^e+7*)MXbB_D2pPNo)6DPvn|Lu(#f2kGxE)KB~Lyqlm?n? -zU2>&wb&rzMHDe|ZvT^~UOY=Bzu>m$bt4zt%^b7oPffmsX5aUU_rr)4^nljEe_G+)t -z^ur$P^^9!U3U9fz`Mt|4nLc*a?Ux@cwT>rrin-ImLn{y1>j-{4Kc(`7WX2ApJ6R?W -z_nq>q=G#9bZ~1=ywUacF57|9Cr9!oBA#1cNIPA&bn{TC4lo -z_A7e#lYJY-?IsTa(@)EL^|3CA_*u3*znh6nboB~X(7G^%wf7WVJRhKuBK>eP9AL)w -zp*XY+HgItSwHHY)&Led$>Y6K0EWVwnCMhJ%00Yc#9|?*`{dv!D?z{TvAiwG#hp83uF-XdLcb}__Ibdfq4;4ca2 -ziC_KepR(X4PIu`_CgTg4(io!#t@u|ApGoob3LGM7nUj{~#WIC1yza7Th#a~=ax -zm -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 -z5%j=Lwm@1i#d{bhM&P%l5@v@a~6SUngbC -zlw8osz0UONLNux?U-5ugk9qBb4=03L_5`zSj;j1lG5b+GYd3y#72iimBiTIk%|8n` -z(QxjvkO1x_`b$@dBH6s?u -zTlnY4wXx^+t2z)t?qx}FSun4kKg@mYtmn5vPJi_mwxGYr2Q1i!*xYvchnyw%6bw%$aG9^0?3e-3zW`{7(?osmRdcBHD~ -zPtv1p%eVOIP_@Rg>UY1qT` -zmcm_Dn*V6UJ^!~Z6itzDk&3-jslYFWTg+qRdJFABeXq_lO+3Zpunnv2GHOJXl3HTl -z3SF5)3sKiFCDpV`g+27(-UJ{%7OLv*)q_Qbrrwdxk3D*f8!ghKIC0Axz6r>={qX5K -z`eAuXq6^&+;O?DYSu_bD8;mJM;ak@*%q5~pZCfIO&#WaROlUh;Ai=rEYc#cCEWsRgMLQ{@ -z`qbvG!;eX573o14w>`8#ZQ@g<+~Nhvg=}-e4{aL5jfRHnAtcz@+jm9XB709NcY=+% -z6Qs&xKWtmDTDPtB#XX9mKzm->UkB!&+t6Q&M5v;O)q`s##!J*7KaH-4kGaM`rATsG -z4DT6S^B`D!dI+sZl%(fqWs*efmB7r;C -zU|KYoRJT*n~h?5ixpn_9}W_1*r^b*&-V(L-%GdKjRmmjPfzo$j=V9YrAu -zUjj&&UD)}RvH>XC6FKQt?7N<85p0;f&I?PziSdgV+C?s1d{#yy-su=YMy{n;Ld0LD -zvf_oP3P5dd)W$@?UhYsbCGOhhWw)1(-lC_rq0gtpOdvnwz+<(Gi;g*CW2?g2nV)Lk -zL+`lb -z$Q61MT99+Mv%PfN2p}R{0hM5!0O5xMNu=0OK@tdB^p7WC2@Df>8PI`Nk&}QcPe-V= -z4ld+it+f(g(He_cbRv~sZ>eKCZQG#F_ri11-_3^`?4+X%2`M!t -zkuus;X}7OT=-&iMX~K~2pe$8{3+TQ`YSgY{dxDcs5DHcEUL}q;fv+^^RL>;PA7|h9 -z)Hb24gr9>X0jVZ-Rym$pr49G+s~ksElGYe^X?k+FMw?9v-JZx;VH=YY*=%$YD3C5I -zwJY3qqE#hO^Gp=}zZWMT8Ul-=2A{Awx7?Y|?ew -z2yCKG5_d8LA!2{JBM7sb^YPoyXnnb(WuP-@8({99c$Srd@u^&)uj0uIc20fZw#SFrMnvmOgfI8;%4v8Is?j1?b -zDva^^he*B>q6L0iXqtZ`0)=eE!^w-rUgxM;hK9&tH%34bu`*-8VvmV5Z(;X~Fg<}$ -z)7^KPxd9G3{1AX`Ns?0+&;erLK@y5IkfFS+d~$$M2kd~LL>f$8cr1YYN27T;qa@iY -zku;m|Igt@LPr>Y5U)cdcX_LJ(u!WYW5?Hc3$enQLh|as_;O^3sdnvKSJr^W>*VHF8 -zOQq9t8`|)cNFj0ffe2wm6y54bCcd|Td?anIQM;X^6SirnKLys-dk)z(+)S9Ti%Yr08(kPFWFiCD&kkgUMa^Qk&P^4H8fxsfmNEF!aBv?qZs -zZi0|g6YtQOV{xA)Lba?~;0Ucu8E^+=jihuC8$oX>hpb9A5bw?SNJ&rNplK4LWpzN0 -zWtMOYXev$*vVZ}fI}8z_ed)*V?v$ke+Zi9}I7kX6TF4SC(<<)rNi5My!m{iNZqCb+ -zC&5{Bib%U^2;T6?D9Gg`Wsz_QIRaK0)s;cDYj*KfOL%vpSr~fEy?|b{keWt%3JcIG -zapK8Q?G+(DAl-u)NHw1y0eaUnZQ!Qg>@#{?Efef(tg$_G)#9Z?51j4&{k -zq#pBHXch1`Brr_4`RuhpzN(c$Amv18l^gmX6K!iXD}N{V2%T_A*P7&%I35tBz9?u) -zwen1iXg`#+#sM73x9Y)xIlxe+U`2#&#M_*ZMjZR(5Zy^uq#-mBX=L8Aqjw5Sz(0Th -zM2I&0gwj=r;2|CzlC_-9cCXw2F -zv`;3gNl5ZA-0<5W&4I-BgV&IlGSuL{+)BG8+4XpeHSL2VumPR|e*jDcIL^cYJ|W^n -ztxrq%v}Zo*jXtonz*bTPW{v$SB+G|AWh3%L3x?kJ;K{EdVZ0{#VDIBeT1QQUE6BYi -zQDmZ+vanVj5G@@94-`3a^o=0Fslciz+r05g1K~1ZW!FgVk!{C>%nKQSq$uzm03%D< -znWfylAj9lH6IM7G4=Iw4K0uN}th!@+88DxfLgHMoS37KG -zE7DNtQEhcR+985d1YDD5!|%DBqO&=Y01?b>0XztfMC!Rnu^l{{`YP=>^_n-rCKnGfV=(!fFSn -zY_24VT7+qB)eU&_`rUP(%kA63&p!W|M6V&Wl^ -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 -z5`=liTkR!bTWY&LbFmTSthZ>Mdl%vt2-L -z!v!&+N{+)QMM4uP6)CL;KaLYS;7BAAMhgg`YNQX#`v_70A;z0d(}*J}sBV*oF{G<+SGiLb&*Ot3-%D2u$|fI05L+8`V{$##kd4nw7cWI(YLvQ)3?jP1S8JizSND39zIZSSKxofEAvBD}yFIlCiON -z?5R=OF5wOdmTBd}66lE{LFg&Za>|Bam&oK>GfY2k_0CLC?+1kN5JY3TU=Px9@F%-SuhMr -z7zusQS|MY(gKz`pnTys$urNi2P|DG9!Yz0>tG2fU9z+|3bwff4ABwvNt7VW5QJ*{# -zmQD=icw&;xN=`BH+XnH<7Ngb9xIXa18v(m_pD2R@=B}S`2r$wRdsN9J!rX?l?$(H0eS<#Af+vHY~ka#pFKL#=n=alu3(R{ -zp2`RT&}#2Ypfb+k$QQj%=ZsIV6gfss3M~6(2+#~N_SkkqP*yq=R$nn0sPK;7!bR1P -zvII+&kL+eyHWT!(+KUQA##4E4TbGl#d-OoYB%6tl#Wo;4$1!lg7V=^oqBVqEEV`W> -z5GDHtNicMDLxu})9_QbcIs{W3YpoqXF&vBd)Ou0Vrt#P)HS4p`9DF)RuIBe3(lycr -zxmTxUK?heYAki>uDs8 -z99AZIBGuhXU8LEvn`odu#w2_UEpD`|7RGZO`{Sv_(aw=gO~HYjh(?kAi%j2O;OfOe -znkeC{n`;o1B9mCDh9onh^>IitgsTIxIlahGMH&^7@o_K~6l#~mWE -z933=jue~>yG?t!#Kv{zEf#y!C05?F$ziSZ7>3B$T!PyKC=JxZ6C?Ok1`W)!HX>uCV -zPGZ`F$cY9nt!Ch{Aw0-9MH}hRh7=W736B=&O&V5OFE~Rg7>4M;6_-6bm9bCtv=aNS -zag?WQi>|Rx2bkW0f;p+AYjZj^4<|&WTDEG)lx5I%PSI_k)gY&V6rU8kt1sr -z%Ey|ujb&|$Q%)3NzzCRZ6O1tRwiI5cAb-8x&EhD>Rg-RzgWkYS06R{4GJTA#&SSha -z@Fc2z#o8gKlF$x9IxaXRv=^n1Dr=EPW3E7i@SB6CYb1KQ^|m=?$tK@{f|Zf> -zR&WlB1xe4yN!o9~W|4E_01?O0B5a}0Iz7UF+p_7-%k&LGo=Nc|Xmgi{z*Z-s$SpB6 -zpZZ;h6YYzmdGx8hRP29X5^7!5v(RM^pTu1aCd`2%mfRB{#-v5b3Nib%KP>;zFuO)0 -z7BZM8p-uPhk`~e8Bm~F@uMG&Aggt;z(e-q1J4Lxpffnau9Cea+AK~WV>A^}Eea&!d%t;&Kqy^BwJIKD -zWDtH7w -z_n8aF9J4D70j3kP53Eo*+jF5Fh|9I4nL1Z)zz+h6%)T$8#-?7KD)+*la86A!Q#hl)g2onZzuNZ~gq)xl?ASBhv6tecc8?Gy-7X`uZ< -zpK@NNTpSS8K)4t}o2=3Dv(+d#*nrL>6BWFKq&%@Mr!z!IIOx_{21daZR1!8sJLNY; -zUXa>Zd#KBi5hzbnveAx{7@@w~_=yQEzSDba_#!D)IEL41wx3rNc?~|%X5;OY~ -zau%I1q%(-gqzn-(5y7=OeYZa-!T~0i2@$QLJ;B^E6puL2k>Dcf7~gvNmdX85?0b6~ -zsTDg;K7qdFGkM@tlx=Sbm`b7F-`rR>qY_m>#dRg<6fLGpNB{&nA@JjvKo%_8gO^*u -z7zauQ>FlYGpFvW?(1(|)`=~q(JY5zfXjfr48<@Q8NC@KZN-r~ZfXRI;txJPR7@Kf` -z;11_(^f=8PwsIII6Y0(b78|f)xbl#^7*aV0$&@g;dW(on5(xS+2hRJHL4z>9#ygFO -zDMpo&9c0r2fz7mtSez0<0B3c#GG?UM_T*AK2~!T<2MbcLlTi;$QEyt|EMgM7e2}YW -zX%Af)vAmYcYHzJtIgAa&H6z+85`y?|m%}a^5|ij04!TLk>I(uJeAI_MGy#9Gy0b;K -z@`g6PNMV;EdDMw3u=bN`nW`Pa3Vd{|4^M!*iT;ZE1ll_t<2%4DV( -z__V5aP;1EfNpIPuYL6<;WS0)?=^0`wQMk&*av(VacoP!ee2xLL#766oFi*4}F8>P1 -zQ~Mw(f%z0FDV^k@j};fQP)==uwqGEqnd3Z7rQ49O%P}9lL&plT9?nSU3|TKU73fAb -zlN_R|Xb^zY!h0k_2xfIkTp&}wS|W!#$1q^nGKn_{5c;ITQtDj;q-%ko2om+&lKC=; -zUy;o~vB*;DJHj*21)I0Wl@^kaaKrLtp9ut5zb~8#$%f!56oX2X58;7N;6cYCd58!o -z>SFAhV&FxcsvRO!U_|!mt|an7n{qLyj+3EQc-g_7?1KnF%S?Q-ruk$fwD@TGua1b^8L612%vd}8yjkCn86hd!QXW)Nb|gKSG2|XO|HB|b8#c4TDT*C~GABy-Qd?a5iDZJE_5vB`H{rTrkCOu@ -zE-gkofO0*$4-3!hK_zzx(WuFReqE@dW53RLt&5B;26iKJxu;o>pyIXSCP{XKJUyaD -zDSc`mMAclG8_J`DMX{m0UBSUw?f8ltgC6e^xsAna()L^yda&Um7n -z-qhE0vpdF(v`#jrrVq)11_0r+ -zZC!HoDS|>Dg)r2NiyxdK%Y7XS&t2MQDv%@21UN4dNz0BGW?qgy6ODB>rHU+}HHEz9 -zQI6V3lJYiHh&NrXogB=PSf(BxY;F`RrUJPnPSPeCc`_(#S23dbJd8>oDrN0?Fvu3t -zYkZ^~k??AbiVibKLOof_MPOx$fG#hI$0t2`aj8(lzynp5${B+~0%?25I90RIT{S9Y -z;F&?~RAqoMkItznjz^Jh!=z1j1=M1AVu2B~(L)?X`5RK6r87pmr9t9NYbWhB`%qMl -zP*WZY<1?8U#H>OtLa{2^yb=x+!LlW>p$4t*tV-tx0_F9SM;!;))t!Z9C~5a0hg{pw -z@k7YwwupeAREFS>9=1tNd_X55dt1bjlaNz&viZDTr-(U_lr9cjf^`QG4`yCZJz>!_ -zCyxCh@jDGRP4OV>?%}~Z_<|JN*So4jin6Ht5VVs@7-}Gb^du0q6QJdkq);(;9QepW -zodMKZCA~9(Tqk5-kSqOuP+@9HIV`5pJ_lWM7(SJu+Ko~yyi3+Z?ky|98)dZI*AGeP| -zO=zp(8gR0HNm@;1tvEA8clsZ^uJB^b5yhj6SM -z{H9$WI=q8D)ADcr*)&aIRjUwjV>(#gGB@ACnNNArnZk}MIPgP8m?%hogCK7KANq>kosGMzz1{&n` -zSa#xy5=FKE>o9kpwOcOQ>f)Hz -zI2nrLG9{bJQ!82an0QC4A&C~@5st1{>BnUb5vcaYENd%(?E-Pkh?lab(iH{DYtTzD -z(0IySfzx#aRL;t>D{Kq`8~|mARk54R)`-4*CrQ*1S6quk1k{eIo;JD+2vdte66=vU -zsFMf}!^uBK!mOXnrnkB*9zGz@Y<*HdH -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 -zQ{q4|hnoa%B3yBpnr(|(Ou!Q)*zz4!U -z^~BdcDLbxJ*m#S!hdtZ%4)usxHSp11oG2gB=EY7@794zR?N3fg6VcG8V!JNcpf`s# -z%#niCz*kX_#Qrf8wGOo-eNQ#y9k^UE5N?hEv1I}1 -z3xY%;AM8g;hN?)uDLVA27)01G;34`rM!2%er?a`ts5T@+F~c3We29nvrL!#$1J8rD -zMu-vUO^y0M0S=ZVqw95NYH}FhL}O0P6aRbf(P;RSO)vgB-e7`j`N0EEoPB7_4o9 -zsNgnau|{+C=MZd@358G_=(k=^WY;E}(|f%t=ZNx?8P=jR1WK%~4O%!MfxR#P?#pZR -z&H|ee%5U4^D(WySaq(4z!pA!026kNGD0+xkTaN64++xlb`F8M#(*DG8Y1t`r5wB@* -zTT=^}-a5%$M{Ge@N2@d7+d!2PiSIpZIk73GJP(ABR!7oBjFhub>K)<{agBy3_XLD# -zj;F4q|M!K&u!5@2kU-rRO>%;7?E~AL{wULcSS$>I|5#GSgsJh>RF9-Ju$t=_CdU%i -zBKQirh9Gp-O(aOe=2M9Ip+SiCKzt2CFXuoy_AVq^n_9;&s-dFwhR9r$6|pBL=k{%b -zceQcN4t(ffNYHbffHVGB_3gtRQ6<9{8PUNPl%9aseFG@GPyDmz0oI%j#;Jpdf|f|y -zdZqgwx7^t%vhi(^4{)lI_Wfc7^EC)E>EG_ -ze2i2nczHa@38BiwVnTO5j=7(GzxPkZm?8n{31T0~^kGkJ0Q(?%y)-^YeIA0&;=kH) -zh1T?n&(QWcY-FfhfNrF{OyFXkg)`)2$l(y2BI0W>bJ=rS!igmlZ@9j;{9SIM-uho7Z0f;iqg}1O~ -zP?m6RSG9aZEC~9r9fHrr?Kxs~Sv#=D*XW~dd71hq%4lv0aBU0W3SH9nE6zw4wtF=6 -z9h65@l`k6LJgBDI3)h@Okq(sgOog=va4U|z3`}c}^3iPGgP++|m$OQa-zJ2*a4{dL -zssNzGaUq0yof*12or5d$z-5Dq$TGwzc*6rraU7;2q|(s+(LaymEbN*&id`_e2KmzT -zW~|0mnMdY_C7KPGj~W!uw8ed8>e5w_k}mp!06ckg|8+G1x!lr2FO35Bf`5R6QxhNb -z&yC$Br(i2`Y*qIK2=yiO`|yu8UE+ -zuC2Wfomk6#d2+QVoR(uN&^a1J+DVWOj23$iK6l)#HlI?rokWvhEpNG*wS5tmN&YC2)(CBd2(_!+>=bIbd(eY`LO5=nxR65um#J^k -zi>!sbZ=!=K5amUs^n&YAux1__ipV`l>(0BbQq(#5g@;nH=+3iyz@h6uoEo2#-eZ;E4Own=8 -zojlZr!UFw+HTBrS!XX|vFkaGa2!%RNE(pDLJEbEMxqbd?y3Y&Ob&eZ+wu0!Yw&p}Q -zodSBJa34$VP6n;ee>-KLq9Y(J$917rA#A($@KNAhg#@!+K=ZWRS2F6Yd+{mLu4yqT -z4U;aIPPym7F~nL8CtKFK)wiE`b2v*s9caHSXmfK7F4Qo{Q1Y%Q((AaGj6H_LH9Qo) -zkRAaz5hE)zmq&HZ@^qmXlWml=pn~2*k=p2S#Opf#12_N^;k`~TVLWo-nZ=?@f -z3hJ6Q0Vb6QRiwD}04JweS~Q5UAmMoD!7oSS2F{;HPHkrp1!^T30+`%c0&*@r+SLSb -zi8ElJH9{r14HGB%K{PKBt^pktzN5aI_dw_x%3^Rp8X_x9A`os9s~zM6u4`aXzeDMv -zyieD%sY+;*hZIH*#c}G@fi%P&oO*=fF6gUw95b;)HM&qmAXA80M8vW^ng^oiK0LKV -zKUGj7S0&A^&FG9&epf}($M;^{pB^6D1Kz6*=g2^*l3_n+E~_@-H|x58v^ -zxH=*#Ja8i+XU!V>+*z>e+X9E1;P)S0BEulZ3M&CYgODI#;O8@@MRohenHj8-y9f5U -zcukw+kaiIgrW`?mahgMxov4P8R_JT47k$jF6u8bJOpP3tFiMi^Te6@McvrD^AGKu} -zVu__Vt?7jFf38e$YtjP#EGHGi8OL1!dmf3Eqq@fZcr!w2M2oXdHs@TPL~!@{&>js7 -z@#S5a)2Y6QoBi%5;yLCf3Mb&gENd6-Wi!(`FP#>nP$~*pTG(V+xODXv#oTSM))i>N -zBfFa`&@_av3dfh~=|<&i@5OfX#1*D@>T+3=(mjyYd?bx)+# -z$I9ATgq(=l2d(OYWb~tJi_T_0n&g@~K(!GgL -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 -zvHgsc4Qt}7ai`HL8Q3}BFmETE-_W}x -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 -zu>SffV05@6Ykt5L?j6liWU -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 -zS#1#zNZomAkV|xbGDwC2&cGj{ -z|Bo8)9-0H^SPfOd?cJPm<0A{2%qHsDIaDve7@G`#t_l?kFNr)Pu;3Z(BDWs8v~MfC -zQly$wsCb>C^HRzjLPn1V&mRd$jE8LtMuKJP#-6tUX%^POEb>~FFJ6!i()YBEuRNB9 -zX!Ue{#Vnt0ejJ2; -zE6^gp4XU7<5r8yO3>i=!s_gPVRy*&D(&_Hdu-6S=(w4GycE_Jb!Xz# -z-hk^70f}=ut+H&@dtA%%Y!oraOu7Nn*hX^({X~2(KmHfa?oI%bz;~!LQ>|v=G>-4XaFPMvR -zyCg0=j}4NnjZ2)X6fh?n!MJp&%rpo|RS_(r&1mC&x~6H=L@a!0Gj^47lAJk#g!tQ%@Dj;Lv>=ZYW)9F};rgsXgR!=rEv-Nz%Js_mE$NNYI)_K+AzI6@188n -zj%9Os>XaqeZ{~AN|#~H{a3M~nR>gR%Neb2!z%c65C(;IV#7V1+1Z8GfXxDuXB|St -z8^>fw2vd|_`IfYO68Lk|TO-xi$mS#poRVHi+w)rkUDQPJ@xn}6ttBJ5;5GkW4?e7; -zX?tY&g4cFGA6gFs2Fj)=k*sXvKzU8Tc44w~stYhFB_j|UJ>%C{7$BZq&PwVPlNrh#K6hi271 -z(%lmzv`Q@4fJFghJb`(;p7_@Z^?aZOk~Mxn(#}n*yn=wdF}2?Mp_nK+4vSAV;kSzW -z`j6Pasj_@3YhZl<^KnqMRDa54E{`a>vu -zlVi9y(Um(980Rgo0h!y -zC}45^OHGh46aE9KlYQbQ^O(8Fw9a#jk*<8%m_&|m*Ftx1_YossOMD*=bSF$pr)S0Q -zQr>Bf70gNk+ZJ5M{shc9VYPwWFw&(|aBC~BDAT6}@&6ZqPpH;je;LV^5m_g=?iz&M -zO66{Vq%rpXlP^U!%?R;JNs-IeltsppF`FF@bFtmX(!@vP$kNhbVB5sPsim{ofkb{% -zeIuE}1%s)9k4hH1XcHiv?~MnE@Cd6*p<`7tDx?L9GRj=bL6;xX$qaq-Ee2de>s+jg -z-2@XA%FDts(sZ~(SKxw4t!u1(xDjnfYZt({x`r+!e--dg+eLe&dONY^;6A4};gz)b -z_4q;7!bOnYL`RcmP~ly0qS?egt(32>Gdqh4#U;j;DuG3v0~4iAOgLbLAi+k*9Wraz -z{0f0F>V@K?q8$P)i5)TCX&$9@rWg)AV)MV@cZ1lL`e*N;o(kk6Fn5X_nBsyTBE{j3 -zkW-tX4!EL00ea9>rlX^K5%`(LOTIQ$_8bVAvE*b9zYa#JIxdPD)~yl>VN7@iRqLo^=mEv30p@HBs6jm -zi9;bM>ihdO)tTvoU%F*p^U5u+vl08?4((eia_p0dU8B&@jgfLwAf67T{QTf2%78k; -zMh*Qx#Dp*_@a9Xuz?{K#1u9;*4P(*}68|jr%FK~aEqqgrEUPYlV?vuMC0|EGIjtq6MV=J9TChO)-y>If6Hkx -zb`domERGGwXZD|ovOHWI4%p!}=6mVaERvU9X%i-yxmBU5R=Wzg4; -zfM#(&KFNBcb=A>iW~kd759D@tL-zg-RWM2LV^0r_mQ=Mri5SDiCrXSA9It$vxwI5H -zvr1#wHw1M69fpk?jl-D<6L~}#1gIExSr{OALx+6fJT%)nllLSE^DJp}Bn6tcytWR3 -zQb$7+h*2z~?k)5k9?c^yCpGUh;MN7YPP9sI9GWidhnheQ+6&b2Jd&}0Ld)rJ9VHeu -zs*Xhci?)QgQVu5T{f1UA)-FiJG4C%{HYXC3J?i%;0WCz{c}Wa(tTyyY%6Esa@_>&y -z9Q*ROP%6)*8I)X{m3xn2>(W@EPt`%9`SQ+yk!w01Kp$3L6lKFz3dPUyEFxw{TtPX(A_nYN)k@lAxe4Kx~KJx1_-$56}+AyjI -z9UZ^s-==!J%brM)Ef_Y_*O8p^m%{T}mm9K;!QBmY>}^vWQ%|?EzuUPBaz7N4NAVjF -zRg}j1mNB>+`j$(e7ud>HOX9N{Jp3alp~0dxItwG7>|TjymZO^&8rRa -zMyW0i4qgq@9D@(S=bE$rw|t3N8U=y*bL_;XU`Q&;pbA1@Q2peSQYpw^si!ZS!Z$aL -zkK5je`hFNKOUa7QOdvn#T)1et5VGf` -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 -zDONa6@eeFrH&#?{JKa -zFxfkMiJR6lGK`t{%%*K++k?ai6z@$Av6&H}bQG5qn~C}R#<=^Fn^WHP!EeB!b6|9t -zMEY37e2o|sTbb~O-q{gY=-t7q3qLtYdL$#Y@m-v)5sDYq@-oEGPU?y3q6GkzoO~C7 -z_{~X32J2I3`@=7BkY-Z^`g}e6HG^qWWe$~hqD_fdze+8(KN}rgw~e*jJv`=0rW(iY -zGb;+~eH3XAuChvLA~S%IJTHmaSpA7L5sD5SIiSirtF~6Hq`CGRx-=<;axC_zMWZ+2jOz-`o$P!%>#`+Q`FvYPf#zE6ymo -zbpSGK{x6=l`9LU+8(kOB1neSi)tu~#jse`~Ct^?3fwM!j`g_o#PWtm=)mMT3qAYQO -zW|~AzQ=fYdff6J`Pw62-3D3?AHoNbAM612r=fp$)&)<@3>=ScQ6Epr?W5IK&ezin% -zkWnx&_}mZ~m-?}v0J>kZr*tSW_= -zzpDncjT(H`=M(a`liZl9)aP42BB*MG8YV>9Ah!p+j$>0q~@GNGX}!W6)vS6~h+%-b{O(L^JyTkGt@#_tgF -zr8Q>i{^4+6X3Q&~q+&Z_&yYG$?|vt%%SlroN2*JW=6Ia7rXmZr9z)e(P^7wNpw57no?^~zLICLc?c$g~%9ILlh -z=^@hc1V&_3SXr0GYlJiR06mN*&~IbmuSL}WXr7;Ix)&aQ5gfXlP(8PJBp7U82D(uY -z*I%Ryu!r;AQ)!A8i2%d$@?B$)%RWF0$$_AxMPo7zE;tLC%8l>?hlgzc9?-qnU{3=l -zgx{U0ki2xfjBv<@=(GDA8`8tF@BY`eZ|K3Y`YI3{BUfk9`80X=Ou(iwvg(v1iF3sX -zp^&ZAJ_3fVHWj`l>X$w{0zTM%EXU;~xTi -z(BL!e{ybH7L^iruyv3!uLZrYR5N8PZpra&FFib3p5Ekzh4aHy1yb*8&FIbgj8$L;n -zEb$lz1=T;}*S(Z!#<5YWl@5m5ek6Xwu*A5ZC7o#G2Iqfk7tsfLf-cjh#%qirN^cAL -ze|=0bjR}}53y*NxLzEkqW0)(OMG1atH}n-0HjW6NJEJ_ZarNrc;sql2zSJ*>O*q8g -ziGl&t5r)8a*vD2Gu9CFpO6B=84o$FfqOB?;fXryX4^4mF~I6PgitF(|3$INGI8-rioAj(X&9p>|Gj!1g9 -zr=nt5rP5FltE#msP%PZxzGozw|6FzZWic8W1$0l;n=G7tPzd}hIFAvIsYV5`ToHA4 -z9}HjUQudqGob^M+I?^}kcNMksy{6gLedA0n<)SQbNT|lj=@ceXloOk^xJT}F1v6PE -zqF|2oZ>gdIsy{~_6fj5X?XVB>9f#sK&$DjP{4qfU)F&u}?XB~od|H4o19q+GK(5C- -z&%YfwYA?$PvwT+L1>4Ys5vR>mS$h=g;Pt>YF|-V@gig+G2~#2raiE3w?Dc}h4>NA!!wul -zdcSkZv!o?D9A@H01vcQ-P*G4;nV|UuoXZEge5?_+6o~c;c1pfA@_10bE -zj9w=Gq?bDpQGkiT1|uTM^pzE35dQ=Pc}stxPAp>%^godXiax7jz`R~Iq=|0s+R~nR -zpG+XoiWK7YtlmNM0enN1)0G+Xh?|9($^b-ezceKh?}~Q@Hj2z;7p0kF&4)L8!Eg#i -z%#0i=KF>{&g3BgV?Rne<4uk^e-$fy;DL9vm$62K2dH9ZmZmT>H(F+K)Y<-Gdhj$eC#b@-*oL3}(+(xCuXlGTeM)f|wL$CzTusFu`3>}kQ201>LeC2@j* -zO)Q@=;Jj4Ouu)}^;Oizu6?}TKi1C)V4Sf)fLd`X21ActeEV)d$hta{XPJE$y2}(yT -zQzMwyB$(4a`jBnroAOwksIYgXBahveto=Ke!onT*wU>c*6T*`b7SqJW%4GL%(bXW@ -zA2r4X`q@j551swZu$5rY*}9@n?Wda+oFI_(w+Bi~5W6bOlBS^4-nXF;H2&WRB8ET{ -zVhBC#aRkyh+D8#ZGK439*!r%dpHuaTVz)&qi2`a2*4s~UWKZG-Up0VTK@gldi?$ZW -zF}_QVrbvsQzYKpykxf%QFx&wwy-fuWl=H55v8<5BW%*%-((NhG%xf{|;S~k@4Qp$k -z&g?6GiBgI{zl1w3hqXLw11`;DtO8VJPgJbzEHW9>(uGkyVt_)JPTrs`D!lXXzX|}6 -zqy|*k+z6Id9-5~6ko!KxlY<<#->P1_7Tp+oM=qVaVZT7t3DCVoUryTcjV6|7L=oep -z9;lL}dCL8q%eFs@JLfLqJ{Vwm8%>d}GQOZ#Y<-KvD5ga7y0J}0MYE($9hferPt@(L -zgg;vWEk(??7!T7Y9l?be1Ap?xET^BlDRZZxL<`Es5gJT;#K8IWks?Z#)&wp{sYM2t -z!pn=K#ERC?{5`UD?%+9(MR6otD$4;fvyCBYZkwoPe_9)g$pz=J|)u%|B*Tc2J_**v}Qfh*Pbn46nwP99gBBDZ)k -zDtlmxT8W4*{+*G+Piu|tsegrmI))+ZEWgOjaynzQNP|}vSj^+P>L&g+^5wsRlETg+ -zZvNsh(@GwII)HQ_9^rCRYa?p>=imI1Ewy-sBQmD-NZKV};LORS{i=WjKP=u5pe2UQO5o7o1uUFi`t8#bd5c>%%G4VyAcZ!x(Y{P~`(HZ- -z7M9GY;q#o6-jn_+VvYdhx0IJQ -z8;7#J6BkA1e2R+kBoZ}ug8&8&NdcBTMx1Dq+K|_EJ)R4~r4z6*TIQ#Gbcj2a2&iQK -zwze{jz!GNs0Lx$X>0(dKDUmS-hhVlfe`=o0vmgqYNs9tg;cOm1+|(DQwzsLYoc4ey -zS7_GC+JNGsQ&_AvB%ZQ}sD1{zf&kWNYPdg&W-<>Kq&Dj?HC-e1c`%Vx(d`nu5(q3E -z?_*ik!niD$DO)QG`mT`x^5ZCiDk`yLEF?|j(aVN0Z^4DogSlQuUtceLPN!vW` -z1WK&%=8fd8KCTm~IDPQMOLn&7L7~`KB7|k(pqxMl09!(YV?UC}i}J{Oaou449gg^R -zeEsp(`>A?inIbd!fT)a>J20j^RF-;|O5b!}!bWy(oQ>USVmLTUesj0Ji*3hp%^}qh -z^=$(eGZHrIqr@`fVI>CdIdc`;20mKc#xn9ZECtTT2J(&#Nc0~_!1!V$$fH+fY`1dq -z7y($$gpsqmbHZ$=7}Kzj4DBLC=x@aJuhNU2u!dq7Wpu-#U{gMo+&Y+7f|nQx09)R< -z9{6N-6z%lHs*0m7h9tWybhXCU51oA*Mw4+{;}WZPO8k$<&bn7{5uQWLAB*Gd=_qI< -zAnbt&zB`=-dEkWI*97ldXXzmH^tk=eK`pFeC#@tynWA`S2(9PB$mNI+I&^9OAxR_{^Dk}Z( -zIsxP`#T)s;XuKwij7Pvhf=7%P{c9Qn{hG&B(bwMz>M-8)-$+TzRNje@y-j4>4F11t -z1vC-D_WhTW7nm93t3Hye1FdSgWsPA^-t!KO9+VSA`h++JUQVk -zZhJ=n?|&X)H_h -zicl4XWsk1~<8mcY1%XQsw~qb6j+s-`tucWkbvo`_&OiEJ=R} -zj53|0M#o9%y#gPcI^e#SBh;sbLPJ%C%N6o%^`f$yf9QxB;x+qgTQ4{GozmuO=1W5p2>sFF2=xiziSFmF -z;zjG;9fClIpGW!rwA~W3nch}d9#dVJxAu=}TWwQ3AOo$VvO&%lwYV;ts6?ph7(@fy -zBFp5Bsw=j214eB#yCT?Y4=jY@(neab$_p8YiC5$j(AIG7L31-%GnaL%sVX*Tl_&V8 -z98W#zz}4BH=$SycHu99(p-J%?;c$4rT^oVSON(J2vPMjnW$^PHm=AtlF|nBt{{6Ch8?HvYoA!h-rsHaid-QOPH5UUv-~1MiT{~GUlNPok3bDOi8#q2Kf9im2sFIqB -zwB$KCLWB|&zrhNYM>(|HP+9K)O%pSFq3`Q5u^dfd -z^+plqSK^h9+Hirutpf!1k -zodJ|XW!y!1nRq`rbF&c4gk<1;q-_rq4vC<6%;CBh46^cH>vnpT8d&Wy@s7oYLkuQ! -zegd=D1&iY*a=|-HJCu{^Q>?t!E$JDp2@4ys1`8bcgEwBtlf&Lk`~+uiI7)t@vUS${vU(j;qoFtr&^iK>dMiqZIU -z)q5@{aHj$}`!9_D-!w#4j34Ul=s0W;u%M8B0wx_5-@Td{LP^`a@_7gBuHywebO^E; -zLPCz2@n-NVAXZ|%=7mq}?3j}65z1snu=XNOWgPI-1Fw-gzVXveV^J~<)#o6{`S+0a -z*1Y+7W=brXj>+JBzT`IqZ1_aC(FxpW&(qpAvs$^7ieUnm#RuZqrzyF$f*adU-u{tu -zTK=lFi7Mnk&06f-NlJ= -z_7+prp4U>zd;-{GsY$j>hxWueSG-diJ}VKES#Hf+V{HIkRdEP`D8EpZRXonO)rZIR -z8}oKD)cg=}xDKEBvpCjWsK--Q;&z;b(d?5^;DcWc@Fpm#&r?lmsr!A&;{%XKt -zjaTYji|4wp|41!b1|hk09ANkaqSW5!MMAWI6|Z?mR=EPs0)9VNOmO$7hp!wpC&^G& -z`yJ~Clv+>IFzCg68!wAi>~T(h7_7JTk1dpmULk`sly8_aO`((};qs9YBEyAA4Q -zp4I&c5B=a*w^aI<)8__wn2|4^lh_!KT=izbE5vIqmLLgGG`JZDBNNm|_N$D$@2>Hi -z(%g-Gg*7sOP!Y&hvP7ty+#~%IIF!w#rBTBIx>rKZF15>M8hW?P=I97Yr?__KbQhRt -zRh(UdaFB4E9u(KyGHfR_W*?0LRxmGI$Je+CpAXZoOw~1e9Q?F{@u5_wLBQ1D__J)= -zPj$LSO@d&D)4`s+9EAc$vc{>EV(N>n=f7aafUn -zqNT=j6p;zZ|f-R%c)s)WUhH2}Tqhx9VpnqNMrec{*cc##3QqhfrRT3=16Z4`9fTfJr6yWyfPX# -z?{3<`NK!d44y|t9@C9jcYjbSx)tU$j=4SKqKYhcww=vu+&_*#Xk;FFTA8Cr2Eohr*p+y}J+_ -z7V>geOizbHdQ4@F9msa$RE1_vgGhA6>&M;pfJfWe!&he^a1~P?P220LR|AK}7*>D& -zM_|KjfAtv?_V2J2{}1gE$2~#V$m6s<7VpoG#`?a$c7(hBH+{OtZ})#5ZTAtPi -z`G)$xZ=OumtoUz((P&K>)TA*ny?a$GrLFnDkN=sP+aaPGMm=rYGYWG5eBfCw+x7d? -zD7wZZv)Ohls9?}*^2bZ>`*Ut8ZLQ6K=qSy#)9>B;?cx10t{?n{ENYODw1><%Rz!+} -zF}43X^KxB?Qbxk-?<=rBIX2$*pUPN%i;+5i)vi{hug9DHF91|PtG~p+T~^(}%o3(o -z>|M8eUnPl!1CS4%E;qeXR<1M_n5}a4fV2j97&KP=y(cF=j?W5lomLy@u0AEP1!Wo$ -zfrAp6$j?AAqTTih>i9&y6q3bYyPP>)v(w2PXM8QHeDE>4-W2;LpdtuW!P;4e3vf -zuplg}5=G}O>VLNMw+ol&Syql_+Oi@OaN!nyi9_!t+mHm`PL=FO=QT!~&j?P)zb?Uw -zC9V3leP#Q&EgihQAV-8?Ed(=y9*M`B@MVOg)h0=$ReO+bAT6}pM?Ir;z4%*RJjsR9 -zhYvK6oD|D9IAvy;IDf9wfk_+5iUAqBG)`E8%VS1-3^|K-VXIu(12gaI+7FwZ8+J~B -zQ8|Wy`m0~%lAdV07kV7vkAaq~?^|fFK)5?!=F%%;rT2^#7J35ijAUf3a=8kGlqiOU -z0!2xfeCkeqB!A872kGIkmJkkOkdffJ*feeY$P?qdh-YCK*?rONmR4Vdm0UHg8!yQo -zWQ*o8u)Z4%uw^?q-vH}j7}Q!q^!7cJ3&L~~X%N3>^+#-HtwGv14MT2ylNZg}*EWK^ -zO0wu26dc<`OCi(TAd{EH$#cFKa7GW?2A0w5C@M$5nA{+Gdo!9l&X@3r0yVM3ba8E| -zYiLQI6q@b*t#7Lc+#DPu_iUR09Ytu6h)1*Rno0p5Th=p@lyHf}0G_;~pde{B -z{|v12k4op=;qslKF;s?Zgk_7Yr`m$bD@GU>i}% -z4Kr0Un^w+1{7p5TR*qRVyAs+M9B%)1xrhg|u*NlLa`uQx(Bz!MVTSrh?bD}2lrNf# -zpOV9AFW0PP(WIx5H2v{;+Ve`oqLemBN%EiX%lU6fHQwGPaXH-p2B(&{Pp!7=`?p{u -z)BpXLJ_l`r^l@N)w*PXE^ZDv3eEH=5%k?kC#Wqv^_YkbwL{b?aK4Ik1EszeCVBSANk0}$Ni!xH%pDK{a{?~p -zWR#x-d!gKv{#X4JF*!EvszPr?042-ntnNl5SA_Uu-#$q(mVculKd^4ce)TCJ^1uIMcI2VBzUR|eCgpw%jdri?`nJh#b+-1Ey#Lp| -zu~#jYcOCfxpNpBH`|?{q>%U8ccBq@5x?1-xofqT)aQ%y`B^z(2M2NbTnb%K -zJ8K4kqrAk@`zQEmdx(j!LD~Z|T?AaOzU_XAkJZol-Q>qXnYz$6C#x2^4hoBZyQ#J* -z_dGuCr(d>FGR2RCsHS|=csxTbzbo$Hxzrg`E3t(B=hxA5{3I%U^9K$b^Uo+ -z{AzOf`=P?jkB`_f@C3G?@oJDXf?ov);!}{%Gde -z0j-MJ%K|$T$?8@qlD2k%aF_&&Kfi^SY+VZ(txqZN3Ur~O}5ay(kvdJ -zUFkbzQLwJ7%D`tc(Z_on61>ew_3}vZ>IQL-DxPShqV|1$q;`NV -z!9Y4=ZlF&$H+A*-yBBIOEXAReEjf-x75X5L1+-vhv*R@7w_)t0eE^Y@QHS^Xm*TN-QkOU>|Op1IRkNeJFh=1zJ|}x--GON`%J#8 -zKNlxT7fP4j2O!nY-RVtWG}qM`N@eXE>T4*pmaac0W)i -zDSr;z`_Ikw6C(nu$R^ovT6&D6skg;nApD%0mulhWvXFOjY^U$FB|GEG4$p>Oir;WU -zr2Ro~8zF2c{cR+m;E(C)01A|b`U#P9?fJ{r+91n-CU9*%Uwe<1yxJZd+voUPSVkar -zFp!b`?{&Xi!N6qMIZd)0tW#F#AiT+LP>lEM3_~xEO1zFIhgUz=V#fz}^y@JN@1c|{$gAy#TtLCTn<$y((U7(C<0y{r -zx0x^(*mR!evAM4O`<*KdXb1G)No}bob8n%`=g&{BtobIU@bd+PNrb$&KB9Ks*Q-%? -z6=hej@1;%E!#ITr5*(~6hhfdaw&Dah-%&)h|F!<^Y(`Iv -z&pujMEw$b13 -zPWic6R*YeBI~_Mofq#6@+m86lD{gi8JAeK^MHyLA+ouONKRl@pmX@#A+Alx6^V8h7 -z$r1;TtnZh7(#ZEd8y@nx-R%;?=2@`6x_(&}wLO0Oh5gF+El%#|`CYd~lkWS+hrJtF -zn*Q^zGPMBf)s}w#W#9f`qw6fdjNY12*Y;2T(tpk%Uc83~uaY4D)Jy`XH}UXAKjJQd -zq~FK(@M{}7|A#A3cdi}9M~rW^N1-o#Z4b-KTltD7%2Wux$2`+zLUccWm7~wIk5RLA -zt}bQEirghWqw7 -zKqu$zv*$!sG_aez-6vlD_7jjGp}mRe*ZsT^Y1>$e;c+?jegWgxkpQ{&uKzY{pSQ3} -zDm*;IQgi{ozzZ)J2*D5bvIio>G!OmG-vUngfqzKUfEO)czv$}~6Ut -z&{f_#vLg(-&$*G#_SKK`pC?d@@5?{Y>UDAh$!12I>ptCU=Me+HAnL*AwJbWhub;eK -zFo@83`zwGX-Ym(IF7n#iiMnRYy!0P-kf=0%SuFF44xf45;(qM4|~X(NhYO*9!o{Ctz!>YHF= -zj3yI=!Dz|*ikuLiaFTt@>t4ROy68-_n-@Uj2pF`HzDkZh;HopX^|e51A^li -zK{vx#kI!?6d`aoPQp_>u!4SO$S=mtbW>HFd=bXTxp)0_W%An|$gF`>14Gx(#asI7aaQCXG)!;@2S36fv`-s9991o;-v1~h^`vj*_n`3Npa -zB9)obWh~as67M*vDaWD6;E-}7x3WO{+dY0l(N^-w=#LthFthVSB^F%{<75OFy%Eojyx=+@@2Xs^<(VQ-h&W8Ho+ISUm-Rx5fije_ii^=uRiY~uh -zk+ZtFf{6smdKu!ds^*%)J9?=>2MFk69(m=WHun_AejmB-ylEkRPlC&Agg9(@bB=6c -z1vsJ*x{#qCmd{pi)rB~dg4|4ic;$~`t$k(=T!&8mCi#4S43PNi`U}m+N}jp25(8r?}A)t~22uA*i%0;(twe{fq+M;2r_!5YBL~646 -zo9q7d(n|zyl0>sne*$j+Fm)IQr8B+pOLw}JMtfxK;zkVN9UR6G_00caHirD2t -zHSIMjLlKjM-1~ru1)cf*HuayE`GUiMr+o~?S&YKhC23qeQAe4zNP -ztn8VCGC!yQ#LmsRb2 -zPsB%(=m9s_W${Nj=WRa^)NpTXLXLR#xb?S-;v{!cisQV}x&j0gInHR7e?Tlma&pCR -z5}pDJfO4jM+kI#Gfwi?I-S%jhhR@eNcHz3{yDs~|MF%Y{ssMyKXKqrLG|3zaK6!SD -zcTRuFJDcU0w**ej!Q_saD5#qDZd-OxEGTdem`tOp#5YDwpLS&oe9BWT5BL@J(sXdc -zv(LvO$I4}o<#6=37F9=nzC@&$$wu6unO`Kf1CEIE%s&uY!&Cy4RFb=z$AL#d${8!@12^l}g%*$7xFQ~2IAWyFwR?Ejsz(ByRv6VgNhqP? -zSLNoe3c|rhKcBkC0Dwl00TtpEI{xng01hC}KU#QpeK?(4xN{Z^L-DBP(CHB9tmc=5 -zSEXUT5B*)g`4PcE$=Ao)j%=OcU17x2HH3@ye8b?`_nSm$^6&<{V~M%|%l2qFhzp`j+y=4+ -z>n+NTEsUYWQxe*l)CPB;(m%!CK(OlE7J`uF%$y6x^_KU4StjJlRHGF4uRp9C>92zy+=uk>(SO~;^3|DJ@XVNDd(=RqY9m$_wWJt3exTgQ^UK9y -z;OqQJBH$t<>hE}JBQfKKVlpl`Ufc~6vH@{s-c{IWv{M%_O!3Dn!~!MY)}Qm??+2f> -zi|`wuv-rBb<^dfrn_*5P!0eFY;Fj9klwkAJO-rCF=Owwf_VdM!0@gLti1>L@I5GD4 -z`RgD0TZ!JcZaFX?tPu{fSlk#1LgktyY8xX0BH0WYU)G^MJQN+_+Bvw_00^x0F?|0u -zZg)J(Tgf285Rn3F?~XeR?h-i$`5>P73;1--%ug!Xki`hJ3kZ -zL=8Hd(e5V`w*O}6yhCZak429za^$z@3C54$S{9Oc$YJkDwWSH@)D|kg`?^|qB1bHa -zPHIl=SFH#X^C+pg$D^%1PL*Yvf$%H}2V!XUx{zJjFauhL-eopzu#dqEA+sQcLzJ4Y -z{VHGg2&Y7_Y>7LZ&51?rB&dIm4tWbrCI8%g#DY_d!82`)d6ZBF}u^$X203 -zW%&AVnh9&WkY_MBiH0*wrY+{CvVE6n{ -zlFl{EDVJC-A@glgMsJW$S2Tb{}(*M_9XyIifQI}NG% -z7N>{4(>{f?X0m~up`*AwK4#5C_$6(>+Jv(uIL(`IG|->*e);+%Q|A2RYT(15k~*na -z@^Q(!Lvjm%p@=iv^2CAtPQ~hN4?Gl_x|T0!uE@E@u<|gx{|V+4)8i%R)jxLtiaOoj -z$w~Z;N=O|#h;JAz_4^Cbd^DgmJ>QBC6Q`fA)bX+9Yuf$*r*lCGWPvu2~*nDl6UpZzg#BB6#u+y7Ke&o<6NH~KZpa@%K1|CAm^oj0EqYX_tfFa!pOxR8lU@UK*)k}d;Sxc -zkw8PH8eg`~$ooJ^``}!xeP`_Ov|IU2b1!>c{6$iNxAOP?_BX+XxOIQLcbx}tpRU;m -z@V9T@{_ihY-(W4)Y6AWjf6TqKPt~i&x^PfDUtXtlD4?0jtCU)|_LAu>m*bDSg&veH -z@%cL?!TIB*&>>^^@MR&BVZ@eFUXgMKG5F2sTjX>S!*3o8B}4nDlO)z2mM=*0k?c3T -zqDzFcEbQ-RcD9~wMSoxD*tN%m8OSF$cmXyXBZ#KT+uSFRsiXrFC3!8`4cZFEEx*q4 -zo%&#KD~cpxyr>)L-KIVC;g~huImWa -zS=tZzd*-6C#a?>oYFjT83IrZQLe}}U%eRHWXAPHqlK-brd^?qM7m%F(|MdHh -z0w-WqLzcc4)Mx^9$}nQI`jrK80a|<}0e}u74SW4b+O7+ZooaxqCHk=q$FJ!x4+8bV -zPaHE;5tnsF0P_g=eEcy%lH;O94wNW|4rspC8LQbjUT|IwFf!SjIG(K&kJ`R|M+Sbw -z2q~yGHq0$qmhp&`Z0NhimjCmfX}8V~R>O_f{KySd-;cR0^ooli@*X%Ry|QLRho0F2f2;V1O?;va -zO8B3K7%qEsBp%Vi_7{-MWe|-V!&!2F<=ZWO3L8^njbMxEALNK<8Uij9F(IWqJBLzH -zwaGg)b>(Cz%n1K{OF`nI2{i4=Y9SDNT@lfGQU69*-y_2yTVftMP`-KejxHVxGs}_9 -zwijn10w!DW;smFv-^g-bZWRuF7d|8~exsIM<{ppO9vWJcYpGP#5AyzIUmdaq{dbdq -z&)jJ^neg@?-+m;Q8p^r^(8RPkb1d7u)`ozE0C_&JlOQKl$&Au24H|qtJI6~Km(CKlf=hc2N%f2XMtXbM;*|;vU)I>BiqAS -zCnVU`vA0ZYbB!H)x-ON6MUl)-3|#Nym@_CLcTlr?4?VMtRYmC+UkXW%ymlxZttgD0 -zs$6JC)@eFJdLtuvh$|axSI8Q=%%ACsUvpi;v+~Sp%|5N1vE!DG44~+?X3tn{2$n6q -z4=ZR60x=_tT!C+JCJW3+7Jq?q02~^X!Pb21VaoUl-R;ClbSSKDTXOA+xLh$(?KW2y -zY)*Nph~`|YJQhrb4lrM4COApRGLgAm&J`Id#th6sDxZk)aH=IvmwYc2;hmEou4in^ -zgF(`eHs(h~Z8HFkU2hFs=q2IoIzT=RSQ&jV=jWC*=X7z4|HAXy!u+;@NBJs%>}{I0HR -zw%o7cKE)@oTBDC=Awx?qJ~}P_q2Y6StXC61+bKK~mPb4`Vk1-wHK5Zq>IJ233(tb4 -zL9ywk6jxrV?FO;3U=Zj{3YrzeMt1KGSw6pnB|%t7e9}Y&fc#?YY+6&|@J7Di%Qdf^ -zUC#5m+6!eP1}gww2K(Km8ErvObzf@WOo}h|s|5B*0#5L7$HmrDzT+|K^J_?=%pB$Y -zDlUE%tnPjJiGh{C`W>|9=C-{QogBh9kJXNwDwL|D|h}e<3_hTrXL7XyLietGrER -z2dq84J$**&=*Lr9RT&ks(20bvJHRa@>SLynx%1~sZH)UIM0kdyn5`MY@$>sHfXY7^ -zyr>>`pIHNd@I>WfQ(&e#a%A}+s(YEm9=h!`F{(b1Lnf7^=+QtJOVKxZsB_!-?VQbx -zLNA4l^k#ABCp4QYy187=4$IV-;N7L4J`jO)q-3A3W`DNT3f8Ac%JoOh`UbgEBnqBR -z8XBM+3hHVnG6Vtppya!CEt5;fb@7?It@j23`+2(hFRv>$pWup -zgV~ja#tx_vJKdMDQh8OqPed_`ZH8+_R5q!r>_TL(VDp~3GfTytP+iD}q!y^}vW_^k -z%?HBRH4Iu-RCFY$sjwy)d~*xO#33%bil%?JX?l3Y -zN!0qSu1OAdK|%bgP8AhpxrV#ti8z;fT)Pzl@UA}l{Aq=D9rqR6!xE>TZ9P6&Hb(C) -zF0;+R2W4#|AewY`a<7Vobm2OQYH%NF&B^9ZqHwj{j};?)J_n?rO0JJTEk{(s3?bGC -zaX{$r-GU7lwqw}Mt`9Lu1F&C&0BH6|>n})D@mNohV++w#d-%zZV{{a|X^GfDbM#=h -z0hee)bgp%mA8y8!!#zCzQg5}AffDiXCP}iLf;!dBzB$(zppGZM=wE-2qYd%&9kd;c -zU=4ZLg55OQFE$9>Gy!OblATqt;G<@98XF)%m1m2L&j{2(Idk$QdRY4}9cnyL#D-sg -zjSVK&>6T195Nr(h5t}5Zis+9m*oyi@4#ILyuLS~>dy+^4T5UULTLw?0+6d6XxZk7M+pjviT9didoc!M6qUykUoht{%f=`h)j -zVNAjo)T4jZK^!~ -zkFJEcmcVfWFR2h+C~F0;5t>pKthu8Q)Poe;WJ;#~e(z2GNQ}gi>H>56dBG&)2$g{^ -z8J^8ujy~kDU!eE3We9%9A<_jZo<+u~%v+mmGNU=$H;wp)&6r3{yhL|DgHnYu=1P!8 -ze?PweC}gxzt{labfzjV2H5>VFH0Fz5E2{h8VWNr^W)xf|!YJfsu9eGN!>u8XUJ^zNRub?h?J(FIG~+1S#0osQZY$C0rlG^Tc9*fz+V|+ -zrSEt&Z&|WvN6DJ~((?lOZTq~O>fN;%28rJ(LE+B6ix6`)srRykD>u7C{Xi@*Om#_h -z1MW8HbDZjJI?KxTE`kYktNE*2x=zzkV1+JMa3_G`(N5+JeJg^N8Yk#N3Vqz5K%&E;XZD(D&fsHZZ-d%!&&NR(o`{c?z3#E{VH@KV -zQ9+>eQ3!J~{tJ0hZ5>xiFFj)Zy3ln{G6L96`viqS*_t~y%_)!DMVyig#Nh2X0w}UR -zT=`+W8VB*|1smDn^8xq>;1sq&c}bFxco`g|ePYoqtFLX`7R+D^#Al3Vm;GXY3Iwm6 -z9@2CyM}jkSXMh&r3T?QFb6)1f#YjrrBB5OsmO6^DtcO6h0i9(#5cwxMPqHi=V1IH6 -z1q5`gBiqeGHLf!k_je>cCDQ^kw6R^ks7gtc4r8NjT8kktVD1Rd{79)hYT^jfqhGXd -zB0;)pg5^3SoxGd{`=O)n>7GHwL7m_r&(TF2JTWJR27%o4 -zgR5Je(wY*5a;zgjakYmCrloevrT(@h)QX<~at%Hw8QUIF(_5ax0J?81Jb{v_X@vL| -zgQ@281H8%3&?2`PK`=NP7`5hoU-#NXn9bcD-0!dGqBx| -zbF2CQxu{Q4q0khP(Nm=7FU>1oVMN7_gO7omahx}AAnh|A4hj=?J@>RqW@-X7h;piZ -z^2A5B8bNzZ{!D<863$udPuI(%zA9%*bMH#e% -zdqHvmeI={(!)T=(c-TA+?3?TaOM&}g1STeUtcvUhLIim#drvzdY -zV@(c?#h(YNbfcua8^&!1`A?ITD-lUa!k5J>7K*8$#Gu_2r`ARlsSJAhZF)ZSBfcms -zm0cJls80zXa=9&U56DBef2bi#GR^1d;j5@qRrrfcCSNU6>ii*pAG_r -zMiH~_6Q(~a3@DgLIM2O`d+9apD^1{9jE}Hfxx@?(8=NI3<(E?E!F& -zKr302)Ix6PBmy`mGoHDJ2cI;04-3h4E>?*3uZkk6p2;i8lhehm&p5RP=%%E>WRUfXu~(Vy!*= -zgr@HLP2=Lv8~Di1m -z1QeeDIHYkX&a-Qo&?Bsr9WwuW%GTmoxih4wC$0?{Bb;#^8QM9Kh8!h~?XS6f(}*cx -zUC|FXq?p@t7-YSV>Edc2;>I*ovW>izJXh#xSbW-ec!rI43r -zv@YXGP%D|{mgmI~)PlGxYVrUO1(JZx)o*bWNV%xC9fe_wn~;lsO`L~8OSt+|Kci6K -za2q5|qa$a)&^g3?yJjDDvqmB`s%)}VmCZ1BO1R0;JJ1+t&rQkmv)VmdKbTrJpCs=; -zqk|b>UXYx)-oyuXWI3Hln!f0B&~zpmUJuGIPe>CB#GESDH3)KEOC$&hHz|KfQ3kJ< -zF2wzAHjSew;2y+kP#1NAmMQLWNwMoDoKD8hLy}vZd#`&_63=!pE5Hi_U3p~2U|sjX -z;MZ13uEmT=95rZt9Ya;NrvPG)(UC2M2TgEzs}R7bgzMp;^5mF(R%jHj_n$I=0K$a -zLTKse#3MmKB0^V+obd68Z(0oEMuK8Kc`(9UP|a~2p&@IbMh+6Wq)k=t{m^>Aj}+>D -z>&XK)$PC;+yNrEW~@l -zkDtE{hV7h2>u`c6>x|N-pV%5yS|8_}LA3(%*S+zKg2!2YQ{)Qr$=Fyb)>GuIIVhh;J43Z( -z0WfNrtZpMPKP;na$S1l>a6^>Y*lm0t-b-X{A47_}wfoMKUCJVRZxyh$8xI-#&H7)VPuRhM%* -zt2={y2^3XzUtj)iq134)Ix1}Jt3*Gj-W^h@+w*u@!MwF$$VR&xxKF!%TE2m4kt|74kQZU`w -zoJGv@rgad*z!~i=j8ESn3hzdGHklt#tFKNR8JaeF&un5yo6W;9N(^wGSkp`|s{t|^ -zqIdBnh{mz~EgEOT5D*U|Bk*{oGFa#KP^L#az^gbHZ`)3?RTN*UQ3mlXu>L@u`YDm^ -zdLb2na{BVa+oxWVl|0jRYRzigAYgOMd)KX}`R{;(fVNJYpi7PzLLD|?8fiuW4h&O1 -z$a#KUMcgTRt7t%6Dnp0Lz!*FBLa`ZgGVPEGVYu+huw~Uj -zT3Z!AH2d;GJd^v%l5rRZ_9;||?G$y3dpJ&_j4qVkNQ?vzhU4_)Kl6??BL*_wb8VaxPKLN-F|CrQm|)gL1;F($ -z@)!arN#&6Y;n9cH@_txq?GT=;s^K95?xFy(-s@DOIcLF%2kzq~BZalcyY=^+wIDV- -zVU|8}FJAtwxB=o<_8yYv1jjy(ht7(Y**3zyk-3~iD-sr4BA^Vd-o>|GgFOjsrmTq9 -z?9dv0Iw^wkG|pJ;Wh)BfprN|h*#7DJtkPNc=jTC((8YFViQSXLVQU}H%v*I>z~!Pl -zEqs1-WWaZyf@9Xnc13`$Fl)_Q^}BA7s%EmK%`U3etyj6=T%tCX0xFSK`coM|qMDqK -zgDu3`Q!<9b8B4GtZRr)mc)@NKACGa?L6wd9cwnCT2!o-?aq -zW`VY(o}CB-JVj{GV@_0_2xu*UN3e|H2|1HT)_#+H*zN$c|USx84a`2W9xl^`;ZX1@9`k5lq9rmWLk272MV(!)1U3fxFI4$d1L|irS}G -zbjP;3E-`F6#*pAK%7t&P{fWk6)1n1U<5u7m1`OsxdvA5+FRl0%Ryz{#ONn9WetzVA+CD%4JVuNUpJ!m{%0SW_ua&0)KtIgw>$vPKn^=%YS*C~!yx_4inaI=6^bd!=73`(g@=CdfYnNNeQBg9ICfO=V08WANUI_keo`Rs*a|C4e+Q -zz=wBLYgy$lNkJ@D9_7+vbI-%?sZv_%9CdtQ*YVo1)spRgCElDo=G3snV9;2@ga9-U -zo9i?SeL#c#vZovZ<1Dh6SR%3Kq_xEnl^d%F5a#F__kIAckwUO?gR;Zi@lJOzPqf;F -ze6V6TQwP*4VQ)YV?I89SS$oa|Yhr;Cv2_G%uXSV;)mb4EpPdD6;SG>VzQZU(BNsCE -zjncE|lhv>TjYKhFaXX=Ek`Kp^3aI~#@rKS{c#>J&4B?4U9gj!6W^x&{PbK^T(W*;a -z+`hus@oVv`XcEg_S)zu#`2iF6u>Sb_`}g93&Y&-8Qn0A1j-U?; -za0fp2)}|e2dCtw*kDC+fsSibIyiwmU6(vnmtdx(- -z4GBo&6;*LW_)R}kO3Kg8!zPOcB!wA6^#lQ-C9S&h1480y+R^ZOrFb_^jt(L5x)mD( -z@+|mSJL7WDn;g~C4pscMmE}ti9ObC -zWS5P0g!|vP7^LuKZ_%P!Bw0eG%8}iSWxF8%HG8NaX1t9LTe_=+yHDR_G}$yldfIU4 -ziDMvO3v)4c&?xeb(9I_L<>4$Cf{{m8I$U(~IDZEQWxc8NoKteua_r+!ADf4oI>w_Y -zHKXAt_|ym2&bfav?a@H))A8?t4#FH`buDBDz^97VLY+bmgm3a^RxB%27SRh=d@7NQ -zELGiBjw2;M9&%hDF=5_K>$$e?*@TnF58@#g@VF1g+O;8+mv?QY5rp671p7(a7SLrk -z6b+nJHh0DpNf2pnr|(8{0%h`dCZwQC8gKwl);cQ|*t3!rrQX2ZkdzolRJJ -z$$v5Fn+sfLI4Bn?XV$JY2TIl2XjGHH$S%Rzo-J2}^3e-OKawTL3bfW4sQ0c5L(&1L -z+L5BNk9Q!k%nq*o-GxaYymA^4BukN6yI|qUVYxgWiCpk($_MlF??WshizDX@^zG|# -z8f~XI?E*Qmpry4G9UD0Zof5Ha53zgTLdAR@wx^dgG+L(u!#P3@dRXAn*JG@G)Keq& -z%VL&i+=hM8SLZ!_>3vq8-50Rs+1iVh+E~?yEo0E_Pm8WVt74`>5}y{UWzc>}aQ|vG -zKCvf)mQk#M%HKd=*KHN}`ON_S_+IJ%{ZJ%Zm?Sy0_#LN$Dg)*L6!x#-Khh?-5YH;k -zh@~RVMjV%8-GSGg^5amD_ZRdOmKDSkjl+O=$B?7}zl^6f7un1luJ+L;RQHxcEFUv# -z#j-BLaZO9<2xzutkI;Ing-vivgBJNSW2IZBvrShJ93Hk -z7ph=?1n=H%N}ZbNi{UBIzuj26^O$}CY -z0rBNI0m1?Vh58z`%@Xjg;lmj-WEtQv=H63A=wT@eKn=#0_U4*8vK#U@|H#hT3=3Sk -z9|xYvhC$9?hP`j@N7j5XZM$j?0|xQEZ$1aIs8n-5ykfNiel{4=st4wf(vB*%!Y|qp -zW1mE&68WcfHwwZZ-@pHu^(mTD6w^5Gun++2_{B;lx?&?gQtl}vkbcu@N2TjRH>jtu -zC~D$G=+`f7nN&d|XW -zBm66YCGFqh34HXF=ETFG3_Kc`$yT!0*%JjPGZwv~B+&EAq~X|(*Jilo|ZxP3Z~r9Q8; -zNht3_RVvKhxmp*xtO%1O8Irvu23K?X{SFBhHJ6PTtzkQqnD`8j2y`^{NCYQ2zNNW; -zhWlA>leFT(;S-e^(+7{HB3b3PFH`Jh2LAKohq{@*=?A2^jpCwBolC!stpTST=*~9Dl4-n%uxznXvLRJ-pv!djsp9B#9K6=bZ*`oUvwWUE5 -z#u6@>|Mko%dR(p^wQ>|Dn`qAj6&tu>wDK}3n_f~LrbNlrD{#=Y3>w1&nX; -zrjaJ%HfF!HLy(Z~U?s=LORRnOX!jdnte%6qUd1s4wa+h(fH(h8@DCG0wxnAD}c -z_OW8Tc8$|rt6EnS8^mi?vQ!cT@!vMXPJy1bq>A+P1;7SJedt3A=m+;0s+K#tF3{?Q -zT9iZwnF9`JA8?teMwFpr9iD)8ll-eX2WW4p#`oZCt@b!VcPH^v#w0fAX-!+fHDrC# -zpKPh>qpG3vQqUC&J(eDfIty2K@=JTNb|A1(h0hi7(>RKWENeKT6* -zk)9LDEL;j8OED4WxlU=z1G~h0oDCffWPP7W(3z)RqATP&0EmoX!+k}%E!75MZaA(8mGK$Vp1;Xbp*7P3qx)Nm5Q)S -zoF!zFM|~8Oko}~}4p-=uOubgSw4BEKRoyu;*)YJK?mzci|H?XB -z?NRR+(;l!m7~89o%%!c?-9bOtH{fN+lcs&!4xTb_Ea0#2c^_cs^^FE*8QB8fk(A3$ -zIDyAz^%rvII}{U<22$0`aDhsMq#oBi=lG2EJ!A^jl}$0s9$EjP7|=$|Y_LRe=T_#R -zgi~#i`blB}@DQ%qek;9OhW9D8n5+QkdeR9Czs?((W^xb>P7czWJLg-PjC+w416{~# -zyvtR9d(RT!rD-n3oSs;tR=(<}YjsyEO#I?QDVJa?kv8a*E?~ -zSbgY;TTFBJka?{@Dvw@EXk2uT?E1|9{DWYm{o+CSfD*hFW6GfXL?@C4&|D|Nc;y@L -zi|T+AIrp}NlrM<`Z4pCVSuox9hmQVw`e6V)K*GNayJIN2hx3kT5EWrJv?zYA2Vr6o -zskgcO8D4STU$25&T?6Km8Vd>+H5a>cj&#&?vf7Awgv5ksl-!Gsv}mVgN`g7fps%hF -z0)}{UceVd1$f&+r4n1kI&N(eDkyahp(H_u=^(;8CvCE4EwB*Q5bdun$3R7~7 -z4D?OG^`RO}Tc9stMVI)2@v3e0#WjNPQ+}NwFA3&m*_SOJx5HH%S!#3@|5pj#94E1az^cI1WTRK?DE&eKi&^kGt9gI!yRl~!JK*JH(d^!oGgSQsSKMFD{8b})jXb!LE%nr$ONfF#p)`cXrq -zQX%F#dL7b$(8t)nOhU)4oUtp48_x5A047YX%`nf!2#~rH<1eaMx?0OIe -z>^p^1(0W5~emlet3b27j>B1DNG4UJ^0L8kP(|VtqB7`$8Dm2U>^gM~T1icO-Da@{D -zpkzZvvQ^KzmzEV!<^bdw&?-Wd)hbpl}8B3dRg;(Zy!r -z;$-@i;JYF@TNNrC?P@x0qYX=}b13FrpY)&>JU&Wz7nCgG`co{G)8qLl1X)3NTgnwg -z$}4&as8^uCv(9yswCud -z9x{nDLb7UZ{Kt3kR?E3@s*@QEhSLo;<`PjvA2R<2DY}ppndw5O7dV9vzo+XVDZ@dRI#P+J9hvS&7BopJ36CHrZG`ARU+0*H$|*OJ>h -zZcmTg#b{0KrT6p7wv{YVG#Dou8DYr~svLm<09rnftcXZKuQbxux6Wr(^nf^zx>jN( -zD${H6yF;QoFw-eJ_NXaUy~NOZl)-&30R-{pawG<#`kw3O@;k=gu35b5_F)buenYkg -z07F;KrucoH851{-!Fo+t2W3-0B4EE!e!=c|NC0Kz!iSDLu(jvH4T!uL&7m&kT+R*7 -zsHX?X%M3;+mw=uR80KZsC#Aag5g*+&;-F2{#3JL1H~J};0LxPv_BhJZ&8Bhd2X9&X -z_N@(=TFG -ztiPsL!iA=& -zrG@rDFXL<~h5Ii_RE{6!QilDqi%nAe}?mm2b8TEod{Ys;O{-IXVD8o -zg;rUDviby}^VR?;Dqvq=>EHUSg&5AO7jHhY)!}d%aPp2?TF9C=65g7XWvmENna-L! -zO6iPQBYA=`6dnH-^TU!5c}3U#z1YYN3RV$&;hm$4KNZ{YiK=TWervG|hTVl7V>pr -zy_XY*0|dt=(}r%Yh;~;T{hWW>aRQSZ=#+FJVYN_~)DhuaXqRA7feDVC%;ko)6gdS7 -zNYl@L<*eZ;O(u4BBv=LN9as6A*dJ&OnBNKAc3?{3ZDiFY8YPI?=j;U~P98l)Bb{mL -z*xuT7VQp-jU;oz2SYdVLATdtm2!^j~lzbvuIl{2BkR?|VU-6A+_=Isw;A3_m1lWvl -zNT^>O=AuT=sKP{35Ny&>qCf(4=0qSN&cDOHfQ`EMxt2-&5?~xED!>>7`)|i}Ncaz0 -znkr?!BO_o9LkqGM*=xz;lW8@x -zo;Nt4^k^Eyb%;lCpiN?1_9nkUoIeLkz%jZO04Y^o0}+ekiuClW>_cF;z#PGX;P|AO -zK!rsqW6WOl6;$Wk4x$2wy@mQ}Hs9oA45UqXDDN6%x}H=U@~E;3 -zeX&qJ9n?Jyj<1)BMj(i~ZR&Cz!YJE_*ysZ&obIoaXveCi!I -zyVf>97u50~na*3F8JfXM-EAvtQeE^B9Z8abEzc({4TcPvsjOddOp>x%y;VYRq97HMGc!)3evSOoL(`7`%Dr;6d#MzxffAb-(KYO#^rVDr) -zAb>LLSTwqRiO({*a-(1*YgI?k0fa7ZII%jH34mHFIwdBPQ)M%(A4b4v+%U#=`sTaD -zUj@XERdR{Y+uG+QUo9|1u$%1!n9e+W-hVDerag5eJWm>OC_91&;yLZf=64A;>(W@z -zMR1X|Xv95`ck0#4UUSl!tzv|2ShSAhSPG)&fJe2GAglK7N5cR-by8 -z;9nV$aGi5?Jv>~jijnuG9lVc~4f!D-dkq;fDFHp_@1tYEQLRMjJDYiBuK-Zk)pPD3 -zY&UjA^EW%jsQqMG{YlKNPl#`o?`u1T@w%iMOH=t+6hh;L(8z~oA5&3_(S86RK&D@c -z`3^M_-{7x0K5#Os!DVX~%~h -zBi4~5JZX2Z`luO`v=W@88Pm3}fR5=N-4uvO -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 -z>w3q$V#d$Pmr3R|qw7hMzpSob -zf|-`w^TY8G{}bJlGGK4%=Pxb}2m0G0`(>a_ -z9S(9j6cb9`ijusJyfgY38q-D$&bcQWT#S@Yih7*1yyXpAn7$d9m#xxxT`DRxq$>)& -zxHyi)%Xz#o`YH_~BCIbG8dU^9hGI7O8L&atU2Dlirj9AA90=O=K&F#kAQ0+M@8@G6#g!Pt}+%w19BC! -zLK6YFP2FD*ACLk;kNyspqU$-XrK3uiSHrX;p*WUaJtRZCps6QE+(2Jvr0+P%WSlo=EhrwLiMPz{h)H3rJO~3b-_?-1em7jpYEN4S|=@2_d*yUz=uu5S{3yT~Fn{3~} -z`>tTEZ?FlUY&TD^X@I}D+rl&R9=V+bSx5;dKiXL0N8sU-$_d3svSak^L53O0fzsi9 -z0Eo8dIb%8BD}`F{usoD{j>jdPoLf^%p3!@6ngzv9d~A$U)Q-w3-Hq(VwQE*NzXvO=$o<405=|V^(i;0$->}zbOs=cogPL9~MaQ -z*9!D6sQ8;#m9(tNS`1vqeP$;@K1p&g`i9OMeOnLK;Z|o@zwsPltgn-kS4fzeTqCzT -z(q0R6Df-MY24WtIvHPi2)Rlh!6|<&cy637<2X;1(LUc-iL{1I}Mh_5$`>Pl75p4m9 -z1wW!{K9D;Q|4dQ>@88RV8qqlk#59QR23Gq$Va%YD?%sX8_Om5t?`H;^Rq5YXSU#`O<%+H&I$uGB`JzyBt$0M6`tkcA*9ePi2 -z?`iQ90z@=ujX|;*z}Uopn)3@U+izlKSJO3<2r6gs-%X((^?Jqe5*w#>%I!zR+*_5#(R~9uM}kg4Gk{$Sj#)nvY6ae>k-Pm# -ztZsVtt3ga{!!{|uzG49%$pmE%#ZglInpeGUm9AdC_5b>=4`O+AX1~@ku{)zwK632` -zdh;fWJf0x?*W==Yc)H-S-eDc69K2e5g~UjfVzs59^jsCJaiXjTcZu%CUU#wVAVd_4 -z?v7Kyu#u$jUK)@Dob{gZ@nDwG2R_)1-r81mst;xh6f0a>&|M`Qe7?qt8(a%eZLW^D -zP;-eUrQU|BFv!+m7>nRyk+iD$BCse|gWbamV2wBr!}oPmH(pT=EJzYBs{V$|cg;a5?EBigL@1-k)yPaV1gDmw -zgSYa1*i~?X4kQ0_{&Hb%SpBE3RX+FqlaNS$`5m*juP+Px -z`|sxA{pbG6MUEfuKi}r}pT&iL{n}Ufm#Qlmyhhf -z{M`MqLL6~^`yD2Dw=b_led_J!FH3a&vZQ_c{`2(ZJLa#~)xZC|e0hEQ^)Y@~r|Xx$ -zhcBPMe);?5>-~NC`}ND;$K%T*Z$3Yoc49;CU$>_m$AA5ObNyuVSH(%z52!yNv>hKC)=)>*V -zz^)4~4_1?vl@(J}kfb6GgOTl2|wZ`QYht(>rD5N@Ic9DpwDPZ-9qEW5wTla%$xG -ztPs~}wSn&HQxaQ{su2-5D3OW$3=|_OUi=~QB{lzhLmPU7eU{%$eA$S9&##96!>PQ4 -zpr04o&KIp_$lq@Ai1DAF-#~p06M<3ZGzF_DICc5l__9n#W*@!oU6+4gl5Z20NaLT5 -zr~?50eC+%BCe7QBAk_#9!m=urbnc@5XG?#(w0WLo4C>cHx&e^j@+JN$~Ad -z$$oU^W3>5<;DikA60BI#s&Cs@wvXG=!P^URLeQ5&sbrh -zC*aOVM%F5qt3X+aVpu3pl!VEr?&L@E*Q|b!9u8{>;V=dn39gGx)5ecHG0uy47KV}C -z7u{}Y^;KBORnxlhlI%gYXdVOWyTJfkwuAExupWj%ttCWn-$UCVOec{B@q1Q(#CFyi -zq9+iQtMfy -z*ggQcima?Sv)ud(lDVSLdGTKWLxU4^LdiEUH)6ug!7*~rwh7Qtgi48cG|R53CGfFj -z#Un`xmq-lY$xI3gl4kSIz&ih^blx3KKl|Uw2HYcuA-qeYwh|Dn=spY(Cm&lO;RHhD -zH|cNL;^@2?L%;5+NtNU?r(+YSK5Q3>P8oP6d{^Z^hR+@3VMczN0X7&5Y@90uB=zUK -z(0X^C$Ef;ixgiLlvL3=#KCg*{UrVS|_N%UO)SsV>yYLCj`X${PdB?cXjJ@o^UTxQpVrf{E^ae>w{_}k~|1HVL+uI~^ -zr=!4V)$;bK)pmXV77T6rzaP`*ply;q4y@qzU+!@}UtNVSpWJ`B{-wCsX3GB_g4Lr) -zJLBUitZv-WMS+WY-@w8=;_w+J$%Kox?zyhO#b5%)WdP5=$c3^U+JT_k!O)Nl?n=Nr -z!He&&LcIF*cVtA6wG2Lw2IEUpN#WLcdV-iYRkBw*~@CrQZi -zZxjXy=I+?9J||>MbtEAGxOoQJT{BhfW)SuJN0{Rj>+>hba -z?zLUtHrcJt*5H!&|GGE!s>L$1BVXWiF*9^ue(PubcZuN+b@NkK>)xgFf*c~Qf04xI -zr#_u}{h_bsXJ`w~KIy(X^@ESK-mXJ_?T_#F$Mi!752m{L|785L@?h-v9E5e}DC@Z`T3)_~#pN1%zU1w?P8z&nuWO&^ -zzh4ae@?3*$S;&2IJg9bl`Img~damsKBO_+|i}}U3uX?8E-M4+*jPqw|{JDtbx$>;r -zBd$9?DRw{5U9e -z7ux3J-9leNf%9)S)i&jx$H)Ej%Qn)c_>mCzly4f3XQ<_O#XUTiI-_nSme9Yvy-D`V -z4+Rp|OY!`>k0sxnJdgpxnzp63FifYo52nS(?F-}fc(6W>1t~5D=k&kwTbt)!fB8TD -zlTXI4Gk5CK{z0_ic~$MzC4L7x)=$rn@Q~0Cchs;Vm!Tw{r#}w-?#z|;S*70{;RL0= -zA|z6>aUUFPrZ2m$KQD`4O+5fVRG5l<+Lr))J{mZqdi1mQSUy%%(e;SSzdbs?>YSIR -z`#>;-6;ox_9ofl2%}hL?nK66eV27$%-71OF)-DhqlR)w3xA2m!Yayexa?rzI3;fY9 -zmwxE^Z}F}~)x8wsBoTHZ@Lhtn7`=O`J)%o67|)nn?9dr@~?e}wCw|XhB -zi<8oEsl2sUJUK58t>Edjapd2jDt0uqh6&C+KVGNUG*Ki42(VbFF%sR?8A!J&c2Mze -z67d%ETkCW%F*^U?{ZJ(jC3Qu;suV%hQaB+f2+V#56oLxXU2mXXC#U_R -zG2)Li9L*2x$q`$-AE=v@KZou8=jQr}Ap%u(lWaIGJ%-lQ+u|<}kIwB)wQzG;>N{Du -z)A!nvo$+OdXG6EeZ@3{A{~-L0AU6~TH&Rsa$MkfF1&T-ggvhz}{AFux)MY@MxVEma -zy+?~;Z4VaibHFYvBQQM}*~tF)x?ir~XtL~_CRq;FDNS?`0A)8Q#`|@Kp_j*|u1|%G -z0TvldH5KFbH7I0iH^%x!imv(NkG2y2{%zSGh-dl3s~>Bzw -zaRQtGDWcl{T7P#o#V5vRAl=ClPqN7gl!(uQFu;*p3SrdmZ+<94%k$&VJ^XCuENFnn -z;C4o^f93pjwonS&=^yKfdQ}M}+1Tw>tctKmVVi&@8F#(}SBI -zo>T`*%hzk|mml64Z0_4+iGxSh_sc$M4v9 -z-_e+~xCAIZ$e%U(U&N-e6UxQ+<)3KvI=O*lQ>D#ypYF9Y -zje&s>_2Bbb7M<QTvtna;m0iM+bJF?Ok00l(gKa_^`;dpf+c+!nPE_-> -zAx7{jnv@}azR7L%O|U^nlN!S4wB&t7PKZx9=|JXnFW+2UbZXko3qW*)6xz_>yqGq% -zwme5fH}?FrNDs>a(Q*u_n_;ZS=Q(D+q;y{?2$}O>2xo)NY$&_8C?&nKQeYI(Rb)wa -zQ1sKmvY*lhhfS4T39Nk5AiN}PIq;Pes_8y|EN&X)*S!<1EX#rM%Bi>n$*+I!acU02 -zfQx4XqCuZ(13d101eYX{%FOvQ7VBn-cbxW=15@O9NV(NpS)l#x9zUUqEBR#fM-9}N -z*?Hm?i?2bx2NdI3HS))o19uJiEdQyBe3K(*V>(;mCokaxN-L6RP8Y{-LqTzEyb8H) -z_NfI4$pAXW)L;_{K3~^Xhb4}qL-_)Q31bi}&ys}lBdx~SfkKA|O -zv=F~1!DTi=9LKyli#E{&9AXGv$lwsmXREjBLYzrbZYDsy@<*}OK2--cL??%n{K+%R -zW&L~*-=`}U+$1h<#nM@O06x)rcwOW#8QFkB7iqVam5OfUQpG^GKPk$<9c(d}Dp -zJvhI%Xy_}x1o9q{x^DjFx_`a&62Yt_(QMS8z$^gN9R^0JpQ6k$AW_D^9E6vAMh^i# -zCUpHoKKyh-AVs;D0q#EJXdEL)oJKn?055@yG`D`S_~-Jj5;?5*T>^?=U8Oiyoua}n -zQI>Lg$Z}rw7vgKc&$5KT5jbOV(3*k#JVuCi56(3<>~xAOAk37ARlgI4OYQ&ARAg>DLVu!J?3t1!15^k0Gov~A`B(L;(l&!isB>1C -z7Eur6Ae#Uq#_>#s=(zi*JhT^w3mM`vw~Q8^0{tDq^yM$7IwO>PGBfJXU*rYrso=t| -z--ne~m5(d{0neT?cll6FdyUFa#B3q=K7eFFr-Hvt{pV%=;onQPj2cRC3va%cJ=c$C -zs~*H#;_~G}(9tp -zfC)toJeuVn5DSsMTv48cr@#WBoGIUS-&uZOZEZ=nJsPIr^Rr?DmK_u=3Y-IG*Qh)3jZxF5 -zT^R$P@>I(Menq`B9qsV!^RdXWa_M9_9R00D)sdes5hdQ0n%;MK&^0GqD(KeOM==^EqkwCZ=M)gh-O6Y)Axw)%?lJL>br*<+RqLG6_g}j9l1b6^|1IY7_7M@)nPUjZx -zoEF2_JZd>~I)p;2`6VS*X_)Urf7fq*M6guy^|7`iTc>zepz(AK;i5g?Fu1swEM<=x -zXx*Q}1Nrm7*dcHI@#CjtrciHD2Ux74&L9$9B8Jz9I?!aEhHo8^#%9`=`v#>2{*R)Y -z??450z_m$26ka=UOH(G{vQ4FLmpF9U+9+p;9jifU9-$$#P@?*bgk3)VCJ~xEyaDf6 -zqAtL)Jz9?Hf=Uy&fvmxLi?U-2V<_>Igmxyz!5ydsQL#6etU9-aFl9M2=Yny)<^5ll -z3Ar-$D#iWl59>yPtRXvummCnd?`>sggx+)@*gSR966nf#N$#!v -zd~u_Im(5fpex4*xj6Ht-`iK5jqW7&^4onbhgo7*=H%1Ckxh9F)#)yDOHiO2Ob*K*y -zMMt=Hj`lTx3Tu4~-+ztU9nbO>^R(e$H!?LuGD+0yDN^0)$XlsvCWtnCmJd47C7@EBYt-S-a=E!KX)I(;GARdOdEqB -zB@|EvKF~%wd@cyWR;W-J0zaH)!rCrmA`H&6<;?SVCB>=F@t{Cz9uQFEFH8Gc_se!g -z9Y#M5yI)0}n4u%sJ%5y>a}9IKC6-IbjGUAK#loH|rRZ*#;scnfKdW0>3w)FsMs2#} -z!Yt;7139t2?#{5i{RohHkUd}`>J6XPrOt$394JK$;&>&^La~pKx#`y64Duikl#|w$ -zr*aOqA#L(5S8MuDLu$Uo>7nnmPa*M{Y+&c`C@znWSu+uSN!zbB18oUT^Cm3~^k=@-@lVHD7!F$^S4~3?#|g4ME|nTd~Erewm-o7 -zT#yD?pbca>WG0H&64obsU96MjU48Q}mkGMXKku5wq2kxLn9Be@QHA=PAA`Tx@qD`z -z`P~e0nQkjb{Osf99*iEr>>~n|eQsU2QeqVlL+{oP;z+i#!W2EodFdYj;(h%+mAbNY -za`A`8Cqo)gwxHae{{-$N5S6J4n5{GNK9JTvI5}(I89O}fR({jm%U&0Mk(2_i{Jp>Z -zP0}H5-5>8==K<`fYc>M>?c2Bi`%Bh0Sc|oqfd9oGb1&^v6|J!@93{_}*C}BNh^X=^ -zrPi&zWO~cx_~UM&7^O>m{!VFf{&*>r${0R;S;%A)lt*2Yj-xo@E?J;3W^2rTefDOk8Dys4}_X%_> -z>A*Z-UQ2d^wt|z(ud{roJ{a7JB1sr8>PGsvB|6BXlEHWYtLgK3ziV(;l!&??KQB=N -z=v@+sXRujOF6w;sa -zD&cC0er&_>Yx>KBK)vu2#|+)XWt|bgJOVx+e@qbVxM-0BCCZ@#ny+3Nnrjb4!+GJR(IM`fjo1|GZ~nuJeP{aHBPOYP*h2yc(Dl -zsk=Sp@*R?1=!}_BSj=A188LXQ$)WDd?_2sCd;;ojZHhuABt~c}Fea2~y*i^syua%8jZ#aYON$yU5L1*$4MvfP(jg+t$k4+)Il$Y+e8>R(ur_Qtsgo$K -z2dV(dr+ry1YI*yJ@|6Zlw_lY}b0sFC -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 -zNwV6hLAcUS6; -zgN#RF*pM41jisA)N0MS#QyHho67{+5#ubGa`U?SJHsv_FWvR70VcSEOi>-r4r0L4} -zuC0FXx#C0z-D_k~L5r6$KWj1Q^)*t@yk;|jEI!4gqzhlQtC!wVL{X8UE~lKU_C#Zt -z5rOAmfQz}}Pp6|;?>@2+X*Z8ihPO9O>*X?qP~5a;AQ?34 -zRuZ-vnXeSxHI;nimA>>~A%y97JMwMMUuLt$CfT-ZrU?y$QsKw;G*N?)2UWwy)d@L> -z-)PO+wCbm)Q;thMMzOs+m>5C9xjX|ip{qx>&fXvgbzQQ@M)TVfNb`Fw+KF|#6PkAv -zKMcJ?wAy#YI#rZA8Hj)zg5Ijf1!@%1!J@yBr-Kd2`T!M#j}~&w)tL&#Hz+xef8JDT -zMjIc`CPd|Ru$ja-jJldwoZ?_Qr7$G+pWMq5mj$?r^6&jMw439Mf8r~PmJW=-UR0Q1 -z!y1z(lpi2FHx$(enNm2bnm3xsw&CCBcwJS=(MB5>4j9wv`Xj0Jo;b@Z-pZ_TPZEn& -zNCqwJsd6?UIbN%MQgCO2MUcPLm}F_=feI@?%hgp(0N)}? -z0I{X_jVKai7j3wqgwfgw(Y>=e;(^ibU&w#O2n7;bCa}c9MFGB@AiP{>`L4}iMIux* -z6{@DP4oOfZk_g{m7y)pyo6gQDz1Vyi5Ul$o_58%ZneDj@>K_;(QWOVJ=W8)&Q&jC;}w;vFrNJd>hg_ULsXEOf6I!~*$vJCq4(Ep@7wb&QdY -z)MYzxVRFMu+ByE~{U^)IvpHA;Ko8?`oQTQkx(%$SuT7dd1X>YPgSWRe^2|Y0|9dVU -zbkx&@Gh-Q&I>3B?GC?Pf?7&_t)QJC~p{B1ew0`h;iD_e0{^o(rD`Z%EkXZH0NnvYH -zmuw@ErlEdw!AC9hg0V#f+gpoVuCsI7SYKrVr{04XmKGz&gFHn*C{ix;juH1kGDcuS -zLY*EBLO2f+jk$&d)P!PjN*pDzsrJ4IUjp(gReU7g@F-5nD{-ZIu}hj)Kee6%wefk^ -z4{v0U4~DM`#f_css<60fd!a8s-~^XsG`)f*7fJ1C_oj6NUkC$Z)#8ffj$otUREHpx -z9d~_vssM1|AMXZ(iCy0;!R`%4{w-q;uDugq`u^Ss!WoeRglR#g<3TvlUO6_;RpW2M -z5q5kY?l!?d9)F?%NH)>88O)Pbk(o~CR=HsfaN@;=R6@h$)=zwORDe91$1D#`&`N5k -zIiODT2tPNS2o}F^slqu>c48R1sRMJjucK~8xPj#N`(_JiT|}+zf3mWNaKk>}uQMmC -zPZf^>rj*}VKnX?HzT3lgJ#mc(!2aWw7%qh5pCLi$XyB#y)5=4DA5pp1md=f7g^_Ye -zF8TX3Wm(nzM*jpL=t1CjDIkq#oOhRT16Jxg9b^+}2+u^CESjj}~fwK;%#?-eC}=Dd##zxCr_NFsmrv -zd%V8p>wIH`#fs!?Vl#-7^bp)^dWZl!9r%?*QVsB-f|FwpI3OyUxh>1j$XWr@J4X&| -z8OlQcMT`(C%Ir-xk$Rlm*tk+jKC%6zzz6RdW;qFTpu!ZdD|P^&QN6X(1=9M=Ehh)! -z?B-im>iy4#m<=!rHBC)K2C!ujDl}bhIk(My3CKNo27~#^USc<$lAd7&^Z -z!q19?BQyn|?hxM*0UTT10NDwRNB8b6f1p;*eo4eBl4$lsV -zbcdA#hvCq>$H! -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 -z5>)_F8c$js6}HE8*M3 -zeO{Q%0VW@?46P!1Xtn8|{h5}EE@d^VECil$%d_*#R`HH5?`eu6Fb`j2bH_Pstn=@6 -z5rT4EWZ<|Yez5^=FWT_l1% -zurRSBsP@6XIG)vzCXGuriw_4*5}wav{|@N>v4Lc6W8}{TraGx487d5v{s=h2_|i~* -zqL8POa3BedQ%h>o7T(&NMSGxqk)b6AXWPtk_mcbQ)lm^o_;-1Va&6l@oClcam9$ -zWHic8yNXFxpAkpPX_{eYEW#|DL(S_(kkhJvV=^#LvjtP}A2be&Q2djNDD) -zuubz_zjx$DYE3K^3mzc)Mr@hWN*>iqCO-l=;*te`vwl9nXhw#=-Q86ue!Wkqk~QcG -z>2~{4B{-?5b^(f@udu2@KaHPig2^&4-J0nt{$5#sf>RSY7Io)U>k-H1p9>8YEYdi7 -z)@ctOM66{tc26W9-BH2Aa5(iqvV)|;29d*Un>8|dSoz>0s>fQj!l9-5yd{nSWD-X -zB2oKqe#E7Gqspw$sWKeN=bkMkEW&!t8EFA$;KmHsX{6g)ziw$IR2mTcR5e+L==!QB -zZ*Wt4K!;FSo>+Bt?do9Zm_%AqLY3z@$t;9tMduy1d_g0zHNt`x*wPh_BE1 -z5|+uXP@i!bw5*N*0^es|UAPG_b0MfGz;`2UjKG{#R+d4>W>cEfzZ&A8z+rAc5k0!I -zF(dv6?Ok~>j!>^N6kP5HzFSf63rHjK3AU;s>()uc3}>~VOSONG{~A1fBT$O5t?=^NNDeJsjANJ>{py?MW$BBn2y}Qab69Ol-Z0H>!>^-312FL8TW!9gd|NR -zVnD2U*X2*$VEA`0+*WOdpJ%?puHy{=>2kUqym*ocZ*hdJv2x<5hy=O?e2JNYb{`S~ -zrrd$ybIlCYnZh^@8X0Xl*jd*Pqy^8LCR{v8M_1w*DoSpc_2{1zQ1IRMjp*#f~fyG!)xE|;e`IpH`6 -zBOm8CW+gqILYtLKocVe{|4T>S6U{WV);xsQ8S>GD_E1{Il@DODzjYxR5?j4q&)Ya% -z7_p&1JGa#`0rj$khqYQ-Bhjl7*X1UKHuGr25#*=>%Y$|dn6%K*h}O%C5i$Fjoaj}k -z`#bHoip>}~R8{S3?FbVF8=Rjc*Pnc{Ssy=3P^pT=fap(?oH8(#=@RJYal07ismAR# -z{H&N%l;XVbVlZ<{RWD+R2B~}Ph}qC5Jvd~z1juZe`OZ$F4PD1a=Wp9FND@Z_sfEyx -zWuXbha(`!7-5}8s91a?$bnF$SEEE8IS^keyqbnuac?1dMX0u0N}+QhbQD -zIED=x5s}pV^{=DMK7U9^3+TDCey*4~HWusQh~j&80WKp6`jG^vgIXq*E8g7OafU1v^h)L{mWUvUJZ|Bb$sG6`GwBo1XG3{ -zVc`PnmYoWv5*@3<3PIzeu3C@oCR(yI=df`oJRgA%xQ2^4{*uMedMED^%;qx_7r^U6 -zUnO6Z1{#kL3VXe)&J#8u8pIh0I`}Y26#OZ&VKA$IhthJi16K?j+7UWu$+lmh1!E%O -zNl}75(2}bMtIb-P9bHW3D6ory1(cUjQlu_|78u1 -z*T!Tf%U(}n1CU`-jby5(Z_M?npV?JXS~V!V;MDTK##W_8i3bK(@z}a3FyWB$BnpP2 -z3^fWmP6oO{WtFVgmMY0*bFLiR`JUh)bgi)qpshR;WKL=S!p!WcUbUsNR?@vk#F0!4 -zq>0C;fjtCItE|)`kWR2-qr8j`z}46JvQ7!!uT58~x;fzGkEcvS!oj83@(ibYYc?uk -zoih~~rm|Y299+p2_P_b8gSetPJ0y4+ryWvMa -zoXF#H$|Q&7OnDsuzRP(wdFTegHnyZWBeEOsqCdcspnSS8t>?_2R%86bmZ2%GS93nh -z0?O#2yj(zbaMpJ^w7!gxhYWk7+!`OzXz@r`b7r_^!=??eGMj%X>LT2bSKyi3GF5`? -zs(g-vKD$oM@>_${2F8dJ%dZ*0tCmldQmBrR=$K9H#KWUg8)5NYgxe{a4Es!o?+uFy -zO9{v;ewsJjsZc9=%$?~$`VAys{o!zTXvB6bddtQ|Uhre8{U$kC3GZ*8d}+lU^3YX^ -zEv@u9fGoTdS~?VNj<2j3vETYhmIZaM=gAag -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 -zPS%8tBet7 -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 -zki9c|2_GH5PyE;q -z=GJ4C`HD={bZcX=m^!d7pglEpyIj+F8cYFZPQUKupp*)D4{1P}klR_a^#;+}Kl{K(O~FyS`07s4gb5pJa9}q#WF4FZ7G?4RFb#Ds4AibQw5zrb -zGx<$6X19_>nx7fK#3vbo|LXhP_X8BF!Hr=h1uz6&z^k_pQ3FCCU|tQPA2__?Psym% -z#lr~|Q9JAclZBX;tVtdjo17$Aj;?p1qNmWLlu``^fx>zW7j)2l#R~wVqW8}Uw3;jP -z>?YOGE9akumjS%n+{TwcGKoKK+v@7_G4>Z=)d<x>FTcIVbv7#TabtQzSD@c?_RDXhtx!_9AZ(iahu`+>D%|#6td&0w -z4+O@PxkSl*BwaI(%g6_eDU)Vqf|xV#`Zm!Kkb^>cKGN&^LU}?RPd|KiU!0Y^7HH|S -zZ87+ZdZfO&Qz=8tzu#^$ex}ICC2I4c!wTZ_jaZgDh@QS~kSA<}aDLTECLz-sjGTr~d8FR)dW5 -zvnBx?{Wk#HKqS9ScKECqaT7<;XEd59x⪼`B=RV76&eSBQa(EZFv)=FtOcd-<0z#I5thi(wOu&>?WA;x*=cfJcOgO_+E -zmg^R8Zznt51h|e}hy8bRrz^j8L`UdypHmf`wX4tb&l9D^-=$Zydac|*w1&~@vQM|t -zNyI=dhyft(T?nn$z5*EH&5|s!lkb+!(lw*urT?;pM2+!ovB;~rdtb{G -zV5VJo2>{YzI31fQ)@pbjsj6*~GAkyQXW7LKIh&Y&eSV&83^oa^qeCA4Zk?)xGEsxm -z`V&E!Xaar>m=H%enLg%q&wpHW+7RvL1^76k1+5=&UQAJ1 -ztC=Ib8+(45q=)5z)HwRj%`leZ^3 -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 -z-vu-$LB8e>dUa(#bFf!SX -z*qg2Gj#|EcMFxJLe-u0$8~ThX4DPIJeFNtKmjz@|0~ItL9>0R)p^M -zl=ELmc%kiM#!fMNN@qk*u?B}aGkcM8+KZp^} -zFa$&>VnT9lc6Ov9Ym;VZZ1c8Im=S(_jY0gP2^{Uwav@N9UE$GsQvXU=-#x(~YhoT+ -z@V&YBjw&7#Gs}_8wkKzy047thb9Pe|Z)CbJl?sQx4PW9IzwpW~bB{-C4-KWsHJ7RC -z2l;)quMXLQ_`B)9C*m}$Oziex-o8iI8A_rA5X7`5b#Q>(YuQ5vNQ2d3OF^A@aXnB4 -zAeKBzvNU;IY92-2|EI98>Jd*bwgm;@-rOIAvQvk1>n*7R!9`2={jL1e}E|#ds8_x|BINsmY%G)yQkugTs~@O0YF} -zP`E)Ka#6R1%!J60K{fvH3w>OgW=N6e3^ZQHw4geT^#M&Wy(OlsWwLKBn?5wfR)h)Gj7{hMwduM|A^Sg -z#*lyhl%OQ`w4sFyNNI*7)X~9eG*;xHl(bB6en$5pAjzd^cXQcnwbQJfpi?0Iz!kAL -zse%!9TfWb}qfRC0GCqG!&7OSQpTGW5l23K@e*HrYWAkMOMe^F(9swk1b~M#I#o9$D -z216StOFo;km@X4K4$;el-5j1{g6f7r9myar)Ht(SztQ}h{&F3<3+X|-32k8M12WYS -z%6;=M-qIpM&hO%)X3Om&+o$YF%+~1RSxC>)%N`vUKWO-#?(4;r&vvTLgyr5G8?g~8 -zgc?xk8ufzWwuMK=(V*CLlZneO)nBzw|C1c1CT -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 -z6;{&HkKEjoS383fDt)!Ieij5ULK8=6Hg{u -zi8Qy=7zU>n3|)-|4?s&G2-sZX7E6KLifY@D7&gBNvFLl?JPew`)mQzDM1kXK5HyVr -zkpUIw(CphK?O|6dBtnVGT3A)T3=O8ll?=TjiUI4~lp;TA+Ozb7_GH_W`X -zyHU7r4+b@8h&mI?)a=a?o3@>>I_WzPQEqYWJ?~B7JDb7G055cO<&haxb=d=KUs@)W -ztp><~tnT34#P&EouT}~HLgqZX+}NfOR>IK8q9?N)MZn!e3B`WwW1f9M4rgoTUyoq@ -zJJr`qBN7s81(#GI!I0d*S|IEeFEP*Xm#J-(+iPHXndC4AY)u5pfE0%-Mgs*u=+^<9yBm&f2Vc;D^3FuIy2bne>7U(Uu#gM -z*eZa5w#0=y!u-j){4C?@OO{P3&ZT&h2x9`(o;hF=?29efQ;Ld#`ErB2y*f}XTq91( -zqD|;40zbAbfl4}|w%}4r5SHY6#S?GQ%Pev5NI_23J$y(EW@z5k!0**%WfbBy;rq|u -zhPQU|qV>04?G?^$MKs9eOyt$_NUsn~5fT-q -z>-AsL19Cw0$kx5w$xy0oOPy6K3K#Gma^dL9hR#joh3iyp0s&IpA4MX5rG{^fL^u%A -zxX~kY=tq{donlB-;oU(~EOZZ@m9;;&b}^0W33~9hpliw4g6Z?n$;RaXOi9XBz&uK} -z5qLYGqUemfrk_|ERQ?_(mqE4yBGlu -zVx`*%3=n%&+LkVE4YwVqDgqX~f6RT0R0McD;ji#RE;GIy57Sb7I|U>6$DI} -z^K7Mh3cUv%&ak|gj!cA4*oX+gd -zASZ!tDv%{udT~n&@d9Q*Y*WZzAqOSPT!mL`jYGpq`wuMuC|{n=wunn3dsKgx=!OPC -z1hNaVkppL-Ft314UJIbHba4n*^kSNmI>(5T(l$%+Y$r=!FFR1wtz(gzLN9;Sk|2U- -zpJogqkW$F|tYl*-+-^{K>DIHsb|}J -zBYtwPp`_fk77uu5vQ3Q*x#BT%T_;6FUpH|?Xjf`Vsbi*c0BhE;`flA6d -zHqX-)1el_>s^)T^VN)&c5$h~Z9O)#(irv^gg66%!wo}mFNEFy!#ii*kJEl5qi}#=^ -zRtUAkxP^k^UFN66IVOEHbb&W_Fh9OD1Yt1*E>Nh<-=OQ+dR|O(e@F|t-4O4sp~AP# -z_b@)un<78bZ7YTwG1qiC8Ft7b+Urof!x~sZk8R#YOFH-s3O;47e2|LDVd` -z%(HiJ+I*PIFd%t{#EZv}JpeQo9}x)GHco^oW0UQ6`TAFqyc*4boL}O6!f@f6VN2SA -zw6-d7X!hj^er;*p(<{(C2BM`-&3J1gl%+aUn3Vc`*zhd6btmtal2JgU -zLvsTtvg>Ha`f!{??p-L4kr)Xs49DroKl6?;BL=d$rQA4MnGA8sWLhC!F~O{h%6#i5 -z@)!cRN9BPmtFoPxdDb()*hn91jjy(hc<=g(Kg(^k+Gb3E8-SgAfQyNUd6XsgFOjMrlfmU -z?NAhbIQxMTGR_$6Wy=!d;G62KKmXkOEYn%`=kcI6=#sj#`0i2su(fZ_$Xf+hK-!`+ -zEqs5qq`LP#1bb5B<;!GBn_W~zThDS~b7{1&6p)Fu)Srs|5!K|x -z8!RD~9+J@=PFR8!VN0(V#tySt_IUKI4ytF&wi;Q@#cdzV+1Aa88Ki>w{7khGX&0G{ -zMG80-SxgVj;H*U=OQVA5vbw@?ktbYm?WLt$HI@zraq5+Dvr*_MenfvRta}OKJFua< -zjlv4^UapZ@+9u*bsRM{)7>Q>CqEUl6PzFpU-6qRbernbhQxx`j*#N^rfnWB7d!T>S -z?vs}jQA!|H6!PtNu_RyK$}7JLUkB>)GgD5nZJ7tz*VU^2=rT?Z%<@XTwOYp0X?e`d -zhM5K0qVDWO7~m;FX&w!s@^+gjJ-^XRVxUtQVV!MV?ad4nl-K> -zCQ2Ug+Jv<6iu=|(GwYyKJ}KXH!nm-zN^Atvu&?=|M{)(X)g`zLkRaHuQxURd^0%PE -zDF)rKt*$-{n~r`X>=^mLSC{@oW3gyagO72`@CpMua3Qj{y2O`ed^0Op!fqMDO|R$1 -zq@uXGjSRWVeXuv1*t7(Y2YuSZBTx?2@$8|1<>?RNfsnmmG)*rs6~N_4y~hS?(yWtkFcUa$^3Y(Z_vdlGikAfxs8Fhhp@l>tna>GiJUj -zZ(8Qd{VS@f#uW^W}ky(hfz|^UQUCG`5Z9B -zhdbpcXNr%0LQ~dozaO$y&pzQ~GXCpC)Y|{--SIw~IE)(VxBZqn-Ra0-MojfOWK!(& -zz#PP|TTN>^I!_CP!!sXn@D|-e6nkpVNiRlGG~zH=o96S;JKE#StxK7~G@z~1dKxxiS9OeW??>^W*~aYW|EG6IA-x{|#wz)M5LSGhr%VZQNBH&9H} -zT7|qbV>nar(=uT%Kn|@S_MMD9n}0R1K#JHZf~Ds=5{l}~kjb8%lx(pZAe4NCQHDw` -zWb7;DVbLe6ZU+j9V#1p3gsMqA++Smw&osLPukFmVs-=ifhmWDj%(Pe~Pnc~xZtp0EHfgRgga{(EwI -z`Y+&AlF&f1nkQ=*<}nIkbIN&Q*ONVNZcdf!6-9&K@VnPw#HeWb9L6^=7@aiT~Qh@95)O_$w^TEVIoyq2($ah;AdL(`}ynZAG^&q -zu4nwKZT~cJG#;r&z;K8e7lzueHvRv06`X@0C>Dm@Dr8$(+Sh(`AALl=7thaEWR0~$77-f%1AHNOU>%=D;VJF -zA#N6giMNf=O97ns`&6ebMS15AS!wCczYaEYgBN5ShEo12kuv~Y>n -zEt?qVE4OXI85b1}Ua%zbfqax!DhmLh`@VKJe&nhF!Jc~4Hwls_TPajS#K&n<``X`9P>Do$L6l4 -zw(%%R&G_~SKJ~`6v%z0Xdt)H?>G*d?2X2nhw`O_*AWlVTp^PCp!dLm28Os8hMbyF- -zpGqVnQ&rcM?MTs=hb$LpN!aeD`COa#EW*j-2g8snb=(G{=i1=P%dfWF2x8x6tNO{# -z7Eon36b<9ifw}|EjVUKYmZ>>XM}LXz8_Psl_*jbbk!RfGwl*ZsW9g5F3f?Mo2Pz{s -zomE(RiGR`Qn-W~7J17?_Yu2tcIZDM^saF$0y)Mq#o-9{^^wASYKe8go2-H>?DEGDv -zL(~SS(vhMvk9Q!k%nq*o%@s(XuyPs@1WOG?bwRh4+;Vw5;<@12Krk_1=`v>I-P`Z0yBKZOm#kHGRJ -zaQ~{+Kd~o*l2KCvmA`?fuH6a{@tXns{88xtJ{8FpCJ7GBf5)nzoPg~B3j0_0A7PVR -zh({Ht$5IeyBO8}v-GSGg(&JE&_ZxZ&!wQCp%3(mfV`$HSNXEmOP9`&(tG%@e*}dfu -z%g4xCv8>B*T;h^%1T@<+M`*p(!p9os@65aD8YQlJ1Xb~(HEHB=>SH}Iw(&wjmaLML -z^UmbX6{AD8l0aS(DOI+Fp04zxZ#VSOtjf8yJ`^-PqtVmuce~&!nexp7Eak~Xkg8MC -zH*)dz7s_3K1+U(2%8{CQim_9me!DSs=RW-c$g>1~Adb|x#K2Am#93uS^VaVn92aL! -z+~icZrf2foj+bj<68orzwLxuqx#@u_z2;nP50jR;);$B^1OBzGI^N-A| -z&9K1v_T#`anJ|bM%&_;>?MUJ-CSq62VL&6k*UjfZx|Cw>hi6l)fS(P9wCaI5q=utv -zs_;ZReC(5vR6PH5UNhYU~ZR*P#mQS`cIBs-?uHlJ%@t9^1 -z!x?TcSquLPst!H_y;GNkGQlO~3Y-!BA)c}-( -z#8@u26wI{9ziqKmP!z9XBHDsq6$|b(A8I`^0UTIk<0Nrl$~OGOn=QV^nH{9MG -z$5fwZ+QgOjrYconZ(WuPRaUsk5)8>)5`(KT{eFYiikizxjMlIn%0PU&M+7>WOeCC> -z+Iw@FyhvH3*x#Pq?Vs7U(w?X8R5%)oy?KXsewtA0R;TPc33mz&uulk))Z -z<59sEbVW=BrxaO`Au)UH_!%@cJ#0z -zMoStrVNBtY;$PRCqQ~Xxkt;`HvTE#^AY+5A7^S?#zNVLynkkWT^^Ax%38eU#z&i&Ia0REO8#Jt<@e!Xm4bAN|?k7HLYpO -zxQ47w`jaJ9eN-g`U9x<73rywGfO$c$eb;r98sEIffLr1cV``We+mDj}gvB#ENGjlZ -zhQ1oj^N5d$WERf(pEQ?<^IWI6rG{N%KF)%UIL36l>boWPWpTd>?Lg7R0#UH_19sut -z)dWd*6f^Rkvl9q&{cErkl0xu$kU@drxJfmEXDmbYEM!v5!)tAdla~bbK&X(=-?L6V -zLPN)#+D<0k>I&JJK7j~f%hvMH)O_{gv^ZM+x0&*>tV33Bmx;zMFYB0;3wj;_W#!C} -zTSBEE>=J7U(d1Dc8TVs9De%zoJbxsFxN~9Dm~Y2c=#)&oX1g?<#`{%)IWgHVz#i^D -z_G|x4f?D-a?wyGYm>-PkRY>Gg7whhzAIux@GNew^zODxk8Q2!^*N-$0F!TCK9kYaN -z0q;mmX(z0}W3&7VN%9?v2~Pu|YGSxRCPG4wOX_ocH03QMuGN)AG4vi;{UK}6M$T-o -zKyl|(W}}2tZISv(d;$;-uE~BYk6VKGDYcl40O)$+2@Ai>8<}R36Aexd@|ZihTbzt! -zkr@LW$V+pRs{qNK1;9&Hby=UDSfg4_bxW@7{}1vvkmE5A{rTh57BIkQSmNEq`+@i6 -zDuaEl_i_2cpx8dZRcs7oXa8B@EK~Rx^gU@WGzr|y#Q|YsOiJbKNjy(hk2$46Wl`g* -z3oEgp>BIzGs2EdT%Nxn($@8Y8h%D}SD9+}D>7W? -zCtFZtv!yL+CIy0b;9A4pZ8`= -z@jmsM<3o~mXgmr8d$-u{kg`B3Wu@7Sw7pSWhZKpY$+7mR9E{M9V{Zwf)Kt3NTefcw -zai3o34Sa)`Equl_=F!=%V*8fFJ2ZE39}p^|I%|p_`ML!qjs(<=C8+Jz;04#Sd4S6; -z5zWbRZ63qw-A$Zg8l;CrU2vpcgvwGO~yIJpE;ze1r6FA%C8>oMpkfnvA~cVsalR47Sy}WEtOJ} -z>=y%1Q*gzn3T+iAKv;IA`9dGnw))^2<@YJ5PBfQzZL`eFnvdIYsg(>h$_3{CkD!Fs -z3^nGOJRyf8mvI7&SYsJSoSo=^|M{^R-IqI9bp-DvHgDHv1%8g2ODCMTLylATbiQ1c -zWzcXdp>Wn6*|^rOcd(QyFS_k9;ysG`sY@&j;?pA1=eQkom1v#m$s;*i$!;%Ev#ow4 -z3#mPb29934F(BPB_D>VVaVuvuin8CPMnE7CCRbaS=d9O9w-X~ODwv~M^L~Ctyd-k+ -zZBuD>vQ0q~3&Dx(;3O!L2CAbAW2wsIaNN@q>tdVMYl9TAn$4op!SpuIm3WO%;2>ne -z?239s)=eZ+^-OSS{s8$5V4H!V(x^U@89OF&UzO!yTY -zY-T7A~!3$m~kp}^8ErqecBSHwDptg-dM9n`$UdyeCRHbt}k6iekic;53s`VZcg -zk^+(2in|2#D3Hln=hWX0`?srXRmNH1PI^%Vw+v8|iw)HZ&EE%a& -zA_6yenPf9URBGG!=MUMfmUH41Cj}S`ryFcEAR=2nB%%#+aUuFK(}j{Q0101yPnSbt -zgPA~s%pL#Q7W$)SZcR-vw%a_jN+zwN0UwFi1&G63P@TnmkZpZG`Qa4!p*?l1(|h|D -z?Wu>0t%Tml6|coAOJGhh3a(pu)!W0m_r+HX*ZoCXi_~L>PX$%mC}d2)9Fo>a7|}M` -zjby}190XwS-lmHySSiD6|Aj_nWe|IPqII+|Q}*3bj+0P{NR0Mf+NTxIE6zj>#4Q3^ -zi(<=Wd$@}(Mr*3O-q$PZQ!+%2;WbgQ2+JvK?;aSCp7{ew8i$nViX&}(?Zj1Cv4@SP -zYav#mFa;LBJ4CbtLz=uakK|F&iw~_!8Ep3AKoD3iOJX2=@3DR_znkW_s}Qd`eHg6C -zz9G{C$e;_GQ2aj6(1;Vq@Vh3JgZwD453t|JvtV}I#ep&w;X`{HSi^HE26$fd=8%AL -z(&h?l)Wd`5`2=H*i-5@obnP;`6JyzXFONzdo#+@O{Q_{ -z2d_>0^emUy+|u6MaO;}nwZe1L2WO}7S=~>m<#495T?kI -zet`Gk0^q9U3&lF2E!8`vQg%0ktSJV4Ut%%Ju^{iW-PK8M($*W05&LpGfvh{0t&UHy -zY+Ilr*DCeZz%c{w=tvs3& -z;-D~Pf|~;FU_DatWSjuc=&M4Vbf3^Qo`3CB9<8__6NLI?`6t}I?0_;=8)tl$3HW<& -z)-$_>?mfqQbmh(WA>$9Dk)b?Z~ol8Ph%GZfTxF|769 -z4&V^?AN(^(;FRQn=#I%}At@Z(C*V6!BkkAM5e9e9&HE_{FY*S+FyF>LP5MQ#9$I=l -zJ$D~rY-%ghp#i$jHJQ3oNN>y^*5t&|bC=2MYsm*uM$;E?1Zr4IM+GBeS`9-DRu!3R -z(fyNYHM5>3I56|54m9h~9NB_4(QKKUJcDfh>>vS|=$av+R7(wvD-Iyi)vx*vfn@>P -z2o^ZUC!Yi|EXoaI_Np(SBjBvO<4Ci!9@Kf+xJ)*!s~pni}KA_%0ymrrK| -z`wb*EUQtjMUwI6IN^FU=1X>4>t5`xB9XBY={{8vuFTWf+%%t3kFS`*?gP~BwNs-w8 -z?6hKkLqU;?g@Wkd=&7)LJykRUDtzf-qqCIZAnu7cI?Nb`1!`;#vs+j)wen3Fdy>Y< -z4EN2a+ySVoZ347GEf0d}GzF@m8a$_6*D@wWr;q4}5)5pq5oxK=O~^=PeFrQ_tXUzs -zHwM;wb?l2-7LxmBPPDRv0r|wKB!+M>qHNR4-JtJ3v}wYL)#)Z6XD#W#T8_~zGhe$SxjgsX -zwwJyPWkXSH9+zIOw4)+8<}mVsBS#5-8`&f-ti$FRZ|k)h3o -zezkLNzKQ>pVfmOP7Z1HIy+QI>11to)Sx>;@%)|HX=VGkcQ%h#^s4j=nAh;u*!k%P) -zmtajTl{sBR5m_xpwg(bSJ$spJ&MvbR^so(d){-S_IuTAm4Bk{!$cZ@C?{RmoHMr-* -zhIxJXOnFr+q1FMw{R<9ZU^@T@0JePvqyNzARcf^UV-Yg>lRWr-z*rttnJxW)@HkavwfrYsku -z^#EXfOpz49QNAKb<6E*r^iho3@}&co5)C -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 -zE>u3|a_YaM@_}Hha>U!Eg_wciK -ze}|Y(7$qA|C8PUc~B3hiKi5omIN7;Z=9Lx2~+bC6<45%YS3*zwq4 -zHY-Vh_k9Ut#Id_gU{_zQby*1jm$cB=0^W8;&ywk1E4n -z*eIYah~q9bA%TbtUk1*d%E5{>^{rMh>Fsw?KV!tx#FwE5k=5BU_7O#KyoGy7;Io`(cjzho`hOo8h-3> -z32Ez7Q`65=vFeJ+xrcNfohWUl+rkd;n0-7bSC&xo{sHeSGHffXP=vu^dlG7p4v3b8 -zhZKWDjChM8zumP3jtKP?G4;;1CU|3B{np_}k6>qGwmTP7O*+!|2>KjXo;Yg+h=FDm=X>0|vj -z*#0w*Uom!L9E{fCYsgJcEzi)vL|E^G2J^7FW_v%IUP6l}*%|B0q0%D0xrAfnN8~&z -z6ke!SBDfsAkF{CFLOs(RmPgzc5JrR!msz1L*MUUA(SQ4vEJ0jEVG8*~F^;nEs}bA{ -zhRRPHR2I>S?p}(rybJbFucTP_d(!OL`?luhn3c|9(uwpl8&;1vQZ7E&Cc@o -z{(zJHq+g}6iK`f=_rV&%!jbGB4<5nCY477053U`iEkj(2?;RQbp*<2|MvZy7Lpt9p -z9P;lW*l&Ih>6zC~5O|jzwxca=$&hUmm-M4sF3Pd -zU2BQb`1lPcV&lL#SXIR~D>z3G6>f!%(T*(SV#6F8CDfF8DSv5zy%)RS4B}ZCyKi-~ -zwjH^@)#C})$Pz*{b3ad5V;I2JRp8!K2sNiU-SkU!=dhC@z;ELLtVX#^B@@_0+pL_0 -zHCNVGTDkW`>c+H+=vny@@LN((hU&fWd^ml~L+)nbgME?`du_vSOgybfs3!^gs8sh` -zf}z?`+8k7_*#H$rmDc&@`;BM`z_TIk8&c&C&IToyG0 -zsLftQtnWf?K&XPZuxTCICN&>Fl4k_a)7jLtU(O!j+?o_`s?BjImN3&$eVq+$G~S!( -zRmqq5JKK4N|zHjJ-Vruc7wtZLph -zFa5rxzDnil^!;-g|FM4l828;M>TcZoWM^}$EBt+7{Jfd4tpm1EYl^X3U;WRk -zm*<<`$0x@2(CO`?rw8}v>!atBpTGT2{VhKHxMp!ZUw_qyfuOB!IeE?4Kd*kSFJ?FD -zsuD}|BRoBa_*L=P>6jm#^3W_Z6~{zG!cD<;DdS2)-P&S@2qG<>Rg=*1W+3F4-o3=H -zu@^Jb$g7WapmR)t36Y)q40)HBFq5Q2EZ4)Ttrv -zcK#TiYC@*rE33{Q5pa@h2{r -z0pWtagWKLN@CQeVJ=OCzpv~p>P&U0eVj?@aB4oE%6k;YF&-uIRQlH+!m|nrY0CzG! -z+kx%7`aS=Z6!hKuJE8N|d7ChwuRm+Fzn@>gJ{B2B<&+~dK+z%gw)NI9JywL-YjvHi -z(;(g+HwAJZKehxE=+o!o?KQtwI{|7D5~igAGC-Tu7+f+lcuB9j?D@FnO)Q`)wG+ZL-lbg!%LY=<$^+*Ni2xA|rvZ?qLXN -z3y;{qaD2YSa*I?tZ~Q$U{YTAeo8ciCMv5`yNcXEM-A!PfH`yfcC&tLwYey&!3`@tn -zDP3oxy4R$JVIKL;l!Vw4QDJ$HY=nu%h(dD6=+_R|E*mfOW7M -zL2ZLW9YTWw{4KyD-zrF1LR>@^$NmG!sABFL#@u -zYs;Qq5o+v3yfbZu_puDIxa1M7i_j&zPNOBS -z$9jc9I%E>BM=1GxpyA9vJxTZy7-M!I5G(zfaT`v{fSKV6={(tmo>^l{){ul7=g0G; -zE$lE^@^mAYLV%h3g((Zy#Eb~%Y(#HjdLSNjsxTz=M_NGE(%7PMGS)>qd%yQhy*ic9_vtR&7lXgC-+-!IUoSG4Yd`EL -zd$5CjGSAMpZz4tP_PL}Zw|(kV^1aU3e%GqN3~#w$<6;d$7(*`Zx=)U$yGx|;7w4@Q -zD$m4pL-`2rS|=PlX5Ug`n7IEBr2&+L{kS0tYJ?%cwBWm&Q!(CpzUP6qhE723vASN> -z`9VAOW8MAIhqgII>M)kgm{3oWuRtO55dUG%IcHsSHCW6k_d2@1+{2H!O!+r6W~ZN} -zx5q?)!HcZhWYEOSor&_NCq(B!-XntylF;J>Qm1hwhbKG -zyZ6(t%@jKF=1LigzNMuIy46WBAHbJrP2>=+ -zMWR-?Zod_thv)c@|CV~*Q0|r43oQAqSgkOSA42`OwW@ZadP57p5?D}ae>1*^RfIE-Q|qloXIr&Zbz4EHsUks&B1c)flft9 -z(S7vBJ6!0co{`oXJ@g8|iK!GVglq3LmvLF4ygIw<;ma2CDTdi${35_Xyc60tei$T- -zp?-CerSNASXkiy)#7Y9bI1= -zf>_7V+Qj__O1??qKUDB<8f{DK5U&>w=gy3XI0mda;+<*@Rl?;f5a6zHvq-$}b?!am -z+lZX;vi8Rh;e*51-(R)kIqilIs$ZQQux@UJwvb>E6Z*64*`fj@;=G -z@;oesxbhMSeL}R% -z`G;MpQ{UTGkTz*Tm#^!{k2P~qL$a3K-?>p%qr)Qz|xCK1L*E2;;EBun$=Vd#CRq$xP5##9HvBQumB1!wgh@pd4nc->or -zjI(JTp2jfvvXAjZa^RuwkSBV>lI0du@KvsH=)ns^La+B&%c}Y4fm5qpXaR>g`4kLtQ$}H+DVEp -zsAJ7f0t#iKJwiz9H=L$vH>T{^~af~KK;;Mim8F%06P03im@=+vjamL)Co$@0yK^#L&_X(7FkX; -zP8jRx<``LzTHHkW$MkD^qZ=7+;K(E;tH<|wBn=oRzfePz*Z-kZg(j|A`1raY -zBgqMvDq#Jz_cLX0c~yr}rl4D&{czY!k@0oN)>VfU?DIXL2sbYcedFxfo$HfdQ%qB6 -zJ)E2UC!WeTnDJ%l(^P!DQY*W4lfYo_rDnUI3wNE95HUVB?Ck?Jo+uaFbU)EVZJ)ON -z47=xi$H|`Vc$QsfbKf2xOuNOBi~K)R!qEtN*7l~mFD~?#2B*L#PE@fr*FGi5KaO4Y -zOrIQ%RY4AZVo3r4k#qZ~Wwb;PpFY)YeyoKp{c+GeTS6^-{^6+Rjq*Bp?AF}U0Z`_N -zFABQjEqbI&Dt>#Rz6#3eEXYuGL7l!$eIxd;5^usYX{?QUe;358X*nB00px&H$>i== -z5~j5%95Q3kqUr`T1p8EMeUk=H?Mz5x`qR__6}iMYlF<`|x%tY-KT8nC8l)xLEi0j8 -zn8wkug+Q`fzN&szJ{d8s>>Tn})s6!&8!_r1N+ -z9Z2J@QO(Us*>)g0!&UvC?XB}E+g$m?_Z`!vMN?8s$1lebt9w^-)LNZtb_7~)7Otzs -z+Na4zxmY56&m92K%;$#@?eLtCC2B)ppBpntz{;q*^zlW;?B|^Ss!;x?N3+Jk;zsAV -zDKx`8-540hDMME5B#JdFPn^m=TVOgW@_7BlURW0GWH%rGbP+^m$kH|;f`4yvqoZ8?eTn_po -zw#vrI?^`jv{IYZXP6A;#nHlQx$M1fPa{*8#J)o{bW`K -zzvo+T4k{*SuMZ0U+XqY+Mc&k`05i$8{+WBqer$>&k#j(0o_1pPvxRkgrZvT*?nWHW -zBW=|a1f_nSU<*{|W&-PFUpltE%?Irdie|^?Rvlvw>s3;~HM}G$6ie|`;M$Cc4)wH9 -zRVFU0F*asTJBBVQE%oy{DrawIRQivCic~^uHAP(`4{#>c5+L9o6QtD*3r)PN#@%sQ -z?s^UJzVcb)CLt^Co~~^+eGn^^h->i*1ZdM}^sAv}WZ13gK&vU;b+wO=oHKY_Fj)ig -zc$#$QPuT)|xU~f5G!}j|rmccBB+gk&iIF#LR3@a+1G~s>@Mk36B#LhKX}EEfa%BQ_ -zW11>lqn$KsFa>Y%{82KP3A;!8?%Z5XcWF!f3>BJs?|`w -z>a+Uth=QCu=2TP{p*P$Q4FKZGxmhw?26OzfF(~HmUdh3*>`WqLNM=!e*KH`_)H0y4 -zP-^@<7toip$-Q;T>ZH`e(su5L$1Y9l}$nu`MZfFXC0-Q9Fm7lq6XXF -z*@~2GlpdSrZu&%bH2iH(YpEsF`V|%-Iuowp=khC&yvlQi0rNe2^O;G@-I4mC08AB> -zY}wIrcy2Y9mQ-rrU$+ka2wjR0{y;eP4! -zl4`uZf2+AIn@a>I*qK$HrlT#hq)))Knh_akMHtYSdEAaG{qy@so}b>5QA(nVw&O+b -zNQXbC(2K!l6hMz26bZNttg|QWoIXf?5dvp(tC~umj|3e(4Y|Z_y^-`m*6-1&!q=$Y -zmbpe*!Ds^et__+U$>--DX&&HBgYD^2NE76^bf;c*zVbR?>d2TNxQd`o4(>98z_oAxf2$H -zpg!Y=GHwSzTLBv+1yJy~?*NJhnoN_V{OSBo>K0=v2-PYe4xK|ZCWK~B=aJn6pUXWg -zZm%KUjVxV&0GE38$8gfO3Ztr;XNMw8exZ1yEJMyWkaXe7X@WBCbaBpY?m1>zpZ+)eQFmW{Z -z(-d>8Uw8JqHn;aPl|c|If7qRV#$}kfr>&Cqt^qp}Tb=KNdPkszUMy@bRVV+Gyr-ss -zKI^sKbmKM|4vq+wPwo|@V1xNHnu?OHWpw!Uh~c>e@zibryOpAy32@(hIGF3?9Um_s -z-sKlpMN+inl6k&)Fasn(388BhrlRmH+0L6}&54!RnVlmgC-0V -zk4bH_$>to8OBr+Twy*9aZvyF3^pw3Erp6?sNhM`%8>_f(+fS-~7SP>vQuu+H3)7;W -zx;)$l*iLFYtvLK_%zX3S@89TIb>Bqg+!2bkYGfj?*)ox%)*_YvVBp@Ol?i=rbgl=% -z#q<)}y7(L@2&mo)V4hw>5Kw3k3Y#jtIb=Xlx5qm%aO44$C-yUwGx^>EKsY^mSQ6yW -zo*FMwFN1iZ@!;z97c(*P`d4}NrDj^gIEzrE(UBg=9{3n*jwL9g*IA!{iq57l07oEK -zts08B?a67P!43p3i*FaO>*Lb7v%wRo? -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 -zHcQ%h`xjw5{%^uI_rD6;0sob- -zo&GmryY9afww22NDr_TFXi((-P1u(EM`62^>Ys#d387_w3WC21+d+R5w%`A=u>Aw+ -zAB63`zX;nW|4G=UUHor^?S|Zc6}CzLB5XVTtFWCk@ONQ*;QuCUlgRu}!gi$1|DUj} -z|33=bga5s-z4Lcr+li}sNasWLA@J16YiykGalKy214R=pNyuvKjjBBg!)y;SiwumT -zTb!ZO1K=tN5?f6_;bzyOO+J>2Xua*iN~BdkOc~W&Gor_CdLq9i#Yie()h-}hF*sGB -ziD?$m%uD&(lZ^nj+s!zjE$^1y8iRD+qL~sr4rYMw%(Ji(5f+M$iKFeg2QI}%vwqM| -zGlvX^e2Y5rtUtkmYGrE`;fIb6&eB;A!pTV${u#Qzes6-`J=tos%au@>!|+-71D@1R -z7i?7p`Q9D~)DTn#15F5{&@~R1Tk>#-N;w}8f~cW^8TlG(u^pj~8pHZ51QvH1&IM_?N@ii&qVM;|m>NktRmh6r227Ow=+k -znshwCeP}(bVHFbiGRx>Aa#nD6k*RyQRM9KM;LEc9Zd!XsKDc7%>)#!q`5UWV)$-uT|&Di&Oi|CpkNmu9Tl7JF5 -zFmDrt -zq!o3siI~yG57}t;smBw8CA7Ty6*B^4c#*&Y3zrC#YASEFS$eI%N=+h!E~T-iECUlu -zCW0E%OB@Assg=^uPpQTH^xNfV6ZzVqEo2n7JLlS2yaZ8sGtS6>c1e`TkCkDbw;-IUrHO95-dFds>Qpfjk|k)mQlTKi*1$%A6Ebk$K)-%D9*4fcmu-P9FT1q7T_OVBz{(?;jxjS-n -z(G2EUPB`KxLmA}>St9V3s>$B`3%{?4L)vgpr-(`4Nq#AZx+^<1>FDEfJ3Ou04=#(j -zL&2MYa^f9-7HO5P&$R<`hB1DPB==5xpsJp3-8N?7BI05xSlG@!)3gf?wMYpV>d>{j -zD}x(6Bz*E(7%Y6sT>`0PK_t4E)hzz8Xz1!*%9W~B1p>8=fN>9bNpgMB99m4J$yCac -zz9IWQ1XjlD+(WX0u3b}%f(m+f2vO_pnyWJ;mX$1;Iin8dXQK_0;v!_*TL>VaiFk@6 -z-^x$b+}laG%_<9e{z}o!bd(2fmyeH83|RMljYr|^FAqe|?K{_~vo<3w;>XiR$`2Ea -z1jmw^8AN-B06fpR9UW8O2}CvMoYW=W5$4HAsAQJUyNkXZ1e_#PdbcL!g$TC#BpG?d -zNV~2cb{oI|eS}^hA0I9Is7?kXwmR~_?J}C`aTFpYvIB@7+=!Y9$chxf>%au -z?QeH!gtdr#zhf)7oLCD!f1H;TGY*`Vm|PycvPGy&t&J;bW3 -zK^Ah=xbLKewg9CyIY5`5TW*Q=FcE90-e(!9AlNkDB!&nTk=#aulcF!Nu?J5nv -z)$4)0vDXa>t+R{fOb?{_$SAbs!%+Redr@82;K_X9m)$yRGxyz42GOe}1tLF1z~ -zt0ukk1q36T53YXpE3e14pBipAu>lMX+@PZ2G$jn#l~@u@GkL&LW9{EvR1*=sWPI?T -zD3~L0NYICFFS)ICuTS=0vh5}%Bi15=aj -zE8<_e^86M}G3wiYt#jy(Rc{ZFOLfrIH3I*Y8&l7fl=h{b4u=LZpIKwz^9iC1$6VXg -z`3h8a+3o$9X_)aALl)ksxQWp->N$#Fl;x>ABPby7O6mmL;wb9&+^4|+*)yyF{auX` -zw!QIN>eK?pBV}@MyeUZr6+E#lRnP~ff`6y5OUk6p?czoKRu8Yk?}Suyj9IT}tzrmO -zigmc7`O+)n4;lyLj}sQ;hLK(2lQ7vdv8;pu(3E6%o19{5NCr_`)yYG?{vxdn;w8-- -zjycIN)b?6muu1P=+v42L1d5u@Na=Z9HyPJ8v@1c?3Ph_2M;P$JjtTh)XBjKY6A=5~ -z27W%4kbOpwI=M4h-GYbp4;^VopYdo;?Sxy}!kzY+SB5_M?4o|Z*41FyjjB$am@eW) -z8us6wNjc^uD0?47i*5&1S)~q4joFLNjz#K!d2c*7K*8r0bP8G(eMj9u>Z=uY%QX -z(ODOJEcL67dB0%O%_o8zEDA1L~(If2OJg((tQE-B=DzflboJBKUtuR;$Z#CNV2OVMcogz -z3x46yyeP|Poe80?x?J^R)-($*?J&j5x-q(V{x&Tgjv1ywbaOR=p+`C7HxHK3VMIVT -zhzD2{2Hp&9D|rGtrgu6@xf-HQJ=%4^P{5C9R%;zmnPi@wMkvdD)Tc^!vn9b&AEmC- -z5JyAzloiM#L;X9^xC3ara%l%l0>K*HVj`3A1ADgA(E-Hk}j*yAHYXtq|vzb~=$R<-rrrvanq^P4SHl|bRn}I!BttAuz!fQjg -zcrH%a{;DwW_&ojqD4}<+MTVXMRlsMTx@BRo4-5x$V28;T%0n4nYel$+dw){{y_e<;U=b({cUQI2I;4jZoKVL*oXa=^ -zv~3vYz0Z%HdlbyxY}6hmUiuAgXKfs-G!GceVDv+NV?oS3_ks2m2<%)pb_%RTOP85Q -zSaDw1*!wXNV+sc8?4s+fACMXrS?v_e)bF#OZI_!?(g^KoKIBleQ*7F&7l5NBc)^Y7 -z&GyI2AP}Wi6-;{Cl>}umoiK@)n{w5NU4Y^Rx&SssXJkcvtUq5~Z4({^X)uI!9ZEIH -zqveGv;8h;O9`ZHx8|A_zVh+aQO$&SK08#L5X$!xBiYsl@Ikyk4{diX-QSC%Zp<*gK -zufZPP(sZ}~`v~3%Y)&E-#9i4K1dk!G9)$kY?fcWg{k?uqDM?lF=2GN$t5t!^q!7l8gP;sR;JL!&lWYuYi1d{==w@QhIFxg# -zetfnHOdt&pd8#9J_h!4g6t^dbwc5~tOFTGkw@>3B;1tEW1@y+t);6Y|=lHB*c=G$p -zLVG@o9)}%9WMWe8XTL~U6QbEuLhp3L+0)(fGQZpZ0XIO%zng7b&-ho{{%PW9JW`E- -z;Se(}47Fcv`v2`JI0r#cIyh);Xv(I8bA!$E61KHKhN&P|h1zjhTc~i7?bkAa_plY| -zzR8*3Co1=+6Q$3zX3kzS~mn$_V~Fu>JA+$;zaZyTYP0!XJ_ -z%a>>%Ia66OM-R>FWOoe~X55(~MRXe#AJHK2L?9WK=GyFEYP4mfyj^aHKpL;eio?UN -z`k9(hzHaW;Su`LhOc<&MmL~Pg4Z)PHzVI@;S#S~HZjmwZrg%0E-DcL -zA-vgJl&BU7mXN7(WH)`;HpstbcNN5p*UjCA?jr8)!zUR{HjR+3HY|GL7zo%xUyLm@ -z3cJH~v(|liI18F!Wyn> -zgTI*e#z5}V@$Zff+#I8C&GZC7oQl#y8AEb}uktZ7mIX44sD&#&l}JXWs;(>Bk)kgT -zSuW6$u-#4bxi;@vgpsI4+k?rj@}s0~o1BSmE%??7Ui -z9bEgHE0928pN7F~f>SxefHv{PZs?;~m2+!-C}?^{qo>{PcEMFL<(maq%9D#ARi~tHy}HDfG=_ZVADLO3VS)4Q$AM=uVGuKz -zVehNkk;Gk0#IBgbfJS_;o6muCDaG6m&!$)bKN}2b)dO=#4M){f;fZ$m*e4^Yc>ZzS -zjcf4p$B)lhpQ3GwVjAZi76M=$zgUSxS4`x4Of`iFc5hnkMtQkV4eF^Nikx`n`t=J- -zW<^CR8|UPG&;G1)4;$~iNzVQ?8+8T@?&E^18&;W^=4Rg+P+9JI=$~MtmB`dexoLgK -zlxRI>)!T%^_0}8`7++nIOim@+)R#9bpKNJx+~^El!xQ=9G0h-`Gu&XZ7XB4f9ef6Q -zr!EU+f=kL3I3xN)JY`j;OSmu1tM;%aE&tYtf?xxA9&MOVC6wTav0Q8^m}!xJ+hU`j -zC|<=xv<1H^7Tjq*)OutBIIzaXN#ekiZTN{dTYQZ-O?-)$YDAb}V~I?hO)mq*Fz3Y? -z78`7fw3NB5e|EW?xByu?sg0kYZA4Qg6k@WG~TNk^Tf&YGf>Ne9?{eTd+Qv6geH?vnJ=Kn8GE+zpgn& -zkIU5~SB}JF)z~vZ#s*t4N_mNWO)n`mQzGT+84+y~Nbxa&^WHMJ0>-y^(MUGM;#3vs -z=y{dlsAK_H)?IzfqG#^OT05aSf?=Y;g|1;7SJedt3As0a6Gs+K#tED+^|ER=W$iR=w% -zACQ)*7?h!79iD)4ll)bj4Yb!-;yhSet38g;-pKHjFo_jvTGN(s4OyM^CrhgOs7eUB -zWclzIl%Ux5OpJ)G#l$A0__@i)VI_RKWENeKnfr5g!xDES&Q{ -zX)Y1xxlVCQ4ZFmAoCO_qWPP5A)0w(n$e9cT4We;(is{fuf5AqG0O>?83LJ36kz8X5>9*ClKcP -z*I+3mh2Zrdg95{GlWGFbScd9Z$fTHu*V+^(FA3^_P$8keXPtV4hK@P4olLyd6|ysZ -z0ujQNt>vMq`Rc`KakTtzGv#AhhpgT%6OCP7)-fp;^gIH}%9$azgi1l!CDsz6$)h|n -z?#F&o;GyGr{zwRM=fbEl-;S-&DVciBc4<0|_p1VPVzOa?J=}ln*Z!FVwd$kXI};f& -zKN!=ikjSMj*4;rrm^a{MNS&sAT@M~Iur1)PA88(7=Jl02W(nB>-jSHnPFR7*X89MA -zD~YB3oB(DlR<7JivGGR-6>8k`*DF?VveI2p+zGX^@4m*yr{0g^on -zfS0Q3vOYbrMzx&kmR#BYALMT!$73G)^T($xV1UuE#Jh|41MkaK2K!v^S+uAb!Cy;3A8{U`jngP!Mxbk1jNyi6Hd`LE@k|XZD7aIv^Gn~_ -zi+AODR=7Mngt$5X=$*Cw^Qrw($fAb989Bj!IUFmf?j|li@6DLved;yGha~OLcoYcs -zZn57XWr0-6O0yYhd!x7xDH2bUW9?Bn7@;4>-V#KqsdT%yY~LK>KE2Qz_y#ds_>5`H -zqqAMb_AQBbXzt=ZAXG+m))YVTbqh)y38))OP}{A+3$ADL0GC@Lnv><)JciY~n>fWZ -zNDqm?3N-O3s)WjANOz3= -z(?oIH${CHK?6;{A5D0|H)fVPC>-Ev?#E6Ot=BU=ZpPvygiJW}fRGOV^Q_#dha3VW6 -z35ukF>gd8)sxmno_w>ZN*rxT`AVsWZv#4}1z0GqaULzDZ2$?Xuq8^cT6UkIP6I_}< -zKt2Q5W?-oFsqDi5$_@Duk~VI+C+u{)Oe)K~bc5m&P!t#wenkhH8H$tAQ@regENn$6 -zu(XTmw2jskvCbiDY<+MCH81g=7u>3#|7f{I9ir%y$mi(M(UJ^z|CDI*^CgC+BW|A -zLw2j>oH)fv0S3eA1{)2C$d(U@XoFl_hr$G^6P{^*%o -zQxlBsHqWe*N$Y69N8)t>;xHFfXE7gSTi;K9I0b%aPaW&@-u^{<>fvH5p*M2HYq81_ -zm{W{`>sDU%_OR}K@fE{$f6>+=_1NK4LDe=2851yvq;(QTw2gKn8L<)v0T{fu>Ea4j -z%JABMp;1{G#9p6h9WBh1eYce3Bvc|2qkWh5X~px3Gf@L^i-6Xm*s|Fk?xKs)n(D6i -z^~(B`3{hivO;jwxathnK2L_~P{y>t(Atk!vNLyb!aaC6AVdLpqh?OWzfyM6*5$(W` -zCNIq+c~tb`L+eroo4q&?1eVK^7zp2ctl!J;rupqE#H&sp25Yi!$n*d*=)xuxzt1x? -z;>0ohu1Vz}KML#v>^Jf(m>qXDYB#=;C;9NxN7-Au})}9 -z^-igj-OV6tib3C(Sd4Nk$op(}b&{L3^#)|bzT8eA>yBls;}a~~7OE_17U}~c$0J>VYQHe)L!6}Q5R=X5eN>FOzDO-mn{X{N5jv4WmDlP -zHYRp<`ofY~Km(cAy>Mr8m_@7sZKjxqD275ycyafXe!aE$djD4y^Tu -z^Ykx8ixpN^783nb_FDM3HWE)XmX0uxEQH3DtylKO(|tl;C4ewHpa85oIQG-84h>MF -zM^s^=DG1imC|)3uICCUo5bNLZT>wGd`joV!A_>3@1vOm^YyGzaIK=%2|4b4%C3zsa -zWAa%@3J3QI_zu)a`}K8%!QFH7eoDfNya6)Ix3N!?eo?H4mL5;f-A5Rk+RAijfbMfm -zrtTEd8}o-XIdSydW%Bx3@tG+{ES->`e1JOt -z>I>+|xgA6X4s#2M)MUO%z8J`la94sg2yZ>8ALN4w0;%xj(;2~j1Bs1S6qLnR9)q9~ -zTOuui)&b-ymXJor4N9|rfByQ*FUJluDYxRwZUod|C=_v0B(^_0t=QjCP~>8vAUZgD -zDlA`56^(!jUwYW+EM+)|dm@ewGlpS-8k@uH7M4t{d{f4rq;WFCee)@I0P1R+0Bumq -zgJ3#MfoiA*&uQ1Sj7ibyBRZl416yiDS}JrCGE!OJ0ZS5VR!HuRf%RS;`(l=b9kh5qW@T7MQ{Kc)_Z3{W~5b_^P~ -ze(}!|i*lu?BdbX_==%?Cns8!ux(UcxOFFQYV|2^R*X~Fz&waP;r7uHy+7mq5>S&a1 -z(}pM~49fUf?N_qz-9Vi+iHnM5;1w(J4%WT1_*3;Utnfu-XtSYT?cAGh;(ujWK4!_q -zL$6D3kbKqv3&C#I6Yx0m@O}Ha7;E;_lG!|}%b_#~?ue(bCz;j|OPzPm(0QC5X^bzz-7L$zjLu{D72X!Je{%(3!RumsV{h=A*C -zpzE>2HAU9jUe$vatdb!=v(dhB&^NM`NPQa*-k^J%HE$9;-1bCBAaIj`_6GMh9lL!UG -z(;xJ@isvxl%8}s4yK64Th*Y7~D$+e}_dsEJO`ibL2$2J#PaK{5pnSSX4Uta^u=%Mg -zByuUL6a~pId+{Ww!NQg*XS)E0$_&bz7B$XZcNUpvT|CJ=yROQhCaDg>gAg+~&nyF^ -z<+O;`-n{5^o3lXxs^$Y$u$Nk?K1F}pe2w8b)A}m%Nl~A^+P4%gzNK2`o+)SFGH!jH -zWweR+Tp}{Yn9@eV|3}(|Dg29EVxFAWPW2bZwGOL018ikS^))Nwt1$!@uur%PCJHFjy}`ru8LdN@62?s1AvYONTeB6|=?GH+XVpkMli8wtD=e`<^8b(4Ir*`QzUc$H5CP$#N?3NqlYLC5IcXTVlOM*F1Dv^I_>Uq -z-=NrM27ht2xsA(M0yWbX1lck+RfuR_qS`a39{Qt^&KOU)a16t+ASYaq -zNaoZK2BUr<=SX)};KwLqMEP -zx^6xhX)kuq?`~Rhkf=qHGwZNZ{)u8WnngnMM9|(SffFfTY!wmG6ij|j!Z|VL)#11h -z`f1>+j;)oQ;eIjxU)4orPK=(JJzTRb5x7JUMYs_nv%8BNk)wZKk1>upf3-DbqwKg6 -z9bkyMR2a@{Xo!ZPDOfhlB*}u5CtrhUfIHRMM@35I49t0vFat#dFJ}P$P(ixP5j%Au -zVa-~+IFFVvXW0+3r^#a)#G{5Py#h*s74W4Is(lutbAlG?Mr>DkG=JF_9K9&+@AoZi -zXJ09T?Fm>`3Kq(|olO&?4#HS7$ -zk_`csZU?#Xsh=#lc*adm6qT9&H8(Ou3n3PL0$Xc)yA_t5uuFUcI52f0_q5EPM;}Dc -z=i&lWJJg8c>RwzZFKnuQ%yQr{1l5mq$jbv|&>v)VQH^i2MF|t$*Rc_zVu?ZRCXR7kfBnD&_WRWGT -zlKmj7fv~1tIUmZnlfQ8BjJD4`Rl);DF+&4Kd$D=Gkijd>Qw{_qYyQcCv{2+V6;)zV -zAe^ll?no(X;LHlmYNd_4g_m07>Y%RbmCtNW>w4^uDLRuK_#|Ct4ZR4~KL*2142V(% -zK(<<3AqN0TkkL=#-wZpnD>8%)Cms;VB_PZ$PR;&iFc39~;IP9kpAa#ybSi_G_B=#u -zvM`dpnZX$pP^!H_7ZwLByWLHc`Bco-4O9Thhv_|%IYlnUgce(}o^U8^pIBC$hAu(%mVpx)5c4tT{j3DpQH!S|;m+ruLH(-YGZEVu5yv -z^4ChZ(%*C1i{BxUA;+4cc4R#&o&}@jLT|`!=KoCmZSxUy|FYv&ke}a}{j@~}sZ*Vq -zo}Hu;iIT*ct!}a2vQR2iu1Bmp@jATkc`$@>cj8@?XhTc%?{JS~*I2}IzfEDe#$zAl -z|0lT^?qHf*G*zEOO6K^^4tBTrv8mI-qBDg3M@<2lDy&dSHk?rL1gQJ`W<<=ruugf=a{_+1I_X2p$P3+nUECG0>N2pF)+#O-_O; -z%NCOq`-sE;2(;Pm -zspev14y-Pt1ATl;e5ed&?ZV0syu@_fhG68EGWNfK^b}{T58H -zqn8+{JvS9b57@1Uy-b_d4V2PM@1f3YjB^^~_%H$LLV};BpV9=C9T!fh$IOV`9|>u<-Lu -zVz0{$jfn|AD<_l4YevA#%I= -z@Im_Cr>3*hL33N~>_%sHuRPjlLdFs_yeVT^aL!`!4J8)~IP=ml7au8>*2GTT0=YrU0ucBxWhf5wKxRZBd4?5a+n_>34yc1AFSx -zXS=UJfvP7X6Xs%>fD7qJ_gN-fWeE((B}@&anb`OT*L(zA12HOUN2kJf=5*!07z&W9 -zm=&4`z-`LDgMUD-16}$%=!h<7yOy>pK{^j@jfCP@cy*Tuu|rW$mbihw&cZQ`9T@5o -zvq0Mevk1hpKANZ4bBCvn&{%~fGUhbBw>7pB@*A_H<9k28j_3Dw$8Yc)nQU@gk) -z@Z@$PYXt+~^&JEelthuH7`vPOoi#|n1>g9axdAi>XP -zEH|~^7E3c|kbA@GGrXoYIn;ZBhAA^BNKO;7Y_1w0t%%o5pT4BL0=XBFY9uV-rAh9T -zX#qRyH^5_b;9jjz|iNOXz1X3aNe -zFHaSyNS`Fra3fCn%AKx1iQV+Pzhuu@Ka2DP3}!hS+Dp6D*{d!$(}O+=U0N9AX0R6a -z4FvBB*7|@=_-46zf=vVb#kVayGp~``T9APhck-)la{LH(xTv~8%{|&O`nZ!yMq;3N -zcpU)h?5Uwx*7r(97CbC>r5@wa#gklXs!1q%>rI?M=@Lkplo&O!;Yz&Ls-LIuqz#2R -zr(?Z|X?3iu@)NQV^#rZPL45RwN#)h!-EdRtKo5f~ZrL%57v6w34$=?hyC09toaw^? -z`~6yg=LH#m+f^kjE0X8}hjE`-iI5{n492~o^+Mm)gI>7S9@Y=8BeeCkvhp&mQqyJR -zbVt~0jxN=m*~UQ3W7c0k)rz{(^Iy5w -z!7VVHmMgijLLlayTR%*0vuW`mtt~?P6GOgShk2OaS81fk|auavS{ -z3!omrQbxPZ=sorA6#7xGS2kW^|KR@(AEce#z*E&X4XOy!? -zuKhr5-t>>h6J-CqcixDn11{qo)`1eitNB+5jASTQ8wzU76~PK8N^fuz?{4gM7RwBR -zN3rPaIF$-32?}qy0g1p_?+G6d3K@OigWc%0u2qowV6;G0!leeURm8&QcPzQVu>hy$ -z>Uaw^mnc%|ZK&LWObxoRa4r@JtEx98MY$Tx9$o-*#Hks+FB{#)3+jFa38HNhNtgxd -zk6zOVL$FQNuum0|^_*k(mD(k}L1|DR4{2E=1}cNfydm;klT!-&zV@yKN-uIX))IBW -zDVpfut#luD73|={Av|MzXLeXDoP;Eb+}fnJAU~ -z%P6=2n1V(6`NPJuf+pnZFvO{KL3z;QECoVWodvjJrcbmsU&tn)GU&b0 -z0;k)YW#3N;4Rn!dW3`p9Uf*D68x{Y0#(`p;fmzWv7siIgfBRB(a$k>xK=SQ9MsM$5 -z3;XMP^YHq*f4j)>>-F_@etj)l`1@&};a^U>yxm&)$1RYZHGgaE-oEmFsngr{-wxTo -zy>9;)A+|WbyoV0n?d^NWPrbZ;8=}kGkoNWK>*?(r^ZRx6udkQ4@7M2-@ok(gZ=Z*^ -zjw-xsjRC -z-}|IM1I>CaA~Iw<=vKKbCG@*xRQ^DOo9EiB0BI(0lCc*&qVLEK{XCIvFFPPD6BwzO -zXE49_e8atRq{1n=%Y*s5R&4>#uQ}>Ui{QL|R_dLXa5i}f;<4oYMquYqDj#)~f+ex>BUHrx4EUR)xrz+}yxA?bfn5SM=wr1L}A`);77oNnS_Y!SLfN!fx=A%;_ -zqs(UnC!}H*XT^e6{n@^igt~wl-UDG -z@AJ|Ro2?sGPJmH4hJgI5U*!@XD7$CU9N>?EtgO#l$gx1fJ6-0|D|w~Yj1?Ao0`81t -zWGzy<3fz=PhJ_48Ntk?WPkto-&gu*4?y!~+4r7oJ=Q^7-b@P=v#(5Es%rLV0qSGy| -zJ_;+jYHBxL5JO(I~ZWgW^lRz=EKmawS>mY_Yg4%(@CU3{GR0>F`YFBX=fUS -zRQe`Gnw77u1$&iX(K#sCwuzELqPamNFN2f%e9_>H8n!hoqt=mSj({<_LjU$^jCbrW -z;SvREVrgRMGE+W`=( -z$jHiOmWqEtB3C3jJAVTh8myobO1^=j5gl$0j*)w|Nq~wXCvRIJ;RIad7maV3 -z;;6hC6~E4@NhRYGd1DnQGi(=$N*Q=2d{(6o!}kvIFk`t*02{OgR?ZayHu|$)XuUb1 -zW1~WAsUQeNvK|Un-mi&(UsJaPFZRHo)U~C!{=XBxfro+z{6D$(CD0>@dWg3{C?VdU -zpYcNZYm)&piu!J7ubNrEa$e#OReD<4aarxkZDYu|{iEw-Gcymzm1$BSiKfu#OvGV^ -zCQ0dys6!(snzL8Yk+t0=DO^9kZ*HX$$W}RnuqV%vJO`6fv -zU^@fRFemmxRz`j#m=0yE^iTCDVtuUfRps9@UrL76x!#RYF7x)szJ8ExEWM+6KX7q3 -z{pt-tMoITb1mV-!@&x&G2hCm37u`X*Hi3UZ!(g^Te0s5Za*Hz)LigaLk*I=l1c|}S -zVhwSaw-EnPMs4)$gE9XSH{!|@qVAH&XE(#5-@d|>M#GHwqnqrnTYa~}OKab6`1rOIUc-!^?Di7cRzpFhw)Q845qUB<)t{NGj3?!St#4kJc7OpmG=5amB&8}@QgyHlEFYLtg>q}Hinj>#i!NdGayNcYS-P_=hA#5#a -zc=U%TMNAPn{%DM{@?dQF9K>%Ycj~b%nn%8c#RV99e&yx5PQJTgFH3LTzjcOkd91;v -zECf8+2UI#^{8J9Ro+EqvO3;|TvwiX9RFC+$`Lu5~Blnpqe=cHqE?n#Oh|AX3%85WY -z2-)XQ=z!WMEb}INVRaY-49?z9Jl){72*Q2&KH2-NR!k6TDV@3H{{dM>1bN6){*Y+4FC| -zmUMISKn6%<+LYSDFr9KeXbT^=HxBLbU?Lm?l3fhe>3`BstH)n|`5*sHE92K0B=vFs -zBCPPds`}!hy@M_5hlfIVNGN-P#DF%pS76swIW@vOI-eTH~gXvT^iQ|suWhVk69UH -zC#y6=?trSr>=}X`I%Q?8Y)Mg^)-HWh|H72+dR9zwH@sXdHK``eD5_vDM=if -zMw)p9R4#p{EQ;H8tr_gujQQ~!M+a{+qQ2B!yt+Z$8&)@VO9=VZ3%bOtI!8|EMN#To83%P`WZS<>N~(WDN0$- -zV|uHZ6P}|OeumxJG?KoJi`Jwh3Kursutd7%PHoNWOZt%O7?&I?IbNUQ(>(OA;;@gU -zYrSot&knaf7X!foR^xfpYenliw2Ey|Q1=)u(Zer$2fX|ZkptQEc3yv2d<-9jN#*SN7Dm)u$R{E -z2YMy>>#)7Pt}fr`7EqlwiH76SqdQG^TYLgJ=v2p43peLEy_0S`{wOWj8K1UzHk4KT -zhAV>Z58~X2Wz+W)M-TWi-7 -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 -znX#EM6n{!wJ5$}@3{)nlrZ+sSZf*qaK5A#Dgx -zSs>WHx0RIrRpaiV~L&Ez6}o@`F^J%0ZB -zhx@H~?_0YZXcblu2T?3;j9j5|P2#nU4ICnw4C-H&p*-9b9kI2uhpz%ASo32z|E1Y( -zc$U{DwG|F_BV!}mSAWGDi00+U0IJgabN`f=1@u(|@AX{!ZNkApq{0XKju1q9hHpV7 -z)s@D02#*}Ljx^#N4tS#$3?Tm}Gq>dNv4y0D>A)=b8~U -z6m0^&pQPCS&d_>=(j*|W8ePNg->fFsd}5R49#9<3M?DiLCes);->ZZ(U~E7794T#Qq#3x -z4=9j>2TT*`WN}~1e%UU_!|2g4`&GS(5jvdR^Q8ox -zYnWq7v2-C(Z&L3Q1AC5?!nj>?4`8bP%x-Be@Sckm)v-&7Su_X-l3%^g&al0_1R6ca -z957k*ichO66SEgPN8y7wUP+@+%p*i@IyKmAJjerOOSQ$RY7 -z>o4snWH^%v>|`C;9&PN4y)AOe|m~8s#N*y1Yf2Zyb&^u@BK;~!zSq?pk?7M{Z$y^uf -zBym??{mW&7SMkrgW^yQd8yC|JAP!Zi&v_VpV$1X8PUO8ADl+Ys_ww1{bEhFFZ>&$yq41vUD -zo#DXT1CEamBh)!MO>!VbIkZ6Y)lOc`%JG8rYJic+e#A~~ZGP19^(!*)1Kp%x-Pq8# -zWKqVwp?X8#E;jt%x5U789#{=GN|UFE>sU1x1G6G@x2K%{Lc$AeCNr*z*;6_rI*c_q -z)S3BXi+_VSK(|}#qEM}f5h4nyrm}xkGLg!pQP!B$41)&^=PS}L11PK)F{;mh0>&n= -z@Vio7H5!4ktcpSbwYoCgNv+wF4O9qoHa7fqki%Y1g(`QUzy!F;{;;6HEc!nXMMG+H{E48yf6y6RApD1bbswXA~?8@Lpw55y!uDPFQt8k|LV -zhO(x28&vG)u#Kys`>5R`K7jQ?e9%hG23WUBxhN$x5cxCte7tnfK{-BY^+HGLfCQH1gFzx$A5K6a -z&bGF_C61d*)3T=Ps(Ba`iR{F{_1=y-gB@}QOS{+56X95qrGEck#{O-|ab#H*1mF8B -z`tmkHMMCLz6W?CFK5^&YGw{+RGrf;d#|-JB6tBD?sipE -z#g{^zBd;AwM+t?oQ=kj&$U4qvNN>CZ4{>Fq?Fv~#SNt=H@msD-cvhYXuGy!RGj@E$ -zBLgV-;KK@`mi%ef&##h8IPNTn7rN=~)J -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 -zM7AB|PR1Gr<@TEl(V3*aid4LVjNk{ -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 -z{{db0{VCox;erViQFAXFv6d{Vn}OMv^G) -z-KYkCeEgiVO?~>n@=2D4z>UGsM|h!LJmnq4bcPP57~xN#>fkfb -zJ9Skk(_2!izy;YK@+s>w-NIw--ld1NX!)mR6a*W{^XS8jE}7#NcX9zuzIXqUN#@qcv`a5)hx^5rK}T5{cj>$G0^1&u~BMZIV`8 -zIeemWV*23GR3v-+_GOCQ%)ozs{7^SDG{cA#w^97mAUCr&rse_Q$Fo5!=z^FEPN|9{ -zLvr@k@iQ1|D0_JQ@CgFECU?4YOUSCCa8{JO^pgPM-zSe5DNl6YI&Eptgt3H6hJQVC -ziXNA%N39%%$)>Ysf{G1XFJ6f%85xm;mEjy=f#)u{uRX -zu8h3ua5QoNtm>{YW;L+(WTTxBo$?+mOu>~y{aD#yl`DwjVA38HZg7?A0_TQP@M -za~LRWr6!&{>upd=eT6KO${+wF>fVxmS;DVMCs6dTKocx|gI)OTVuGYQiUoPkISGWl -z{yAC+Ng;Rx$e=)Q+~uCYE7qZTRkA6T@x3?2%}aiIAXLcb?^UM(si9*|&69yp3#v0i -z1`)!RrTWm)eDfBxI9mR1Gv!m=hN9mt8;w(5HZds|^g06C%7r1ff=Wf$CC(DE$)i3B -z>c?SL;GyGr{!tL3=fbM7-VRsjluUzGyR@9f`&E58G1)M{p6);QkKvW|wA!QIuck3z -zaWJ-5C7DZGrQJb4*f-#1$djf++m4iA>U+pktBFl9%pO_)p%~Cc&1|$papzX%poCLxk@`tu -z0`Lu{Y`>MpEyMeiT1-{|bUpEeh2NHqOfxx%1}6t;%$?gU&c?CGih(ZVt-H%rfMd@R -z;I(P4#hjj4qgKA^o|J4BU5|wAsm%DWb^7br-2R_8>daaO#s)j7ejw$CR@y|(M*j!2)Og8^V`_k -zTX5xNRzy5IWVpHg7@YOP>!ssTD58eZ`8dITIUWg2cQenPk7msAF%MeeLydOqJP8DM -zx0vsci$E%5rNxZw-6*X?g2dC}*mP8hMHr@Ou=-G*Dcv4Dr#HvA&u{Do?jIJ*p0SPj -z>6}(Ewx#gK#j3$lF}z46kn4U$25I -zT?6Bj0t<>2H5a>g&U4gmvU-SF{>a2VYLLprfu3>V@v)=xYB{kWPKI -z9D34ZopbtGBC2|@pgo}b>e+5&1D6*I2+5I~peA?szCq2 -ziYwhG#;CUBi))16r<^*$ToSY`vM*acZil5dvef7nSolAI5Lye=*lY5H9F1JZ87N{+ -zWgKvJf&>2hdos2!kFVMY+DrIuS7rr#j*3esn)r$mr@D0hxUTD{*;WSOq#eb$-mZ7F -ziYhOn~{pu-pt?wE#` -zN#eMbGZsa0w|Nc_0EF4K7M7(L^-*_XJVg~tRH+>2XTnP!CwH65vQsz(tt$lQu|tfY -zKpJR{u1uvG6T|U9PppeMt@rsTLN&Wpg@YMvo+t4mLVtsZ39~C25ZN%1Y}K>ArR4*Z -zGXQM{gi4>vK8|4AkT;=bfe6Dl7p#fhogRbg@~WI2k=9$gW7jR)q>j -zyP8kiXhRWc3B_FNlOEK9#77C^f-*&yeu|}X8ay9)Ao~YzOF4l^ZAC8uH3}4R(vrv9 -zVgGg&ttu!BJVvjY;1*?1OFAR8x9GS++8!q>vZdSTqGV)FiOAbLWD;kDq}1H_kMH8G -z)^p=jCj%G^ryFd{AEH=3W}XdFaUuCJ(}j*M@CcuNPq#x-gM~PQA{zhPR)(WzX-!Qq -z+-+G{C6U(AfsVx60)%0%XwG6kh+E%JdN{>>=tv#g^gjJXd+OO@FPS$=#i>ei1eTnl -z;JTGny+3StUt-1ZvA-#6k$LR!t)N;Pm8=PfL-IKZ6Q)M56A7_01p)ZGxB2G!RZ8$W -zd}2;n3B=x?Xd5ld6u(=`=VVYK>Y~Fn`)P&qN-)s^aEpA_lGwW2o*to#(VE-q;OCX? -zDOsY<;F@Syg!PoQ_XrF?&+>s}g+mH-#fi4Qb>6C?*TcEfREd?SOn=4i4hikZjHc|& -zqjppc5<}}z2A91A5X6hKFrm`Z^-rlFzCh^6u-|iGvdZE -z_^t`%pgaob1MD}-EZ7|n380Kb_|VY?w(wkt0g)G@In-9La|PmO7%gh -zT-+@XYYIW%*H}&RSrGTx9vUQf+4Tk##6I0lpy-ZctLqc2*cO_iW)|85J&Ut>6z;zy -zQ8|8?OBwg;E;dbd3Fdz_SP2%(#||A6$~|fKlC+k#)kk+C92BKYY*WA;q$BrErWxpr -zp{X=T_YK|R`M1vG(Mt$2L#9uTe}?Ug2b8VaIpMQxz`yq{oy9E-4_XBYO6fC%%Uc7Q -zs33iTnSbl27UDLqLA?3ImWIP(z`Z+Z2_b9PNO)^jma!tpV|r`iD0MStisT7)q3G^ZKM;!&u1$7A)6@cIv$y{zorD!S8KAL_Gi8F<#)R@@W -ziJ%myaopr@Vt=3=V16g`+kt6>x6xFWT$CWj#qO~cCiHF`0V?Ms_H1Kqy0A7L&aZ## -zStM9pIY^9CIcnkS+DSgqSvkTmvXB{9vR?6xXZVD%O5k92AOYBPaOkIB9p;}Vyo -zQxI&TQKCQsah6EHAkM$TyMTeZ54mPZJrZCUDk{1d)cQ}yZ%FtL`k5?mO71`m$CSH} -z3=SR>@HfyR9n$*>gSzML -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 -zWpWE&)`o=UtvBI6epdm;IDDd+c%T4X~)yfQ- -z%iqnKFTc`#|EAlmyr?085K0db;7{b<^+tB|azpsPYpqnB`(lCf*fhXj+->2Rd5_%Af-Izjlb>x@;z!`&qRIw!k7&o}+k;Fpk^{xV`v4GU&-27` -zz7qvm@UT3TdQQhRp4?hZl -zPsl;k6SNvfiP4{?l-EuV!%b-bJ&tm?#bZ`)v;kizNWUrF{d5%OOdl4=?^6Yu7gYSs -zt4dl{Wz7XHZU5{?nXac-ejvGn-7mOd_BMv=B}6bbu)3pkjSsGv`ZE(i#)+T}oFI*D7i2wqpbDS?`cWDg-BsuaFqYQY2dnO3YQk8YjwbaF^(A8gv)S4njn+>h3s&3L8lZ -z@1+5Wz*+AZ9}fl@ec+?r=ttYC9`(U&fue+K3tFp)gU{Dkaf53CO3mbW3pJN$QtEA} -z+JbBihOr1PR!OUxFG7lPHP}780M>}}F#J$=>c%U|eg#RQZ4*hF1?G=I%LrpIr)t=z -z2E}^ru}7kG$zV_#G{{3f*2sbCpek?3d{YieVc*l>QlN|?laZEa2u{sJ2XE#3u&dw% -zA3nk>#t&A9#llHS;}rYL&@-|0E=mUw+5z?d!|J{{FjVeE)g) -za*@;L`_CWC`_JOSzkcm2{L9y_Uv91b$1RYYwft4OetF5)OP#;G{>w)WUw-cYu|gbi -ze)}CJc(*UFLw)M)=Pyfi`?91%`~LI%(&sx398g3`F1B095;p*@TUg*QD-2-!AUAr~v -z*tTukwrwXJ+fK)}?T&5R?$~C>HoiR1i@kTf`+QaB)cFzjoU7Ix_cbn7d#j;oV$~9p -zlTnpbb7<$_KP&=PUBx!K`ysy1Kesh}~O8xL3qEd$sv-S%W{4vz?bb>Ov*&w7-vIy2* -zv7N9Iz!M$Ts~9eGV3voWc(VtOtFLs|!`}Fp$^9}lnJWAIbZhy{pEVu{@#>L(;kalS -z@_r$V$M|`7hfVQ~ax8HGm(iFCIUERUU+}ac%S-j69x&ZX%#`?(H -zA$7ur|Alf_N>Ua&p+E3zzt59S-qBEtGuvp!L$(G%_k5$=2{sY|b|q4eh0HjGQ{O1J -zu~DkQP=cDzdd>=;tu(kD{U{>gGjv~6p7`Dkng6QbhGpWfxpH0!_Bgb)i^81QcE@*d -zJ)W`Py%KnqxMGwEb}kRobdE2%JAX;+u?RrS4z|BhZZYpD&Pdnr3Y}G8@vAeosLX6^ -z*S}EiVZYaJlp8D8yaRpwFO<8y@=Ck3PN1J#|A>pit?21rC^v~}n+~X@6v}{*e*uXM -z-y=DHLJ!%CpeIKqY0vRotWOewy~Su|&gTQ?voOBwBW0 -zz>iFGO5+S{q?+UAnE -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 -zOkrR*niBBKa`w{N> -z7t>ujJOX!*MUOMGzb2tTaKkP6r>oo4bJBkGF(>khrA -z8lzXK&YaW0$?SD=S8y4}p)61J2ma7WN>mH{5|H_-ilUtsUXRh_k#72t#>VbAV~E-- -zmA71-?X5AI<@o00es3Yc;W?E#82g_yp~w*%9c*~|EQXC^Dn1_TMdAPrYMIk)lBC~) -zm5xs8pbtAgG~{TF1q8X_Kv0>`q(F860pJK`__f?!eK@kUTb-z2_HRlLfB!+atvpIy -zP%kpr`5M@%fjQ2?$ARW=~-#Y^KnsN(S#I*y6-vh)6& -z$MEX%NrGsPhy?4#(-eN`6N$)PIdiGsD4QuJSCz9~W>k -zdd*v!*IthiyQ^8Sq$sA-?{B_PzcC6HlnM`ds+HpNvzqXGs2t>=h%~pu^d{Au-!r=B@ -zz7&#VQ_?V|YE%<4+bLZlLwi*x6}0L)eoNiEm9`eN*NT>?O*a|P4QcRj2i>pj+yjq~ -z#JwkikAC3=?A}_-T*zJy_9%>D`^hZOLwrI<#oB=l!-YHwaw^(6;~vW)_oE#;ReyM* -z>t2?o;C)JbpdhD>fw|Si9Xz}zGs3T>*9ccD8%Q~(GJ{xt=RW-WcqLXodjG+6ZK&Xo -ztwHnBXbMWy2HLAIm~P|o*!!~t=&>0b4@y?{5IO_fv6_+uFXV~8FUu&V6Qt|)I7UEm -zin0~36QEi{;Q0k{JrJYv@?h;h2YmL{J@@-8}AO}mrWqV^qR=kvjf+Ey>(coRBIE`X)bkhhWZ -z1rkGokWjXkTE%?J7dOwxL1?wT`ry7+^;^q66=`7sx@a1l&C03hP -zYz^|f-eULll=_QZBeLl)tQ+5n{-T9S{f90GQx1KNx)BP3+@WejmA2Q|{nFV@Y)3Ft -z65Y)UchSJhh;+Wh@b&J5kk~+2Rnc#vVEFbO_CmY(c}bWa4~8U|i$b|}jqiyk7!t4F -zzCP8V$ucqYce;C1{)KBr1-Rd+>{95nF_LpX-$>{{RWRr -z=TGg264I1xFhr2-8I|3QYX0UaA@@f5X&OD2Tw=*~Q}UdiiIta$1xvFWt>-ou`?uDe -z{jGKPn5kiDpS$?=H$O1ti|#OzfaK_Rcxz+$oZ4@iz4%HEw>WXS0Rl=fFb7dS$@hFw -z*aLm9N&c}CjV2SQgBcJTtD%WQ{k_Kw3E)g(v2nIda^1eSQij#4Re-3fg4*EIdANGhJhc -zND8*s8QPB3M~REygyieny!dW211`VxS+>q*@UZHX6n9{zp_X;<9^T?6=$+7{E2`4y -z&80IKRF36ePF`uhBXLvL!M9wu2 -zMEWeLgI?}(BEg&Oe?=ib;sCcf`O!QD%ts!bKs1w+w_?PsOjm+HUa>!RA4pdjj9P6I@*$G}9&G -zOdI-XAvl@ly~Q#))v@@)?hPuOP(E)dgLg5e4mx1GI$oAWGUYN&)~MT0Q+c@60Hn_F -zJ~K4dEE#vN-}d|kk#Hu#K&3y{2Du;v@v5HV5V;I(RveYc6*mA>05!;BGm>O;Qnf@B -zr@tuAE1rY1B$-fG-f_1T5Dcf^GH5J4-okE^!K7RClNFsv$qFpRJ@4x)3c*@{%|Wq6h}2=VCX^+l -zGLDPme;3Masm69XY6FONGtpEC9DelcP1{0}UaDVZU;a&Gm+$<)C)7?{bkNQ~3xHt3E+U{HU69T6mJ4q|XFB8^yeqmSRv&B8A? -zSWN^9zQ#3A#70n=0bq69Vrk4upRTe9Nx*7g`Y_Bl%epvssZ7R(MW4gG9Lq!28_{cP -z1^F#ljF#i7YeY|H@GK;!z)trtdP7h+TC8pgv2kCpSdpKgNbn#J)LqQz`%>_3QA|2~UitbGTcTS6T7c|za1BNUpt -zI)XAg`yjhi_C~5;eRWrJY=YS<+&{&~`Z*Kp%#7KXjl^Q;<2)i}9aLTb=G;!!mDg&s -ztBJry!M4e=KQ7(0NuY+N0~8o8)L^tSdbvsX`#7~$OadlcJ|i3;PG6==)=COzYZTqP -z?Py{BkjHLJj{=)f1Mr$_?W%gp7&@T*O$*pe$-7RUv{oL;J|Mp1yD;yN8!wTsC&YPt -zQgN$h?^M0-bSstL_Dlg#i^L61*-CXSF77fw^O-6?c8s3BLcci0zS~=o>cuC&@Y~m$ -z@5dFC$rnFq>lgpa`q#(TTMtfOqYRxO|LUi@4E@)l>uaQad~)z5?$t>`GG5|YvJT1P -zhQAEp_ExY(fZ~q+(xDc$!)LHE$c+7gVH)&!=U?JB(R=@>ut^g*{!0%)PI&!LajDd2 -z3?3mc)E-Decw|tmlWAfbK!H7z -zf__#k0?%o~7EW(DdElrCh{LzPJq+S8mNorMSp4v7spp`&d-sJ7f4`oz6bj}MWcePk -zy9n+qzwkb!xwmMv51{2pb{i9Kw?zCal?Bj@vvd094Vv==a4x2UQ}o4M?t>fjTjA#8 -z)r5l9pH<+nfT81Y8b_|E|J^>FQNDo!F&;VxpWBS{z9q9mSfT$yq1>}(*<5EBk+!aY -z{+pN$gU7hFhq7OyD03H~Ykh&Qb(-etW{w$#3b?#TcF5 -z2Wc@j*+u$Np*$R7M9E-Qhl41ZM@A>0iRuE(EtomcnW9!`?ChldI!d|&AsGh@>fh!& -zf@i@6Z^qqkMw&35EFEf|bW}=NvELlG$b1rjO4fZ*>kOfuLfWz`Y{bvVT>LnOaDRPx -zbdc8f=R_?2cQ^U5ty8o^gIt;ZRQ2Q`1v)7;Sp6|%2fBx(R}fq`S}C3CnOrr}5wW5R -zL!Y^sW;}d#-?o!3mop>abN>S?@BI3?Z<9N2wwX@|X#;$lH!&&Kd;58vl@ICY$~x@0 -zAWWhhKbI4TlldDI!lY1wWtr#_YPpm -zGLY98uM~zb@}*x83~Xy&7?@(gtklXa662?C=H2wz0tnqV(5=w0OuXtUfFtwP#q9N_ -zN{0^LiC4`!(%fRJ8n54VJMe<{XUXqN(`vz;W}%ygW7A^)1zI>Ek^kUs*gq3?Pfit2 -z0HK68Z=D7*~dbWHa@ -zrHjGHsY@gLnDbcV=^uy19L8g!8}qE|u2Ly1zTN$R)`I$$y3GJ9@f-xSC_qV%dUeq<4#UFYQJTAM3DOVnRHQX6-$jm$U^ -zM_dG89H-OiC9zp0$~LFVuB*^nZbT_8ut+#RF&C)d6eK&)p?!Qjf9|UcbmuK`gi``D -z_RwuFe1qK;KiQ<{DW(EN!i`ig7#NyDBN_W>b*PmqOuZ%2RKVKz9CG&X(51+y`f3Eh -zeLQJ{BIL8jcEoe@w&8*yE#Fr)6NkW}$%A9>krljc>OmvsVXhZUQ|gar-|Y|cCt^IA -zGqaCDZ`U79rieCDwO|HTNU0=S8?Ly`>obhJ6n(o!r!El~5ujm|b*~q61p2_zqm_fA -zvGu$fAjp1O9@X&e+2q6`pE$K`33vk(i*ctz8<&T1Se}pFkNU>KLxh*Ie%0_p=Ebc8 -zte&PkZInFIL6-T=I#Nu|J` -zJs8I^*g*(dg$L;!dLqzST7&`Tg8apfCrB}dbB`lWJKc@EmBN6lia#e57=^g)T>;p!=o -zSeO-7`8%7?f|8|!6zCu>#lwLy0jWj8Ts^qyd(n642Z1Vp-ZtFdes}m(I-COgBHo&` -zzz9+8CePrur;~%PtMT`LM1zoKtN9KNlmcfA?29@r82>-^fo3_eNk9b)-z|KvjFoHm -zaRj`Bb=N4pn|WFZ(_GA(uaD18;_El+*QlWKBBU22zWYLgTK(e5Lpl{U -zQ!{_syHwz$N+&frkP!=TxcH?M6}g@@eKwD^aUW16bWU#hX^|Ebx9|i5-v8Ec2NG0D -ze7&XxQ=U2ow@%2;SG8>b=HB@wp(KLsxZTplMr*>%Rj;m3UzL0oEGc1xQ;06PuSyx5 -z|H~Ha5z5h46@LeUwLz^=3WcbRly2tvy~yK`T85%Ubcv@GvqZE*$T9sbAT+Q)NOy*p -zY)mF_nBd=(H=>)&C!7}~$U(hnZgr}-kLq+%N?*1{RM3Yu;2Y6RRRVynGqx+OPW+M` -ztpswc&x&Bns1)izXSOrvo{JyyHF~2u-ffGx)*E -zt!8$=En&4X7(&)Gi}tk7-|B1wP!VfM$Do?x2yS{XQMx&4(1Cir!5?+Uiok|OU~E?< -z=lC2JCvUCr7|E967sEH|J(u@|diR1wpiK#!+-D;3w!@(%CSD0j2p-!LQ&$9i&qfcs -z(E5~5bz!^X4)hpQ1c|>)UZJDZCjCcRJRg9f&OxO8Lmhzfh7v+(PRI80f07yL)w9Vf -ztI!TX6WgG7P5HxY`ZI=SP5{9!wFUC^1Cf=FmHX@@@$w)rM-ul~{}c3PhW!S;z5fQi -zD~&18Orc16H9kD@q}V0LI}FualfGE!1jZz!kh(WF^m>$#K}o@Ef>$g||C{IyL5fP7 -z1dX&%0)o)CkRL0PfNHxSl#9m| -zIDSQRX*qmi8vF-n@wNMUqe3iIZ$8HyXrA-U!LZGd^#wtXjYXVwj=pwT>t`PHSQ&3b -z9ea`i1Jp4i) -zta-}Z0?{;*mibsoCC~K78bkBg_O&h+^-}Yl%@FQ-|H8c)pPl_fG_t6n#gCXDwHO7u>#ioB -zGXsF`E~1i_h0j~mi>@gmsK}aTTX*y9XhYIh0M_#cFL?u{di7VzNo&~ky6e~4c5S2I -zK8gN=_m+_Qi}x1Lw}QW&8&*4);nJqAcew0`JUO%!!0=UE4)cfBC}90J@LiAhH}HMt -z|Jp(+S4?i-R>)0j*1TqSCf&3{htyS|$cHD#+h^7T^KE=Xw|BL?1+mz^7CYP=0yiFy -zX!OQ~u>v)!|2O1&U)mdJ8;?0l%PU8BA_$LAk$3d{ -zs*Er4$KiC`T2?EYag_bA%gFC(O@;#s!y~@KTUp{_KNnH{9R(FzTp<_CIiCo1P*n-O -z95~oy>q3WK6d_>iKs>d3(OQ_QDlFNB&ap?BRzp}9x@lTy1Eby!o%Vi7t7g!a8ER -zZMz!kqd|o)6Y^I>qX;+@d>6$OVz;LxXF1iF76 -zj;k4^cFP$w9g?<~Ztl)Y#rY2EPJ$N3iBxHYaL|dy7*=nhG?cIgrAMy|xwh!&(n=BJ -z20)D^B4qY-zPVLZclL%^l2~_#afp`McebU{+<-d?bv-Vij<-6%lnDs%x<*xogD-$e -z;^F6nzCQnQq@)FK9;KsuIcX6jVvd=9W1LzD*{bXk=ThNARY706YrT1URu+|XJDYoG -zKMNY%6d_)oU@T!vpeoTpDn-V_^PNrtyV0oPrHSY@_t-AfZLn+}{U1co&55AqwB -z@Fm+_458gkTwRJP3^?vOa47_wmVaV?o}K^dW2>#{ju9H_gFyzBfsLPrQG--v;e}@|gb1{r(955BD1`1A~9>kPdSg -z=9LG!mt+-PyY?6f75VM~?!yx{PbXb0Ac@r+D`+sbP$DnXm1GH&u!+R5dW2f8<&-g( -z#^YLKNEQlPFDD@oQ%Id1FviyiZI5?%WTuBTV3=5$NQl|E9mQ=Eabj?9zrsbX%u3$>Ok@1{68d -z&w`1%XrXomc=yF(?T4c3vM#cO3!tw6GxjpUAo9 -zk>iue7%m{Wo0TmDlT6iyJlIo9Sg&XAj--IvV6{NlB$jSnrOr;S(-=h878{HQM;Sg{ -zkkj@gw|5|@EZJsdgLgeWC@YJ*qfYHw4Q+VVG(A8uyi~)iBKbHY-){6*9!QdnL0XTWri$si5E%DFUC-G<*fbK9WXVyBuTm -zAw6DpFO=!Wq;hW9T1;8_^7x!+ytYf`-=BH~1u#l73F%`ngmBpmu^a>e;qDbeeRf}5 -zPz4K5s><6o&{tF@yau@@ki|L2YK`1tf(!`kSlpnfu*ZPj;2|xlTX40rn}?32P^p9T -zj5dTsUFaf}_r5;~E&|3bF9F#`97m4>1`yl@OhyWo8HcvcjI`c_HAgQ(MC@=$J8gPG -z{{(v=dnC43VO$O>G9MVP5r&%E2|u7N^`d#6N6u;xS;?rIPvG4njvyNJR%Jj$nGTp} -zdQ;6m4p@f(4soOC@r2?45wcbQa?_P}G)eO4Pg1xu)kUR(N_EQfW?fGjZ -zD!~dj(9;hxx7E;Kh9YVlw~$!Z2;5_S83v4 -ze6R}pL?zMCX&&2AgB|Q8bZw44?|sz%REFN&5s`u8J`uF-u^Bnw+0&zQ{?&WFcWZH#A-AZEoL=B09L%w8p?$wMpOsN^bELZh7C-@p7}Khs^@0Ih(qn>b -z%a}uQOGeWWTCk5EdvERU9rWC5h^U%ZpGQ|BEy!QKLR}w(DF^ezPKVzw)*gBEJ+%iY -zZ#gb;yrgHZKO8yu87in@+4wML@($Z-u}sm-BTrYu8G4nI-uj~&bzWfPpmq>xez*%o -z9_;qpXn3unNOD6o3*i5k23{~igxzW>3zMLtCf!cM@a6>ah!L&1D+4!#EynXFCu+Y&2g0IgDNJo -zD8xa(c_;b4r){}HE8P0$VM9|TNuec?lpQh_`nW1wb^^ddp@5ec_)rPA2C!UB?~?!z -zViDSOJ_^VQSclKzdV|1a87AR#t~+vuk$mn|)#rMR;oAeJ68qZ&?`!<_z;|(DlO-ko -z!vin3_}c>?FCM=&6y2iX&~xnqetT -zy8;yUc2|gTEgn1}XCVz9*+)?CdJajPdal7%^!kdF?L6KbG+9vT!Dq|WTNZ%hHnN>} -zx2%%J>BSms)t0y7tJXt<2vz4p*r_@dM)9(ok)#(>WIVKNxayF)n -z1xBf0hjO%UMo>{?qx`@URtF=6AlMfB4(8gAE=~Mt)y65a3uD|YapdU|7ZWail5S=39xc=k8vNE62m@e2$h1;i;Q(P- -zsqva5WSAz33@1hM3fI!kQfRA-05FW9Q@sMeUQ!%VwN-FU*u$HPh?W5(PUYC=j4&@*4yKJp?1{zG)9ES9;)a8km -zgbKmOM@-#&^iP-Ba}_*UDvgYFxCa6w^87Y+W}HJ{mjcCG(_qqZ#~WE6t)vAxuL?sf6dquI!QlOpaOanWez_LQSI0FoJ?Ct1Y18lO;x86^<~)wEet!_C>13L=ZC=05 -zsanAWxwyE@ZO%_GBX+>1@6ei6^7~cdeT6PsvuK?;#&)cdd&O7Ey|=>@ZqXOtq#L5J -zO}p<5I)n2Ek)^H0Y;H~_)Q~jIleF%4ku^5g7;RI6Bpag_qyc~3RbNQM#AOxHtQLl< -zxkPk;H85Su#1oy0k&3ZE@E}Tr6uq20%CoN3EAi2>ixEU4m+ysLXBy_iCFN#@%A!R} -zKrx4$LOu#eYq=bX2MykJ7VbVoZ0bU?9suW+Hltz#H|!muMTy=N*k4D`hTD~jTa?rT -z0eH4*LpE0AmssQQMHyE8|4oBiil4ZykXc?*hZr2pCc~j`@=S00e`?rK@ugze2s_}1 -zzOL{rEHL7UmRZaYA^k;zKeovSIa`?#JiRC?S* -zJle{*jFLSrvlcGl%V>@ry>;4Nflg(*Qr8MDseHj)1zE6!u5UGmRz3K37FwdmZeW;C -z%PQO7^XiR34A-w5my+tu9UN)m+yLuxwxcbfE(;7~Oi4UnN5TBCRtGOugwCDqF!1H& -zm@p-7DBcO|b^pvB%cg|m0*JG&pr{EA7n>8jtG?6*zRrt)X~-L|xg?c^MXSWSpHm3V -zR()q~o^g@yv<&ghg>{12X21Ki;x4Bft}kH~ -zVsGB431*ER@)EylnEX-XH`A$Q-YvWR%!4+lqYtwmf4BOpFF(o{nyDll?az_2JP|(+ -zfZz|S=h#L`y1|ABW}~vO2E>s=4YwVa<97~}gAY*NU=vU)k$nb&EyjCe0l0mODOEP+ -z&`cNB$V-f_IkVsWyf^zcjole*%XGw0&cg+Hd(P2E-K5W@_NTs_) -z1By0UB$QmF+lf=neT#w~%&spliaSfDd1d7NKQD&ovPbTz31$+W{b7`RNx@wC2wJJ& -zro?+j>^GudZ|cX?H#_`4z%vwVRKI}R&)<|gt@=TcDGHAC*omD53aaMbTbP -z(LVknJFxpq$ZouubT|O -zj}2?V3g9H6E4C=Pi+&MS$Gjw{V}d?k{qFB*(DS8nPnn^NGT(Y$ivV!;JS0VyQ5%oX -z_=G})(P7cVeYhsXZVvF%SxmMQ;v*!PwxOJmH(K?i{hvbkaImw3Sj|u=vw?jsyUu2s -z@ei%E4+9~Sregwg;Ii2pRgh1~vOgaiE32=BFGbrE}a1$=ATCGTF@ -zi*;Y_PZcTa!`T`}O9#o^0*f%D%w)D^ON(qwXv^}IYs+c{;N45UVjeuUn22(>gYOsQlSp~@jjuN)GnyZv9B@OC-vYo4Qf&|WZcpA%u|6L5Hp@)Yj&s`_iQq(8UZWj@!`m+_wAK1(mUtQ;$zS# -z?c?|l>rtK4Wu>Dl -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 -zcXObvY?&b08fmI(}X=uFrp -zTh$$ZPzU(V7e80nL{KOTOWlCXfPQ)?cSx=}3LG8RnOvhmbqs9Ql -zTDLLxO6?)?3QGU>gi=6SsKI*{{E@1ltF&aw)FKZDjA%Z*o-n+iY5f7vu=A%TT^@GS -zL*V3DyH-(FNxDRFi|wR#t~jU|HRv^t6pxM{x3UTIC^UpJDY53!_BsIklG1>r$6VBA -z$!PFZTPXhUdXZWSLMNW&7eCxB#wKP$YBbZiaGyE@~Y6#eI!IKSx|3*#+Dx9qzj9>Ro2ZKzrh* -zo6@v3hFnF{j&RTDHKOfj)fW(1kx*;|r`?iuvchR8{ZKA--?6DB3C85I5w)0hhZr&c -zRVti9`y^=FV(OgMlbJP~`TAj=w!!%RJ9jInQ1Q!vYr#-dO|&M!TRU|U^DBvoiwIC` -zkSud<0>8$2^?UZWxm*kCDYZqD-2#0c!Fn5Zt#^5IHL#?N4WsptrV>-+qZSdx$lAi+ -zo?rMz=t9>AAPfBvcY6h%{a|#o~nS -zAtA-bX%C!FCm9kK8GVh5V-CP{?wNK$Ce<|6Px1hrmDxI6-& -znPd8`b>}0j#~ii6<}_bPag3rX#(I8mJ0Q9?#e5*?cexN~avB)SAB-rQbvUb;OedV& -z143Vc&h)A&Jo!I^*$u`VVeI2U8=2O86QizCY?Y+;6Ur`+m+f%Sk>*_^^njTxnkY-j -z1vc?HWdV>RT$EUzvK^G{*d%%4c-$kA0PJ>MsvcYATxvV|Pwv~qU3B;=r=U6~jJmO7 -zzzLo55iN)_=Y0tdY09`AMss~&rZMLr;iCxItmoxX73gA{27C+&nK7pwZ1N)!dK7D; -zj7g1R_ivSS`KsZ>taP~rS?-Z2XaU&qbg#=H*oQY{uH?t}LD=>Dh3Jp?=`kL#TSTf% -zz`eukL=t|u_~QT>5$l_UlsC`q+~(j(%m$68Sz@FWQv4ZTB`@Ek^@1+Ey2Q@p9o`tI -z*^(jt$=2ZvqI~-hqozJ&3dmG*k+H)XSYxhhfkE#qXuwX>Yus5S%gTDB5cAOMpp&5$n}B-1AMP|^o~-R0F7`YH4F0-u{{&;SrB-HQS`JSv4FYM9U8Avcd`ke -zSkj^Yr-Tq}kQ- -z=u>~FAoHN+vL%QF8xZVg(CHfw*D7nzg|v{c34G0%N{f{~x!wruJ5f+m-fD%>mf(;C -z+zb?)42p>Oe0whhvUV!C#OwY2sI&d*X8le9II0{Z*7Gb@XB$CspsU5bTCbuOxEgYMho3QvJz6!; -z1MaOTA1-YQh8EaJT3Gnd@T~Nm2C5*f6?lc}GnK}cC7I!frGB=-J08}n<>JI!S6Z}P -zUjz#i7g^v3NKO$$U2!FT2+4NO+GK2(R1{=)ZyZQFxhj>KqBS;SMVO)gq;5J7jPEKz -z*8^8KnrIWt$Ad&(W*kh@%JR49nQ?H%Tv3RW{ZVOA9F!dhs;sdd4K( -zX1m);%iU||aPX5Lg`JySQ3r_fk80jI8Xmr287Lgz{uvpOHL_z+D~*1B`%Y`FWLMaQ -z)ycsJdLhjnF)Pt~_!(x$O_hHkM@?S){E4e<{1`MTNei(^R)firbRPr>c7szMK4F+b -zWTV~n953J#O*w4H+t_>aIngOn&7U@$)ZO%;8<$HA%;UFsQ%>ndo@y*9B*Gb8e6+*1 -zr&v^e@m@@i;T&bZ)-Lzv1qjvhfY#Q#h^5|X@zQ98t|6E<^w`gesAR8c9f!NWsk|w@ -zO|FEd6g);+bHWaY)gHZt&ya>MBmV6Pt{B#L4g$2uFZITqB0EIDF6+aAY7Bp^+^=n1 -z>;#_pbIjwI341Psl)Y2Zw>4(D82hlDe_-zi#6t#VOB)w>z9&J@v}&nfg*_`*8_FGh -z8%|m1I=;F)l8N5JER&|g4D(R(3AI7xC|fiI0&^Nw#*{3A8Rd-4(&{ng;9Q?LTz5nW -zQq2u;ocoEBNdB@%3ooCo`Cg7sc)JS@>(eatb&?D7)>cw_lg-jkpq`}G@c;*jYD`B} -zM10%|avuNu;1Y4e#l0*jOWXA^#~&HIT}g8KQ&xqYC*HZ1rP7qfc(h%4b3<_306fvs(w -z`hes@dyBn6*htq^PCeR^H0#p*xSIZ|+BHSd`$f9OSp&kYZ9->@TKMYMSFl?}f;$LE -z!{U+|IOagN9xF;?n?F0FtvOBQ_Y1e{ap(X!+BOWwl&;?v;ygAkF~r87)m|7!+R+@j -zM|P7B91viK{0>B2o@rH?GOv?lhdAPc5L8PjGx{y1X9(a{7t*=iXmePXJg7)NYkE$m -zrCL_Vs<0+ePAwkyV_70wPju8z<>GcChbE#_?6KJe+R~xfwU^Eis32Rs(3(27L=S;gKlS~Ord1S8svWM*K7MKsY}q2<;VLg4G32;tK+0n^s(O_({# -zJsxI6k?E5Pb|QWhkvzTIdiH-sPKi@gH9y~>qlX~BS;c-ZP8UssiDQRDlGq4~Ym4e* -zdcph-!v`Z)2!{Od -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 -zQyO`l>%^EA;Et84wK11-e0RPlz -zr_ytv17#2g$>R_W5Xg95bB~V6#3Ahrpjo-hb;shZ9v*h+UhAk5w86VTet6~rc*pq3 -zR4R^`3iZToJzHWQF-`dHCuYo$ucax}u#$DQ%7LBu#?yTV=lUN;U>ec{1p} -zs>eNaGi#o7ni)gdWR&~+>>*5vJU(#Q0ZQzFZK`umLDj%F4NQ*4-Mt+bj>j -z=*WsV2k)Hdc*Zu4)HTz_qF(H~xn=_z(M(OvLomrKlZ&~TcY7kNTa?{MZR`}by|#MM -zyA;k-sk2oxtmDcKPr@$#v#;TMlzSzHS_n%m4b&@cJgV!nezs?_kKjCC#^&T1e0lW_ -z6U-BV$2w2^71rdy3Gr`Jh3Qv-%42_V$X6`6l;a^oZT(MRT{8{ -zeH+rE$S%WG`1Y>njxOK})i-*_B!DpZZqN1rq-A)%v`Ih6PY_BCpW=P7m)m^>J{yuE -zgZb7P&(w+dWey4w$Il+@tWh`#>u`?J6ut%dR|4|UF>mk`KZ%JAp6*I%3-& -zPV0!U^FPe+!cadjOsOZ7yL)D~f6Q>G?EkMB-YoYYW;n{^w;9gy`d?;v{fXj#nc>K$ -z@BrH*)_WS`{BbD -zNwfxx^`9l|rPQ@ovH?c9qR3tN6n1%F&mr$I#Z4JrNVAM!W`s=nBX;Mih0D!f*?5zK -zj@{i&bH7_ARjB$-ZaIt8`0T$s)yhJx9Z$IwzpqnM4YvQujDnZ)^YNToi$WO3wsv}F -z^7+&eCQ*}LD+Xuf03=0rld^+Q?*!R$ZL3&xgbPm(Iqh8k0 -z>Y|QV#q)U!`WStpk-j{7(ZVk$-FTXk@nEg{`Ei7AWDdAnPV@QR*ZDD5w4~;n+Rm9@ -zby59Z=#$Cc?g|gDO~U_KnhN4;v%3?K)UO33-W7eZv&8cF3BQzksl^{2jj?4OEuizf -zikFn!e2XfRP>SFw<5n@Yf9(B9S)7fYU10pAIZ*dL^nuylKvV_3@O{UYy+!ec8qZNw -z14nFaw1d-y6%Yo=+?mfHVFw%I7{hCE--Fg;bwylEtwYlV!hD9bFS#88s_^Kz{X(VX2TyF&;m-*0>Wg6HP8IU4{B@**U~ -zdt(Z_r|EYg241ql1G<=ZCRB{YRfx@=^9w{UVXVLE2Fu%!^&iw}!|xj{_R73a0=N;SMp?q#Be5AEkP%ky6Lk)V7b(>J77xzMl<6JEZim -z#_Y#&4m0^3~Noq*8sjA{Y -zyEp_TXV(X_qO?_$(o*+GL(aqY@K!GfIq*GaE1I65U!1$kAkr~tCzIef@cZ3&@0ah8E_Mv6O%;M{F0`lB}VY -z^Kr4Mm19BmVt5pdRYPBY2SSRb6W|F?KTvPJA58~-iFK>?set-IYBE~n`q(P7+XG&p -zNIa8K4L2POrf=R3mCEuq?{8!XvZe2c+K@M6qq5&`O{@RIuTDFdt)i@D;2KWXd>Rl4 -zAXQZRq-28IX|6_Q-DR@@p^L1?h(#cy`Q0|nvKN%C5aBgu20v*^*=8Zgnh?4r72swx -zdqDkd8Rr--^F!*EY>Ilx(G8*dKge*1f5>pcf5`A>kKPIX)c;L}7eElF|4W85{X>Rh -z9qXzTEdB=>ZhZ9*8Se5;hLiUHMTTc7f0N;oZU2(t_J5J#mVc4q!t26an5n@SW_^ls -zkD4x;=eDL&z;(**aGh$ORz4_Ga^=P(#4ysDiNlOJKOpA; -zeHZk8BmhxJzyc>3O7`=sjf7kyY#V?q$?W&ZkfF#XSYjSu2u2Mu*ae%_?EyI=4U0IO -zp-1@8+QbbLZn!{_`#UAJmY$+MI$ao29EDIHN%;_Vf`L$5KxEi4m4Q`a4o@k7uUyQG -z^bclA$ASh1{ir^5>2;mZ0yyYSeh6x{fYbU(qVUGU3CT3eys(Yn6W -zo$pW9VJgwlp90-_F)R;Z(^al2k=*5jeJ33@r?Aob_7jFNzHm_7 -zw+|Nhy$}l?v%#m!*%u! -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 -zC<>p;?Qv-g2S&r2{>yn6eskVi|IK+*I8>2Q>I -z3e|di#Dwp*$#oskm6HKuzblGat19zsgIT$(T_rawIl#|-c~dL_-o~%Xg}kM6*E;(sS_Bq1qKK~XPIj>1 -zPK+&ki_t9&L+HR|3HXGU!462o1$GxKZLh+FoA=wBO4SfND`R3AdNrH8z8UX;Z^m1p -zAS1MPIup=209$d>ILaaw9i526E+WubN%c%R(uf-@4(wQL)o+-0)-8^D2Oumyf{-A` -zfPL8-@71QGk`yBiz2I8oNd!-V(8>21i&Y~Aki#zA{CIQ%RvxJXJ#Vnm8a`4% -zd8-O7nS4sr`5*1k&%XulzSC!d2`zbLO=S&XSVg=eY5_ -z@$v;24oMet54R=Nqp7oue~=?$fdRBflb#okegA>GmF@pG+%4Q^Z*UU21Sm}~*SqNF -zkNM7T6r`so&)RK|*Us5U()}Gy!_%Sm8r#~q?!e_AGd#!`RNHyj^9z2)pxV*~Iz2?mNtB+)4 -zI^{{T?)A;paf{Q2wqG3_y2O01ut+fcx7z)OGAF?h)B~e31sEQ?+|MgMQbB -zkYht*MOK52%j3Wi7^gZs`-e#az$XgRdB18rl)=N1ALRxy#Z_?WirnX%A*_UueB8AW -zW_V&9IXQ!=Lce&OoG@iTmR@?c%tt7ly0{S&DCDUEP^hN$*c!0F)CI5OZ<5r*JI7Qt -zp;>z#t$9u8VyqeCNWQiuy%H!^^IRGDQhoz>@wZ6ANhk*}(x(ZBYDO)0DUUoz$pI9I -zu|$hx25n>%dGz1+zff4l;2jCc{I3?dZOD6c$tMkdl5?58#VXQWWIHdkE7jh3EeH@E -z5*TX=2g2n2C)X{C+=}a~Z~?$kM_d|YJIy}j1Ey|Ky*ZIb}jj|T!5opv77=v)9urS3rJ<~bzMD}k$%0F!V!nMEow=7EzfyndqnZ^i%@@GS`yu1dQ@VNY%Tj4ze`E^y*P`Eo)JE-mCL)L2&2Z| -znvR}QZVJON$pJ|N0ikR$r9g3|Hx)b%j;SbfvaVOoZT$*wv~kCZtz6kl=+jU$u9n6u -zi+fU+gtT3zZ9~wgWhynTtGMYj!R4+73%psfewTK+e?XJUH^jbZDnzjJYZ4`@K8Nb@ -z*`D=_{{^)^Q=G)4anbx>WN-UzbQ|&Dr3U)yyfL2hw0)~{>drUeOyrEQAoe^3~ -z3X-gu;xGp-0$}Hbpn4%v3tE?pa5CG}eFSc9>p0k1s{tSbZywB|O3!jgI$pAuX?2H^ -znazWksbY-g3w%ilSZ}zSBpNOSXM=5jM8nOnbIM)z00w)xBE -zhW@s>9dI>pKpDyYpENg{Ihgp|J^%)SRn$i3MjiZHjmVGrB1=9c=23bciTPnRHf@ZY -z2`RJddTVYCUJM?VY~m~4`~c7tP20pj_WfkehU|voO&ya%sV9;@+wl@fvxfh2xpDq> -zxs!b1ZjI%K<8J?UxwkefOGJ9wfuCn`kWaa&9GYD$&R@L;PYlnwL|O)nu3K3LE-b<8 -zzh73S6Ge@M<{tpay{r-y;gE8m;<&n7A};LiwaP&NLHgaCT9}Fvk@$`GhvT)PNVlzf -z1N3>k*| -zT)TB)$F^>(ToO7+YzV+_!*ni?ao@b14ofkM&BaEPw -z7&#uKA_6W-f%w@b?nY)=U`s;YvG -zI(ty^On-|TV#AnIQS94Ou9+hpDys-3^1MK#Sr>lyTH(}Ym?BR8ZbF(PCUNu -zB-}%AcQ~H}LBvcNP0&)Jua2Zzc$bGPg%m!AqOEi_RBogfraTj7b#oo59^nF#&-dNN -z+_IQV((l)TFTt`+_+3kONQWvOCERyz4=E)SN$bHNJCv9u9v~cuH4!{0iC2TjpaJin -z9&bz6{@w&+`fCE`#uWzgw&+OW#Vu^jI`8P(00hkld=8x5=k-5D8^&XLEnucv(|cQm -zq&(fE0TWqzIL-{rgWSld^i(#X`7qBr;}m8g5wxeo -zWU@7;2cTB1vDF#U>ew|a976nJM+W_QbX9Z-tVBs&ea7JM+s_JhdtB}fgCufM1fHH? -zjwsdhVg}FY18%MpoVOTwT>XH=X3WSlIC9qH-D2-e(@SywDX1f_o~@3 -zxm6_L>(jMp2@pxB1C$i@P|0(UEBY1Z!Rv_rB>%E>!*3|1PHVPE6628QwE1J$UO*%N -z8Q{*?u65FZ)~a^F6J>1j&EDy2*X_6`FQqNQ*nwfDQ$#0+s-ow1lH6XARe$ -z@Vf9XFjHY2a!&UXqdya?ti&t)QD7|C%n)xnEV7Fk>_uM?i;C?KL@bDTGAH0m7SzaN -zVPvp7&Da=+CWclqNWs|UDlAMR7XG)t?Ev-ZZ)0*gc~KaA!`&vC99(Ovw?++#uuK;4 -zhOXf2`Q|HW+^)+pQ$64DdU;=(W=uNeo~c!jg+HCok=l7NXYuZ}O+b(^HzAK929pn$ -z$q>_$2LN6`kvq)YT}9-L(y79l_5ze?=@F-H=CMmbj;VS&xq}dW7;`8qU`ec@|3OGN -zao1#2KG*aZTxu9HEfuX*LNRUPAgOJ*$lo9B_5e`5x7Gp=C$tS1lK6_dn%%iH*l-_K -z7rzD@vB_EHzUB)*2c1NIP3EG-xE@hr`eUR)2ySLG^n|)1fcADdO{gxJddA!AU;1{! -zAAOtmKkC~~U!^oM`_@v9^e8Viqn{o8BrYNQL)1cPe}T`gmPO~Uq@nL-tgEF)_m@=2 -zjR^dsZ@cW+h|9;GEbA+s{4(f|I$aFv(34~ZgoLYv%^RsI$6f1pKr(U8rx7tEac96O -zCjZcIt-xfA-{4sq;wUi=mqMGPiim_X)lnJM`XGuU^w&_v8^OR65>I{TSF{Sd)K-Co -zN3=%=4R@|KiaE>zCC6)#TZ%?m#JgZycUlZwJ`L7*-tTaKYTgBV)LQWh|B8(B!h*|r -ztzo(b@j`a!h*T-AZXMx|ROyMnTtpykLWjgP4k@fKpNrWpMG25J>b$}J=~Tk_g7-5nly(*gpkuK3wfV%& -z#~Fn@iPpwdLB*};|V`9MvpLSXGXaGua(9<`6JiIQ-dWecVE0V@E*wlWJN-1A~)LEv=P&)+_ -zUE9lsRBfU#NFWQWaPAa^Gx7^#4zxwJfE9R^Q?mlQ0dFa5t>l^rHw7$!0t|7bH9wmr -z19+tONYUDU%c$1Gs$oRXi$QVYBJgJ8<+Om1zb%F -zsG$aPj4~i`3UuC1*s?5WnP{}jXw5*?42E53NS-609Syr$>b+R5V+gjMJZ@;Hr1NLS -zBRb2g`zZR6Xlz$E-Ewg!*V -zkuBcJHj9-T)p<(H8|X;9SP-)^mp?G}uGBN;S#-+c9}6DjWqh4|&StyxkIJixRJypk -z3LGt^w~IT6;8&_cC&13<`n}9`@K_0%c|{>%SkwnjFY=}hQs*5N=kg4@z+tX-1UObR -zkiO+kC!^rS32EQ$V#~7ab=wM`z0vc&oVQ1em6ZDOS$o802jI94tQXbBYw3wD5)5s4 -zYTh{9)$y};Tn7Nyso)nZD|yL!GDa38`1gh~=uP#`;F-~OE1JPgF!{H;>>wBjpE_S8 -z!#-5So7p0k!;Kbb-VdT+$i(}B#V`Jd6N6-f$sA2b8rtqez5slHs{s3vA_-vO4+noy -zwpcfcpBSiK!97ywGQl%dGc37M=rn&7LNaVMtSZ&?lH%@kpRUx86eM5-OAIv4Z(UVS -z3Ihmx{|nCvBD(&Ep<%>;ZowiNxw35q5r6u(@`V?`4wreS6zpW&!&tYjApU{{y8R&3 -z{t(9;RY)&jM{{t8meEzG1~p{pT^R*&H@|Qf1&GkhDy9p7qV(5Vbt&gw2}sRDL?Z< -zHijp7ZM!SLV5Da+xRa%#M7Au1A2la)EIq1wz1>Z+`r2M`W@x}Q9vGMJtzj_d00p}R -zxYE-~C@PBk=av`C>h^U -zK~g(0SIi-iy(%_-&}E)N!29hP#`k4*ibPqa7(=E|iMcYTo&~)w?dAujUp09x&u);c -z`#h6<8!1AZoeLF`!vO}=N{^}y5^Z%2wq;AFhc_EUh~{pa-6_Z%e&RwP{3SDZg!C;c -z&gfs(HfAPoZ!vF+YwSgo#RbehFa8JKF~K;aPMn9CAI)sR*Vk2*EPp#=uKoQf(v8T1Fx3MMD9+|_#Do`={J5_lJpypvJCv{u3n-l)Iq<4ng~!#!HTgY3SS^)U#mYTljrpW{3$jGtP!xt34FKt -zU=Ym-pu(l7e18Q;lDg8%vaX{C@=RF_C{Q=Az=UqB$w8AgOq>9nBlD#1`|c4=YV5F| -z74ZJZnI*bLDcjC3TVZZdDKacNDNyZgxh8aqMo{!26@_&yP2G60LMnj)q6v;y^>dLqL@K>K(pW -zvQ~sCs>$#|qDfJlG^34xrRNVpg@4ah$6A88YRE -zMIjn|W~;%vsy&A&tDg|&O(t>Ep5-BNwBuVEZgb3%+IJvCyDDC@C3_8GoQzFZqHQS! -zNy>Gj$$vZB-2cYYNVhIGu=l6f5?v(vMeBE{6NBZ&aB-SSW`RD|NMXhun!0% -zo -z0fRZe2`$G?vX+Lf$CoatxaWqWx1W$SwX9tC<~5eO&8a`J5$yK-1t$^Br)@9YCAmId -z3{R7*Z4U9N>-YqtpA0H(3P_tB>qjEKgOtJX0(UB*`!I2kngD6XzY*rv(aq6vFP`gY -zs7IyxS&9nO1aQakjvpgQUJq!~-6!`qjCWt`P*8X*)gai6R7(QtHR4$^GXcV=DIKBM -zZ}+mj4xnqjB3@`dCQ>Yz)Aj#93EQ0_DFfzDBB-sk8}={GI8r{k7D@7(VP(pCoo+L< -z&KihhQcNUX5-?SVw=cMoRF-tujGBA*A7-apsW@th#sarKU4~P>aNms&M^zT?7>>kZ -z$8j9i#X$hsk>KJ1ecu>Wn4Q=&%C$t>%BhG0(R+4m)mRsVo2f_%LE5S_Z$-B&&tR -zVnDN#*rPXq+yWzgk-8@Ai?{Z>2hiPTxxV&P8Y!Pb_u+XIpEtipwNP&*b-`D -zJAzN*F@aJm;2E$aQ;H{(b45S$v~8lF$`QbsS;Z9(yVeMv*s9R3WqTg}@t&WBeHU~#P`3-Cc9tv>DA&=H-FqwZ&Pun&(3g9_e>u7w -zchopjxIj-rsA0!gD^DCR{KQf6@K3QXnf4{-@@>TAFxk;AmmWIcYi>eCf$O8K0WZYI -zO~|u)jOw4EDKBv&BgBDAElpeaNd*<-ta6;Zo$qLk$rc8RFihhrKICD{znQXW7PL4~ -zJIVKzHi^HHFajQfC^c=3&Zh48NYau~1GMG1_w`kei56wx2nQtv(Ht;x`c6@xXfRHP -zbhv(Lg_1wk0P0|yC`_M2wwfPR+i;}NLTV0Jiw!x%-|}0A1YLzOdvv@D*z$QxUf_nm -zZSdWxnwY*x#~NJb&{yS%L3xMq%{e{&%uPHZc4g8DTMN -zyXm>7TufZL9-8q$YW>NSFU^Gu^_|0k{kW;?hgQWhA8^bDA0BSvmw*TGtTwd8h`5NX -zq6Ve03ckniN*Q5%)VfD1BRMZ7Je-s^?VB~VBL_GPnBs*_S^ufJHNiL&Q4N@KM2Q$4 -zjD{PAn=$=WsmJ{go&bJo!Z?l}<1P~}JcvB)E{PEe?Vl@JepQNK`wenK$>(5gobwzpe}dffub}6E -zXk&4|LGCOu#$ggj*fWiFvHd>t?yve{9t^!6#F$QIsOIgg!L4V8gqxmY(vFUJ?ZfHb -z-k%_M{bf96S^~OU0@tYXC4<7KD9E2aqIFIC2h5c1 -zO72wPskYEo(mqroGAnw!+pMFqS>0>c%KeXd(?ps`x?1yS6UP8jy6vPYgz=Db;~mQn -zrD@4dEjS*Fx=D^+8b&1^_sMev+dFTzI+3v`(9ctrGkcU$f-aY5X(|y%0vKWGUeHXe -zahbe+{ez@)=paR{>p|9`b0zp}ds@gbw3Rek{AOS|Yz@m>V49xXp5qEq^HWw2!PqZV -zdoWowWYln!Tx%a6cRZN6X=3s=Aho0&^-|?P1Y#rKk?Fk!5S6mo{Ir)`=Dn%C=U8mkM=|9J*yp)_f`|8>8bXdK!rYW_F_INTij*kBoiZ1aDkZhc9L!K=1**aY -zGA|H9$(O(g3#pMw#gwkNQ;;tXW-a~#LFrB3C>!mDA)iWm#3alUkPco!h4rx37H>My -z=$!=ughB(L2PP?$Gr7a%U-pp;@M(=-dzmcicM!Y~H5vP;x?<97#$~BjEkee)q?DOi7iSel$8W;Mrhh!{Rf~Ul -z+IWf%j1tgm^y08$m&<90DbRG=7C%QeKLibZZ! -z9yl?bBBV_1B)&BOxss-v1D1*mSz1_b*ucm24w_G#nOxqCf+f>@V#v}BBz>MIvtA%z -z6lPESb;5+GO}oNcTb#@)GZQ<;7G(pH%4B)FZehtT#*>Qon+mvPU=jIu6hYCtKoCU3 -z2jbBKM?AB`&+Wf_+r#Z=&-$&UUqh|o`TeT0n66&9o$zgOfRDe$hKD56lL)4*9aa^_aczE=8sR -zF@mtf-~>uT1m`&^D!>;}5cnui+*2nIsV;C1Ngf3W7bVOkLRNPy^e>W+Fy?!u?nskF -z(@t|De8E0g!2}sk-K%wz7ZUnPB=!tw7)Bjms)~T}E4Wn&KVpfI0o@p1C4-!|rfGBhere-& -z1`{wl-|s(~>36yFuaspgagKq#cDntf(KFzlwiJ%%%+2TC#7Y)MJ%Cnzl^Sl4FZO`j -zoginU#d!pB-H?a^(Fhjp)2gqFMiqdc)5;Vb$zWt9k*k3gx#$`ssUZ>8&2;gjXLAht -zuKd}=JK8ju8+rD~|JH!o-KYuH&)Z8cA@(>ojyTmknH$UrTQV#cXfev=l3~<~w?e)* -z?kL%eJ47Z#JXmt1Q8FW;kum{sQkM9N=IKbdF}l)=2&G>i!TLo_xE)fA?`X?4s|OO? -zkVHpZomLscW%*0mIH|gFc)<r&hw0vTr>%=Fc1?vamUt28L$jeX<0_4k_IcZ-7tT -zPubIU;D@lfp>jIR3V|4E<-@A!)7cKu#aVI7^$LwY`&I$iyWb0`6ZBmU2pDA#7(%M8 -z$e)DG4j_bj1NCXgMqXrRS -z0Q(2rHqhu#w*4{^P!WIC5{eN+{gZCoe8L?*2-7-V$`wGycg1r-M;3SKo-KZ9XYp!k -z7{{DUcxfcQedJh!RvDqq+wwq;hGuus^R7O7%ZR&4fR)2k<#mq2FP89`hPx*oKlWi8 -zaDpgIenLM3%9Py+0up^wgf)U*MOm?$*-PTc(3rx;$#YNsXlHR1bI6mq(Yz%9Ne!Q@Ok)uP|s>n8P9Nj)kK~k1EpxqzAryTwu&D -z=}r^?M;&SqlKyq?SoL1Gl22(kpu)bcf8%MM3&E+<#-F$3K!7Q`nV*^M8+zrM>f-md -zV`9z%5@4+y7ESDEXeK3zi*S+=R&11qqMp#IDxbz50@usq8OpBmIJx}E(tvQINj97V -zXh-}T>|mRTpI`T9=wo~;0R5a=!M?88V6(DY-bs(;0KaM_=@31&UO@KiL9rlQ>$3q{ -zG=}2VrWVX=k8gVk6p0ovopdPBFhK=k+QA330K?AUDh=Jvgg -zkZ<3pnlK2TH1CMS=cvS1nOfm_(p1-j0^rF7Hw(LDDTaLJbs{#voG(Mw56S6Q{ifEz -z%WABFn~qUTVX1cyWd4<8{GLvITx-doIUj&N9x{r^HHzuy2_B?xiEbp&jw{c7BFkF4 -z45&&qcZLF~n6mrQ*BAeSZ`JZ;GNT8`_NwN44Raf@h`+>hY6)_(&TX;v_);_A}$%c112RAdV*V4h@@C -z4F@ac-%(xj*go*7ngFMkz%+lQJTy*JV0!T-E5PTs70>=8-_<3c^h0ivk#+yK~h0}jS -z+&S}}SDz5~Ps`sBw_1#B**(le*Maj@<$N6s4M+P}3#^U83|XF2ObLdO6!zHrABem9 -z55z4tqxUz&UH%*5F8+kL>-6@9G6_%rK-`TqK38d__V6c=sN4JzaZ|;x71a}e<1Eln_?u8_RD;f++6yNlAme4XQ>C% -z=UJs2KPkz^$s2-px^FQH8OJe&i*8~wX-cwJz;2xe^8J%7i9D2Dgob0Cn&q>Hv|vEe -zf7YrniR53tFVCE($+wl)wSIgpk5tmXPPm;hN(Ko3*6Gx^6w?-UMk!morBjKG^IWlA -zO^4Qeg&|d7I_s~m6si;gcF6h(aogteksUg%5nx9kt*AMJl2 -z?rEhz5I6rR&f*t}no-?n*L_~T+J}w80h(m3HSk<%ehL+$&61Wmn9E!y -z=0wF&*+hn^fj`G2ILQw?IHbu$_E-=Uhc{OzA-dB)$YB*Ukd2H@;g_tXKrRua5p09S -zH_oX_br -z%_qvgW117Wa{*t5fvpahhr67M`D1g_QZ*r--|>~ -zLTZ|G)#}{MyqVD3yB7p^<2To22YnN7GV@m{6{mP{og9oo&$TtEHHK0Bpji^RAhkKx -z{*2)zMXw(LggolkqOD|}8~~y%pGt43wExJ|p7f3ySDs#)rv`CzbI=T;r -za29D}?@ITgtdxb8G;ukz6AHbK%W!xO1dk`u%=)wL!bjpkc%8%`=SXuwLa9}ozicX% -za>XMsv)VVH7w=JPbgU8`@DJ23=F&(&tE?y~l#+_Ht(4}Ajj8|_%N{3wCKpn5Et7r$ -zIVfLvqj_mg?b(mdl%DWo{1mjrV5fKN5G~gJ^i=D{pPSSchpmFG!n8>mEDXUfBW*0F#Rn(V6V#kd?3amy>>on9=B7}i -zs#>znW~`1Z@s!oe=7RyyDB%0cgGej0tRwrTjM`vdj0*BN(VDc#D#RAKXi;v`?P#7o -z6Oq!l^rF&Dh>q4MXl1yNW|rWsqfI|=SFDl`vkXsK4*_Y&_P -z#_;{P<5F>@Ka(g&fVKu_PE+|@ZFtpTLbv_qlV=zzW%HloD*`O4IHV0B)8f5AU#Pfl -z;UN=nV2kxIZ;0`Us=#-w;5<1V&Chw9rVhIx?rf9L4mH5A+d*V{DN`xy5LbAqJ0X;eqO7g#3B|95HM84i)8UG6IoYlmZ -z+7)I|Sv^vM9s;+Z{Gfb2)E2G=Ekjl&O8Aj;Kgr~d@_n3DPOK=snh`&QE-o_*MgX|{+!CB9m^&@eD -z_W9p_DyQ@GXd!xKWG}*I&Cp!rPgy5Be%*g$0z44}%e76v0Yi<8BA9nF-9Nv^iCzoP -z7BDJ=s~z3AJXIX;KXoi2a`X#7l*kHEk&3e)5m~~~E2@ufq-y*;H<&lCvgZ}*O)rh^ -z(y?MLOBaGChX$a>OY9Z}5sxiA!i+JzICux>EsY6!FFo9Js9Kk*@6puC5b<`dDR_jKL@6LkFe&AI!18uk+vRa~pw*i*06|GTpg7A~AsCT$ -zbdEP{LG-rWw3g`B)RL{0C`q+bu33CATvh)pL#F{>T}$L|gNumK41q(}?pX0=S&D0bg5vbh6o6uYL*y3M1kGS)9GAE -zIs)=^YHc*!h0lzK+epsz*)7|VCagD=!?Wlw$$T#@#4|yjbYK6x)@V*3ZfI|f-*ah& -zsZESu3)5X&b73jvDD$)xIJKO2B>F1*-Jnw-=>D|!%}D{fwlRap0@QUY>)Vze3$H?ZgY1^Pa7xpuvz4Oj6X9H -z%h-&9EV%=f)B_jO_?D5S$PpupM~AS1%wtHI_iR7+T#ufqgq -zIsQNk;-YNh3sit=*D>c&)-6L&7}G-OT$c0>b@2I5AT3~y%D1tykQYS9R7Q*}1WDA86J*ZuxC!}VHVfCys`Pu -ztG{s~gt2Gy9K$Kx98LjY)YKm(Gq;)?bZBlRfA2K$CvK-5+CMn30&&>yR*5fx-Sje7Uvj -z^S)Y@<9QP2u*FlCUpe=u&r!jO#`E&nWq#C!So${*=`jO7e|?4|Q4=mrs0mIZY*h*a -zz1?~lKj(!oX*C)wR9|%VznN+YXr7NfHq%g!HpMCYkj0PS0xuj|`ekU$E6h`mmg$sQ -z44IrY_0_xu@yNNb7+dy`?QK(U*J(D6iVrYIgD&)b*1;L>+t>umc359B8d@v1ji?WB -zP;q4h7yO -zxc{qX4o2!tHbrY-*g^ih5hvZ1@zhr>rqE3=C46~a5Jw`DQE7JVktNTV84)TT21-eW4?@VKq;LXMLGC^K*nqVWiz9@OafiC2M; -zpnZj1JP5Q2-ZO52HoMcnS@WHcqFJrP>+0f>S7Ow`zXbr8+qS9)<2;1Fe6w=uoofSY -z?s3+v+8=@oNOx=VO<%X2I~3y83cfdk@@|ETV&LN?mG*6W!vW~8;l=aFZ|9t>Sj~R` -zdB9WSBjgtj%ENHZ09==PE#~OHYu8HMl(vI7BP;ZZ9E&=TCJI@HO_Efd1V9nN%b?( -z_)EXaZ#rhT`A@!Z{oj|UW7C$|8z7jDR;*JzT>z^A4-DTDE|)#jkj_AonWhMm383cT -zJd -zf6X=aVfBDiVhb0q|NfLjU -z;AjCz_Y%Fm+By$7I$$_n7i@ItTn1Y+l9ad%x?gTppem|ufVLQ>$~An^i$IpozUg)M -zyRo6$eQ**0Rx;*Pw>c|c(zCCNN%RH2;jf+SsW_%rI}Ba$3)Kv<*W-hX*k8Ly@9gZR -zIj!#28d}N?YmUn5()D}S*8L4}zc)@@!t1qnZD_s?)5iNYzN)l!bnd??9yKp@`|Mxd -zJADj8ISf19=x@MF6AyYFEwApUD;$;+4;fS -z<>qd_`+9VDH+So8z4PMQ#dSPATCQfmcKWU7IO2RrdVCaN?RDkfAf1>Rql8c8cv&ky@0hjhP~JDWxg>%e(&VQeupomsRo?RS-}Ci14Zwb|Y^Xh&g)P(cRbQ$1`221!^*zX~(FC}IT -zRj?l!=yHzvj|af8Bt(PPF|u(QWRv(7ybKn^8jJ)+=q%aeArH9ByGG+04N>X`qj>7> -zxl0D?r|UINK+&U&VDox!R7;QiYn{`Z0DdseMm}4DcA!KXPfSY!E0mpP6*bey_GTo+ -zrK1N_@p1(iXizAm2G_NGPYJKABk;2u2DF4YLj=UVF0~e`=hSl1H$-?L2F4E}&05l3 -zP!Za!mDuznc*aqOj5YcAur(%J>{|f83^3+3g^td=N>GBINM;Fqr%vLQCpCi_?68K{ -zpUJ?#Hdfn!a7ol1qtrH}r4URZq++(+`gZqIAhoA -zBZitESRIV|C9WeR_56L>y4uc1LkBX{f7d)(VV|KZ*}@^6{6!5z8b%3p=9cD*HNL;L -zh^lIqhV47(h_=FU$0NOeelH|v{ysK42IJ1*Hb$%28ptt)pq()HSCb`W(8tv}*M#rE -zR$?&QBaBc`iKaJGJ)9pU&YQThd@oxoVC!6PLhfmzHlzfa*)I(IS>Dzm!N?E^dcqwh -zQQvM%wO`tbO&5ZvPNQY=Vrz6rI8C-QE_G5qFnC?#!!ToPz?SuCY8!7ZpLq7yWTNd}QHA9a}!TMDX^*udDK?o3zs1BXeMz0i669vozIdVj#Es1pXl#Ah+c -z-euNB2`qVlRUYfa=If*3u$jr@Swe+CAFpd+*?K~6m1kq~iZ|t|z+~$3fz%;~xw=yc -z=ic%Yvjx@|+YUlYU%uQBOdV -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 -zFLxO%woe&iAfHz*pwf%H?;+T=B`m6g@&I#)l7 -zH}^v+{F2I+%L+UlCxy8JC_x3sO?;cT#G%wBWxbT!-uJYQdW|@fsO>2nnW6NEz%t{D -zCKItiAD|aAI|II%nRA`1z*^oW#) -z)reor50?BYW@oBod`mkqfwK$wZ17DULO#eifuQ*KGS1mN?is_f>e%cJMORT=I -zb^PYB65MoI`o(iCFQex}A?q5pBo7bbb6eWy1a50F>8#mQdV7WxR;9Hzf@wHxsoW=8 -z(p!-n!%J+C=KPTiA%nLW?pBda*VDG41-B81g4`TX(d!viX9R6Tag`kGN><*BTcRwt -zq3^HeVoMD;>}Wa(y5~9evXu(i%9KJr`1T9lf_Pye9k)*j4r2Wwbs00?4VP9Z;fGJO -zo?ib8UTXCucc9r2%-T0FEEVk9x)M?sohkTaY>y5doY3~kToNEU!GfL8Vm3s4TMDv0 -zpS?jJLo7Ce$?=@S*AU4W(_Yj6Wko9LL-q-$PB^TURuoCLczYOl1Q3oJ<+*$1Z -zWN`P?n0g}c$+eOFF}O3|RSO;}_29>Wtb&7R(7uQ=$+wb4tQNrm{vXEfu{#qbY!h~D -z+qP}nwr$_BZ6_Vuw$-t1CmnapPSVk2?|08y&pY#F{zI**T2Naf}yAgapwF -zPFHw~wm^SZ{$llgZQ674P0caP!N)a&P-8)Mopg09jY2&%xmHotvy^m -zV?#os!x*0Nek&(1ec}G`(u(Q&_ -z=oh>T)xug}O!JAjYq1prW~@ygX1#y*VtYNPDZD~NM_2}LBUQYvJj^W&NcZPg#A#>!!y;y${Qfsx1$5eOpVEl3_W#CTRiyl@xC -zmk@;SHayPEC?s9y4@fOx4I@86nIboHkcaU$F`oOOlG7G*4lKu>vqE1BzAMXK#9`oK -zjDgx8bg6OkZE!ORf;jwRa5s2;8{CzwZkUpy|9^v9{vU&Ty5+bs$I4zR@E?Oa`Co(E -zckLg8d+^)fZg&132Dd!xKL&TC*gpn$`ZHlB%PC<>5Ms#W>9EN}IlC>~1U*nV$*kSf -z68Ilp^ul(2Crv9G8pCW; -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 -zwU}BF=X!I$7S- -zzujufboK3TtM#;DYtMVtDn&38=y7;```gan{x)h>PGrTmzs(RrJG^CqVEKRf+bUpZ -zK>zvMIKP0*Q*80R{q1i_m!Qev+u#1ldoTH)zb*eqy2up^_o`M0E~wHe!u&*1##%|0 -zG2>>aY6by%QN4v06S0z0a#5F2@9W7hU-a2p-N)${12rslb!|~gWrx^J-=(RDUjI1i -zkbcGal>A<2*Gi=ywKA0@GYFY7WQCfJO}oLlqpn!cGw|ce*-)H5FOiM+gesO0Vq6$y -zA`Uw;;+_f9im!h^*#@@GF$Zr0h(b6~t=HaKFUJovR-Pu!e8t+Ni!f=agUiC?(P{`7 -zQRyAHOXQ<%n5X!S2oPJf2oW}gsF#;guVYp@s%B>$W+zsKsT2KtzkwlP#?IbG?dE5oRt^XUcU2cm$DYP>tPeJ?LF8vls%l+1c#xzFxthg -zT5#)w?@jRxL%R|~%YhXCj-?;ktZj`)2{J^mqRaULv58QwYaCy|BvaVf0ZS12(l29W -z>kmYt4-~}@;*uzOcjk}Mdb@D+qvqc^sABlS+g{vMfBN~><)0|Y-2L#_6Ui-%9{eXi -zgHXf!65axlE8UkF@B*GLBm~dJ3DtCzXfvCe6;k&sd_8sAAS=O=p80p)5l~_o4KPn= -zj|DK8^|-IWS;4^)Yxoe0(E1f$SGY5U+37tKvpRuz0uCcz0_Sw)p( -zEQ{{kTX^H&{T-4Wopketxx8nrbVdbPHJgxa>qDT-j)LX7w752~5tj8i=7ERm@~TI% -zDE;|3VYyhgD26qkd`hL+WXC&9q`Z>>S#{U|c^Q?9c -zhlPZ96hUfj3W)^*WP#(yZ9V)2d)uGHnsgIv`Q_DPB*|$Hzjcmv2v;IGNI^Dx5k%EH -zlwtk6si1J`Wj8Hj?KCoIn9v>beAM?AZ8uTnjc6|qi7hI-ov+Kd -zv;41s)NCLllgOp%9|LE9e*kh0l5ibwrBgWb67^0^!nD4ssFKe!dy;p!47UHqx*kfI -z)E*QS&;8ZYm33AE!yDzVuujm)iWbwTw(k -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 -z3ZlwdG6o=R?d>9%-(;)WB{Jh8z -zp3z8AV@~CK$WF>Y2}amMpg3gDbn6thjM*gCkOSZrz=&sXk>h&JBkIF)^`P-tiTL%Q -zjv>u8@iJ2>7xI*`u)FFmq#5D-KOzW5(6?8~hs*=Pg1Tqr$MZ(^q7O>6T*unFoS5u* -zEF$)qC&L`;hN4DImWsgJ4>b1CCFGVwm>4_t(lvZxX|;wNum|PqPe+T2Lc4P5I%Pea -zX0z5?;1VIxH-}i27*_7^3M`I~5f6ftdW|?{sF*nWk5eG#;8i>(h<>;K(f5tzPFk%$ -z_oGmcSqZTbz7T1WL>*{|`ba3mPxv7%wp0oe#psQ=awNI7#&8Ae-dAO%b3AoO3sW=- -z#<3~;p88?4ZnrPM-xJYvtc=QXD4NnQ6v8_Fi7<#~Ax(eE0#9?|(~m?*kXoEe&HNWy -zUiz26;IKMl-!C)P&qImj-LHd`>%Q!c*sSyCp|tW<>~UksX?q-4^e1yOc$4kga&|&Y -zM%d6HT0*E>jVI!0{?^kH%wj4WXe_&<`&TTyE9cdFTDKD=D$ovHOax?!VTEUf4W|p3 -zm1B&?^Mag8b3?hH1+Z63AnUky&s3wKhRRrKV>koeI|8Shew#pVs`igo3{Aa;%*w_!o>tQOsV(-Ga3_ZUS#Bjf&lyl>KJZ55JQfr -zG#ALydYjyF?oS})wnhKmJwM-!fa>>iFAf_itM3Fo&=O7V&vo;C@k89gCS8LKvhVUtfDw?KlK+6bo?;n2s+{s*Zp -z+E$4#oi(XW!CxTq^4NFM)J>lpqiY7Qqzl&4h* -zG)%AAnT-TplJiOraqFJj6()4@pF(fn{C4jD;J51ow(S2f=f2j*-!2U=cpeb|FA;0# -zW!U`OeEj-N(*Y^W@gKh(ybm$^fYYW{IH;E7@xS@)?QeeDXT8dI??~{Laq{4g=Ct=| -zkSDBY6lL0aY}GI3rFS$i44hI7zZWo$cK6t9a$^*G(kB(5-#xZ(D4=BDHMxJz3e|HD -z>IN!ec~wgyyOg7l;XxF^l8vnex<6#&+G8_xXy!`1zU9+v8s~Siwn> -znml^04_pC|o2I>$FIpz9mCl!kN`%=FSv;e~RP2YdlrPJWYqQ3F%vZTV+oy;5p!lKO -z5+gcRpn+iMwP8Hrcu)b8`Pz*&O4?$KdUus#EKO=pnOyN`AD-jRK@6c@oVBN$eU_*S -z1cK|qdTxgtI4i5+N(Q^FKO~U+vrSJamvn^Eca+$sB_(a3xaLZIiL2yxlFA=!)%MmY -zXcotGf)kn!DB4>KJqc_B_|y(H7I@~rbx*rN9;we5={>!Do+07R@63^VEw@sYO0lv$ -zSX>vFrB9n4`lO`dcZ$e~h<0AbvS9a3AXXW&z(z89QeZb|n1weZJi9tdi2j(3NGgp7 -z=IDEJE8_UxlgwqHnVN8V?k8enC|!IG>wNyrkabJ$K@05BaCF+Lj;q}f-s5Cm+s?>! -zP(Rv(*Lt48;=EOE6Z9z*H%;Tua2x(uPnl#}z@_~=)m6zc>C>;rXc(qT6*-rmzp(;m+Z{=C$ -z>n4I^V~}p5aO8#yJr#lpv7jLU{ws-NBFt06S%MDTnd6`X?*gIcI)^YKxMy!(RZF8m -zoDBi=0AExRqJ$}LRnLqS(6K3*t+bU5$G9^`z -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 -zRp{P-HO^Ij1wt8pqKUaxbvtm~3Xn%b*`K -zy&(z=XA_Tq1ieJi>{qR&p<0C=Di=WfVcP-DB%gHhhEpvq02|D=r5|#{(7hYjwU)jG -zy}asd=jIo@vMi#SIx6B*!0!Afa_}mhjAjfGKz-=HF;Z5U*8iRWK|5gb>RKo&*hzV1 -zkeoK%_V-MIC?q%u+8CxI#PtYcf(MeU)%*aGzE0tW$6yB>DFsOWLb`Iq!IYhtMfyy0xcOFgc?;Aq_`8Zb@Q -zv7zl2=Ge5sq-E^}aV%`6u2OkMn9&gaG0sNPkv&2ep9XeE5a^W%KEHmr#0a8q-F@Hb -zY5i?m;lgKv4U^+<%QFFaj#q-vZaB9I`E*NauIDTZ!Te2%qnXDQ4!p7Qqmt3ebD+w_ -ztj#o~$YAQ^uk>U`B3(Z~LrKMcS}a*Q)J3|Z#{19yyy6PNLb#ObN^H=fVm%*rtjm^d -zsNe#P5IJ!Xr3sS&K3{kQNa5l09S;o8Dh%fd2_Mn~puU0j1w8N;?jgY8_sA7=$rXVy -zGbkn0G8Kv+3Mq0EHd?mZEQPgFJNbXe+L8>MPYRplOh&;Nt|{C{%}ydigoUwnxZFoO -z@(oeSDS})#75|#s4JPILIA=Ox^O8Wf$O<+Ji9rEJacmYl0CE1r9|5mevL7#%wuuC4 -zQc?~ZL0Spml@lEdXqYyWR#5>nfhgM!BeS{92>co3f0k&Vi3P{cnV&@#IX;Fr9 -z9A^|`o4RSOXp9oT(wxW1m3Vgs>}q`(e;|}S-FhkSAHo$d8x_dHhVDtJE(ls5Jrw%* -zSRE~Dbhn2$5WW9m7AF)Yj%_q;0FR!!w~bH)644vxV$HEvq6KFr+(8?MQ_@7B_I@W0 -zCa?B#e-&%?GlXiCc6H*Oc20QSu~s>)KM=?U-FCeC5TbPJJF)b4ig8T9LIYw1(-F+h -zr~*w>#r#_`(P{iySd=;<0}WuhW8>;GpveM)>O*K)5T9^Ly%ht&*MJ*>`Cx-ws~nR6=KHY7-V55QLootTO;kZAn7V54bjHu(87^{ZB~}N -zYb>2?%RzN5AEd9Z|7MdEa@3f)RC&42EwDh935nN3x#b$k_}pYtyu9!oEvK>7z#HDk -z9lHI^svXd#^K%Aso@IsVtF;&40} -z_x&JG1)ru@{gAjiHVju}S~Gl1XT*{uZ-l0`98rsEEMwf38cNJn--C=`te#FAB~)jz -zy~FER8>qP`paw-O)J91p>>5oM%b+couV#F!mboPl -zIb+EO)j*n$WK?@(K>){1ft(d)$#>?5UT;j2N*Wh8H?NlfT`F>+e&n-#9i(!rBLM7# -ztO7Bd!3FUwJODsNBeBKkzk4YCZrHJL!63WABTFt=gn=y2Spt!xhK;oMc4dKlqHCIC -zxGTBr(aQo+N`51HM*S&C!V3?8Y>=hvk4`UGWwIk*s7t0{kf_UDe8KuBmUz -zNxjC-@|*g7pj&BxmL?u@%xR3xu?Y{?%sCy -z9%#lsq^}c6lhmGbbfN^fS#-B6u>{^iCT~?dzTq%7X(M#z8$piqZYJ<6IPdh}X7Nok -zgCO{W(1F_u+)!-?qLrM2hF!`_j6>V>Q-wR+s2xkHay5!pkf1@oS!GN!Sd--<2spKs -zc$?w5&Y&cKSy#j$D$m2?@gp3G+2Y!E$X4&%oZiI%lq-z}RFS4GLW9eTp~Y?9fztl^Nfp -zmPHLSxJN_j!BDVJ{?5sGIAN+qi(BfK!S}J{C4D#f%x4obmyb=#0>g$AiUnrPogEhy(HFO|yC -z6XK{(wkU|&zk=&0#DPlXW+<;EtCe1ny|n@dw0#h%Ws#OClh~Y%)7qhF0Sn?3ZeTL= -zP+ApU4ZE*MKBxEgGe@I*`fm@qDiJ5izE0vbc}BE!W#G6Y=JtQv=B -z^LqYQDBK+@=kYr-DvNB>IQVL$Al0`MT**1>&2nW%t=C(0<)ip?-7hx1+`nLemsD?d -zXA_eOYCNVB&_qVBX09myl!kU~Q65e}tqGqaSSY)?*`e!QDPITssMPzQeQC{~FvKi* -zS`BJjQeA0$&|fxe)DZ=&ECK{2FH3dABq+@iu6>a093dhe)bMK*^tuB=Y2&zrdju}8 -zkYNeSVE>qv1R_mg1fh9Ow2cCibSwLNDFWAy$(?HE@*<$yW>nRoKd*JBB4xGiWQ`dO -zE7!jDTd3MM^3h;7m6N?-D7N1=igj+Fld>QPC6*w7AFiojx>u0J3H;?qX*;`hCdhG# -zGaHR0);W}e+=D-RJ2`I+ZyZISqW}tlobWv1Q$lv&zRZs2u@YeII7{J1|B;$fTTaqW -zm1uL0fLH%w+19_IH>$QZEwl7jp5t-MO|czRmHPmlb#Z(=9SMaPh+RC1-~NM(4j6IQ -zJ^tO^MGgofEp<EGp6mtyvGr&Sv<&fD`)&W(SFO9xR@V(D6IPlP$~OJT -zs6#)H$I=&!+RN2Cw8J=~quQ%&p&9BWYk$FKId-SK49y6pWqKBG(hSM!&4SoELNzb79NzH=j=MjqD%@t>->Fek|^Mo)=zL!~MB09Cjvg -z25(M&J#nzD%JkAimcs3HW<)TK_?fd%7sp1vTq@MS3j4lG69`zuBlLy%-e=N>O4YKAXH#`^t$d -zYkc^bmVKj%XkB~`E-Y%=dUC7Bq?@1LBl2%4>!P-KMD?< -z!hJ=+c4}`q`i56Ib+~6X1M!qt${A&x8inN$Ea3(X5zqF?4FW=~6-YLBetyY*v5eq^ -zQ2-zwc72TFamZ4kbhgq5!SX!o#Od*WDYdmdUnI&lwoQJ&7l&>u&jvl~JiP%6U2fXm -z!q_I5LC;-nE&2h$f`GUATz9T#fmTml3K8z%5Yo7BbosKF(KqV1Gh>aE(tY)7KNfT? -zjC%;ha!o5>8sRUu>;+G_z$Jq|m8%;60df?-GXS^yEcMiV7f!miY{&lZ~uQI{n&rt*F@jUy)!6k}H%d=#Q?oEFK1uN%3_*-7$ -zGxp1caR$WEOZDNyzSHK-U7i%lu5zk|vwS{FI0F4{VIcZ|luIizOKi35@3w8?s(sA! -z{79>>d_<#?R$B2kz#@cKdoJd-)2o^M!^WO_grZQVPkB^lFDA+KimsyzuftIm -z<2Mf(hYdQ99@4$V!-Ae54;&kbF0!b7&PNb2Yw -zw96ldl7UqYoEt9acK)qL25Y#Zh^+n^eR3@I;QER#f6N>4#D<)WUKjBDrk3O=d&rj? -zXP1eo -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 -z!Hl3s;{Kv^*+IiXXC6w5a{M`oEgf28@q -zq>W_7fQ((xbTSv-cg%>7F=x@PWR)v>pyGXAhjFuW!_EmXD#sX5fAy7y^o; -zF-DQY_)@0DVV>+?VK6aF6_nGn=CFMLaur!wab~&s7bJ58W0rb6~Q|0rTNcgpMOYq_V3`*Nt -ziR+!#4Qvy9+kY3t*T9Hmf+1ck0fYDjqlp*#UVG%&H`Hpw5Y@sim2(V#Q`M%#xyoi& -z1{=e_?cXjJaak6}xXMgU7cu%7omDt2&=;wF+;r^ZimusrBVktL^&wEttXdf8XbiQM(>PH?kl*yxrq+ -zzPbu;pFF%>|5{vZGv|Mg!OBZyk@0C07ArpEMRACF-+;EA$lr=#qc)YrlWFCHrC$ATJZ!RUh7e_~!vgoT`p@{?d7lzr0ws-Ge@#>QJ! -z%B_f)WLcfJ-FV}Qn0^}C2RX&^Zxq!BUhQs3KK5h8bB|2+J)eV3kV1E8+!fQ$7pTx? -zh%d+%%pyqSF1Af>abel#9-IIYy-uzmk(Nb9Az|?r;=h$08gP}Zna(CHruT()~}NH|GG8ys?`#$BVXWSH8XTuf9q%c -zR|&}ub@NkK>(yPM(bVoUkf`|Dddlk7yySLGSL2xa3dGw8FILr~1{Ald3@?h-v97Jj7py{!# -zS}neX)x{JCzU1Y)PFA~duWKLBzg-N=@<_q9EW|iD?NdAZ`%^wRohy6$$^e+*Vt(=E -zs~+)j^KIX4M&UCz{#?ZJTzS^*5!bz+l@n)h5SY)U&;_-#W|%h$NUVc@f}gg#mvWP{;vODrok6q`OXy!--X#0whvEY3wRryh*P3rm9>@sUOWRUg80S-Z2gBdf_Qr=j -z9V~ZaL5hpPIsI3DYxDT)FaO7X^2zvhrb0v9zX%>Yud2Pe0PkqW`r!!=9unHy4gyvn -zGIYN4Fvo%4ovF{hs4%+&mY}0oghWaO?sI_6{I=_c^RoEWWb5}sg(1g>eF?DSlVL5Y -z`><%sz)-!c(@cg^bpjK}&)i?fbA^hH>D(#k&$D_f*J|L?EhRG$^2nzpeKONy%a2JJ^8j -z?y8mX^Md?42fW?$GW6!rzEFM7uN`CNjba;DrdpFiEy)#vY?D7vur -zhT63xH5ygugFII7fSJwi<~hF&b0+N_5S*Ngr1LXAuf|1d=@IP- -zTW?q*J#(i{=I2Y1kmnee92@z(A!ngwg5Sh(pK8}_+dzdKZbK>Tfe%Q==BU?-0d?pO -z+oGVmFFZMZi`8Na$#Odw4{;>KQKEiMdvd8T+`L5wyoK7O&8AOTxH$;0_^70MH -z{nq{E(a0}kAC`A6521P)H9KB4OZ*8{MS3>&`AQIMV3g%$`C9hX%S9A}v)3FqIO)j% -z^8}a@XwFhT?tFyWO+VLltJm_nIQZPHm3QijC+D@E1lmoTF8&>=Vn;&>m{{BM<8>%a -z6Gbw509u8TA;DU`VQ!mZ2NnM&uWm7pC4V!aWc($QeBk}X@BJNUzS@VOj|2dG0K(%H -zg23uOl5&nm@Fx)0`a2~@%9kgf0x~Nx9ivu(<;!e(#MVg(pz{yj-c&A7GEvk?g#xOU -zvIaphUG_VG3RFh!`Uxg=GS1%{7$%f-P -zU4}`{fGCCCkoflI38X -z!a)b|Om>4}yq{+ndbw}v`c!5Z*pJaPO)))RgAt~7W2|4KV3|MuXe;6G-`4$(c$Pmr -zhp84jKDwh%#~i$AQm!Dcb{KO31^aHMD3(V<*1zv2aeTkcgt>&K6EjcEH4U$KuDqW; -z;C?5UrJl^ah4P+1Ke@8zo0!6nCmijl%;FM32>mJh-&|pe)l$%C&p(ad&%0J+>tXF4j;w*zXP!p -zk*MF_{7}M`$Je2I_|Ys`p8$Qn?Tldm%K7VJp%k{!->**ju~}A(>2Nz8pPB;y_@1{N -z0hd?Y>iBp5{C^j9V@Yiv9^Cx!q&iqyp02fDet0FMxoxv04jx(GF8i#J?`<&vbZe(ft&%esl0yI}!{P~xC`QH>d -z_*Q!q`oiaSx4gWSuXvzLh2VS2LtG{`_w!dd>%92fG<)SLgylc(kKm;paXqMA!;Ad< -zPD!tr)G>v1AWbXFOMrlb{8^(9HUzGFCpl&LYWXFISeGDY0zWL6 -z$&ck1jbd0M2-Nh|1in>0p -z1n5U-KgIOxe%=VJZ7jv`xSWcglq&#+4>Jl@4p^Z~!X3on=e!4LMb -zJ0irmjKj{~0zdhMe@N7T7p-Bx=<5{(%uP31=0Vgge&8?)lXt5hqLpxi3>7~L@YWXp -z8V5<*WTb4T(0_eZJLB90o!`)Pv7!S#?xjKY6=g@}T#AR{$%#S&}tgo`KCATQxk7+{rc>nS_nyRdxwO&cWqh -zKYpB}3$_VuibEd$ZquoRFHvjLW)eY@XhMVd`BQFdXoAfxnh+2sp(XDtazcE<$?mbF -zy?k?Z(IIFzFTlhRA!svz%WBHe+QFO<-PrTfB0VezB*igvZica*9_Q5f8sjZdt}*Aq -zkhKOo*;qDXQA&CxnZRVBYrK-XplFYSG(W}-4x1Xd5?J}*KzK^pa^NdxRMUN&Sll$Y -ztOw^!S=R&8l5=qhl3)McySX`t>MfoPcmsV%4QRLX5nQ4~DhtQSSgczl-f5hm7^Ge71V2E_4ey -z$IS$YSNGZ@Me6ug#Yzq-;F+@~)nL+I -zuIp)g22%!-uV?xzInBTGY@&QTCfH?%qTk0%M0GmKB7q{wH5nT}#9j28QD=yeHUt$V -z&2`7c4u{tC9cv}y;G5;&_DAs?wdzqqp70SPc`5;ALU4Q8eG-(}ty=+0w)8#J^TO3| -z%o(o-X!ODl0e2iwFY-@RF8Y0|tq14V))|$LhnSWm4Vehd6-?8X*evxg+!^IK`eR -zNiV=$U_UdOlb?T8zbb7rsK7Z#k7*J0K#sBrFfrVn$q*g)@Q{c0 -zcOdTams2|t!aSMibQ~`7f^-V9@ay+6@v8EX1t8!tP_-@}s(G(b8R{@9$h{9-SkNKg -zZ}aeRS$_EUlKi5Eu-nR;A7sxB)7h#AkCwQ6xe#=;%m<3!%G#YdDD#5~1nknBJExZb -zlG_RH8@2ISViP~WJg(nxUO!miso)s43boxc!9@oTEvf*-HfJ(Y*D%SX2|j9e>24hNl6N-iv1}0}nxhFC -zGf_~z?A^BPsNhfF959MT8HsO>djnT67ESMxaV -zC`dWG3JSnYdS7VqxQ$ET;e``s_*|@qhpoCt@Mncdy_19zI&W2O?y6uIybsH%Yz)L_ -z$GM+EtwQJhJpjM~FG4R8UqxnNvxdH>roAy=mSq_}_mA#LQl8nZ)q$^n7<-V!?_^sb|2 -zC=$7k@#|}N-^23NnN0A^m|=U=K%;6SRu;9SuIu@MawCtoi^GK1`IAJzMMyN<@YE)P -z#0|w{}*&WC>(eYCEF-vEEb`}SH!biizA -zIZi;YLw|!?YHwqN%~Llmfv%jF=-%4T7dHxM)=U)Q=gHZ`*yHD~f79Pe^uG1$fq`I+ -zaFE5~#>faN*CbKf)FB{}&7kpR9qPkF(Fv}dlX?x1zgi!|_g}m1hG+TN<>A56Ze;4j -zeGQ-Z1+sbhWWZ4w{ds)K%L4kUL-cx{{XXO1AVuK|eMbtSlfk#3^5{xdJcdUJPDdGW -z2?wH4%W@+d5MDkcsB2mF`LTwq7IncnDfnW2CwesqivSuL66Bf@HLPrgx1ZG4{+qG) -z4y6e_7CpL-GrmPnu=@%wULlEx9QK~vTAF~)Z6WKsr)1%Y9IL!WgRTvyX3`54R)BMT-tM5+1Oukv;GaB2d}mbk&$ -zoLJOeg8IkgkhjoO^3UC8DmbS5iksKe-|VfU*>6Ek!KyXTLRbf&PxTw=L|Ot48+ -zPb}=YQVP~~Wj%nYhO@e*wZMBRNz}$mF3e&KIFRD%eRqcKPQ&L5~IuEGW0uT);8*t)fsOmDp$f7~qupmd4P-zn?OA1{UQ7{iCR -zg^Y#~TT4Af>Kk;yZ${rDr;`|d^I#|$+DDzNu=cQgL5h!Lzv0=rCOFH&{(fd>>2xdl -z`$D*`J!T9&KDfaPu;J8!S*pCveFl3nz`?4+giQND{`2x{>~A -zi4M}DWH27UYWjR$?;2DTC8F-f&r2r(^ezd+BiQIC7xoVmE`ck66o$2xV8tMndW@Z= -z6=?f1#!eCP0`B -zGeya-ERg)q;xh>VbnksmDU2yDF^jj^_k8M1D&3}0is26_Xm?49>rUe1aJ>c{4 -z#|RCMixxRhq8xjm`C6x_X6Jatc{RYuY;WQ`wvISz`}!3b_zg3o;MUkMw`5tyy`x6M -z(66@qAGgf2b$+lKZnP#(sn)6Kt_EgB>TXZDe21hLIx=RA6pNR1Cd?6Qa;Q7=`xgHO -zJ%GAfo1#!fhzU{&xu>#!HL{WFtVGtCpbV1-P3IeuECVR47cptfe*(s4aP7MuT{9U? -zvYd)a0kwKEJVo;p+>LV@ouiGSF{C)%Kd|7q;PW$zq`N3^j0 -z1*~!zL?g#=k=$Pic8j0F#?)9N*kbwzIpUdyfc!*ENU6upDO6N#@(zuCISL9h!ask; -zAaT(QUiN6U5U9H*M6_Pi|0JyMo?(zJF%LaB-aL9o7mtOR^~h%1i?dMulC5}gMpG4R -zWVtW53df-jUlJIdG^yuaC#L$)CJZkq3zEDa|U-X3h*_vqR} -zS%?54m^PRW-j91LK4gR(SR1yS)JYUK0961o$)hGSljo%tQIzw43i~R4A!m|=1U7%i -zHxzuA^S&mFT3$Y)e5JwC?N?>gT#1ROnvsK)dfvd8IDbP<0+iylXr&=oL}VyudbdS| -zKZk8hhVG+6kHi2r@%$~*Z%yPv-J&)rxGpx$NVYireASVC47ss?;HIK@9rFj_-fv!j -zvy`Qpj_OpDvLGi9)^nyBbq#xPaH*jNLxU%U8#EzT4O_@Yhzc2$;t#*j$F=LmoOv!l -z<6T%5)S$6Fpd+TY#FDja_RXcTNRK3`pUu2T$_0^XAc68Jlhfl|{F-G2^7EPpn;({P -zGi=`g46tdHdR5|QAo3To_IT^y0)6UC*Ab -zYvW;2B(oC(H~2W_0uIO>T1{&Syw(>;rdk -zWuxs1Swq+LGa>P7u1k1Uo@uPvr3YvpJy~rY0;2WH} -z0yC1uUmz6#hej!|ly5!E8DF8hoj8deh1G3~E>_X4SIkhm&6NdPVqPkuIa8I#f=S5% -zs>@9MCJ9+)F1O3MB16TPfjLMe5HaFSwZ!p~?}e(nOZ3C_=-TpNkR_z;@}r`d8Gyzv -zumtN935Hx?$8n -zGDrwDEu7Hrv_7ZrOylKBO3=%UF|hmxveOaDee)OI@*zUa@9IKk>+LG;Q+yJuHTrl~ -zQnC!1C(T3v$SYOP8e64G4|2wx=hF_q -zbbj?D$7)YqG$3Mq&Pl8;GK#te5x2V&5CRX`yGQ}40aO;IEI}{8`rI8vNG){MQp|!h -zS6KoSnk^hb`v#qGnE^MAel=70Tv{@4F^X#b!8>wkyz5Cir9```cf|8WFY -zFbVcW`oHw$@-M{0kqaaX4Yj*0$!+WiS*1im(H%e)vg|Qy$i(-{r8c^J4i!AYQOwDV -z;rRLe7XacP3`A5+d&mp`Kx?9ku_?$>oiZ|Zu*^Np`i}i}nhTYV$l;IbNepNPOr>I* -zJfNlR{dUeqMIm;=rg*bDj1z*(6eRSa6!Su>ZbL-XaK^ut#Un&f*=K92#Q#9G-j>16RHcz -zjMSP8eHHz|G9<*L4no;h`EvZ4vW)Ej~uQ(3+L6AyQ+E4iG;y%R!p-!*e8`J<7KR=*e5_`WM -zSq9+8-&FR|kcUFO)iuh&F8G6=)hU6Z6xDE@JQ3$oPpMB(Z+Gd~$4@Jo>*%i79+oTp -zZ0qsKnlE~9-MZL3dr-RWaZ@?JZK%5KJ<%gT`;jsLVztr<2(nlh;-6Y|)Q&7jc**7N&18ngm2mR~s -zX|jQwp@%Sov7;fUTCtlZ`^5&8nkE3bP*STZu6xqVO#M8PO?kG+-i-Ym^f4#dp@*pd -z&~3&OMV$BkYiuyFPM^_~|G=zpo3Kf8+J|1(imj+mnCaj(0?5FL -z$$Ftt>vOn;O(bUpR)S}ON}m@})0-8PfPmoZ)zWV`Oq|Pn9MFhn0QZoz+4n{FwSH+` -z+LjJe>KLpf6hThg@q_^J)h_66ieem3Q3f**+{F>IG!`?YUpl^;CtA57!`MT-C0T3M -zx0Nc>RC$&k9R_hNfujLl9wAat)(T!DG^M6jb3;*Q0Hd{OjLgIBHkfvi7>PC31%CA7 -zf~m#{5&>`7n$1v7KCrM~Al9{IIDOB7&=nG#MfRvHTAOS#<0#uVRf!rmqY*Xb5#9X^ -zFcp@Vt2!F}{rLW)(7;CNaS~GoI)2l`Y~;VuWH0)rsMLc~i4s(pH*k#y<9}PYR<2PE -zze3d1iF<8<{c%YTRbrllUxUv5^i~&Lppi8o<(rx!E1k -z1!93=s!Q4$5U)X8pUL??&op^4+8iZ?PM+xry>BUak4F> -z!^bD&L)4o8>u=&IRVRjNx()FTDXwYEvig`=I>y#S=8{k|ZQv(gp#aSai$KYa5*f%hw9!7~{xg -z@7JFKfoP|PG!e>)KnvX&pg6cf*lp&_mU(e8k`lK_Xjg@`?!;KuV<2;Y&ZQlQ{3D$w -z850gLIl2A;0y@@&?dBo*)|-p_yCb(G(*iTJU7Ow{p(IL&vC)>R#Sj=4ceG}Hq?8Rc -zWrO)Xtl9&SAYBE$a!rw1bR@*}diG!c^*MB(R?G)a?vk>|vf3)jo{CHKrp!Jj#088z -zG4q9Dzufelt6QDAm=c9@L?b{hb%27UrFQG3{h`0yR;A(wg^u-D^`&HlrhZ_4(A&xn7urB+e`e1k!ETwQxmR -z&b1&-JoaG+-6AX13CrE3BVGnLfy@M32Wn*S2UR|9{XzDF$r`!CM=Uca`VCVlfh`fU -zdfVOri4QTQGK4fC#xAD6^p(x9f|xd)Lq*=JRxASwzxuK3&ILE2bLJW}ra3*I}p% -zH)^3z4|PGKdrA9@NzMwx2Bz@MbFa!=dQE$x2~5Q(2+Nggmw{drL{S%w^h+o<%MWxR -zCyejfJ+3IhU^32QG>AHB50ZQ@?ca9Qyj8LBebqt~<{)rfb%PA222XgNFT^Z$H_qKO -zN7J?)09NgQJhCLIg;vlx)PGJ{JaRt{K56oP6q4&)tPty86-81#lUFhy$BSE^k!~DG -ztW`YJz{S3J7BsnSw2s>A -zY`spzz<@wR8_Jg)|X@z-u7 -zPd7C87EPmM8|}8G5OIOKM~bR_+X`$cbx1#t3IzcMR>E6hn>@ -zM(|TE-!x(hSXcA|4jtw89PCK9DPCO4L)@5#O19BBZwh$`XX3{!d8u*YTjh~ -ziNC?W=HlG4044^!%cU!vq;;6++;ddBfEG{Es0nJYFqB7yCY*%ay7kT~$*g7U>K+FI -zGyvJha5@?T{*99|foh2>?}2u(U5@(GWTdailke%QBuiE+s}43oZ&Y4}XT2Yu6Y&Ek -z)Xe4UvySol=&WOSlFdq{x#ig}1hpXH>NI%(AOcCi=F+t|3Zzd|+m6Dp#ZAaX-xKF? -z)Do`#G%P3-ICKU{)8r@^ux*arzFo5q`?N+P1g30CRb|OALrUn#I5=n+$jwce@3T}r -zTR)gUHlHN#Kcj;Mz+4cPxLCv&c4RqeNy@#>XPW6uG`t>_E1vKq7Kk|^tZNYDyq2gA -zl4nx8l8OpmFI|b@-E6W(5xoOQ(jX1$WGi#GcWdnWe#Yr!>^w%f#bxliH}&jn2eSga -zGSHPrW^B~;06cwdl~hg>pbC;az`2R-aR^?kECEEtd3Cunrx6m7W+cj!U5+N;Zd!w4 -zKlZ7tzMzJ)b<3|uuo0c+>t)smg|&)Ds*+?#ZXi`iyCq62EBtky45fPwY!nCI)`-@# -zZ+4v4G%yD$JJ@6p~&yv9o>tNg1C{O_)Q*+uoSd$Tt^7NTBwnOL@sGl -z)%!5E9`GZDx*hq>BenP>rBkVPlVrA9UmGu==d<@ptc?K@e3&idbe#T8MNhYNa8W$Z -zG01``i(gPDs${*@Yq>k19yFrS+GDm^yg@;#O3Ywfue%RS1;Fu9{yk`5)c(%>2;!R# -z+Hz*FHU8+dzn@yLq1Y*afwsbh2f}Q3u_FST3 -zV!qy>TCV|=>(NM%vg(|9LgL5CB(OziU=~7ZNy4%UuSDWK#+4-xo~W~_a)uAd!3?mQ -z4By^d6SENS3EzMIHb}Me6Q$pJwVw!f8v;JAXCbeZM~VX}Pu|iL#S>fc;2U+~b&miH -z!gi5|LK1(N$RL4VdS3srJRl#4G1zvHI~i*jln{HbLI5yah@Uu}U-#8? -zBUf5 -za8#MwmD0Q|3gG}j<3^8g!N{?k?VLlR3-1A%!kq`mr=;O@?P3}=67=M4#bA;V0yE}e -zkd4a$UXrY;fO*uM6!3{Z13E9$pT>1GV$C-V1U@G+FZJXHFP`9Mg+L`@FE3$VQr&p10*UetmrWK(R5ZU -zxD1}|u*nl6*dAcQoJuSAQy4wya-JP^&i}@{PO(6|TO-9SpagUc`|U;uh5TMshWO{)u8e#;l#_7egHeR1e|kMlo`)Z*DP-ohZ|2= -z>k|gj(oGfBoX_gcC|?3OR3J-m^x~Ee;uYk7a8syXp#~+#T(wo~j6<4AM+_|is9&DW -zwn|7NK595ybYq7k0@Vd^A+09ZD+xgJbbq7$o -zcPvs@>E$PF2_kv+ZN?-5C53X7N*qHacY^qrl)7U1#NkOmRgAJxebfnVH;E+Xgo~EY -z<%L3l3`J*A&)j<_aq^(4q};VO4|r$drlyW`@YuO7f34R#52F}czs~T%yI#ESCzf5J -zBY+6)&cMPU2P(|xGzN+-3}}Fo@__?AmE?S$GG#{wij3CgU*mzC6oK1X5Y~l$dt5WP -zEa2M_zUSVaA9Gufr5~NLE({52^;UtwQEQ?!flZg;=a2NU?0^wv-EJ73PkEo_?3c@g<1HvHdL?XTuN>471bz% -z_!d}yAV~d`$acMOtY7(g`QhzDFUd-t@jAC=H9jFmb1Zw`r_=oRz(GJKr<)-vju=86 -zHeniZK>-eIQ9hJ;eqBWjDSE4FF82jC)$$&(&ho@jPBN_6jT0i6&l}C1g4ss0!2VN0 -zn#*;^R;O+8F;m3~p_dr9P*Ic1;*_|=EPIAQ@9qwA$CsHO9EQLH3i0?GYF -zN$?57g;$0xO9s-~s&b*(mnY(x+*g*2!}zREl|gK;K=T-gmO7>2ZBkH<>eygY>g!>{ -zi|p2eykE*U0UZvl4WP-cs~y|JaS~;8p;Sd;BzQ0!rzihecB~mOkliiU#yPEIh)WjJ -zDv62-W?faiTmK@DA%I>~9?2N)Lr9kQ!%}O9@LW|54-s$|1&DO3V~ysV1t%W3PnV1o -z)*kOR+;Y}}*zAN^`uMzf`Iq7bNL<-_h?)}|`!pRo_gQA!2>T}HauTgbSZs-avaNa- -z-+B%9B(RyXoL#d+DD>e32gS81Kr|+{$XFZ&s2N6M6%3UOOj}nKa -zp*u5g)l>m5i|(}W@zs;f-hB#=Sufia0lLDhHE-4L`s}DsCR^I}K)t7)>2jrkIm6a+<5#K3cG?&WRPI -ziuL?Lj1grQ*^E_AI2BpU2+iQERpvvZFzA|GxVS0{F1YsEO0Jqq2ZJ~b%Bk5YbQEu5 -zJQvblgWC>-=We5L!hBq7VwJXwcu*Puq8LVQ*??@+U=CFJl1;bCah124wZ#^NeO@=f -zu+ZQapKuS1uljxVb|P8{WP?Jz{VtZ|%cphaUE%9MUw&c9DfT_)mVZnE~WDUx;&TznSr -zfX;x3%r#qFMa--_psoqo@k;nMIQi)eFwS^TXiT#7|^Y^#e3!=_`T2p*$c_~tsCXe>4@T2L--1zusqkS%odlB;-W#ka76 -zHSCrl-1K^GEGkN<+sTrs7|ylBzrUw#GBavnC0YD^%hy~I!1uZGPA?$g722womFAu~Qp2@Eu-#O&|j(P5U< -za$M7(V!j6q@!>%^+L;ogpU{*P?)O7n_2L^&Hse2TMD6`AJ^=5#iOZ;|em`t^n4N(f -zcEsGKu~1lFM%Ez4-FjN{aq+T1IK1+K0B={PpgEz06DaSI9z1yIp3>^1xm!$5v;w|kx^7Q7ORCf -zKq~nPqYRB)$TT!cwW3c}!wxhO#e{X+300GPxcjPr`p+0|X!eB%S<=lAo*32XxOdk~ -z6odAugg+onb-9YqclbJfEq)bEV%aNery*~Cz{EYIAAf)UUOdnRR3uFd7FE?9sK5fE -z4F0^!^WSsOGkgK3lC=b~)jWy8u#eFQTXM}4UQc}7(w*Yf2~C6G@Vnf5ixRo|CsQlz3u^&8R3IGy6}$YoSqU -z(T7hUd27eGSrR7EHc~GIkj}fdFEK!Jma=4z9$M8Y?ixhPxHCnHs2i0S(ID_dAQ_hC -zv)jMaXv<3ZxZD_lG)}0BBf@Wng|bk7ZtgZ&G$JX?7^(-z1TAURl^+oj&-0Fk*E4oE -zL!u-tKA}=%j#?5} -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 -zTT)av(?J}VgyLHdz|POnzj>Gf8qqPg(TK -zGUvb&7jR8ii19*ql5@5HDcGjoEr*^oS?8R0mQbo5^k;X7x_X)$*}3J#0y}c#E;(vf -z5av2vDODsnCkB3|;9^b<#wpNvu&PS;h54y1`QjRz_oi42_wFs -zwyD0HKd$RKYMPbNH)%%|uD9zQt(3}(?gy;+fM$N44hy5ivdHkcZU;joT4zS^D9SeC -ze -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 -zm!^Q2#Kez#e9Zl -z-*US6R%%%WmYm&X+=jNOXcOnTMpTTkrHy?5kFpC(_*c2avN*33>Mwz78c`O%~M7Yy(z0 -z!c)LiHIY-Qx}jsoaa<@;<1K~_%&gg}q@oCUf9ya3NGRP^+1!84RmI^j`AGWcF-ic$ -ziQl=}>qgzh_7tbn@2=zxYJFDlR~M4oc#I`cGuc3pEW@cnAM+a3o;l^v9|Ls8bi#vU -z2#zbIRmIdxq;2sZSx8M4^xWGhBSbJ&tfQGpStPl96&TQ~15z7U&yWqhM2ZVQjt3b0 -zDzI6e-B0gQ%;W?)VS+?3=Rq(S^((nXE@uaRin2yjCU=4y0%as(X@`rq)8XrZWiN2lqJ+O6x3Hb_q)4`BU|1_lA> -z8z6vbGpVOl{yh62a=sK5nESCs7S|3ELV06Tbz`O@K!BpnV$3$fS$UFX1p`?=17)QH -z)d6%|=a_QzN1HWwM=xo=R$$d7dg)X=P))c=?nZK^#q~R;TpQx3!4%o5hTyh4bT}bH -z{LD=`k;H_|k}R@=HR2D79teBtjq{*PJ9!INuW0+;Qw2P56Eih%v=@iwD_OkSBIQ6J -zveut0NeflkQ&9yb1;E*jL3a?|c?}TF>Kf%+VR_z$5AU -zYM4Q=xiJ`SVnCE40E*NS3OVpkl8j-N_-5RpSy3Qtxbc8Qt^r+k-D%D>gL$aS#D*7m -z`HYBxrBnIC?DLSV$-&6>W&u}FKprmA -zR9h^MN`~wy3BJYCEqp9dZg$1ci~|rPsYAi|wbX?jDoLXc!_6czI()zfr(7eMF=DLN -zSk%FQ146&KdaYrsu>-FO;Nd|so;iL4NCbB3qlP%AND7E79dgDtYOWY$c{^g`5+H -z*-t8Xr`kB11v(wdcPr7#a4+dDeuqqg99xRnk?p8@R?LXSgp0^h|!?v_7xZ9Z5GhTwnHl+iG)&aC>7tbu8+ -zIZR>+mymk}`zky14`q=Y4X0lj^CKT3t_R_34thBcY3@CAkU7=HFPKpw!x4HzS&4hH -zIQNtgzAVXv4;(s}hxN=8aQcs_?+JSZV}=us#M}#N51i{$3<~cT|9ScVEvLhA#vGzR -z9w};9`qaCn%2B2Gw#or+8bl)zm0L7ts5t!>)*T8sNr+TJ2{n+e0%&!iRX|#7lyqST -ziv08%Wb1^z(pno!;zTr6+UHXX#s_IB|EUM(6h*HEsuNTqk;tC*&N6ruq|7x>M`oU{ -zF*b!RkDHtfRTdYMmHLRk|Kt15{$!0yl#O~I?30*2uc?CB3ncrLd|v%eI6A}s;X=07 -z_8Xs}Y96j#W-)*==@}Ck<~dj)r^h@;;JAqMF_QuvVVcv5cK7f9(!WfxMxn`^!Myig -zn4>BQMT6G%r7(dfo@-G{M>v$N?fp9BQmn1=?W{K;ca(GBy;l8x01&(O8oa{VBU!?8 -z`?ho+z=A-N?Vfusw&uXg`dm_5K-5qp`P)(uqBEbpPuY)o^SOx|lZkY216_1M` -z)N^L!?(!Ur@_`gWW2FwU%H8nnQq05ba;PG5e`x7RoP||Ok8sIF*BoD_vy8PW<2ZRuyjbiWR{s6(Ljf4Iv^4@XW+)J~- -zTi(=se_O8FzFpG@1Y7Dd56&sQX3$|pd~~p)_y~>~q9&2msy_D`GJH3WtzDPGaKZP!o{f%dT4Xrty7r-9eKgF9o0F_z|G9 -z+fBAy1;1Y{x!3iEfy9iTl`oUbYeCnOEPh!&2hngGSblVe?}9bc32zB?tTR~%frYBV -zNzCRH4dS3(z1frJ0(x_~wPNBA8=MZ^l$(9xs^LtbzGhDzX~U?S{;8!NB^l0m-0XNI -zw~-^XySb3#b-4_&l91bHVcXkvGzB_}eQrVQYSeNfnojw6gT#-KyTzb0w76UL6wQEa -z#C3tU5Vc)>_#k^9^03(%pt&t~R-?1JS08;e0b@xT-V`w{x#x%DBmO5oC#AUF;?G}P -z98T=FMfS@;n?f5TZ73#`ycH#R9f@W1F*GKA7@Sm3Hng2z+M)tuA;Iy* -zx8D^a4xFXOeC?iq0@X-HHq6y30awzH?u%@=#tImaNtioIGI8J!q4@;3269yNj!tFo -zBIqh(F*G2Pm=&4`z-{W`g7|eF&mEpRL0c7;$QaY~-csx(U&>RRv-Actj97l6%==ZwAn*;R5!K65av{dyoI -zFG5MqytG3Gz?0L7u<_9av`lB=ZEeVu2(|}`3RyMlwdc;j?vx15e}upP%LW;W87tfg -z3>t!jfC4|CvE0;tTdmBXN$w4&&+wW$cxJg{#idx*bbt!bD1*1uj_7AuRE%aE6#-8li8}|=#@Fj& -zWST@hvlg3kmZu3+qR&!kxDls%rKcNCLO1>1U*dDpk19U_gIO+y_R=YJ&Zx`H44{p| -zlol4b8*Oxb1F^e;wZ6e7e6Za-!=?fL;%*Di%zNZ^7GxnMocwCL5@g&unTM~)h1`{PvngmiMWhPBHT*=pZ -zjq?bH9badcci@*=u*|0V+_PR7IXD;tEeme{wrop!+gtCqaO5Y9);+X0GXN`5R4um -z3inqpRp#K~?%d -zW6qbPq%|hsyOgIU%A3Y45+0kTTV2Bn>@~a`e4u0+F=r`bxJNmrpd@WAv0Ksc+d620 -zP-|gODp~CXPzPYGqg`k8S^9ns!=%?Mj+fXtwNq|CD(2oQC64YJ=rS?`cWN&_d0uaFqYQY2dnYRgr@8YfC?aFgh6 -z8gv)S4njn+>h3rd3L8lZZ>0f=z*+AZ9}nsnec+?r=x5ui5cR=qfogkKFzJest -zwuvOo0_De`WrQ)9Q#I^UgJM1R*ga9RWH2ZV8ss4#Yve$6P -zKFaCGa&YSF)3w4Hzyz%uG-M%U_W^Z-IZx@1;3S+BlET5>`(F|k;XzUGwB0|uELFW< -zx>hzyBmZU8TL4VKBK`bsEX8th7;^HW-M(G$glsV+sC6NE(BiBWQdivtxMG%1v^QUg -z6Hxi{!RUbVZ7$;Xb3p@BWI9-F?W@;caI%d`e*^PCvChD(=r331hSh(DTJ>>XKM9HC -z+wYjYy}vB%ufJQy*Pn;Ci=4h*fBsxve-;=1{0L)XUFrOLTo((xH9*d4Btj<^8&b*Pqw7*SGJF -z@ok;1Z+{POpP%0TetEyYx4&QC{yrUVkG%Q#YTB6%y?@-EavcBh_s#W#&0kd?Nnen6 -zK*&FSLS|%P_V>OiFhG;eLquk52i+=%rKEnhg2Eq&aEn~K1dwJ1CmDOeBf3X+=;w)S -zd+~s@Okkp7ox$SX^A{eKqZCf5U4EGV*19d=_q9M>X%U>y&sx398m=d_1B095;p*@V -zUg*Q^*}$$VE00!_m6a7!Rj{BU4ug^Q0VUjM@`klirTeHXK7@@=z1Ww@#yh7!jWn+# -zGRN;KUB$$PtRx2dvg!tAmM}lN!KJ(RBuOkBfPC$L!MZvkrm&TW6J~F-Nb?^K91CxB4 -zs6-n7a6}yd@aJRS(~I_QLk3hMEC_2-uISuF{m&NvcJ1;!%gWJATUKNOuHC{fap=8d -z8!&L3$$Fli%MF(6|XG@Z6h -zW6W8!Yg^^Y9>{s0*J0f3+^};3jLIQlc0Z3KS(_^07bpk^D8u57OOXEg>AnAS1zbv1!`wD^HB` -zA|8cdWcNk4TTH$RiCi_U8!yQoWQ*o8u%RCfuw^?q-vH}j7}Q!r=k0rl7lipF(jb1% -z>W|pYT7$H28pquFCN-M1uWbZ7NwVl16dc<`OCi(TAd{EH$#cFKa7GW?2A0w5C@M$5 -zn0!L__S2Z|IA6je3e?2f#f!^JT|-Oyq|j`yZ+%%^35I~;XpB+hFus&&ahNCjR~SqT -zQw1&ctU_!bfLujZR-9RG{sqZgQRuw*FMy%J2|A(V8>ksE;pX5Nxo6u1=qN&lL_C^h -z*Axr*+OnjPq=ain4B$yU3JQ{D^UuIK|EP4{9Zo;{-`NJ-I}Ss5mqu+RAX=UKFhHDq -zY=wjq2$5g3y=9A|^JWzMx~KmCg#Fo)i -z07qgV1N{1Hs%GYJGHaifwW=yOVQ{#c+n}a8sZ@L-ZL9+2h3z6yDFe@h&#Lrc_}D=n -zX6&{JV1u^6%DFVn5={yq(F_`$c{t3_ASt~8b!g;7bM`7aqPDvvMT;svjHl_3<7wF|4vVtd -zASy{8-!ejF1DJ|-$Ss36M1F4|Ags_YwQ%6sP_%9%e@&s!X%+?R<}LJ6~Gs?xVVtt`H5U8 -z>zyqqwjJ#Z(cd;lv=g29`Ykx5@9&ZFK*ln7|3#!Iq3wz>H5H&`2z$`O6`!?TD6xl@ -zx4SXPWnTW+*AKFcrFRtP2kz~rU%e5?sOTPv5PUjYogkO)V7UwWp*twmCeSbF7tBV8 -zFE7?kZgFNJ=pLLT64g(RAhDNOj3JKl7UDn3pp9OAFyvq2Mm%{!(p?hS>}DAB+jp4K -zXqfSSbd&vctM68DY3=)M{QhtK$RU$<3vvv&ej<^}mp+|x{nT&s7+PbqBi&Z#cJRK{>t#sa{rqVk#!u}mn9Ayxm*Akr -zxS?rhF|SQ?r(2(}a;1?wJ}NKdu5)@4zwFpsxZ0?hr}Zc|ySBlQh0`Ovuo2I%FHt3F -zj=Vty5A!qaDsqo@Z-YaHu(hP&(I27&F-7F|qcOTw{`eLa7hLT5 -zm6z)}dG3b2EWKs_))~6xu?Cy65bR|CPw5QtPdV^ui$)4th^ -z)Mu*vxrpVtaIM=TE?ZwKC-UGRRG&kk18Qr{P;eBPSb9H#ueQ6G2&)uM>sb5kH+H>N_j84hsRPT -zSgrUH`pL_WWWIbVQm|aI=ih!W>E`5t43NgODYb=RI^}uL4nA&goY~{S1ULpHyBMs~ -z|4Kit9)JDifBYw{j9+JP)W`jsaKiJd>Who?4z{cx9s=PZq2TSXV1*__3p}-V9C+^x -zhW1&-+a1CLt-Z`8Qo3;O46LTNS=XPJ#Z!~f-xn3y9v^lRpvy-?UljL#)*{OHiZr<{ -zarxWb?~68aX*>^zQdrS8X628aEYb|M1F99XX9jlYl9jcxByIHq`7m)5zkYm$-fLu1k}x!lH1h|jSo%y^6tC;rGT5^j>*F_$3f^W!d#S5+9#ZZsn3+7h9p5rSRHa_T)VKvx11z`i*~wBAd}r3nu#ZJiNB4X`o1s4}h(ZL?nEx -zH56`@&7kaWGVNv!TJo8RDdUqw`+?tQ@B1%Mj$Dny(Ihpm7*f=RAbb8?hPh|%sH$}Osm_Sie`XDIE%iaUbK&9p` -zS8%J7mHu8Cv&ZRT-{{w43SLIZ -zN03+B4=I6yc{fow%e^71=r^Nme80_vxy+_hHILP0?O*R)nLt|r08e&HU733gbv}Q7 -za%I&IF@+ybfJ_>QeCs2s=Y72xdsmiu1p!~&R6~r7nBc*|=q7+u07EPAqrp^3cW{|_ -zo^lx0ByTI509!mVulB#z->tRjiSZf8XR=Z8 -zAJv=`3sCvnP7n646u-{qN?{uP{kkbXHj9eUFK(;jsv+>_&ou1_!MxyBhriSD|H(4R -z652l8x%u>edyc_=s^(vf0>0zJ5~nE3UdRg{3EPD--8< -zYX~MLRQZfXD@7L|=^!7g_rVguWp5;=%)c#ff|_*>vL^6iMwfofPc(>Oji6N1Zxaev -z7#0q%_rqI9_)>n=sLk?Y_}<Z_Q3ozEM=wv~k# -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 -z<6_;6RzcpcM%>NM5|l*ROxn6j41zPWf736muB -zvz`|Txgc8&Bv4vqvU;4IU!$x*#$MaOriX>xblW!o1FT!6T$BnLi2Rv6K3+QLpctPt -zdZ8b6K>Et^!61*U4=0`wXItCe61UBzX<5^CwLA=pM0R4}dT+;^!3w#9o!x8biD<0I -zQolGUR5{YvA$7DOF?I@bp&VJp>2&FhkKis_*XX=RNa -z*LWlVMY~md!fHdaZ0WsOL1Pf;8JXt_e1nr&phq(M1mXeM&?pYJrdtnF!dK{QCr+Y8 -zVs+c1%U3kZ1zpu{b7jEhn1+gI&b3Hw!6fMb`DG%5lYlI7ncL-D5TT;Yz&1#w6fr7J -zwZySY_d*@sIr`#yG8x9 -zVj~+v{`pgap4iid7A_zK8j@T`2dmLok%xlPGQs&7-G_iAm!{p#WwX^zvvz_`f%F4o -z#NyNnM%!)qKKqV3l_1Ud{F<6Q`L`Bbl=;K*P($dQw9Tz`n_?YhN#q`g1YR`n_-W(gT -z5h{loQ0W@=g5tJ?N5<5k*mM(%%P-YtgIHOR2=t}~&5U6svv-FwpI^cfp)DkP(nJJ+ -zyfL=cttozZB`0{h=C!rUd0bZeqD;hK3BYc!_quAd0YTP%DSOx<9S{1>lPZixxb?s_l3@|cvDU^xMQ;)K&_O*!yL@dufiN$3{k=G#Nc6Ulb -z;2~R=Eg&_33dQ6p=owg_yMqX+j?P?)S&-@?Lx4oHxg#jwpb~B@6m|3e&b9Er|CfA6 -zJTdtw|K|U71Xnf*b~^npcXas+UUB3w$#6pjFG+P9M?z9B5r=dKT!rj=j2#jo{@j&D -zqtDiYM>w)>nIRlsKYsxx{y}#{MYj9I0|3k>av7UKEp=-~+z$4+r`h14-A<#Sk`l=Y -zQk{t&C4n(la+Ak2*R9{qS+2-LP*@tT76)@eh`Hd#l@iopnJQDU>-y;%K1EBO_4#5J -zWm_!;eJY<^K1*gSNQfeS?R0X>0Jo6wQ9C;!Sk))r@Wz}^WB{8&c}&g=nHZkwH?2!X -zw4X}-4)VJW^R_}`pm&S6UIUoppr6D3dV^qSGs^&`P4#51;U2zHNU)9oU-r+eC!dV; -zKyJrdim%f$iu@=)6TJGoAB-jmg% -z$Me$uCQ4pVS2tFS8_(Jl$Pz1bqf|6sz=7C$?Z!eiQ}sUKmn=3JE(LMcp5iO5Y}Na0r$U1g5KFv#iL`h?`PiOcI>t8jgu=S#}jw|7xXlUCJKf -z{ge_&7+8cr<1iH9*1&_-3q?uFH*^baP`KH{S>wx=gB}PHYDx!+ojbcvu|vq#YYhjP -zz}eRiD4E3SFGrFG`23rSKkE2Uz_++WS=bq`@Uu9jQIxtG8z@)AIn?9Yu26M%N!iDj -zrOvg1S8NZHmcF)i`6MkEy|-qWt*bpK6&oSWX -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 -zhyD^vFPMvsmyQ*;D{MlDo~bPlP4r -z&1FmYliubKT_PUhM%t@wtthkpq_+)#^meEH+38;(y^THW#reK5|P=YoxthC^4%%yO2NA -zwS~3i`nrOS&40OhCBb{P22$yh-gb4$?e8R6JOIi^hH -z^+|8vLIc1Wm7zvEt@}_KLCc*AOUM7Ew=I1f%TUG2GNB-P6ol@yE-lELwFqKd>0Mc$ -z0-l~f>FvM6E8t#UwlW20iPBs`GPG3Ybm{}5ivkt%|IpjZ(la?BM@Q6%cZ+3Zc1^JX -zmq2>^4qMXpPAR5SbNo7Tt>*jl8FNYdX8VP@7wAV;RHs^5lzLQgF>>3R`3$C6(jBwd -zmZD(;!s>U>bKS;g%6nlsfQ3ZvH5&5|Wi(vYx!B3pLDn#G0@C -z`X9&dq*n3pSEW0*YH&MNM!OD`T$gQ%?)Y%m-a@kaY69f)90;K<2yr+JgRW|GBSt2U -zjm@mY?alZGPuS`-$<8>@l3LeMz9yRcFjdVOk7|9dS#E6F1^vn~TVy&76j9tVUX_%C -ztUALT@yhWI{%Py222R5&Xoq4XMWe~nb4gHBpwDJ1yEqKrsu -zBq2+Z&O1hqH@&k1!7LjCyM@(FJ%3SZjTPd8_-E3OxX%~S@SMjeus10mWM0q8zM8(4 -zT$lLI(+`tH6SXbR7yGR=DeQg(ljWD=pJbR{6f0=<8FEqooa{RieV1T-=&Pqz>7IfT -z(zxr!SE!U9P;|}z%6l))^DWy)%Y_v4_4Vn-ak0cKBR_S}EhGp;ZRooS$qXj?6M>>M -zvHxI(O1nH5y;6X?L=XvOcB}VWZ@jvET>apP%b$9_ll8tqE`j(t&k4~i(14egt>a*2 -zisIH47bvA<4}xb(GgERvqk@eFA%I*X=F{Fb?qmsp7*t&%NKhPMy*oo3qol*dXX6xF -zx)knmm0}9rMqo>=4Dx~e*WNziORI~I2b&CiN0C)eIzl^_y!i&G6bIVd`TyA4coa&o -zTXXSbW;sv;WxJ3yc=or9{$Acs3W&hUHUC -z);psfib)bx&A)yJeWO`7f(;2+@jmZ{YPEOmztuh}`e-#Gb!q~)V($Pv9pRWk%xYxKkYd!(Tza*0Av(NzLVwuL&-+9pZUtbP+NrOUdGz-WP -z(;15GM)s;LWoC9A?uL^{8P!?trDAJ)R3a60^3~@gB_t8J2WI#464;O!zHbydzar6QQ>LD?wAd -zx#55p>voBL!fCE@5po1-g#{kxo4x;I^IeUiL&@X_A&)0$O^-a`^EB9T4^MjeUNk-Y -zyi48(*`|PjGx#d>sZsf}(V|Qc$&L)^*E3=-?wB;Y?jlw~;3&ySFmi|=S{ek;}zkK>v<4EyvE!lb1 -zqBq<-h9qf02``lPKzrMGy)eC-DLKy_3qZZU-N-sHB1!RSZ?9jdmk{Iu?QLsH -zbX(`3E~y;;z#3yqH#3VacY6(dx{o!fC$&Z5ismt4!;}(`9zw%HuOrt+4fw9|&I>eJJ)S -zpQ#=u=OMyG$eRBf8=!l$h%-1%x12!9SjurbDN?c@;&g3pV+>kQFze -zt8CS(zXw@8A`JwV_{p&_Y7wCm=M9nHaqy;JW1*EDkLF{$$5g(@vY3&Yva02_IDV^_ -z?=5Q*dn4loO@&-C`khom*YlF7Ategp#B&uGq`My_#WWHIMF|Z%X6W>qT}urx%msHd -zw{gJKo2v(LEi0!#nM1c!8Y{CINqQq>U+;Du%Dg$4lGUsP$=2s^`Ev2Lky3$h+S)X< -zhX=05nnSa=JUFRS--}ap$yn+>+hy9;l*R>)HJJK$XvN1hyOO~1IdGJuU-^r?0r#9Z -z43ZpUW=AsH{$#?O^bZ7_wJSNP3D^;V?K_cMgC3=0^M`k5%(x*~41T>;7G&9`jNw5E -z&2A|Wh>NDi{lfx&eqAzb3(4z%g6WN=rpt(WF6i6PIS^e@B6D@u?S12Wb*oBy2}C;A -zMn&Bl$(Yp$$~_L{7B;T=MvkS!u*SEWvQGKo)ZiX-RsjnRd>XSe3VP;?zSJGBW0std -zz|(2herO4s+67``Po*3QrZ46+1qMiN$g(#ERdO7cxr9TT@d9OjPVLQB3-~*{opLyj -zCJdUTk>=wC^(+JTRAJU;t2?|zw4&sTM%>pdaL;(K*?5woYgIkFRi-!h$(kfd2}LX1 -z!3$hz>;ue1$YGUm>lakHfuoJvV*XRHlgJQbCtr{Wp#Lt=^~HOvQvQuy_iiHWWm821 -z{auQ+72{|Vk@JXgFbTz&800qW>|@4PJ%k||$OUu;*e~p^V)va-!Xo$GQC`T;U9ud~ -zw^znrZqnp)E53MMYYT+t|J7@jF^(3NMuTKzBE;E?M3b|38MiPBGu4Y`QY(gkbk5^| -zZ9V=lLQuR&7E(=*bPQ*4d{lxTt>^ly#nTW~xp-~h_k}~j82{;;m_ybYX=caPSY@EeS -z5Q&F=7h~@D-Pu2&5_08yG!vgOthrcJbepXC4Nw%%%NR~XYu(T&sN&8+&pE$ -z^-3;)ZI$+g-jSk?)0$zw2gar14>jz59}%S~d#*#Q8O}LNVC8sxmNtoz=9?ITf*i^O -zZs$)O{usm4oMNY4l}RdeV_RuyAAUS3`aFgyb=?>nN>K?V2ExYu&X-6V@zuX;#R|tp -z8U7Tg{t1gc#B%cpg~DG3rIXCpTU03*2Ux3?OsIAM86tPSN9x%$SGdF#0$xR-znd*hJx`gX~2kuMg%&r+u;~k)75!+mW#GlzE -z&4@`5!eZ_5Kz5}n*>MMha^nj^37!=*9tjgKnF8Xq4e>1FT+lULH}oHG*%YB2-?Uu+ -z@w@j;tmkY~0%>W6rZw&eiN(qS(1*|^kkD2wxv&AxSZgo7)-8;`d2f!DBOVoB&dNf9 -zs{&Vs;j0I}N$Sa5!Ti!3nO*DSycFeC -zoGKR{Pv(_(iXjwzsHUyhCqRqJ4yoqPaGBoE^#MP?;Fiz}wpz8L7o@As?S8D4ga1C9 -z<$PbjVJo;{ScGpsw9_FV0o`!L<4?26V`HP7MW=rkn`PeFOiwDRhAB>6 -z{Kh&u7YRk;<}W=w`pA;*Pfm2rTy^naK*|Oq&5{aV-LL7HBs~PJP}X>=86mLYMnU#!KGcD!vH_{tFNw>H -zvhkq1hek)3`VGx)?cPtzF3GFFUp2Bzr}zQUL{op49Y>4Q$|ct3=8~o -z>J!qYN_A__nnn1@x!)L6Dr(y5Vz-Jbs@uD(V%#%ooV_5ma>%MCIxBdx53oFmAf2aF -zFZI1!>_C8(LWwQ3PO*8VZo>c1h^Mb -z9tgFV#2XWZ{SE_1Oo@+h*D1HSVzJMbmQbN&rzSioVacyeh8X?~@=8C8*nib9;pTB6 -z)VH#rQOp4~m}F6JRTQ(OC0v~DpK(kXu{0lnmcO6irZ8)c!C%FI$NS@$?%K*6c#H29h5+$Qle5 -z`w*oI1b}uF-0;5qI}y^sPZS*XaXK>TgeQs_1EMdz+9UJ1#do<>vB)ID`Mu4urVuZP -zPE0zevRJxq2>#`kVGR(g5U~|%g1BGVs3zX8o=(31#^)L@4P5ye{DEvA>Xv)vhMTYM0ofwFHxfJa&=?*F-&mig@uH(O82$CKUIsmcldY;(fw5@gCbKc%LYthF&?RM4Z9I=)5sM+=J?0j -z<7iAS`yL{ui4(VIv4MDW#1BBP@{)Aw!8UCqy_0W%sTXK;wW4xoUMN -z&GoRK@u-Vq6Qk~MHGMLhL7cxy9vq;FKScK -zk3%K9E|EwX2h}cX!hz>!OY!jYa)tZljuPN+2>v}98j=FOJL>`)(xqq9flt6$It6}t8Bl^MJ4;oLMHGmbpBrPLz&;w@=i%zIZhvhA!aVvHe -zG{}-6pa3Sj7h*LD-X3K@Qh{ilekl9K)T5Ew@GOavsq`5bZPCagEOna4bU>77^)#3Q -zq-DBytN{!N#Mcwtp_OCO8DVJznA3eNUf{Sx@8g4dl+Q{M7!bIW4P57b-oPS*;g3+F -zs4=yMAqpjn2Ucz$A-ii2IHua|iJ9zXF{c;`mrq+@9(@Yj8Xd*5Ai9CMpm7w@{a$kD -z8%9CHS&*Tx^O$I@7|P-Pe^WYL(dISvUlN%#eZLz+bxKFLn^bc}jMvj=_h)IV8rQ@t -zL2nC$B4?T=gU&i=^jq5M^fyne5G^a+fYPK&RMF<-^I10xUS^tmDW4bm%IcnJ!hQLp -zK<7A>SZ|Bd+%*YU?f*%Sieo5cPP+aJJ87x<9I>krvXBMZR8{bto^-l^ -z?ft@vqvA -zj%y69kOcwm#MMG5K{>y{OE^GF2()LcvH(!sr&`L%7-C`ko(=%~&@s{XM>>bdwJD*3 -zfWIbADa>gznZ6v0b-D30bDm_rbizcxLO -zAd6A57aEABYnjd;ltn;JO|4Vr5s|-oUzUIRqS{6s-};dq?vJSNAa*_@gaI9@-KAKY -zl4SE`O_4S0rwgL(^bu3Q@0P&zL1S9KbXX{VHJprZiHzUn&(h`)-e#ChPbsw6gI8PR -zl$519U03%%;@swM`KMZ=m<1uY1^}sPi30Iss`8+noVoRW7YHNM5hd*4%dWnS)gS?T -z>TkE-280P>(Q(D*9W37c<$uTO7IM*C8YVL4Q?w@Rpx~1dNN%|3$P6VzZ<&}xpTL%6!T`|Yk3No)<$?a6XpvTvJ5dKF9~Uw1qeH)`k9*k>B{q0M$p{w -z%{!urFyCgq@n{`ywc*7P`2KS$#zw<|zf>fi>7+*SJc)1$EY)?cL&~qizDU728rmcOEUIYx( -zj!e);A;>hqkAwN3Ko-lZ9d3=@Ok+N?G>RB=lo(uv8#n?W!JQ&ndawRTaF^oMYVXaw -z8td8>=C}MqaPt(xG*ND;P|Hx={FE4pO5xd9HweR~{YZ<6*c@xia|jFB76HuWf@1)C -z(bJ8p!&9JBdm7-+4x~_cvhwFKc>v;Lu0p}+JP=>lzzwLq9*rd3ave>Z5FubgLfGR6 -zvysIyVlz3d#8@Ge+P+Q?mUshpc5v8$g-s^UOY6fZbij{4u=rJHXDVtx9q6wRx4P%U -zhUWl21YRg~Iq<;HksN7wg@=7!M@^Xq<1Q)@r#vN&$;lcmw^)6kA3_dj?IQRJsFGGm -z3&lkYtEEM>O0V}s_i^%Jnc|9{M6a|0OS~8DuNB7Pb(A&u!C?iK!X_`FAqu0=oU+mO -zSnOE!SP{`0iTi*`sNQt-f6nP0sFOsl*PN_R+}{RoKoX9J>7f>71WvK%O$l~0uL -zvx0F;N=nY+0=7*SEu=-2e)Uw$6-lh;SUMJQ6#+)&s=W0aRVTH4#fO#7ThUI^EVp0P -zs<9E+7>Oj{LFg>(gYZu&1w{G6e3(wB%Z5={GhO)!Q+#RKcbGlWdRXVl0DVa9o`U_| -zvt@tvS8q_NMta5WO`!PX_>UOlo-q$1g$98LcbV~vrIsAbz^aM(1Vf!XoyU}cqInlL -z00&Ug|CF3%vu_yYP!Er5jPFY%@D**ax{Q8Y4i>i))P}@uW?Py^ZSQyl0kx`OFcS$l -zqCQFwSRxsQA+|_?z#^kvNtIQRtjDjh5g1Rq7P}l#t|=+0$rNWFZ;=R;=W$JU)bZ6r -zOzr^O*CvLYNgyl%U@4hva&9kV -zs_n7h8%Ps>t2iXRXDe#GB85G&FJjb?_Q_w-V$*$b7y8Nc!8Fo5@k8!qELu}Q(cAET -z4hzRf+S$bYXM8!S1dL@<+kpF+V3}NNWzBj2$z|6;56b99n2UV=9<6+5A5XltA?ny0 -zYtSBUj921Ej<7*XfVs^KzgIj(+AbGY&Bo49u?&2~B+5M@i!rlQM12`AnT1}eB_2g> -zprcr$zgHa2b4a?_b?}ld>|1TWcTQZ+!P5m~W@oR^+<4w&3y=V{IXLGF>0RVHIARjhEh -zMiMWJO_`MvRacdrZwBWKjPM?oHItInJNz7yNJhWNXkOs4*cVWxwrNTtOjd<91_*Ue -zcUXXPua4QTC~A9>bhxUUGRWP4hS-mJUq_AnC5Q#sZ>X|Hx(|aSu4IK)mIN{Vth)Ki -zaLNR19I)lUPB(=E(*5_Co1D85v=l1zJKr@*UN2ll$QskbJNr9=J3it=r;nFtgsMAa -zUZDjJt@M5^5SH0FN``UA8ey3Tg6M86)B`<=GmdrU5;W^`z7I)09K$f-1Z$|dO?QK6 -z2{H^gjpLMlh-}wUkqN|YIo75J$sC1R*3o9BKY`2gi+)QQcdsBstas$D!Hps{fd}`7 -zHoU%&en@LP3tCp=ehbD*vb-aY{*v -zSOa(5_QyZW@fHod@u0Z(5VRe$HpP6d&5t+zh-W@6N?RrXpOAuITWo*sRxv%dZnqcq -zE)}P?og2EqjmUah?l4%b(86_9!760MSYD+6eR>L=55Ay@S1=|1*T`?JDdxp|+MB~y -zxq?=`nL<1{u9ZoUOR3=CHk0Jq!AU_t -ziQBZHW5iP_B?ihmD)dw0cC3e-mwt%E$wdj$bo@dO)19#@;y%-8$06cm2W#NglgJwz -z;~(dShGA~AQ>E$LS>4mR^nr~WBosrQle6zl$sl+?M@bitjo2f`nxkC~+Ipq6>UV+#NuP -z8yhHbD|e0r93Z&QZCEf~g|JA5m`Dxqu9VlN3EEF&bN2=dP`)WD@<`BTUbdL;CM}C5 -zPoM7#CaW&p)uN=Vz385-88a+!z{&(2tHvopml -zP+_=rNaWu|#I=3^aJ&$bUS8rHHt04;~B4HSXFf}@L3o|Ash5#xC)vydxdwjjjADs**4h5P~PoW5?3jAQwE9n@=FO$*r!plQM*6ZR;nQ -zzVD_5tF4ULr@mj`E+f5F(hrLym%gx$stSA^BsqHAB>XdUW7xjS<{B-<%JFO1r25LO -zDK|sf3$xxe{@ST#4dB~mgbxv_pEeJvceBf(|4TPR@O;<<>A6T7spW4P%}91in=FXy -zH9IORZ;M&7IZa0t;tFcdB|kCom`Ug2`q6S$UH6gD>4T3tsnDWf5SO1oKmtna)&Wy; -z#;R>Z5f1Zkr~Vy|j$#J>aVLLYA`S*w39LG+Dq^fkzh$wAu7ZRgcZ3)VTJq&AnTtf7 -zFRW*d+6Htpt!bqdH5SX)+z+PoE$b@i`TB7hQO4+Rz6S(AiMxI9;Y5$jLRhg9Q{n$rUrdUu2sr>vfJW#aE>ya -z?&x#JYU+C=Mx@8E8c_j{hsX&76+`XY#q)jyQ0nV-hFIV6L2W$?_!8H=xdD#F$na7R -zmY_0Uj9#r(lWHo(z~J!*y-dgjqsbVtAA%R*y)==(ZEJX_`PhBUtEx^)N;!&8haxTE -z>eX>{D*HRm3S~f0uk&1{GM|+F;jc5tu%WP63b~i=LA*-N|C0h5q5vwi|7`&M>9WbU -zzn3>3jc1x6_AN~cT<4SG&UZkI8>Q|(8=`#4m==rY()yXT&rmJ?^1V!t#-F-ZlAse(doBUp6tm77v;F*5$!o<*}6q`0ds6)JKRC0bp)oW4MfRI7+jKaTn>C3d;|TE*rA$aTSb-rSLL- -z!qB!wFEtf<(1b|aIJ;c+pBOipeblZOPPP^h;~u_(!*svMZK)cd!)Fn--Mckj;o7)s -z{RiWw!*enu)_DLG37~d9LfRt6$BgeC1Y+DfpBVSwhRtf}_>#@`;^Z)ek>8Ov@V?Y) -zh1EHOQnX(}C@5uD&oo0QjRJ^esv?F0;7qAe+Ky?vF`2yb8=nMOL6f*IqQKZU_Gw?d -zCCqXor0^=LJnx>NxYkO~mza<+P7ub!yIL7oY2W8k%EMmV$spowFBsiDJ~Wnf|73(L -zExoOYME|L-uD&_3Tr`2EcJWeBEr -z;AxM?>C(pbkC6BA-rX9C_GWNHwXUwL?Lq3F>IxsP&JM5N-ae7GyH0K|+#O$iyk0sy -zfD-rAciWtpp*7NK-mVIF1AzAFtnSo;8mZ;iM;QWM8+gkyXVa#v|W1DIsyq -z79COJ5Z45nM>VPQ{?HYiL6fX=FPT7!G5IA#c5b11{g=eO0&1St%{#yy@YH#Lcb-Iw -zDdVP1F#e~}0-oJ#LS9t^;^4Ag;i4mO4EBtFxA@e~*cD3lcKg0ke`z5RdTeBLIJ|5$ -zRdze1N6aGt&Bp1@zj3y}qkTAaS0`D*QHUXzdyK;0BW>u=TqY5 -z$=KX$dr1jpB?7OIf6Rk|`0(C)dCja<4ZB+e -zLh7q05ppWaf7B2B)~@EhtE*#~3&xD|J!!loL+VU169V(pR0a@cO=27KlCl$@wXxG+ -zH5^afC++QW{@FT%A0dTMCr(9m5?|N7rN^UEw?J@DF`paaI685{eCqa$M -z+d~MPL!8kwfXR5@?`DYe>tRD&DRyivk_hEm?^-bG6=NaQ>RqLR336b^lq8>3lZ_e& -zsOTOx*mbpclB8$uY4(VnFCP?I9j`5MCs^mXQ<`M8aFPy_irOJ;3sZbtqu9~6OF0r8 -zEWkeyHxCfv=BoH!*xsih$Q~&mnt5V1J3rxajC~-&4d@#_j*w|?d8VrTTVA%|Dt=3( -z$lU06cc$k{m(gu!x5H9mp*cNm0f@U3nz?^gAu$7iO7bD;#AwnW=O&VVx@b -ziyY+Ytx-t8h3!Mdbs)$b--rY-Su8KsL~8s<<^UV~3s<#PQM*?AJ5Um%G^{8rOHx8x -zQ2M!0&bpe<3rE`?2yvJG3vt{3Or<&m_ghjQP6~jQZ@Jhgt$Abfe^P{obGLhad^SCNy7_g2}M$ftZ&x4bpX{V{scC$i&Z2mapTxl84updanV9p0+=Ipae&0|q;pF5f!4%sSAW(q_t&O8lg>X`@(L%PTea*?^RGNPF#&arPUK(gs8TDeX1r=ub-fY3L9* -zqdj_Xu4NEKoP)H&yXSII%~Irkr}{EZANoO$^+{=89}r|BpkV?j?W<&UE#k?mPf9y6 -z>fMuJ8%Sv*xCu^aqm`YSwA}nlY4`j$rET;-l(v2n+Y0JGl=dBv(*Cw7mjI-+E&hYj -z-u8?MiIW6U+A#k^X)DwGH>JJ)e<^Lf|Dd$jo4rY9M*o-6R{e+4cD&U2PfDBOA4+>8 -zx2+{l-jq>R`ld)T=hD6il@my5Z~iBx?eZ_BJstQ-X(N47+BiT;oBBT}?Y@BjqO?yL -zME>3sFb@1nX;)-vl>jO2$xljK_3V?jKuX&Ys#M{V(k?i`{iL-2 -z04Z$6h-<0-UF9JSb8Ey5y -zC~c_!rnEEWT|n#=gg+_mCIBVi$My?CZKJ?Hls2pw2K9eY+UaRaDN6rKY3IA8{!3~9 -zf1KQ9TNVlzEo!=vM!LJZyHmPDTDm)=8>G7t9=f|*I;2yPl5S8yWIu?yT=DLGo%1K= -zhcV{3?N@{%A1UqgM@oASNNIDpm?Hxz?RU)D%0Non7D#DtK>klkyY)AvP15~$N*fVK -zX}|s(rCt9>Y43YJQQGpr<`26&+fNm2CQWu2NNHQ`|D?26a)6Y!=Od-PSr_0v;~Dit -zX+u(MJW|>KAf>I31X3Q$MP^dQzGd@+(yl!)lh*=L+7v)a`|2m99RQ@X(;=|DK_)ga -z!n$!lM4ULJPce3_epA}hkCb+c0g%#;1yb6GKuTNug((C%A&}BG2U6M_L{zmvO1oZ& -ze49bzv?Rd?NNH#Mq_jVluOT^0{id|Bb8oGFP}-C~C~cO>60=82`@)T~;SWkX?~&48 -zBIS0zym6^tNYK((N?G-S&~v -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 -zpL2QJF%MBFCaT22t#2{m!)cw7lS#f -z5e#NkPquN6KhXw*9>8>)K8)R-4)Y<^yRH@`f*ap;p*3WYm -zD>ItnnZT*j#Y<#FDm>~+Xe0Z~pT_6O$9QCsUk`cZWIUjGRxas}ULyi6Bc1?x7+Ue( -zmQEE{?F6lJ$SC2HGO~{R2kJKDG}_emBJ(k2dkS>?;i%a+mo})Np-eYIOszbuqY>>< -z%@mOD$b`)+Kcy~4m})3pRV7O=6dvM!5T))31Qml}cqR%efXHXwp_rKGjn-rjHIUAq -z>C$1%z3Weu1gOthtf;#~UkOC$n74_&&+xhT^OUB$cO=91o9rq%d^_%cXW(w>!0io&$_doQcxC7z`~5<4RN;C{micv%}5Qy1sjy3P1@^s5fXeSJ4)tcgM&HAn&!uBe&8qE4~Wkj -z-=Lk3%-|Ck0{C?LZQi|pwvn1}IF&WyTf({--rMKpi;E^#KEs}V -zPRNB}OG+UP_f>IQn+fA891mh4vklW+&Q|FgwrK%}NpCoc5C@{NSm5W{1(_&cl_C&l -zXGDJ&{RO!`{S=cm5KpG#rgw)&ZBmtH>aFqjD>`+>^;P;eahe1*6`(NniBi`Exv*tk -zYt7$9x<*D$W;~5Qk3&fpZ5)bGZBGMq5~W7Lq{7m!v+?~9GE>W+<1}z^Yp06UsvD3u -zQxsn=#if5J&*g#$(qqJQH}30il^X>mH*d8?f=%_&XZtwXWL99aJC*Y$StbD4qyb+6 -z2KnV-z%hX8-8*zsCh#6TyeV;GfxcT=Tn!aQT1pcv?XaeD^~5WS!Vxy{{S8SQ;l|`{ -z0Ej{qGAWgDupX&u3qZp~l&1*#ZG%OW-2KsfhHD&FIC(O*dfMA2&`oib47~$t@yAWR>o=^qb(0<`(?Aj7I2CQQ!W+B -zcc{Ozn-3~jVZX=5(c%wS8+H}jmr-1roKHvK7~-XNE07ezY?Q&IdV{8@8p6A$!!T|& -zjk_G@ZZ>z(E|hJPlcM6;hTg}-Mteo-U1x_&Rg?b0D?2PHV~tpk2onpyLs<@bhSSgf -zVvqeu$}|ph0>W~_`v8Y=#u@nSe+&i%amuB4Yf*>&sK(F|dCXYeX{ -zmbe~v!7#39X=~}?(JE!zpvhaYJWSu9{V&uq(CzFnho~dj6~cCM+lBz7aedKeat7S7 -z0-GiHX0#~7x(b6qaE0QNNeg7{`e<6%*P3Z7>*T95j*1=>`MRc+ZB^cj{ahG|>r_6k -zO4BbNMD{s#29sK)zffc`)YF@Ufuzk?`?!S|EvRr9IRF{S(chh;}=T+{OVx!3@ -zLF9cLkTiCB0|En)3zL!CP6jK*mxj2{U$cvukuuK)|GEltg!x_EXla!oq{!3+{ohj+NT0Agr@OsiCzt4m%9`UrFKtdA^2)px) -zITmdR;_WJI9DF&ql1(%XLK;gJIHjr1rVXv@7cB)KmizIG(g>(cMdg`M#>?S?RJBL`A`g5`V<%fEWEMieJEBMR -z;s&(9#L7Hw#aalB3#Xud%jf0wGN8=EQbk|vo*PTpM)bPsb)WTg0CVY-kWmb@<`dFW{k77p8pFgvskuO?7=FWlHMjB^u$^b(-4ihHXB7D;S&)z|?BMQ9|` -z0&gJ_C9nH1ZKr+@X0&`|jVDGR+<4LMbm$LNlVPb6c5=%lBP2i84Y*0XhHk{W<+BC% -z1ndisI(i>0MBf!t`ovlYSDMIVT*+A2-i8*Ldd2D>JA9lOw_}|6dKhl>TIJXnvoGnJ -zzM`5C-thSqlQuIq!Mqyy9R+KT$ogw6e{0xmhx%UHx-h7jKuwC~^g-tI01|$ilvepS -z2umYwXnf%u#2F(s4ECU8?xSa({DkX>ZK1t -zQe$2Ax5PjxQC0}V?-hPusZ4L8;pn8d4C}=UiYl{>C7!KD%RYb?kX=GhVSVww-o~q2 -z71!Vmom6QahI8XZ&OJtqYIt8Zn6FuZlV6306&(9UAqtb8y9aE) -z<`S}U6fF9xI1L?|%^Z{m`kpgv#0GAG7_3zcfdg0DBz|}^vTm&(HHs)nV1$C;Wrv+) -za&L7EvQP+_WG09Fs7_0ClfTN_!w!*AhBAS}1DhOeS0Q0;x);GMq%(V7^t)sqHT?h& -z^4R`+j-Df<#Mdiz%I@e|m~n{{5b -zryyH>bY>^ft{bF|Y^om8=QM?p{vg9l?q}FGEmA%(QLYtj8s5Y&{n>+q2%*dMty^ne -zIj0pC`HXoJHDnBYIsd*#VFmIfbR{NNYeYAqsijukz-z5+00`v=TAH1{I4-Kiwk4!6 -zUES@uh;}5HjY`2;#_!Dmhu?PPy|DK_1ZRGH){k_+pD3`$F_M-&;)_TFL(9}zi_j0( -z;IO-;@C@-b^(#a-M6|d=rCwyvv0`_{mznLzF^HJtA(PY&0 -zlZC|2l74iis$F6#Dk7F!ZSt&R6-mc)#UsJ9?Bk@)HM;9p_G>5!L}Si~Pu -zo7%RV08MvD`@_n#g^O#nM2n|2Y0cn!@DVZzpIZz`Eh|YfljF+ipL$MLu~14(ov9)VgpoS -zYi#>cdeGg2O`Vp{!i;=+Re9lgruLK_I}RTRoIjC))1EdRBr0X8jik}yH;VrJ6aNb) -zb2yEcSFEUz&(ejb*m%A}@@0tD*`?Hn>Q%(T_){M!sA;h{$Dp#YTt0gaW#*)^b4R8& -zIgR8QW1|rNG3P@Mf)qosj4s^NsVsmtA}J3r_gNS_WFav~yk^T0^md -zw@3%xjWG|rIF3}+@4&mMC`2X&jl -zLBFes@wkTM&a6oDhD!aJQMX?Z3sRiu1GF>Kw^$>U12Q};2VDtaCTZw$(jZ{l8FT%oDZ -zO^GjtdB~SKFei?p)TCqEikml=fGu}wIloNHH8AQ$l6g2 -zQ(c6P0e-O!HRtJ)s~aPcnJCUXrUCK#P#R3ZIl!c+Fqw$1 -z`@FN@tugKw--5!0_=(w+o{Mux^5hM*P%IQ%5kEqO0}4vYGC&=jVV!@=b1DVVCT$3Q -zp=24t^=+$QME|~w#Rr^l`|ccvx01V4)^t|91F^-uZGixx&jjbxR=&1JMmTe5m+Lmd -zvhhlwGoSMkqDMiMc`AR%1tLv=to)-B;UBLlf3RJIGfQ<4P -zt};6ttf+Bk*HO2ImeU7A={mOK1A$DDs;L;A;`G-XvqTrP$NjRtuR$0axiVD}3b7S5 -z7U=8}5jnH{<|z>hf-`7JxwDqCgkOMhs}jjpUv4C0Za~)iE&^h^M4rhcx0IGH;)Jp# -zaXi-sQS9W)vO!6axGw%q_Z|^30LJ9G2`Ti15VJ0*O)I95@!ke9!|VVX<#r?rd7({m -z`r<@Tr@pIDfzBWad$9iZQgUI4Nr7=JF`~j)PNm^@ibGl559Dc;ngUCw{dptli^T%_ -zvyB<3a4Cgs`3${2_#{m?_H#OR8}y4^(DE2hmwA{>Vel1Rs`)MKjGe9NI{k -z%T`uG?fLSNgYUtOP%LIeNH9S$NVUM?-YU5%hQ9nfQm@$hK~b$PIC!TA^u=qRc^ -z*S=HTZ8w}cyW|%s_Ii3okOjGtbvy~FpXIH1gZ)|et*{6MgwYG4PpxZxgep31H^Qds -zr@SQ4L|4npqV6uMQ$u -zX_rj4B*!_iwt(&!Gz7u2rJwM^YMWv_2{WoL)|;6G-yM8o -z2?P@-*%pUuYV3{p;d+sFqX4bvYA5pwTg(v1kt3woy&Xtp1NYUl+QfX4YHOlgt6E@2 -z9Z5A}4ilMZZmWX~#K8^k+OC?=8@f4p4U<1`F}8h^bp*exDCZZ8hJE9MhjjFH?5$0+ -z52-QtnR-8cqmYn?dPjs^1C$qPs+{yha0!xl_{8VJ&t|5juXdx4fCv5VXC?`pi-IW_5>W<}&!I -zfK-0g+Vsd3fz-N+3^Z0L$cvjaEYfKP7VJoLdz#u*g7hA($o?P+!zojjPa7l(&Fjmu -zvMrW$_y`-bv>9e^rZXS)!{`gXh<+v*CFf|p@-5nN=C~3L?HsIt(6la>CO%Xjn^2RNVD6o -z0GUQBEJ(FgWoq~DMKTFex05^%-bNM8oTsKCvclJkuPuc$b*lvV@wM`Ahx=uMxkE%^ -z5g?PdP(pHId!?b5sUz!pW1jlG^9ze&x6&1t^X4V0fVJ4f_)_7vJSXhosoc32k@?)eis3%|ozeSz -zsHKhMPZ&`33nIdHF82)MU(M93gVtDrGV~{-rNtdwaIqa1&J8x%Yb;=ikZkKiC3Epg -zHev0ErmY)k+;@Y&mf^yqXbj0;8cKCN -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 -zDj1RSbA#CH*JRgMeg%$u9AET#}6bHAkQ!xAf -zC*jLg|C)Yrp$%{z=d|JQnnPe!NEvNCMZsm1?eKZdiw3*^`#x -zm6~%5G|HL^*w<5{PRQt)LAUEmga+*Fio$FsxCm4r)r6|SX -zF9+&YO;Do9^1{#PQZ4UAtHLhMWS8sm8+F}S*a)xMZ)g%PU4_z0qw9D_A-;8R9;6M6 -z6y+915_t*;2exylhFgxl0=Y@qumGrB9GY?xYIWHoAcVO}jz1^k#&NJ4ADPyGP?593 -zz}>cx0FUGAp)fK1h9lpDitLd-|HZ2&4!6G$XDnD_gT8YFunAr=t9@NDK!TNw@LHOy -zR|Bn$|6_#T#=fcnv0w{;`f`@671GN@<2KEs&vp$-O+-3ENx?=b@S={U2E|#O{Ofq) -zcCY8?3JkQlzdXf?uHO1lrRFX5_r`4qPcD11J)vGp;-zArE^04^iTr#-Jmj=#M5{_c -zIP;j0ocj@|UKMt^!$T<+0itw2>KU&y(4t1i|V@fhtCe<@Px(9h}RtJDRY$w*e_8@nx|TMhMFfmB|5@W^0SrG;Br?fuBbp00p*GT4ZpXqK_A+U>SqH1 -zpShX93xsnWz!amrH>W(XR^MCsE?5o^Fb -zls0x%7-eJ?AC&N1gP1m$4cL$x9dYy<+(fg7uivgxUcSLMQzjTlS%ZP;QKV`ukQ#gK -zs$J8Smzz5vV(N5yrmESQO@jjp-+5X6UTef2`HL7Hz8OLvm==5JEInO}b_pPgA9lke -z3i=X!t+e%ObVQf;Zn)!RrJ6_;yKq46xXV|6AX303Md0b*UbbQrRg8{GXIZ{2sg -z=I^OIv5aDA(0y-&H|H6@YZ=K^q8plAeTL%yo+pp?qWlFXD7lq1^t?@!cG}G{{_u9o -zNn^*QDV2g(fTRw7w6fJQ^7fVx_VcoPnd=T*^I8fAr5c2G9`X-8t!|jUrI;ZYEn#3b -z9G8GBuM7EaRR~RkbS>_?E_>s#lQ`W(i{qYP*JcC)wl5=@O%&+0#@@E#$#|^4afkDY -zztIa|uU6f0MqxH_dA>v-MR9d#TFIR-raslj;in}lQNAa}3d!uQqC`x&(cC$><}tUP -zjRw7QU;hOP@qMwV=5(Lp5?vh#AnVP6v~yo&w!OzujjS`8shT-EH+{J7z!0di!RAOIPsU2`^~zeuVeIGqzJ3wwoYm -z&^KFXFy(2h{UOAoWFjM{m(U%R8{Bfuj%0ObFVaVuNz}|6BAjDZ_!WuuXDIy`MW+0u -z&?GkmiUVzHMYblu#9r^ih3iJphzp;O>hryaq;HKYb;A9L~*|A2pF1_)?kSkPAR(PMop>6CwQQukWqTF3n -zbxj`}X;+fm@@izMDN5(%D{LDh-juK?W0E=N-E{&2HN`phl;-a36Pa} -zC7*GbYfFTlJ1aI1G_voFbMe#CT(Vu?Y8(4hhvC~Ky>zIV0 -z-M|!^RL}z;Z(>KM6!cilznTuUc?i_=ylQo8jR^k=>td(KZ>5$6T-wz_GOni -z0=%E$W69#EOjG0$b;gUfHe1f!%e0=Cx*WEfEXhLSVqn7MQSum;sVT+RV-_Lb&C^+3 -z(HQVVZFH#$XaM?rHWv>=e3m%5pI0Sthy${Wu*c*^h=#Yziv9HQrj_r!JEQ>g_XbI&_zHIdh_NpSOLMx -zU%S%M@p7kpg|au;7u&K(6O0iEOP&md0Js*T49s;jE9x(*R-~T6AZHaPT-ILMU=kE) -z^$LYd`e`2cAA-dm#$ -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 -zf7&w>tcLqR0XnhlG1~1HEgEMvFJbnm6QL3 -zami_Zl7t^LP-`OOdV0e7x^Q&-GB-jb1rw?TyIju)JgqID;dM8Kcl9b?4*>N0#tLS3 -z+QN_x{g6-u?~NWO_iG4VUDfE^9ReHd`{o1=38P$hcYF|;!x9h8{{xLca=+I1O7#^y -zEO(_IPpXlL9c0;ZYgWjf^yBh5bY8mJCg%~Q3FKc{^E&zcw0bXVINV69%vZI{!FF; -zuiwjq8c{h3MxfQNGO|z>*^Ofdt$_e&ZYf!W825<#qp4HE)2aryz;Ifw;c2DIvy#an=($!+M)J@?L98OLV$<{S236~ -z18A7|r)_@WY4c6Y>}q0V;sM5nqvaKOSx&H{AftR;IXQj -z#dWK|Si{S~0VUFiDM}f_J<2i#4QXwG-GYkW)= -zBc2YpjCWWE$^ozDUm-A(p;&Dws3%thE1W2m!A-oovDaBFGYB5VqO;>vC9EVUyyXTY -z0%yG^d_3r4^nnj{qu07t@#%xn0u>0C8XQ&;3!mSy(h4#) -z=*GgiSR|~f-c%FiYA}0v0n8DnX868rbQ>?I@f9S9wn-#m7HB?tO(P7!HdVtuRY=xz -zj@?)4l=KFrL4iD^WsMl93@Yh{$ahUnDeU{&yY45w$kiB1)CH$NqJy{6eb`m7gAa%B -zjPae>VX<%$lDNk4z6?*ULKP5EKMW&6_ -zR=#?DgPm+AmQBFFF7 -z*Vp;=wQS+zJ1=k-{0Hkm$%Qy -z$!-?hV7tR -z<*k&^@0QW_0}*bXYqJ8RnZQZLUhs&%BRll-M7F)`fV50tpJJZD{ND2o_sWq9r@Sr? -z=I>gy1)RR-s4FdkbNE@QcV5Efgm$2DQ+BvAJcB3taC_FU>uSn_x6$fIlDmzP{+~R%AUj!h*1@ -z$`75YsQ=mG->z4ldRf_;X~T+0!1Y>q5{KSPv>^e$tty$1PG^iVpAnppc3qqm3tIJO -z`^xfhop12=h2#-}tPsoyx+Lx|dY289tTqWME!%@|17V@vKJpp0%fw&P;7KeLzrCS> -zoTM1O!I?7i!1-gH4s_Z`R1C;ihoX~h;cdf+_!v?Y?Rr)zvj;-n=cOMuTQ{tn0HbmY -z0r^+I$|XKfcF$xuz#jt%S)aF%UV&bBy3D0lqDrqBD=hQ`+!@KpTBLLpcqow!3mJ-% -zF!|V?{7C+t)fdv;VJ#sX#vmikbv9}0<~wza^CBLZVPy41r(0Zo6jpN8)NZ^adXOoa -z+Q9mDFu<10;B*7bhoMnx35}QUAy^QmlSqU3Jg+_A0@m -zb5O8t6D5U2bAw1;1}F9TqQMz8Y-?CXts~1E0b_E7*6r2U?bu(!B?{EU(!|asr7oc+ -zeNw2l*Pp(Ot~f(Laa6`Aau{FAI6KUf^(!%t+WZ(8 -z=g&g>-LdJX{dckk_lC_7UZqi635ZtXdl(>2-nK%*3Ao5Fdfqa{QF$}keVtR2%EKq3 -z#wt)!*e(*4GVo0JtV$n-j~(P;#%P-WHfRg1oGS#(^Jl-%dUNu|Mn%<9K@jR=J=Cha -zUlReprfvyd?14e4YfEwcJGmP;C-~$4$(1jG6iGBgykx=#@dka07b;(S@R&W+Z9^;7 -z%vzQ64gXLDrMFs+Iiy*R8T|Ef#Ja -z=>i{%nW5YATaWeMIWRkv)t8Ret&QgeIqq9Ok!a;hpH8`c>bH3et*hCQZmaV-c(3a9 -zGNkW*{6PRtxx#4(g+)QX@p1EM-)u(YGgbav#PVFY*6k6Ot*@06ZEz5t&!Nx(wY6r*H;PFt -zy&u6>+g(hA_0Jw?V<{7qR(uKl)Up^HbST5P~Z@-sxbMin2NMPEO+QKlM -zGCXJjAGbGd?D1gI8v~ME4A$v?rJq)hzy9(+{*zY5uQMR(Z1E4qJkzUgi=hEx30BR@2+8>(9&Lsma{$iwdod -z4?77E<)a}kihDn6;pBToYFwAN{OvCHMVq%Yh6gMutY{UplE+TAXolAT6^hxj0Xy`^ -z%37I`wt9g~m^g}GKf+U{uDOg>pFv@Qb?tk&J%}s7zyVg{ -zbku7_n>sXzZBS6-7%i#8FMGGU{0;E}+4Oc^e^`7BAECbmnd5d${;EF*rxDM00$rki -z25%2Tp8o(5;Ih9w8hJzJVSeZG5Q>+Ev*T62#Gg=+g=a&Xt_02o8d_e4uV!^UA4D-Y -zd&#DQlcWq_Pe3Yx>CC0%&PS*<^>bXea>=iY?a$3pc)c!ra-Q*7LB44{#=k?6&1k3s -z6LEVUUR%>NP$aJh09HsG60+4A^0vxmQ1&<3b+e`{`OHL<@kyfk!0)s7{TC>~+QCpw -z0t`L?=kW?eU=0AFIh!Q-3iP%9ONo)v<;hV%X(gs(&|I*b%z8*{oRkJSz3?KZGJ=wi -zqFhxppr|Qv5ER*E?*Uq%l5&?T_|(Zhf3J+q<8(*U1ADM<*6s&7B>C&Gy}qt4ALtBF -z{WXb(L+;4rN=K@ZT%|)YQLqGdhIuw>8g8BYoA?nVHp9`K_5oie=mD?0r8SW -z=QPQ(uuc)7gQzCEK{4LX(+%zJn{It7ISd5IVEU%$p)bJ;Q@SzM6Defoj}L7m{P)|k -z-{H^l#j_tvvEzep^y@JNFP-Eg$gAy#lt96}n<$Xw-jG%Cn^88t-)6#GPSfd`$Lg~7 -zuXnEOpDjRtC!?jV%)N#RpFcmjvg(JJ!jC6_B@M*9^%2$czFv&6E6cWmbT4kI6~^XE -zaNl5b6R0VGl@*xLVCthg_)9!DISgx(v6W4LZ5^3c`(Nwt)>`w#_zdJQS(=kUastoc -zBVz$@IF{lP_59VR(ylzd51qr0YECKzsP=8A2m4owUuScrFpd6x-IO1jMaAe5x7Bgg -z5cuL*SQqT7` -z8w~QX-Ru&>=25VJyL?&{wcUUFh5btREt}led9LfCLHF(Z+kTBGP5=BW4=q4;wZ*T$ -z?CjsxvCag{=oJ~=+Wtu={pWPzW%qFBRRZKMjU)helN~-QL)^rX^!wQEer-eRf4JUs -z>q=34#5k)x3jN}9yIWjd%PAg6Q^ENjQ!AIr&VBvLJDz9no@T{dMX~(l{s^Ahk*xvq6?65kdM{-U|Ha@Hxg6k-MBGe71h8pN#+ZB?sVn1j_3&e?Q^Q1vugEu -z{(0iF_`CFqRWC=->pZLASUW=T4y525>0dvudi}jeHE;G(L{mJ4=r(D78BwKC&$OU -z?)i_4PFtbfyZ{+ToS=0A&Wou?YaMfhcVo{_lk~70kQYbixf#ZCe4M@GON_Ub(v2w& -zhQu{E%7(loi&WAp)dczrUGJ3)23e6D)cG-P*s!UGD~^@74}_4GdX3KAo2C@y_u?m*xu~ffIZM#)qr_BA3+zzQ<>RR#$??r{*H5*vI~mD -z4KdYk3v;x8+?o&Q*GfFu_@f3C%4W{v#uCC6P|K8t^fEZ$@v*%;6I -z_DME)hkS|znp5YXY-k;>m1iN>&5oKeiwxjcjIMT;75D9moXpLIOT&fB-t?l2;09+n$=S-$%|nFIvdHC(dOuLhP};IyE*S0_;o(ZAgd@i)V|M>_Rh> -zdE88Z?8@KSSbM7+C=Q+RP2wkyESL4;PSBo?SdeuVG(VQI+#nH>IZkUyC3syGvJysO -z?g=pmO_Dv5D7!bzj>lFfEg%`>EGnJkUKZ_p(S69DMW%HQMn!7+7THMlYrr#SPO3t` -zyShAXbrw&CqJo?yWhN9lbNJP~-@+5)c$u$@oK4iOSHzUvxBW*Y; -z%A4zqiwzd7X+4%o$-y7X-}a&G9HnYgLaOi)BiSkeXo7Rw?cNW{=+>=(1zY+Xs(RsS -z*zAn&13KFAAYhOK_C@|g=AzxV(rR#iZH+;y_!Ve&G*n>oAD8{}sh0@4B=Ke&eFeGz -zKLQ0g8?%#y5OLubbEAsBE6RIalunffZAxq;J*|#*>aseU<1f!|+ -zi@`sKcNNcJz3t*q1gk1FW6>(qt7~K^r@IX2McCm6u*3>4Q>SU_! -z5U8hlW}7)KDOmrJ`d$$_HuuhG6Ppyg?lU_rk$ILM-Fxjp)Riw*G(sBYy2JG+M8%#d -zsV~4^V6W-T$?IRmuR_ZVDt68WWLiXBkb_JD^bI#>FvN|!f5=07vSW}gE@R8a+*3fh -z8_;+8*Quijd7eafI`o}5T&_Q`UO$-NDX=kY2@bXfIu(8V=oHTY_eAzc@;l%L+a&cU>%8vg -zfr{;wHO3L9-faD~Q+VV~CULA+T329y8g?<7BFv!j!(X-gS7xOb}gtREstLTWz(*-a!l@UmKH+4W&{ZsEojF!aJBm%~km_+~Y~PddT -zDQ(G?vAHRFc)EnpY0Wnbt{5gm*&_#9_NSUaIv!{^xD+8mzV`Gd44Z;!lZdX9^pf -zfy(;S^oD)a&21s}Sk}xrU>tAx{o61hR;CE0Z2$UV-N<@1qz&OI3k2Kuwz4w9-F2`C -zMLhQ*et-Axb68HDCVBOQyU2t -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 -z!##YZIA9%txa^-0wn3TE|&~ -zmW!kE<)O6wck-9yyeE}MkLRULP1LrafNrc9ES?1^up(AyL8)l70RFH=+Kq*Zqw0Oa -z8Ch&HTnd7#Njzm2B69_k_f(Bp3eJS0Bb$*LlDn%a?1{uGk)CDt&G1@=2mEdT-4#TPu4|&NbqiNk%94s*pyP -zofGE-_n}6aT>PZ@Rug<*(TV5nJc^Cv`1sRuU?j{CT!zpL@Zde^zv04m^sL$S!L_J> -z*=r!*nKqX77X+rbtfz+E2aRd&@W}ULbTGOpf!IQG5Ma9jUTD2=u2h#EZi0rx@<0C4 -zO=l&4B;49fVqIGWWh|?GbEYsL7EgB2zy2Oa>&59?C^Hy68p5dsvuU(9HptXe0icDP -zTU8<5qXuQV#Usv?XN$ni=+D6%bFv+}cls}dW;{{2c<*mxf{AsyMw9*nslsi=$doa0*}cpibJE6)CNsBK>|ppL5pbcWcFH#@o(xBfsQUBu+Hn6iP-Cs -ztQ%kt#{Jfqy?s~7)znH?vVnVR7S;CED?bv=BepdlftC{4o)k4aV2?gSdUC`Ym#n_pm -z6lP$!iv!wd%x74CY3FKcX61woLksnm)vB^StyG$(NNxNmF38pr*cITJ5rPC|tgvf@ -zDi`&tZpi2KptLrTk*UAkdJ``aBeBFXgN}Z5XlNXv5%3nMS^MPZy$X8=wXQ88>09=K -zF3{l20!Jm#+GLU$N!h-sOw_O$kEltH=D5ea2{3eK5 -z$-hxw&q}69(t}Qk8dPXCaFGWifSWm1E>ewsg@CCO@>&D-h&`&DXA6<=afN<}TJ!(k;EtX7&m_jzWs*hw5(=e-&5&wM1v|NP6|>m~E6W)Z&j&{XSLc0JsK&U4q%OH|UM3Jk0c=*=)#x39JXwXFSEjY$YO_>-m^a -zp|>Bms$Mv%$S57TtpL(z<3r@U=iX#z=Bm_VuSg4BELvnhNDejD^k&up3;U>^8Ao -z%XV=wlH#|BYgdG&Y{XcWLm+8@wxk{K{3AC{k|i7jxRD?MI1&z!0e=0Os+l>Qku^t-%yf4~1TTQY-L7h? -zy}7u*JCaK>Eigmdwdso{ltk$;Hrj2q7y@(R4%Ez#l)9lNZ7@HERofpDq^qJ=E+WA-s2E@0$|aWB;Q<)$B8-Rcy^lqi(b -z83B5!10*ahwOcRsw=JUN`ve|q^l`_o9S}9WmGb`5fFRUe=R^?@kV -zi$XM(iTM1bdF3liD7o_Z%jSKceZj*)VZyHG9+PCICLe<+r`l&vd}ON;d&lI@ -z{d-!PC8*bOnOx9tr;_)t?SLr7C%>|**$ -zU)c;Rm}%2FIfy!fxbt#!?1>4nyNXjt?D{-vU`@=x=KYlY17{9>ANK)6Q|+jIIsWR` -zoqp7dKB%;yRx)R2ov6*t`0%uBPm&8F?|ZrV9V8fEyi&|p%6%+ixN_VJt_r9lS-~Dg -zE9St%#%f^SWG7e(Jd6{dEx}8U)_G+a(QtZD%LG~TG)0q8WTfp{w>glZJ1_!qb6Ft7 -zI(N`5Ea0S?tl9@E*~0@dZ%C(mD;sJHhi9*xZh+%e!Bgan62PAVhMgE|QemwAJW!>Z -zB<0;OH9N|GnyfpCNJFX-y5$l2tBK*zv59k+j3NsUvDc9#62^4;Luq@N!AhwV}eu@yU$iYCh%?|atH^J+jCf9=NabVpxr(KJf7(QaD`5f^BC -zH1f)>5c~%&7dW|$z#V;RIkVM%U0)^vC($cf=Hrn`C^)=1jL2ME=GD5qPblK1ZyFbW -z+`x8z3?{yea_>sgZ%5*X^a!v;@#0z@;>I*ovW>=3Q|Jq@A$nNR7r`izJXh#xSaW-ec!g^br{XU)QsXI3)J -zEsuR6s0II4r^y4b5J&Jn>7-lFl7U(s!N9PQKCl1!STWXZEi|^pS9}Q`oZwA`6PM&867OZb;q|CA@kA!EK+NG_U4tO!wFGpKHax?*V6B`u!u}@|71vQ+lTYf!*P3JV9 -zZ(~L%tW`Wxl_W!Q1F1sVEm2}w;ji;hDBWvdqd54sMzo%NvqQ9|fjLmAUl3Y4I`K%5 -zf9RkJMQZo%=-!kR#Ek@nZt`G+rC^NXIzj=~LX8|Ga!H%2-iNXEfFCK;{m6G7DaI!$ -zoocn4CbQN0+IRsopS@RNZOo3~!)zg^|!!{DL)6HS4Wj%iRI_ -zpb?GM9%Ieo4GKP0!Uf}c-F;Rn0Ev(C??D5j_IK__aNcwfmotN{@kgiq{nUa8#ZCbX -zv=uHq5awIb`m>J7k1R({oGI}x8O97EJqy4j*%w=|=MohY^YsqddJUjlkVb-(RY%Md -z51(Dvq3bi1oOhg}hcCDGsDOc}r6iN^Hf0Zxo8xJpvpE+eID06=abe&Td~-DlH{Xqg*>(-@v}F@tl5e)R5` -z0wigGbK1ku9v2~Td2TA9ae?Te6okHRn9D?6xXs-r&>OYGQDs_JYV)=zgaiMK8$H4W -z)5dbPa}J3vya#BCbRM9el7`c@i)qwI(37_nGfBn;%$SEkHZBKHNfN38=23G&=$%=w5V&C;}|eLR(3 -zAt1L>HvOEaLFHG%iMIj$0Ag$jIOnb?GoGQYS>7lPH=c;r7YwAOo2sfgpVggFz65%x -zK$hU>#VsGiD|r9lrcl2^4N8u=%Bt8Ihc=Z?7g_>PzdfC8m5@e!)Nr=w#tumYste-C -zfiqALSHPUECD1s!_y||(Vwscr#mJJfo24kWQ=zBp4vci~SfsAf%TL-8MDpz0j7bDa -z3gr})IEG5@1o1D~bj9+C!;^rjm|~;+sB_zH5=qPn7cHU78+!uDiO!;)x%W=uA&z_%lO&%HfA=C&Y9KRR1o -z7!uOztpa(Y)LY|bL)dDA*i -zVc?AR7N)0f5JhPtJ)6xBsMS{|jtos3y=OKt#?8js7$pWcPpoNXiPZoZ4bi*!5=7(J -z{uYh1VF-waaSC|6QW-jPdnjR}9pEI+#oM;CY!!uxYLr2I3#>oDqkc+cyIwfauhhK! -z@b;;fWF^mdom;aSH|WqD%ij0tH2*zt5Rk~}W~hoIhERu1m_}SsfCEvK&tslnR}nsn -z-m03*eSuB2yhp6FJaLqh3@di$a0o{8MsueiwUI2azez}Qx$fBNv@Jeis#qcP65|#s -zigH<;5|@~D&oJZNJ;3YuHtvJN5O_eL9)E{kXYX|}t^J`a2YtkG1Q>9uCPJjya9I|g&$Rt8 -zn_)ol4uu!bAqN0xEI%R;uJ4@YQr4#McIEk33cMDhe%xOYe8OXNuOOY4}9t_9n$$yp|Yeo!Ych9wP4k{VqlEt)2qGEzsSC#M9zsO?21} -zGKR+xlI8ud)Y>6DS5?D91l&adBHim)qd8~6i3je}B_oBk$GZ*poV6e}J7JbSIWJ!R -zt+)aHR`wpE<^;z+O^1$rmf1GKzKOY&TOy!DtKP-8UV}XeY^JPd*X&RVeLA;+ -z(k(7n>~$*&<6x7z*!2DB`>fJg59jAWMbM>k7m3}Y#9?XZ&dgioR6xn1J1u;C_9U`* -zpMqo7%XUS8t}tuOTlKqc9mUCHOPgI(rCP6Y!MSwWSPG~_TIo+k{D^9DS`D@kYfs4- -z4reSuLfSGYhVg>kEIuAnsiW!?b7)3Rb9LWG3%1ocv4T{wo?oajqU<7@vC0XjB8wTJ -z8JxAsRA^KNU6U&pS7pHk*Irx6RdeZJ5T`-uG&_Zk;!TX_LfUK4+JWobZ4^$JPijr9 -z(smIKN&`R?!$>O|kc}G5fg)eB={7m8@>a99*rKq{>joGW8vNoD9)a;yzt7%IL@R+r -zP^h;*#FBjapsu_td>-h_FDyC5zGod|PszIem?6#&%<4*m4N}H4Xn8KIhM5K0qIz~B -z4Db}8AdhiRc_Lt^03N|Ih9^`>9$CUo)?PM6(hh>F&jKFM84!`VW{azcnQ#ZJH6c4* -z3Eu|iT^*IEC)b-!7#F;&5 -zbW9V$W0VWuT!#~l#im6Iw#BW$D~y=0g@j&m0WYoi7FMu^-7Xgufd-41{T&oK%#vD8Y8q6`_kbZjJSayyQ)2WJ -znv%lfafqv4e8b6R{MU`Bz5m5$-+ec688y}Khb_;sGmyiMnA6~VlZf|VMG8Lh|P7jgdw28 -ze%WIVfpHdDOe~SuOVrxpgvyOo1PF69b_G)5*60vmzYp-==6xCTF6Q7-RYT*r#O1{G=Ln9Y54UMv_=#$m3 -z1C2y6Vcm8@)g&M8J}aR9GsYWoec?%hbTfn}Ms+$K-8FN>pnWRg5BO4Dsp9q(zK&mu -zUqzEx_R896$eSN9aS!Ro-`~F%4|D+wNfU!bRdojzuz)CoKkxGV_Z;*LpTMbP8G&py -zPfjrGV>H5+T=Rt26Cby9r+Rfl(;ztf?seB*F;XpCsC||+MvGj~$}(^ry7}(Z*h9Du -z?i(1E3_MQQOT&ulq*@46;kmhtx%kVyd#Cgw4<{9EOl$`^(DBnxTkKg*v4K0#s<$?@ -zxX5#E&VJkyQBQp+O5=^ehN&nS2iiYOq$&qtcOM1(OuK$Re|`RAx7o*Z=D#}BPZLMu -zk$VJ8hgfl8s{L-$|94lxJqY^I(LrltS9cc#H*lWUu%!wWrix4yYRBblp~FcoU#kQ@ -z!dB(`CL@A>QC7acV){Fe$XggnJh8-PloXGd_@|(>&?vR&!zb{&wPV~Y36p3Wsh0vs -z=Uv;E7$7-IS+YkDt?Cqa4UT2pnIc8hjY^DY5O^Yx3`=wC_D?n1vQj=SH%1_h6RP5f -z@S9Ioh}OImg1M})-lyrbduirw9)HF|`^X)87crpC=JIG>`z -z!7H{TzM&qaoyrOT=;3Z9(5{BEva|V+BT0)-s1%u_mIRi)8QEwF6ML-P$S#}g2oJw; -zF-YOf-l9ddO0tAXl_R?u%l1M3Yw=J)%y`>9Z0W8N?mm5!(PYyI>1o5ECys%DEzHH( -zL8C-FLN^=Cmxr@r2u2=V>2T4_KKor)QnA^;8P!5 -zJID9Mw08z_pO1eJbP(nkIcuR709sVE7U~#sAbgWQvtn7HvWQ-|;!}xaWU1qQiORot>@alXA@2yKlp=OhvPmP`PPO|Uf#8pMi73RgXkysT0ocGP&CX(N2&@q -z^QC+ts!ZLH=k;q;-`FN9(#KkYkFw$>x3!^o9&3L*)aO1@I}NdAjS-(282 -z!$G-FIkR@HIZ&!nqft!+vAP6jd$wE^%119C{m6MBE6`eJpx*mFj8O-mYDbF7KHh=E -zGCP=tyX%WUKjkzaNR~QE=7LNshvo8kByz#CDId(wzYnp5ERLKr(6_I{X|$ckho`oF9jRyuYBQu&m&ZXdDK_JBG3hXkt9AxyWYbaJ7#%p}MyoV)>X^E0%Q~k84~@ -zM?kYJdxX|oEqrWY{?59ao>AheClC>@+LJ~dr#;e%v5i;KtrVT4l2xV*u9zKilmz0D -zD5-KJ^bDn+L%(5;CMlyvivgBJNSjvKnBvrShJ93HkSBhDG2JhZ( -z%7B_#h~X*Fzuj26^O$}GB&Y@!GM6WjO`q+O4QO!*0=k#y1PBWd -z6zXf#HcP;p!lx5o$TGlTEQ6NhxX&xDZcMTa9B@F}}Irn0%GEsZSqRKDp2kxG@;Ig%|3@Q{F*LXXs#x5&i_K4n70D -zQx|YCmu$0Xi -zHXF=ETFG3_Kc`$yT!0*%JjPGZwv~B+&EBF)Vzm6Cirm<4xP3Z~r9Q8;Nht3_RjRMv -zyXY3WtO%1O8Irvu23K?X{SGA+HJ6PTt#Lb)U-%4<2y`?NNCYQ2zNNW;hWlA>leFT( -z;S*I0(+7{HBFW*mFH`Jh2LAKohq{@e8AhbIjpC;UxtYBz-9um|3)d~+*tYGCZQHip -zv27b~I<{@wcE`3mwr|e&-(k&aShe=v&tj@a020W7Hx^pyRCSP6Bf|zXw#Mc5D~hZQ -zUW6;$Y_PR26zd49qlY#Y92Vz-A${|EPDwuIzc2rm38si4*F|}`NLP7i)8(@|qLO9L -z=0jDr*^Qc?nB27TlJZPLA=jvlI86|oiHFYmDS!aO+Bugab&Ogn$96J0R0}Um1T|E1 -zk7cS1Y^KD$3@Q2ZY-j{Sk9XHPt(skoE{`m;>WV^BF5`WvGVF1=KJ8v@rKeb4HJonOEN!o_>cN2JRmmJ7032sdO=NR%O|5XwrWiz*s(Hdku_EsdYro1GfCQ?&eR{GqhT7#d4 -z`LOQJ$KiQ1Z2@57T(+MP)}%=d%;;_U8E!0y%houLGMufG9*iR2EOt&A2`xyO*6^vG(gJs_ -zV#TBdJoh++is7fn&OCicgp-A5N*zCc>n)x?7WEU$H+N2|1qjcg>^A?VAI{3rEL86~ -z&k8c*2l&}|s^9=mkhixgTly&A_>em^EzUMn2MUVcSa*3)A}*|DMrfvd -z?^h~+XCw4;l|Km}cGTXz0HdPgVR+Ct&l?`YDPLR-mg7NW?}ab#4pr7y74vBnQOV4V -z&DRv@(&xqt1^mX!)9@Io)%6X3pUDtsDwCz{(Cv^tnM81{xM>+x -z)sIoHigf=Ij`qO;;B!}xZP5`K+n~p|s(zlLp|oi9jvJRqZyRPMMNF@TiMc+_3mHM* -zlk}aqw*8B^RXlOMj|7-=Lwx~WI;X{^Z_ZObA88_H+2Hu0Yl#Guoa?-9#qA9c}a5VQp?9N~U^-kr*Yn}wahZi*_^C{()xhONq{VE_& -z)<8*WayGp&LmB%|~T -zh$Bsp(?~0-pTL!JL|V0;D0yPfx1`n7)~U5Ti#t?hjz-vFnOhVLCNnVLbYiHS$qX0q -zVyGi+!7De6gt1Xa4LmLX$P>jL*%)U?B291pW>h@fNaaoS$q}qK -ztP2_)r*)HscZ)uAVuChRNeJo`NEW-QAbQ$qXncp7*i~$znMRd!eaUBC95+x>hN?s} -z_aP4hgh53aS_P15gp4}uf&F{uIghSG8 -zFrrf@v0oVPLYr@XfPU%;5y;ckKhIhW>ngMG-s6o*Sn_HB(z?TtA8{M)?9-_54dqwZ -z#ur7BSWf+5YY>cuY6C?c^!N#xY#MU6Y*Ft-2q@9P_Hkvj5_R^)O=P)gF|4?-iBbf3QbjtO&Wvz;+8H7?<6>{|gW+wDro}yaP`_u-+cxfdzNw{hW?4bt~ -zK_oGH31c$#>vaC*9lhrb@X#bXLUZ$d4pVO+2$!Rw$eojPNXG*#%@tL9ML6&|;3r%$ -z^nY>TV2a|{KBq*WxNbES0b|kgcolLpbDO&{US3Gu9)_%r$Z0PD$a*PG##NAnoAYv{ -z2X8Kb-cw!*A$)|YpiyIr?HkhIgdD<-cQr`dMmU7zc4ty_wZo(bza-; -zy3kIEiL4KiOr40pvXfwZ7{!2rV+I;_q|oatmig4J2+5dZvr=UJj%*2AgrxpJ!#Ba% -zl6cw#ZU)Y+QO(Zm8n)ogb_X-#{6*vXtB}B}8>rm8pQlMVmG`EpN`Hj$!U~>sZCyq2 -zN=x-@vL=1Zwh%mfH1M_SED8mz&Dvo(K!^|up -z0ln|VsRD~W5($d~I?8GCmeS_h_&G?ug^QA+08sBD{7vK`Ux1?>nN!6ndJnU^{m?nN -zJS7K9&u^z36$pM92Axp9%-Yss-@WdZv7m-63{qzZ`u7Tlez$B$UO{g_bhy(|8mc^P -zjbzVXAGk+^#ds;N%{Ugsin5)NY*qzTk+!YPF1;87P2w4(NA>nXR}w@{e8*k={vWt~ -zSj_z|)cu(5OVwtS(yF}rrFw}O>*)vF<{rp3kMs6B1CcIU2nhQi%Pd(`Nqxomm$-#x -zk%HQJ$;ggPK`qWVD;6t1S1~27sGWS+I+p@_rayxmrwE!U*Vf)nvM$H@#`WED0OrS; -zKz1fPV3ogK7TnwJL*HL80FQ^9J_%p0N(9~_u`o;Q7<97;kIKV?90c+^w(>*nA7Tj5 -z)OCm-52N=Dd&K!$B+5{m6JN_fh!Uq>6j*HGlT;kg=<+uyhp5#`L2Ja;L_pyta3N#tPBritBlzKyBYv8aQ6z_dmGk -zL5}BC`*Kt<;2&t>F#ayo8Y2Yq0Xc*H3OY#Q1wqFk4`T9WQ%(5K+lIk=!l)=&^GW*6 -zlmNGvZ(}t#=cNoYhKX#Ww71a80{BF*!oE(RoUG-A6xwJO*8*_{DO0N=uKn@0?Y>`b -zFBp39-qW-q(RR9!iGuQ#J*1M$KmS<|e}zRwVf<>I78+aFeeo){1fhT7?i0r(A5sK@RO*lKB@SP~^I7$Z&D47;mqNOeTd|8 -zWNBtk!lhNA~7%z5}Oul*y} -zG5UMCMY&>9T~3SIxgrqk6p*o43c`v$f=UG@>ADJ8$+nr_?Z5;zl~F=ZCHUPu$?&hl -zgx>JjP}IPDrRO{n9);SGf8E*dC!~O1YOVJ-g$C`iB9HCe;3VG1o8FSrbaLOfX?9lJ -z;5sjGtZC(r2IZk*H9!amGkmAS=)~WFfu7RZr~svm!R|-WM52%CXi(1=^{HU%+qN{8 -z-bdpxGy(-AUCXDCwD`WE%AU&fxx0%N$vMezhQKxu7YnwppbMiT7d5ywaKlnx5--RR*BYCFMy#{ -zif@pL7nkB6o%X&KIXW7<}GrVMJeSIbGN!{yGf>F6uLXG5s@83P!Vx;NUFb -zeDW?p@P!VQ%>1CFLlS!mp*C>G72;G82EEO(?;hq%18dD662MV5G?w--XvTCgNR!P- -zdxTaZ*;Fs?TNe|#CfH$NU7#ofTzS-pR}&G7kv@IS#N~S7yjp3)-A-g*fc(~oN`a?n3wv7Y&WRt7!s9~a?N8^@z -zL;mU|Pk)~1s%1eX#TUgB6oLuj-Dg*J+b!zZFgS95UQKN6E?9v3yY98cj%uQ?B|(EV -zGH1~|FxDzvrr*PTGO<}aQ1Eg>Y_us$tI2kYu48;BdM&C7&UVK#3xn|ub7!Rg5d%zW -zr~!9#_ca3Fz^%>66tw}Zc?7i7f`lHeeLm0+%aSCZ;!3VM<$MJx^#TkJo!oXysjNlG -zoh*ilxy4CR+}b>N@aYlv^G&tKRL3E*v@(MFs$v_?FaNe8ya@`H;obe)Wv>C1?gnE_zm -z>zrRPhpk*Hi;mM{yH#2!?mAbgN&KkOma~eSjb}0k$y8Y7LAhN2RbR&3M8Ep~MM`F4 -z5;uQxm~IgbKylLOWqW88O3p3jYL~WtK -zr~**#1gQt)oa1GX_&Wt|c1dRhQUtZK0Qpg|?t>s1a@%Jb{GMNWZ*0B5rVrMwxm;I3%BkG}xc$ZhG9G -zVPMFN7(UKA={@NG4Vxh+2;&$Z3r0|kK*Y9A>@MFXFbrI%amiybd2oqVmV2NIp*_Gy -zmxn{v-GYlKemFu+y&F26F-8Cb4=)7+i02~8q19z^+eqSpaBs!^r)^XJXxp6t^a{q$ -za#m(hSYk|HU`gwqEu6`j8S;8ykTiA{Pwk`GM#O<58S=n(LLF1bOCsVw9PDbe=G-8v -zlUssK^24A@A(@AEWRP0A -zO(qk~#50((iPct6Hk~5j|6$vke@rB0$7sh%$Tdm7@=gQmO1C**$D5L>93G=uuKAL? -zL5Z1EKqb5#m3sigm2}DoqJ-9;|vBY#gs5T{Z`tPBkw1`qD>Ugi*Zg7KFn@`iiiAP+W}QJqid>PvAU3y8MK~PqJ|=^GN#wG6x%8+!~SFz_YzpuTiRP=H%yE4;xx}5P%ykW=BSEH6OtG -z2DT~tR4`cTWXU~0}_d2z^ -zu5hfXswLl&Q?XMZSW(Wi+qIv&24dliJ!s4FOYVYWZH{n-ZwnFbBtm0KlJvk(STY1? -zF+}XC>G7ZrjMrm>>#lX230PB;*&h?!+ALziRwRrq@nII*W+5C{5%;h)hq9r$oMw}& -zwgW}kuLuxBKdx@vp>D}(6!dxM@9r1dsFg>W@6*~)2^SAI*mobB8m%u5!l#a_&=|I9 -z|BKs@`I@WMV=EA}VZdt#O8y$Vq`+f3$F`Jxwj?zXM@3q-c200oEmTOW1w)ew4w6YmT77Dyj*fV}@}67*&&*U;zgXxe!cua}94 -z5ls9-$Y#bWTe(oqPi}3PVU6%ZZId7B_xDU7e2U1ENerH8jC_oRM_dTKWCZIY2xWL9 -z;y1}P-@&k}^F9t%IJt -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 -zV~2^9e;OA1UQ>;SM7A!u(&8VQr@-tnN2GMFZ -zgERi0^1t3AFtB{U?&8dV3f&qIWb!DZd_g4?3c~j!!f}J74xpXtFR -z|NRgr!@d@lxSN4X=kQ@=!kF4Z$1UKWP>Ur2DDK-lkWNeRJ$xNOm{2vF%XUw=u~3=< -z3H<(Z)mOx26`SOHiQ`nY{awD+`?`2t5?S<&P=CE#6B_e0JhP`(7Vk+ku*E~2ts!=I -zT!9l<%s9MpD@S4Lfe&;%l_IJ&CPNLiD?HsDS&c^ib^tLS^)Ioqwue%JLl&=e+yiPYfiX5J)Gv`087`a -zK_JJwdUO5>!&B9v8HoBLvW5neljZM+?~q*H($jOle}y+F5q-DsJoZ2v@9v!q7I -z^cImU;_Ho6MmJ%U9fMG+hl}emXCmvLX&i~N-<+<|R1#PkYS4jaM@!=jlv$4w=#_%R -z8fSTJD78MX@!xoGk-tIE5YC_>Jz0XVT-ZmH{qj_p#ouZIVzRMv?G<%8$eiO1+|ix$ -zqv-jctW65a(MLN}ZHTlRTM0gIqc0~p>2KcrCz(VsS5WQ0!txmAil!wE9O%=G5`gq& -zvo`k!&SyzE@yWDvbcI0ZqlbhG4(Nvb|NO!QecK)A9f>8ngUjtS*It_rIC-9BJXvCl -z{_L81s`Y-aqnEL-y*@bczsSYY@Wf1gnf!iQsMnu0lpN;C0QhA|)#Su28GJqaPsQ<~ -z%|83!bQW#K=g(a=>+P^_RMRiF0G_`)IG!q&?y5-*cAeQ+Tnzj#EI!>Mrx0B4RWvTP -zNAH91UaI{QU5-lmv$;R#H11iN>dkXq6y#5L2P;}H(hS}YIzO4d<{X3C?fg7<;5(vm -zDO}ZImzoSa;IWA`a0?F_Z?9~%?~-23a=Sw_t2071X1yA%apC1T1qN}iZ|=TGwMn;> -z?$#0uZ>)P4+k=M -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 -zc?+lrj(4Mnn$&{xL(X( -zTR)X}C92Q=ApPOa&npE_@8}}drs|Wt0LU^fA1H6Yfn>s&6f1sS2(B!V2?COf -zJhw|EAin*l&;?N-JAqFr%uKKakqc*ZsK0nT4wgvD5No>HfcC4sONu1iWrsWuYFX{P -zq(Y-=r8ucLi?AU}<1_RHr>>@o*r9Iv1-r?dNI(G}tVO~C3D=!l3_SI9DaNIA#k^*+2ycn2=|X{LLZWa<}QYYF$+rn$;vfGFQI%gL0ZR6j%l>r)g` -zgQso`NB!jZMUTTGO0tFLg2^1QDBr8G7-^G{9gncTvFg8cz&i*S#1l&)*XygsW947= -z;E8N!kaP?s#6zk~py0u+bhvp(Le`O!TR -z2FX%-*j_(E)LI%sEg+B_(BX@_{ETOuKm+vC?ap4%MD5wTJxaK_1Qa1s({~A{dv+mtA#jRR6*nc>EuU7ch=zUUm -z<;a7sza1bS3yv}KwBHe$5k-elTV%Z87(hp|uPyI0cc9kR)?Js`MmYTX?~CCV71tgA -zATjY>n#w?s_OrO8^d`uhDPM-xiaVXpWwzI&WFx=amV)B!#U~*Nee&Fp;7$=Q;&KoL8u1*-QKDoD!xqU}mje$W} -z%9y)$b3{a)$B4Xnm?SSsXmXc-6`PxCLaZ-XDJmyeeY0@~0-=_nai88m0ia{|@fbOJ -zgz_gCS6RS=jJ#G{F5F<8m9OOUYQNL24;)tP{aki)4lg>_<81IdI|sr~tf4S3U&H3f -z2TiFV7X>f&{-BQKLJ}Z&Uc?g$kh6qRM058Uqq{cz58f8<4Wzi|^}7iC58mG9IHkPt -zM{D$fq$z{cmP0AHSr637U};XVrSa_?%D-54a|&Cn$4Tx&o?!fSR5UBOTD)zKl0QC( -zdmGoh0Iu08F$t`TWV+9uz@}-hwZ>Pbv0k~t9`oSfXaB2H>p$oI3Dgk36u -z##Y2?YApgfYEB?0VtIRY@gTZqa>+pGg$wrLO4*Tr*-=p(1RM-+F=FE)Ssd$y#)|W} -z0ym=hcL|dzg4lg>5q=pxKzAbefwE#4w5~80fSNZ>I)X&tGvjS4d*hPY*RjU -zxzScl+2CoZ(Q~CLDvJwP=Se)krKE01*SI}os!_^Of%ad!a@3kzAYVXvSYtJf?_Bm^m`Q1fC{E)qE!sO&dZrz`JVyMT -zAeVrxCrzmiE`a#jsk!8wb>vuwL*OC%iMog-3I5*{-tf^alQqQv!|!m@r0JAhR{NlN -zLI36VqlOfLrc`9we3(Zr0SN#4 -zgI71oyH0Qb)2BMZ)!OJJAJ$pmngkfl``-?{;vt$m@9k>BAtCD{FKVxZNp4=Cq4ziM -zb9*zP!+pfqS#MS%W1)7wZ|E4wJVF&)1|5q--@F1}2ZH6E#*5n~omV+$25-F&F;(N% -zyXUVbj{GpYi*FBmZE=U35*x6WjaK{b=hPw&&FJQgfbU^KXNF4=*NS?2Jfzvwm0$2M -zr^RSxOYH`4yQws1?4Z!PF$c(_Fe^ciI1kZyR-$;hycJoD%U!L;N4U{aMp5sYG(__tE8oB6tlD -z -zwoY9sKg;xLE})jR))8O5kMrt>^&wAx>oA~BfD(uZ&%8EIwua7Iz^(YEe3uIP@T59p -zCS-ykiljMxKfK3-P#UUHZ?pTLB-HZ|+?} -z`CJ`2SouhW4D{NgjKj8yu+~QE;|1X-^p8o{Z?jAUC7-B=%&2uOv2u&k$okQ@r=BR{ -z%r1%wTWWU_19up?VWMK;on=zYc)6w7;6AM;za3{?bWR{E_r$I5RBf^|uB;5zi>{vj -zOu9>Y;(Bg16*Zrc^y8imA~M>1u2G^gRPd0ExZttiE4HpjB21`di1#7S>;4p9 -zj~ByynKaXuVMh2vre%LPQckTk@u+8$1}~i7N80d1oVt@9l%SrEwTVKdT#+s2?#o;O -zVJ+yYQ>xcuhBZsp!#lxFpg;!Bj1R=pXx)eVRDhuRB>}m@(00{HnNn#JNEMiqJU#5WH_}oJ9(fALO4~+}S#DV4(3m2T0TlVM-;+>dHdO?I -zO_a*Y$E(~~r=UwNSQFUzX-`bo`GPX`m8hMoz2*jv8Axs)R0qSF?l&?rh!!H8>S^&| -z#Ux(t*`T7>T&(I)G_||&d3Vq!hKnUm$-`~#9;CsR5xFZicq8&PMyrXPVH&_t$91_; -z;gh3{$g|NmkzR1-5_cye@eU=&w)`@M*V~?b7^-cj-_!CmZ#2(UpILQ`mVi)v&}p=& -zVh@>E?hi+2g$#^H6szgu;0y*gC;JJ6n1B#sqYSBcywX^Dgxz@@QTSjgH!$=X3v_C+ -zirq4Q!L|%_sfs$6(8Pl$rGv(#rUT2PG{_p-r8@4#p+qW)d*>`gBt3|7S-KMm-ANnlyKJ6GyD3a@daMYFZU -zp3KgFo-5m4)ap8(kK#ADRRb`_vj-QoliA6NI(LzKBu`C@CnwKS%gM7C4A92wJD4$Y -zlSr^0%Z=B|ZS_cEpv8%)L)qtFmy+-*`CR7%A|APZ)()1b&T&LHuVzG`culXh!HXai -zUDF!Cx`8h49gv90=e1;*VE^ixK`UCeIDlQ^x(vj660kT0oijkX7InPe) -z2zI?PGxzw{x?orKM>H;2)xcO#!;l7j^H7S;_PW*CjTYt>)onC$={5_=u;#SWDVDp+ -z+2q_c)#yu9b3Vzyw>?8?4WO2VNVzOSuKXjXI6;bo*Hq;8(@z}*GIA09#aK%?in~o87YvFWpl4KZb05V&v -z!&KH(L#1VyyGZeg@@7Q5sx-Zk2eNVOpk|;xD55q4njZD@S;|(P`;W{$t$_#mNhDcH -z4NsNj?wD&FrC7JZjt~_XolB_56uD;*PYZi0pQgua2?^avVlTJeCO1|2P8RZJB36FYX4X1syfNP7Kb2 -zP|nDZ5A6W2>(pf?TmLdq!-0D}0HI%x&#Y^vGjk$k{i}ZybgNh8l0J=tt>jRFjHt@h -z(RcZNN0lHDYL)Wp6giHBArPb|eax9G`TyoQh$Pv4f3vn>te0=Kln%(#Y*SbzqE{y(|wr$(C -z?TM3XvTfTn*-dsm|7Nc1e(t@G{bqfKwa#_?PNfrvwIFFy6L4jJ6aSGMjBoQ9XocsOJ^kN(d?-?CAVhK(r}{4CNM}wMkeD -z2UHxyolJmw>&>FadSCfcljAVMJ}-dB-t72a4nV~N>&&p>6lHqa>vamWS&TM4Whdm( -zka9+_emkmTTQ(d}Yp^NB{%kEqV=hVB@{DCh&Bv7D!us@l`6`|l7KOb_S_FIZQWUd1 -zbQ;!jYNBW%kc{bmp)Bf6Brllg9=Pr}^CQJG -zw9(}_j5-8bJQn}#c -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 -zc$AOZ{{7mG-x=Ype?*LL=X6X`XWiO*44TNQ -zd)!lT7`I!hfE_~rTxe73JXw%0m1?M47DcPPrN+qoS{zmAD_M~ArZ^i@LQb))3sZBK -z82QU~0GYIaE*om4y6%Hvk`dsM?+98JVQYY8Neg!_R -zE%Z@aVO-|20*Nq1lKuop9&A|5y2~+3x`SeVr -z4*3gAko&VR?Qn6-*+^^8fnUc@07kSvn_73Nza1xO|I780$2t5E)K9QeB7nUMnN8DSG9-4<{bFjAUDLsNL_kxQ2z -zO6^Y4Z!25$1$i?M`}U(iyY5y=Yp~hs;;X6rCjZqI!zS2RLfge=sO6sz8uCM^5$8+F -z7+As5gO*4MG)+c1P53>p|A&pZAQ+K$)|{`@$7TmSXhKdXv5L;3OQ -zA$lV8OhvQ4cHTn5})amc+~2amasv1bV~rm1cC@}^)(FYS-LwIacOPXx^E-T?bL -z7BVsZJSr+4{E(*Oe)deu0iX5Im1iAK2;f -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 -ztP`<2P~OiCRIrMBlF$c -zE}i_ya|F<}_ZShnt}WIK4tCY{UI4mws7EaZYu+kx6EK~@nEP&~*dJY+IcVUjzd)S& -zI_D@EjH)D69-wPePbU15UPQPB=-PqfP*Z|9chcYn{R7yh;P1Cmar01t0=XOYuCkf3 -zyQzhECdr`wlN&1~0A0JiikY&W02LoG(w^Pf3Z2Vp=(nGJppuW7Zlo*oj3t|_Uolb#Xq|CJa3}O -z;KVh*tz*OUYagTobZuUQ -zv=(T?-=@WZ1O3}W;gevK{GXhc81T#COKLUR3nN=)fr!)I#<+>UsYrh4+H$b~U3=~! -zUT*S3*X|z$=-Q4|CYS?}09{+K>Gacs+>Mh)_>(bLC|H7S+c?_9UtODH`ZGD-a#gO> -zhpv6VCcaEw7MMC6Gv-DvQFTZY5v^v72hg=wj-chW4`tjxbnVT5b#0SuveZ&Y;1$rP -z%Irh2J8QQZff(Fo+2~_5))pBPNkIvjaKAjNrb>kXKj=FA@=AcN?f;=`i=BFn6rl`~ -zUH+qMi+t$XVt%4;D4{v^Y=3lZzaghgV8R93ff{29`VU>3b -z+z}*XAG$Ud4%k -z9}3X53+XCwbK`*(S*HH#+RFf4d+$HGwmE%@JQ9>Cq!d;&K-XUBlh~)abP|30kFK2& -z0?@U^)IW4>0zOGF3{=WLx;D$!V;yK1zpI8Mq=+&=*DjIC4F>4i%OAQnhf=rl*02BQ -z+L`U(18B^59BN(wT^oad#7t6T556gGByatEhdeg)d5)a -zudaLJl0Pxe>WJ_YF7rvP2s;rWlQU6d<2^Py{-n*((1E!YoT8xyl#YPVT_&>Tfn8F`j`!bX=?2oQJOasuh%jv$Ujp}^p+P44d+RjA)U0c}vy9z+p -z?f~f8x;y|~I|-Jm?~krcRTj>MATIMq*Ukdy+Pk$R32C)dF}45b+L^ZiUHjXIu5J6T -zu3aAt(6x)q{^;5$j(ZOux;836*S22-vy;ODKL+U9Xy|`*?EwPMLq*V57y70@y0)aO -z%;G<~cD!z;9TL!^ubb9_6F}F_+5V$z&wcsOwHb1lA^(T2t!4Hc4$!qFm9ziq+GBxxyo7fm!|70Nb&(Fl36{V+ -zeh@1FUAtQEkFIU{SJ!6b(*#zlm&{Y8fGv26RIEHf*ZnM-^H0ezNB?KPwudXfjp=)=;LCcYs|IxKq$!B48|4Y}Vxctzy -zi3S0>Hp$&zUHjx8U0VyrAwZeOpZE#Z?`naOoSH|cYj0EiM^NZrT|47fDCX3;j5_a- -z`saUi?TyrpC-#w*NV`9}cKQ>YSRg>x{{C0jPAvY=wXx~{=-SX_e|2p(#J{@sgtxaD -z)Q7H}@M4%<1g)4djPY03-ua_zvjB8$1c|7Lg;G{=L_L769h(Kvwc*jC5ur1rXa8H* -zuH|4P|D$W)lqhsHCj)eCeFR+m4_zCT0(|O^uATWi5%ojYjscnft824@{MEHXf3qbW -z&x8YX?UD~&yCEuo|3lZtD+lP>eCoJBG5Bj -z^b7gl>en*!+C-8>0KQW7|! -z%^$jU+aFy!J^w@3uD)CIijVIiCh+=K*WSyM9{fkwrVWHB;cnbL1nAm!-b=23bnT0B -zfUeyvwW*7As9k|^jEXe~(6xX6_%B^sU^JiMA6=j%QP793Ef?{Rt}R&t(6ybJVzGYZ&6&q8x_=`B=-PAt>e@os7Y~1R -zZG;AZt}P7uf9Tq3XaHUNH$c}emq>DZ`>ShTq0<;mc2E4HYk&FQx;E<~u5M$knt4

    HkC5{xq|q8~vecLo5BGYoFfyN7vRjg1o;BlN(;!+7kL#*Dg%> -zt7}XC)wL(hUYETAy0$?7f9cv|Ict;~LoL&Iak)A0=$9z -zKf1PF-LfOF>0e!Y*xmoYX`4Pl7NBci|D$V@CxfI$ljl@_=-OG5a^)Yo_Viy}`^Sf_ -zt@N+1jRw%Q#ZS3IJpR$OCFOu=t6_H6x`(a7!U4Lrl;l6UHUY@yf9u)_vH)HCJHdZ+ -zZGp$s^FO+F;GU%7e{^lj4_%wX6QFCCihh4;TeyW3`_Q!$0lM~=Iw98o(zONG{^;6M -z(Z)+F*}m}8!vI}-?A3E71fXkou;cONToQJrdiMAObnRv)fUbRr`~P+AIW|6(|JJof -z1_8RZuGkO`qRV#E8inYLv|*@}I?&kv)U}UkaEt7-VXBL130se**Z|`oudZ$J)QFn&udWT`$xTMQl#Ng*_K&U|@>kbJm6c_>{Lr;A|LWR@%y@x+b?vP} -z5&>{aB^0&74_zB~D2M}~Yae!vWmKqBhsWIy!sGh>N7u$h_*d7?eEe@+`}+pr;)kv+ -z-TX(_RzL(B2k6=b%pbaT0{knJkclP*4@dB?rf)|7>e?Z5U_yU&ZI%D%+F<})Tesft -z?jK!y-_^IbiWrs1g}?nPQv%v97&LNkrg*pRT$LeCb0*#c)d;qH!5WqQr=+;hLOl8n -znUK+dN=h>fW}DhP)8ryu7K{9H_tqOa)~;3?$G2P;j9zd4nkn7e6(rT+MPXAjynJv# -z!tM~h$=FjGU7^>t1Q)ee_bKDC<=eexmaO0+;L+bMZ4nvYJZ-m!?^N?mv<7>f`iEPQ -z@kL@wm?496_$Om%avqAK%+%|B##hv+*)Byq4-0OR7yY*!RuLoV$hb6K&7X8gp(1i3 -zO-RJWt)n<`Sw6CZsKxQkD+4vt&Qc1eQqkFd!}@QRRAc3B1^(*#xvYk2Jiuj+nEDTjp$mja)EkvHQE|3Fvyooa6t+6$pz -zScbi_dOr0l5cZOVeNPG*h52jk5W+$zKcze2=@0gaK;|<;dd>FlXCAVje|O1@&2>#{ -z<7QMDUYbWFg60jW`_z)sDH_R&eojRNF)0qlr&58-RLJ|fu;Qxf{zJMFhE=isTJ6+~ -zH>Q_K{Gb{%p@61b54xLtP`4=zSUw&oRN*V-?i9ZSbFkWWhFyrcs9*K30Z{a22-jt@ -z63%7V^E`S59PO<=7Gj8G8F0j(lfn(;kR+=a;Ff~G6@yZjDp}m{XcnoZm1y^i&25P3 -z_3P>427U4s&t1j}Ry91-ShWBZ23@xCca2E%GMWJkyg+OLJowK2Hw@tXe={BpVAPKiGV&Q#qnCb -za?k=JY&b{1SlLSfp(nF$iFT_WeYanY)srU0aD-UB(F2-;c&s=Gv$QG|aG5Bp>`Ni| -zVOaFFHYv3d&0hx7gnxJ|%W}sO{m_$gvqF)kH=nfa0goBZ-jd2hyd(cuiAkgKCiv9& -z&1A%8HHPpBBW6{=(A(g479LAP#>vFpDIS|t62YROWzdc0+mETHp=$SSR_|Lk#z1=) -zWUV<&fziH;PceNK<@(K?mU_(t206R$vg%B0-EB9R#e7tWw7<1*_pKid7WV`Cbw9m{ -zOJl*!99S2`!d#^d)L*>x0n0d -z`!c5(ValEh*JO+c8Z7?1bD?a%#xbr^xJ?=ER*@hpvV60sLvZ+<&(3;YU_#&*vP3!1 -zBWhn&40CYO0Wk@T;M^hED!~SsC7O!*8d4b%g+edBdR@=h{nZ@@Urk>y!Vt#qJ~|L$|3Ge7ziQd{q(8KN0puhfxqOTHUz58t*} -zx`_a!zo;FcqUu5V)zx}4`5aUgv80yQezJc7S5?ax^66pWK@oUtfh>v0DeSBzs@s&o -z=n-23z-C5 -z9dZG!FK4rG4jZ}Kc1VHl6On6L*#U8Uu_C7Bb41F`IN4g^ZmC-EN+Rb7pLxT6R+}GT -z(KjEa?~FPo*C_904&sJl15QCElqIZ5$BhE?bn6Mvk=AO@ -zTU7}fHqvbfV=P{A;tfdYsYPE+r@_Ual8Qr81#@>F?2jkkl-2K{W(1l)ikVq>F$~1k -z|J(|9*y^QAD?Eu^Dp5ML6`aW!7k79)WZVt46osw7ucp_9+-x$@S34kSA*9}LN7+>b&J+v+`CB`1q9+`*R&>eY)cT&I|5#a{?_QYKt -z=+#)VekaQfa?J)Is+MqN_F2kI6T+{|XYjhw=d!1G(2&1XPajQ5H!o9EVo#txS={Z$ -zu|>8V>8Kyer~ir^9FJD9$Ke!e&4A(5P8mg{fok@`ZfMsLpUur*J3#NN6r-c~ev}x) -zZu)}RtO3g<9Mx(hI}JM|riqaXBfmNyg3xkL6qAt!oW5#*@R_U3<91p+fibz@R|I(x -z+5L;HXWx7Dw1h-ujQZvk1fA3-?AWNXnTr-pIAb3TbbAwrO#7%?n~S+RM8Py=$P!J4#2NDrYYnS_^N^Fs}YQUJ#Fq)peQNpLB=vk-_Qte -zFL)WCI(pc!$r(H`@Yv#YjizPetQ>N#s`0oZ%o%q;ix7#wa@?{?6VQSY1KF*nJqD?M -zyiBiIw9z7S*=2$3U8#Z;x*|^89s9~{2*jh7^$CYSOK3C^y`vni8M*sjK#i!(xcz<& -zYblGk`!VMCz0WeCFq1(Lx1XSJETY`j0ZVem%0*cc7VB{P&JC8fLJ00kdrwy)7Ak5n -zlv;xvT&(i0MUj+_f~sG61m$PsyWdwF6B+Aqv`Omz}RNLlUI;l -zX(Pg?BlF3(j!5hdwpJcIbt0t_OH3B@9VV_={nT&NXyMqm4XbV(dnJyFHlM$G$~?*M -zQRp&`_D^YZ6;Dt(HKzgh$*0cr5WD2VRoUb^t5h$rF9jkrWSA_mcIm8H{YrC-S)1^u -zEeK4=u~OL<-}?2P8p0{YbntLBfRs5Nw7>TmXv%0Zzt6q{rC#-SHBX|u%ph5Iow~zU -z>gi|QS}@5(f!czxLZ}d$NA)VZ?4ATR*8R-TTl%8;n%WVmA;CG6I&AT<=^XO-MHz%% -zX)_?+X#1vq17({?V4WrLPO8~gN7Q{O0(9341@K@D#h39iNp)qTW^nqQj%pO598yk9 -zFX4-*4lAG<+cK8&P1k6~g~icf8bwLzxVTk3vnueGIj4P0P^OrE!`C(HW693BCI0{8{Yy -za#}|*XM?qFQ$nD04SIBSq$QxJd9%Cob^Ip?% -zbSis^$6_)9hZ!1kKy@(}21)cBRR+_PxNowzHg=9Fz(P$KF#^O{d=taoSr0I@8#epK -z$P?%jJ{24S;#3Fwcv)&88al7|c4Bm8tr52B!odBubI& -z(;C6XP!6IN6jYEo({OofKz>FnrGu3uFKY*)1}=B1JBj3z-kj7+y>aiqM8+w09yt^5 -zU(@LCoAv?)77s)fWbqe(iB{uB_6OT2j%$6DD7W^6A0{kn(91~G(W&u`G4z)V-ln9o -z9WRs7C@f2{dF|{t2~Z_yU#?;mbv8+?5U+d{u-QnADMm4Tch~epl*Q0o;4X;U?i${v -zAr-4d9ZvQ?wpXei2t&qMBWuZkSnsb5K$I_U;g*T&5sUBfFcToQUGNwf4B!zXcraym -zx6nxX&X-Cj7h`MHZHi|1`w^SQ+Lo@XC=J&pZy#A&vKDqnBZ7u-Bq-|icq4?idf>Oz!Q@xmLBZBBHZ&_uIeQ3-4{hVELh0^2)Cg@ -zY)&~m#Vxorn-M{(Qx9xS@I-k-<_=`IZmN{StqM;9XSB?%UUAp{hwkHQRSpRW%}ZCE -zK@8dNAiR=oLIKO%hc*@tFge)yG4@Y2xS20cjuq7qjDjZ+Xlh@Uy#zLOClp#pRG}z> -z3T&(IFH-_VUF8yatnM{Z`b+P>E{=$q?RG|b!uV3D7UXP36|2(23(IKNtv14B$I=CZ -z)zgz9=x5do9hbHOsf=BP-R;xZfl&MMVG`MPjElZ_)0^ssOF@=Zc-_9i$TY~G*y!R@ -zE?}jiz3z>yRXzTwxRa|EKexTNdAoT%-!gft6$3Qw5Qdzbj+fV~+c&^`+Pj#&+>2u;$dTs$ -znRj2cst~=?`PR|wUHw@0L~?`zg7E2a5GPO!-PlKm9UQ`R#w~Ox>MU2os3vjlLOb>W -z6v;ZyA_Zt>Y>U)@!By;j2>z8P&dLTqHW^A&v7AM9&Eu^n-#)R2s$mr2dQ-g-9JUj^ -zgoe(ao~MXmQX&{@}3fkzWhyBo%>&sXwIp@(0E<+w#NKP4V=;lgR#qR$*D{Qfz&nfUfd-_ZafN3VW05eKu)W5NIqy -zHUoRRf^sD*x@x)ot#1c}D<-S*OS`xU|9LjrHdh7Pl$O^QeV7eaVi0jM=C~X`eUbhM -zen(G<@%N3X;0@iJJ$4oywqKj0Wxw8SsTqh54}uy-Ma!_R8Z&tGUk(n~t2KH>bmurH -zx~ZWjWI9+oXs_d-#Hu_t4+v6sS4GHX9*RkhfqeN1p0hXRTyX4jvGoA7WUc4{{jpEO -zLt|OWftqr(@k%W*itR1BcbM=6*=j7f}Dy3Xv;PBwvuK3j= -zDgPIQkorJd%z#L+#r`6*)=3_wi3nHp;J9^+b!(xSaW -z+r=5eV*0heh1qPf3U){-6e_}#ZnT&P^RQN15?2stAr8AG!3PZ;Z+t!3#r0m|xPd3b -z|Gc>jvBnKA?3yBGMMkKe^~@-c>1i1hi1I0JbFSSeBLCW$^rfZP7%gJ5E=oGLt6Gbc -z%V;a@w^q_SCZBU`2v(;R#F8#;wOu9R@2Q+?p`&xf=q$O_YID7Vk>=3O -zA1w;ocnwTQ2G^5CiV=*D4CirmC4`b)}{JEU3M894tI7*%Er7O{; -zKd=@R@$<>z=-6o{Ekd|Syj^?ozSBJptge!B6f<<)%st)xn0NMiM;|kK>Lj=xEXj(^ -z!%-{1>sZ^d?`VP6;d6Vif3>iy8P9y@g`nY#QyZX=Q|)T%kI+ZC?ErRhbKDV6C0nNB -zYCLEGdGaU1z_{jqC&n0wHbF?Y8srv!Xk=hI>!axCgeE##+>E;sSYUnt6DwfMd+bjg -zgl1#~W4LjgH^IXkktzt@&WWy#_@)EX+UELDKmgNH0KNmej}jWdDUV^#JR<8qEtf3$ -zUgjOXgoop%G~7rW9&hC2?XnY3v;AUbnzM^F+9_W^@X**w^hg;SH_gjJ_23E5Ey%q7 -z%U(rFL?>4{L$8ximyw2Ox^0QOxj(2dSKRjdmmB_Oe-RyYwcx-JjnH?>2)3fz?s%Ul -z9Hc$0uP)<(KQr>CE^_oH%JlZ1-O|o^=S-0jhK5tVJ=q-n3YcaJI=1Y~xm>tAYMKD-)s78=~;ZtQ{rPTfFMZ5r_6ugl0X0nej>D*Ij3&QOUd?jRidL>-rf2+>({^l^wPJv(;$WvtXgD&!# -zYC6F0x7l+~1}`41pMhX_L^tPa)yu;EP_<%v{GaFY+RoU68yhg06hboA|P -z0wE7+T^k-|`Ih0K-vMw8Xeakm`zzev&Q+sR8RE|(qI@wx{1D^P=HG(%lZ?TEdB1K_l@U8@ -z=|J#hEc0#bG;LW4cBCAHC*bt8D`1Hlpx0k;qZaukIWV<6WewR8&7t$YiDC1ZWu!5ha|b_G(GlapWKz~m`5Eg>@>&YOIV -zi#}c_Dq_K&R2{uxqgup$Uxs&lRpVFe0cHv=&SM*qNs-aaW}jV-`J&6JKpNh;FcpwL -z!k2;HC5z#CPKPL~-*b1E)WSj-?v`C1*#qJFj?UWNs-Lj=dTkME2hUg@D}QNb$`Eg2 -z?S{Rvi+HGBUBL}OF20^k4>1@LB)iZfk!P;@~z1j9Mmx;|;G= -zUtE|e^@I#Vela -z&`L;NBbb~g(D4pla#u7EvQxCwZ;IIECvGzFkrav?5PupbynN;0y-~~WeG3v2dDjRV -zSBl414YH7*mQi(0%;C9M5%2gEU6WHzextIv0~qr5Lz*aImSpd*OcFK_XfA -z)#SZ3#s&HF4;1H9$`N22i%irXFlboJ(vom>*MIgt<5j;mheWi>VR6*U0$S}>6uawO -ze6PA**Wm;hP1~g9K -zQ@fM=9IyH_y+k6?Ye*Z_Xx3zbT&3U_3)ufG?&0?%kZ(aDiZ0!PQDagV0? -z>~MPVetPgdw+j6fK4MqG<~P~>4WYcroE%NHYiX%pg8*$BUTE_vbj3(kW#@w0yefAq -zBI7vJ4i!a;LvCFq7$7VI< -z$S^x@Ja%b6AJ56vXu>fXYo`}(pErI{I<;@B#gOd$JU`%*lZ!3RQV2FA%+FUX!ve$? -z?nn77c0F`pQ6JaNox}95X_s`gI%y+T@H=07y!W2bDekXdDpyM-?q9EGH=<~z-yc=d -z)P0}KBlzEIZQko1ozQj3FD6SYo+*5e_)QQQHhKe8Bw~Hc$$<|uTpzwu*`)}~To`yf -z)JL_y_tuwqsKjlP3^cCf|33gwK(D{h7rwTK<>jq>#S>*J1m9C0>@rEZpTEla=f!8K -z**{moEdOzT1~2W1>p?vmUgYO@N`J+qjw!4Isash($FIgF#rt%a2kf;GKTEl+P*DElXn{KqsgGgNb -zzyTE|?^ZuVd*KebDt;6ouPy#H4wAgx=Apv`giE8X -z@^-;ALhn7W0H%1eBx}6LYinogS}^!BeA+>x=J;i`%&U9&e9IhQrd@~$K+=K5Y!_2>a{5Z!MY!ljKhdlhS#w -zg3U6TU=XIGCGRV8LVUu>__3tDd~xjb8!ihU;o~_xjBgREuIay1buJ~2)OeR -zT%trO3rEaYtXm}Bab{D_M3KfJ=5B6ff%dn1_W^BN$tOF1)BuK=ohLN0_!{JU04knU -zBY%83aMzH}@}H{6H#t={#k1ReQV%{LrXq>vd~t|2bP!YHRmim2rxrXTBN!K>E1?yw -ze!C*4c5@jM36%9R#9>vbB#(!8oTfJ2mx`jOCW&*@3e->-)gL5D}bpAKVpFFc%)5n7lK3%aO=PYP_ -zELXWfDI|NG){-jmdMe~3Ohn)la1PQWdn8f3H_VRbRwqdy`Q$7so#kFuoq|z67U(Z=Op_fK;FCZ%np?kE{BwDeL=Ne`OF$8%O(SXS6`^YLxEP6Imy_3h;oK!E&+?|n -zpc9FD^2Lfq2*uoXg#HAq*fS*&2G|VjXGU}K^RMbxrELZkLgzR#EutRCQ8odlh`Tcx -zqT?Q(^3YzKA7qHj+_JOq6aeoIWM2MqYAiymCzGF!!$n?@PLURV{XQmMRX(x+1Uv^S -z+2unu?=>nz9mWT__kk4)I{5o-9zHJ15C2{gV$=|OTY2+??73k&TlL`95|=L*f{vE? -zK=E5y<1+_keo%pmU7B;}^b$aFJHdUUHa<&i;s=<=^&8IX2MatE9K)8uVJR@E7~;o8 -z@eBx0#7C0t0XNuZ8Av(j?XZkgb8l=+j-d5!8*Uc`OYY% -z$`!~-cnT~4%9-+Q_nqYj*4EZ|+dIQFe7yFl57$-Sb=eOtI=E?31t8uz6O_8HNhVV8 -z@v}>J=Lnd*vssU2iy+napBao|yqa&{Gzf}8Ypp~d4iE{lg3PMGU+0UsW=>Jh=I6(;pg -z5=!U{R=K&Wf_3mQET;l8P@o-WfeHl+BV*uoe}JSCx>>1}WaDhE_I7!p>U+e##|oSAdMxZd*qFUy2nnUa*^{`H5n -zkppYY4&fyS1nzrF?2OR6j+UWF&kvLv -zd49P#Onsd{Nd#PkM8h3VZ6a{oP)tS$$BVmROg13S%)1I3jdtn+nkoKxg<_xt-1>7q -z{KM$ub{+f%I4!P -zJWh-~e*XH0{#K&*tzQoe32TIdEEYFLmQcASiQ1+P0g-G5jW6p^A0CQMaP6GlYk&sU -z`WU|d+HH3{%UhQR3P-z`9g^i_xG^*sB1#=$|J!Wa61 -z6hxH*$jC<>9GAbWA7bG6MrmvbRFk@i=JTj8C=jp5)V1-J^8jY0iD}I>UU4c -z!V@`S-Q>*X6oA!=KrxgOn|pV(wa2NlObZa6Md3gU&0ZJUD;owu>oB<1rcL)Tm?3T! -z>~M%u^R-{)>mK3M36?E!hqF1csJ#UB&&eTgp{eAbyU$s0lreawjaiQp3aA<$Xd@jy -z`UCAMRHzJOA5Jr2Z5NUa2B*?;a(TRx64U1dP$2sbI41I!#XZ%-x?NF+(NDwfSKTIN -z=m>VtA0_EbVTrlKatWDqlS-dh*mI>6!0l>#08c&9`oT=sWFG$ZaMY*l9Y7%j09#OoU(34#~!xEx~Et)T4p^toO^;ADJ@eACrL( -zgX-$UV#%j9ix0^y0EQyYY|CQ@_B)lWw>|JsXlg27&|HyoO(F3xy#ER26eHv%=+!@W -z1d2M|-x*5$jmkT`Y!{$j`T?M~!(3-n|9t(@Ys -zkC%He1_ZN@2vqi^b!|$CRlxncTR(_X*Gl|S^dOgYcmRm^_4gFx%Ie6)9~vM2Xu!&X -za(n(0=#juhrb1t~&dB?~OZ(t(tbJ$K<7v0@o915jy7-HzEN|uS{q1k64c*rN@!qtI -zAV5vo2=KRW-~R6}NpG+gYc&D?i$CUG+J}l(V_i5co-eOgP84uWgmAARiU{r|*M*i|zvKzD& -zv|E0irVPn -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 -zUPb0Bxi&mjkXc#`|YJ%2z -znxcs=aVl?}Cp!?RaTKEUy+ -zG%9jN3E)qu!%mDfX);!S9;nhylJahts2$}$O;)HxBqa%77O7Y%nt~F8HcXsC8&#w- -z=oz;8`P7g2qNG$dT9BYVC4k7~w!A$c1Ks|idMwE_pQnq^B9fN#>5}J44x$ll#t*c6 -z9fqoKqZaz~5F#`dn6%Fr@T@R{U}E4r_bTG0*R&^^z*J0#uw1!z8UHmwKXuVazeH%W -z{6H6SqWiAh^NJD-2If3QgZ`7YCP@R+{%u#yTNNAMS1t5o4&upGV#wfY@Pz02Ld;Tk -zsBlO}IdA-T@Q3bFoGQ6$wfc_m45ytwrl -z>Bf=7TE#;RTm!lNjvm=sS_##iw!Vwi~_aDosZ{GP!y;@Qw8@i$(+ -zvf8=fZk-%oQmlQ`(}--%9;Y1M$})R(%Fvv=*J4V5(RNXW*ovJ=MFVDy_dToZc{L!6 -zzjot(x})c}Xc{HkXtynehzpcH8hK?`2yO%y7Mxsg;Eo=)oY`u>t}hddljs%g^zq09 -z6&&mwMr1B72x}eSC$w|ZH;s!wZs0{f29s$28 -z3^_`e%ul&|(}*cxUC|FXB$wNB-XqIZi*w5Ym>BRbm#%P<)?uP^&r$6HwmeCrCJ4vEP#zU}a}sjv);p^tvzD=| -zM;wUT0Foaw>u3!4H%>|rswJ+x2in1QIqFZ7als-_ex$RKELp9rI!Fq=e|Z^R^?rCx -z#1EKIGncQ=lE>?_vqs{{K`WW&mPf)6)PkF<)8qj-2_ylVtK8x!kX2D_I|{=VHz61O -znmCW6mT>i_VL_q55j9AfCI`oWgmdin?V5eq%^Hc&qO##tRWQS7DG?>(;8vm;nfN*%b*3}X@Oo4Vd7_qBAm-q(u0fFV -zT7o^usY#hjiZ6J*bS1QRvw<50`VQbugNmqgu*}`wt+DI-8K;x6^BCn8m%;1al)kea -z%nI2M{dh)#c8dMo0vpkv~s%IhugG -z$r6hF*r&4kf*Q`&Ex(?@CU=_8w-F>1)+!#UN|GVDfm9*wmMF2T@Yi`@lY&MRd@QBJF#3bZ?pq;zokPI(aa{Qn1N!9ibI#p+*i8 -zxui{1@59)7z>gH_e&joklh@NzpfxLgK;ny#8x>Kt2%DvF#vtGS)CC*AJ3Qr?@uPUH%t50U*8*KXE$0 -z?z8Dew9Jj&X$;S~n9sRGX?k}|0g^O8J?&v=kBe}*JX4j>xIpw!N=IKe%xt1A+~#f* -zsE^v=s50d%ReW0%!hwy(jUM5GNn|2q^I3O*Q($+D6v~C|6im(P18> -z>8x0A89d!#lP5-yK){4K!&dI6FnZACJUi+f3yu#RZh_9XMv7ZN3FsR3F$ZyQNX^(~ -z42{M9=7Dc==6w8;W@*~fKAxJekeXX5uzpV4pz#M|(G0BN=aoO4%{8P8DHEN>Kt -z8&9b5|1|`Q_C0Fc>L&Zub4=n+x -z-=5C4N=PFu459782{g7}wAyJGpo;YmPMOt?{~)Ol|=i6rKP -ziWeK+YitD$M7Q28t~VXn>OPIRrhGq=KF@lSc-MjMnB~fKT`!#WSK3~Fc>B~#vXW=K&aGLE8#HQ;W$*iRn*Sa+2*~GjGxWz1 -zL#V?hOd~ERz=1@{XEo2Ss|YPcZ&l6ZzQCqh-Xqpoo;b=$h84SWa0Fv}qq$QM-bfbM -z-z22DTz71B+7_QaRjd$tiE#@R<-06SiA&51X_)`+9^ia@8wJ8)2t1(BnZHBXv-i4~ -z*8Wfya=RhXTStv=+wWm|VJb!5q;4yQJJHq*Ihl6IA==weeT6l!g&zBIfR<7wn(u7c -zgFfOo0t~oS6XDZrxGam$ZrXmB%`l*Nhr)~JkOKfTmLCxa*LO~VDQi=ByYl=iJzk43 -zK<+OIK4G}<%CKd1L0VfCIW+t7LOhfE%93#y&Gjiri0u_<9s|)*r)s -zR`23lufd)KHd9u4!eOBqLhx7BGH|V0ei^T3x -z;;=MyXXdR^E1+x9ofbYmdy?F{Pr)(kWxFCkSD3Ztt@>TJj>2WKrOhs?rma`G;9NRw -zECo~|t@NjIe?&Do5SJ -zSV5{-&o6WvQFf8dSmlIMk;RPA49;3*nlx&NuE{lytFqvNYp<>3s=0J9h|{1{o1H>O -z@g~M|A?-CN@4$oZHVP-qr?@6oX}gFAr2!y{VWgZ5$VLt3Kmjn>bekMkd8=7lY*Ey8bY1IwpzS8uU*;~?0nVSw91#qSJYLF3EZ`pc$58V*lgfFJ-mkw=1~(e<0F>9K!ah-{tkK_ -zW=SolI1MW1d%zGM9+abLX)@#Yq>>Yxm(WnWBz(FFNt0BMcy7zel@W`iP$=Vwbwc_it4P8iOCEsC`p^*!jhDI4!^vP=2fkvX3ux>k{YLX9kpA}I58RHEpzwjh^x*5U~qdFar -z?wa{y&_0#$2VAPIVsZNlU&pV-ucApTdu8o32fBcvq=~_zs=5P1 -zSU{A)pLcowdk%VrPvBIt#6Y&1Ctn!$F&be@u6e@iiH}>lQ|CINX%HNK_quDZ7^#*m -z)ILiZqeU+0Xc@Q;-F$ay>>*qS_YDk71|BEurC~*NQY{3k@Z4O+YW(Hiy;FLThm(pn -zCbokd==kZUE%q#@*uWhq*IOHCT;w@7XFqO|GTT;9t1V%=%BT+tGf$=8#vEv -z*iwZGQ$>~vwc~QO(BUM{uT=scVXN|elP$r&sNP>rmA))T9-p@`lz3u^%_u$|GbvC( -zccD>g(T7jqerw0LSrR7EHc~GIkj}fdFEK!Jma=4z9$M8Y?i&2dxHCnHs2i0S(ID_d -zAQ_hC*6p8av}L7yTyBg&8Yfi65#cw(LbWJAHxHXE8j%!c4Am1HgO;@F%8v+%=XpoN -z>lM4Z(QfnziPKhW3`~@pTX3#Lg@adYNqj>+N;{Pm0MNtTN}yd0)n#Y;A%Bt -zM=c2~do!}p5+?RoyOCWs*%2Oo<6@A)o4rMgYL#ROl`2PeGnVax{MX{4f|&8Pd)U%l -zCER`bCZoxw5z^C!Lr)w70b7`hv4ci2cZ6;>v@Z{5#Sn}E -z3zK6Xhx*t&)YLH^MX4FnKEbCxxOR^Ai)rr+4KZd%W^ea|MGJbrKsxkkr*G-9p|p}f3n -zD~%xhHiy(tUbcWPyP;^9kB(Fva8^wDLR6W$BhT{JsJ^jHRHTo!1RrI^O>S#L@jTZ4 -zc&Od25_cdma?{y_b&&iQlfJpYb%uj-p>k&JT63UOrADKg2-0;4&h~7%DwL02K>Cpn -zK~|u(&Op8QeHfz-K-G>Em3_PeiDh;$4R_ZbfwszNK#(kTl+y*#Ru0SM@kr!?XH!0y -zpMM`>30WLDXP|Fihtp^~#c3DFi4`rawdmN$Ip~#ZZF`8_1Kla+^RPX=q@mF|MHbEx -zaxlOGm!6KP_EArb*e|PDo@pERRbQR=^kwjIe0E{@)KpvV~caLyO;WDkvmi -z9zbFL8vY|~k_+*y;*3}-;%vlmIo2I`-8nxF1$lo#PhnZXEzvj(h<6Ot8BoZ0T62-j -z%;9PuZ9;W#J;d@cvsNtYIv&@!mX3gCTlNU8w_5nv!u*|eH$9`oRZk!(UbQEUI!=3} -z6Jr~%q+%&LNhRY<8C)?tYe`-W -zEMzWEBAY(jB^%J<5(IQF&j}C~ASl$=sBM;jH-%3p#gJuy!&nAS86kP4C;&AWTily# -z>`7qA-~1yxYcnix>3$q|CL0DhgBkXrxgS~9#pLU%C5#xv_rCcONR(17!}#i|1o+u# -zNUH&uL#j8bnhL*YM~r=PkxJwr({3z-KfZtevFKAYrzoaz*KM5?NHRji_mXa*)ppdlGr#K@7L;2S_as7XH0V5uf?b{U~r#TT-}&t -zV_KN~U_xcJ=W%#}hgLFEYvtziAzPyNoKJJUn9k6_6eIizR2_TiFShs= -z?^^hhDAg!1!^Rew1e@LlieV|6Gi)}Pi?outoPSQaoVWlvI(dwrplvJj0Gqu~$_bXgH5OEM&TNer&$^!ptuD{3wqF|qg~KPRB&H7@O+^yNZ(pX^%?$kK#}9QgLoaT~=? -z4RSMkV?rJPemon*g06+B;FPLJG9+hj9Y2GihO&p(51-(^YjUScw}h-J3TH*hOFs!9 -z{(bV8k;+8(t<#nUO&CkKB=^@dr|5CHdeq8Mm~1+GCaBoJ6{D4xdDrxk@-QVzu3iz* -zA%UD96FBc9g9$Lc)tg4*6suEDL8MOl6=99qaG}w43B#)j2?Wi#5InXDiv`2>qSh -zP8pNfprdI)Q^Q~?1XQTLYg%MyN7I)S2x -z1#)2N8|=b|>j;wWC>G>B=OhsJ`sZjRB!%D&AcF$8ahH1nuULoXRmrAU#`oS7H!rE_ -zflwipzgL|Gq=t?;HBTndYJ%X*kU@m7WvM>2G~c`hEsmD|ZKiyx+fek|WutM*%O)n} -zf?h{JTe&dgR#2%3yTn;SHhI)X!TLDN3OsZ?&mRRLdM>OQ>+NubPRTTAwM)xsykC`; -z6O#=C?CJhcESlfHmkpo9^avuh%}I@W`+w?A|&;=<~he_SKmWsSxsz;VfM)S -z55<5sYG$J)iaWP52PK?pi_}jN6M$+kW&5oRZW-RE)MBy%pzDbzEd07`WSYrAG&niP -zU>>96_l#bV6$4$!Yj>Bc0KJ|iz-!Z7ia9;8My-6+J%_UYXOwPW#A6Bi$M+w0c7a2~ -z>6VxAH^^*mvd-sGpVm*Thq(YAU?U$pN6#uJn8KgI+>_m)>E0I64OkjumM7;p;`wFm -zRI({FmM|tgQ<(rw_arz%#g6h?zA$^96mPnKDBwz-5ROWnv3c~Xvp)xnjME-pCje{N -zhoLVsb1f#f79U49xoB_0mx(6i~zHG@Ky49FGK+ -zyP4*lm+rSZyfJ -zlWvcmlbd7Q=Qm~p_YI3>&e+EMbWW<6%aT-wmM-oivSc)7P3EIKvS7oJT)MN`wA~s4 -z;C8X#Z@p)ZIXS7_b4)(i#4V=zdC1&V;D$#(B{Z%bN0NMIc>X~!#D4LhbwHWj3NB^f -zeIgJ^^=Ix8p}KMk_(k==f}DF>!p4`xdbWt6t}I|~heOAEJ;gAh+$j_t!evLqhpMj| -zQxrJUK`59+<83Z+hF7=juUA2lu0iohe+8k6nv2~#)j8@mSv16~eq_=!Nq$9VS+vYD -z?Z6TjuuxYB^Fnv>bG82|2&cYU4n1kI&N=lg(NsMc&>oO`^-MRidCQ9heB{WDa+I$i -z*>!qT>PvD|3=~blWu6*LRG{}@g_Z6TBUD@R#WkMqQ$?LXE(zEc*_SOJw?k4JS!#3& -zEcBni1Fgkr>@|5pjzq5G3$?Nqj+h -zQ{6d#T-SBfOe+I$(vCu0Z`V6oHI*0L4_NU5{ro&27DfqYk>qpT4n|3|&J5yFmu2}#vR&=?H3Q0ge -zV9L-HU2GO7PBu>ouqzU -z78zMnB62nlnZy|(AvHJt{9KhbWYfnPY=ATu6M(bfKFIEW)SX -z)Af+FU?Ik!h{Qj)m7(ZaR#OuUcUu-!NuqUhpd#^>03nzw8nf6B;@0<*8cs1EI!?zH -zy-$A8o_eO(OV*7tajKFWfhDIWxNap=?++W?msl~}_BTN-vW^|T6;xuQk~INoNIoZF -z!o=uhA{kbu9{_FlHeX$~O37V^Ps}JQdD#0CZKGwF;&*HLoD4`rO?0?qKdn$+2_{;A -zZIR1b0$X?6)1z}ST623D{JgR?B}>#9R1?jLu%2r69)SVmSw4^~Y)DLDzOrk$*%a_A(peyH3{65dDh#SYCyQYtW(kNgLu-_=LV0SzufHDH%L&qA}zH|KrL|%;M -zPAxvv2O`x@P%Vk-7N~=aBH(*w0nurN9yaXCsFoQw1UDoKy;gDGKOd -z6r}x5v4~Z*Ua}JXAdzY0v}7tQZvwF?O4>}QrDdQKsbmWr4d3FX4v*md19W>OC -zrpS?gg7V=C%&L_N#X4ak)rX{VVYfi5Dg1n2V>QWVLDOe@Xpr1x*Bej_`*b^jf;*0_ -zu1~N+TWE@US!fURE6&DIxc`zw<@jMPW!x{j*ff -zV?_|h^wz*p+GflX$rJ2C(baD;BP^TW -zu!HbR(h>eNbNKU1Pf$Xg2BhRC^)yAHy3D>{kL<=cvz*^;hq1|^NiphqN@{evR^>T@ -zCaWaBg$i9r_j0Omgl^bu63@*Q(Qd-g&-u3ur?abuYc=TBv@TJNQ_fCX5s7FNj}k8Il}Os|{1Av3L -zL?q(r*Hq2S;SsEFTL} -z0$?x{3N|Sc(Vu;-*xyi4-(sZ-I_P;S9A7ULO+X3v18j6wG8`p5kwAwP!>~ev%@KAh -zyQS8-DdRxCIN9Oue98k@y4p5C8`Sb3nNC}v8mrOE*>x>zQgr%=&M3*io@S8N3WJ2q -zRJM1llH{5dihEOFt5?^)SmYpiY~~y*2gr{vh)N;{2N}vfo#M;AtXL_ZbRN;L%9=zA -zadzi0eEOi)pZ(Wwa|bSlDEnYMuxNDs5}zdkBz2%_@lwwxhHB -zQ>8Ji=S5Ixvtv~4^36AizcLsftK<@)*QL)!K5O8FU^nX-P@HA_xcyv>FnexEY92M@ -zPzD4K#8cXn%Q7>BeF}Upd|%r!Z2C2pSen8|pAZ_a -zgg@Rj`0tYx@JF -zj=n;!Q7M;CC|ahPQ%`q0Myw-Acv2r=?ol%)X(f0^6K?I;01wg8vM{>p{e1CpA$-j)~iVOxZeZS7s8SXr?;IqOp!^D_shsEn^eGG2Zd$ZA2lXtn -z&$@W=cy?Wtp-fUAgdak<;Igm{kdD(TQG4?u&TYX4v8P%O*g#xrUHX*$>D)Dz=PK)~ -zvM2R?hU(Z;y7*RVSq7Gz-DTW{I;&_C>bXW#jIpJSfB%oN3rqODTw-3F*CF+nz_kvW -z2Lqg9NB1@B;HxnN4Y0B1&5#4!H!Dgf9W8zFmuV(?%o)bOfX1K*x-L*0L>`srhagB8 -z={vHpy^{Ro-156ZcVmgUs$oN46gDJB3Y)Po_z^cihqm=nBACn0xP -zP&=~~i0Oz>0bSKZTB+iOjvXg*p;e8y7(6f$XRDZsg5>?N0|+3YbW7&PF-Sbx`T%$Jd>?TZ2wq29W$+m5KvTfI7+qUf{+jdRX`|Y0lJm);?{SWqUd#|;x -z>vNFE@^|_oPBfnPo40qeO#!w! -zMDOwqP@>l8^Qpn095X{=xpiuRYvss_r~h|#^-Sc4EhbSuP`NJ#$YA}b;HM@@!8 -zy8VfH+K}+79T7)&w_^!I`onY#{8%HXprx3hDuGNV#0U`gJhQ+LmVLOPWry4*{in -z(tm1}$UDUYl{w`Ee&AdlJ23AbAiJ@oc${(!H=SJ^FIg99_boGDt%omZ%2sVP^aO~b -z(qT>hk4PFbs|l4^m$L3WiQBOvm#kQ`*om-x`2Y!5p(55!eGkfVX%I>irz0DI;On>& -zPeOmdcpNoyfYJ^^EiRP%NuolIBxDJ!N|ou$h5{1T^jAh^+j_La16Z~8--P>o)U^v) -z)MBtdHWcKLNC&!?OL9cSl|adqOj#_f)@VBBNL3)klrBAt-PNadZ6{~M&iF`(FWw0j8j -zcmFN{(Z6vWUf9zmcCYiHCC|P~VS5j=7|PLySD2sMdBKA@`z0}d=5X8C9wUQi*I%JBb{w5S%|hq| -zzX!NzQ?q@6eqqUH1q|vMA7d)Lkh+&9&~sJ|V!{MM#qWDjE{8+yogx_;xV+Rl@CE9} -z_&2t+F?6RiH8b_Dk)ZdZ=yPX%MUi%W0Za@)NSzQYo0QSs(w*~*M7Mua29b9f_E(=k -z5(F3JYUR%2ITl0JuVN4x-7Hq=w=X{C!9H>H_Cw+>?^$1Ka@l8fJekd4>r -zSYAyw+A+gA@+Djl9c=M$kF-$^O|La2vpxFsU>|vf5kY27_VdAp@RAM_ddL#Z0drJr%F8+4A>sL^ -zE-#7n{}SAV*~vto1UG2GC&7)4Dvq7Q{FmUSL*2GsmV5ya+-BMUf*TU(*RyuDNQ^Pt -zp{Qg>_H%zr=bwKF?&QA&w)F{|~_}_DOJyl}96f65J;;NuLBa*(bq0n@X9<4O%CY7G3@kDr)k`>qu-_@kwx> -zZLbg$f`-Iv|4VSIM>v8>N3fAFs(ljNb*2s8>X -zArdC6Q^=2#AhKkA+=CcF)Yun6X_+1B@|AliEy~uyNBg!>)v~xr14N<71DHcbL(SCD -zyVW_Cjxgvu+iTFP9RdhT6kkIfH|-hnd+ieh#B_D`qb!a~c(Tb3CfN3UsfmZCg2j7) -z9nM#6C6(LTGWVC@hEN6&+-3lRJ5G20P|k0}TBkjjwsPNsBQmwO7MmoW5sP?PEbL1o -zx;0o<8mmU5P6JKR60zdgPjih^cZT5d4DjT1Py%ad8m*wnNcF%kCe$4x9*S=w{uCmH -zRQkn{!^_Agh3fOc5c^PbMU&5Y7I -z)f7u=Pz^D>O>Rok+HK!8(g#*Se68l?^&uVYm*D$T>KCJIsS5ZT7Q?UN8)0$nQET6y -z(J5zn;U>$-urwnQWc=OI>pS=0)l=S?=;<^Hq`JN->Vz%BnN -zaGQS#RSXjcO9u$t33>p5`@-YpZrW~(ja%3<8lGG>($KK)k23Vph>#m~?KUNqE+2)S -zb@6EbFW!KIuUnYIa)2Uke@9(5RrJ8L&su-^v=ETB!WWz!(BIfcGrZkGb2_`~9Hn6M -zT#`)4VFt(ZTHpJ>NO808Ks>i%4lz077fIxUoCA#$B91+qX6jGjWODFpqb3cD&i>hG -zToNC($&ZV=e7kqz;l1bF@IM^ZkKYZme8B85fxTa5QmGLorjUW$NP0~Yg*<^#V?J#- -zob0}khnDsZ==vCgz^KKbT7!ne^b7C-;mxX9o3qoX7|#~FfG?W5O6Ay-#RG>Z9M8^X -zlNzoKH20||)L}GxjvIx^*Agm;tqw>gXpzVP@8234zu+l0ZZQ}rP+f5JgP&IQf2hEn -znW`;DpI{3E(dI$^`K30pYH>hRGStnOhUJi229;bmYwou#(d50j46A0k^>as8|Dh#s -z*dH)B;}-N43CMZ&LRwZvA9ff8b=5uN`r|vCwF{VqXNa_`9_L%QG>FIWHX1I*%h*-5 -zn7{ra~ex{QhO7WOBd%}GgnRMC -zka;$y9WzY`y5B0Dg6^=UkOrUC*rt@x22OT;H>cVTAQ4Tb+6E#@97>&9?v`B={43L^Fu$@7Gxeuf4PP -zX(`JS^<%^!t%8s-yLtMdMxc>8}0*x6q0 -z_SN;^b^R7_zSmCIzW8+aq!&7hOe0Ifh;8d$zR^L4Uu74&sslJ``7)l?!lX#~5pRr_ -zZ$JvwqP$&Lay6RRLFw(LKhJRf65N#}2*&9ReE&;u!`gwA0tjv*+tyEloAN&d_wy&g -zefD1j_v58(snEqKfZ+Cc!KrI{NDkb+`#JXbe0${_JG*!~l{I!cwbQ%Vb&v7BZ?V{< -zLG{rLj$C)pwbI&@+^%!-djH%MjlJPz{h>+_#n$!uZxp&+tZU(=yMYZ&dFld -zVbi7RMwNxjo2#e0=i58_=0b`0i@VFq>-qWR`pa9#TZi|{i(@DE&B<UX{XjlC61 -zATv_ixEeIBTzA7@FYVz*Gz8Hxugxk^Tx(rp=-WCB&5oC)fBo$?ng96PPQl%O -z{cTU7B3^4;@c;F_ACC_RWLGs2b7uoE!56KCrTPON$Nqg@nRop-RHfuq+wAS3m#kEZ`olIRh -z_C&qW57Mn0npfoD4T(kq=*|qv<>*Q42$n3Q^q4>`KU4|zJFB6=d%Fxy7kB-q{^7T9hu2Y+sZD)y|nv#@qfUgESe* -z6;WllVb$Qm_?D|iJzoUIecl@a; -z0ae5>ENYu!mD>6w{&lxKM8p_<*>mRn8>>!Wq$YC%7TpN0VR#`!bq)@EwGk)VI?$;e -z`kcDp?z#IBTEG+GZ+x$*ljx;Mb^m%B%%QnwQqI(dDl0Jec*7ZXa<<0MB!S!(ep0&d -z_yZ4ytq9ykcx+qbb-}!1|fLcs%i54o2;X>-6 -zQotJ&4Z5c%Y?}tef(~1rP6a0PXR&?S*@1RQn0Y~75K-R{w7<+l`zv%;k~Oq8whw=a -z1(n?!?~WTNI5_X=2g-6XP!#b3!3MBgz$3U|1X`}nD&&%+qEnyYeD6YH9g??#XHjHd -z(tJ)m3q%-ar&Gow1FW@XH0gd!3IO2d#r{Sfo517G!2$rd?-d+ntrp3&!YO$oN{^$b -zW+zp!RY)57_2b?>G^)HMdarL-LMM;m=y@7CJ~BQi=_OgRTC8iI!kobt -zYHChiK8I_PYh==dG~!&r9dEKgHhj%~e5UNrzw9D9^({BLLW&SI6L5%Nm_XGvhq6A} -zZk^&_NN5&?ALPw&#VR;s>}z*<1^C;Y`QW#32PjYhExG`I`$ooZUN-X|e;XY)%~ffp -zi8=z{ZwLJ(iXQ`cGb_d;#+2xiE5<`_PSd+p!#ButCsx0DN_F-#ZQb2>ixB!bT_)A6 -zLrCkLi??<8-Kp$y!NKhO&g%6U?=3!$+GYpe`)SjQ -zyY+%+D#I8>zGDT}%M`ceKE5>y)tya>PTX|(!Zz245yC#>&TIq6vuywWUX{0vfWCu~?ka<<$acNV&zfY895H#_+-Y>(w -zw!5|3JR3Y^RC(9zzxng&Z;vfZje_&Ah5nDfjgMXMufMG&84x*}nQ}&W=5}lKAmLH& -zHF-(N{Y88su(h?hVcK2R_H|5ZUa9l&+K%_FHZrB;DJ;b5hE?j2DB-5<3>Vkp7eKL; -zIMUJHAb!~o_5&Ydc7H!#OtqHA9ftCiT$Oi6Ka|La1e8MF2h+JT$^rg%?Weyj<7RR9 -zcuMy%?Xu3OPlo%nR5+^3ge*b2YNWkMB{WZ?nD9cZ!`Nw4f3K?LV+q0kr -zt`#)#8#9PU9#ebyI7X%lCJ880^=D}{)Y?-R#;aw?hihC&h)Y=HPA1j%7Je>FRCy+I -zxtC4_J4{vf>-wyQN%*dS)8x2L8uZO^U*Zj`xUL-p$n!gpr4*!I3&;5X(!A;`w21V|@b8%(5fn5%M$`}(Q -z*FKniLwXsy1x#S(3JrC#bHAF_;tzh -zEhCPoU@Tq+xGym!N=~Bh#)w5;|1`gR`WW)km6D(Qm||3l1UxJi1d87m;BVu@E813m -zfOT-R9A75Jx@&Hmy6GZBefrx4#2@TuRlI;l9t5~zhE(l#^A~hU1)K0LJ}{03`uScO -zSN2Q&m8eY#3FpEhoJ<@X)UNF?mzQ`%R*+>`pfxeU9=zQ?Jrr_8ct*m*-?zyfjdn>$ -z6qKfWZbXg!mKUyVhr7Vu_7HGV9BU(Eq%6f>2M$cwekgShoZeR#ARlBetjBA -zRNCxE@#6AjG{e8Eh%VNSs$d1FDu0Ce(%D=Vhi<~aALu_Xg{r_3knZx)Z6&3G-p -z&t@&Qr<@K{#8q2-&%1iLKzi5z7?IDUmKH8+4{^RtL9C>=}d>hTZ=lOm*x3oo`TnTER5m1bD3;pYXMI^oWy0omB-H{)b<=PAFp`Tg12;^3h=HpIJ&*iq*f@9u~Q3Y6Ao%8EMo%?egmhMTA@jZAxh?{%oGR -z4ddUpeYpGQ80nq-(tOVN$)wrFM%eVA-Qym4BoZPjKKZ48OveiZmv}Bq|JjN6vVT=M -zN#8|N`dr87$%&q?vID0x@@2?`jTja8QlDbQM`tS#XHekEzvCrbMelsVGSRUzaMIxCIlpFH38I{MfIPNk}WNjH!l*g8+Ve?33UA@l<0e@_vvzI|AUhfku&7O#K1; -zHsxZ(HS68;trB_`r|WGF(pQCj1%Y^0gCG@h8dQUtolc -z_ln@eW|_AqslGAuyGp3v?^l^DE_{ioX*NUDM3645tt1mBKRiPw?t1rRa&SUEN#n+f -zfqve@#J61}I{M_dP5$M#%@w}u8_Ro+?~~tVVR!-X+kBMT -zpZqq(Uw)f#jFnxPWuR=`(+*)H=ab)FV;9B}57F3H8n$YZnFtXUmZcS56c}@RbN(@T -ze!xMBOnzz<(nnd!6QlyC5cma=9>8ype)8MDf(-t{Z^t9;4DS~)8hvHx<`0|>0t2e? -zXmlx|Wr7VIo&XC`c^_R^Av^4LIRdkd<8?J|vBvwU|L8d2mtL2BSEINOQ517#r!E2b -zA1sN9r$_RW>1S7sKZ_N*-k|5q)X<{#B~GX-cT93ubAl6oi{TBIgvJ32SA3Tm{w%-DCCh(S^KDqX{I* -z^4OjHCa`S#j8Pkb*lY*^I0rkM{zgWTcEx}WK&CG)p!bH+`38sxda`&suybX(h3d-0 -znKsU3b>jjV;sgnl#O9vSQj1iZzwZ<_vfD20@h -z7Kq%}hN;1;=5g`H8kya)Nf0DVSF6C7QvHXQQzZ4iNAmvJ9omjXcTa6lHv_AI#dNCg -zD;G23CT@m|CD##(8lNipU8xsYgw_cNIs8BTc8KyNfZvvh!8@@|$hP6RBGh`ecuXBF -zaLACH$GN#)qGi9lji`7SiX&9#@q&CWNBnA~DyuuXxu -z0l(D#y054fpf01&ixVuZU9Ck)^ZIPC=Av{w41#!tPHvR^W!@v97>+pwZ*K!qmHKG! -zvdQ)FC<*Vq!?2$`=f3gg0CL%(&#~czzmkMjhZYQn=GJ$oDQ?sRX7n{1q870{H~0xcDm+RiFgM{Z(toF@*Ap -zitAfbxY?^~u0obSWu0Z5(zG1IpZxX~J3~TiwV1yA)l*$%iyegIhFZm8tq8qE6shO9 -z5PxC=!fI_Ep@6SLw+CheNhgE(b2XL0R(zJZYxk5eozxI3*GqeqeYqxx+Lxg#wY

      ?gmiC^7iSZ|9#W%bKX;cI}KE -z2&x^Zu5FJp1Sy|TdPp}~-xz*78M*t*Z?k~c`<0!00{Cs^%1?e9{mcOzz;Ey1@|XV0 -zZzC#qwuDDGU-3{ULwwiGh7b1r4h>5J{9pVw_Zk~g(9A#lHq=i5zr9knM!z|@UAXCC -z(+%LaSqpHMzq7D{f1UD#%DDIFI|7Jh383cL`?jI5`BR`&!R>cL(OGf71af}h=r)FN -zn20)tqH7cF^2NL2b~W&QO*7N6;haNxDV62q)&Bj;>s3`dd~ -zH$4f)+6b4qkC`<1DghMap~L3? -z@Y_{Y+nxwxDr7-DR0cuka-fl=k*aEQajAv-kfV`Y8?;{xbQWa*!B&D9+dhS~5NuYI -zc!u8V9UcZUEJTw+t-wfO&Us&xFy8wZxC9>!Z|PufbkB`S-%X&BftP!AVaIOEICg2D -zdcg#Ljgw-7fC&Xw8sEzFk{{Y$%tRo+K7ByO9lcl`;~!feC( -zb_V&-i579iR_2I^BgWH@wQ&2#IY(fNlh++Ewz?J3+b=K1UE6A2EM~d3^;o|!?R5Ic -zynHRSc`(qGguQXIZfbox%@I4aO}eDm*p3t)1vX>-j+(D%iep;8qepMY5-rFHYxahk -z&eg6BLj)uvK%b~58F-Zwh>1F}kzs_EUkX)0=pl7W2`*?d=0apkr96Zqta>vxZsaiC -z4V8;5+Fr4qLbK@fpwbXu$MkK)*-Ct!Zkeq2ingk|5{gn~WN%)U5+Fy-%*PbiPt{{FpJK|GBa0Z6H&dS~FY9FpT7FsT9v% -zF}V(;=J-z8BZckFu^=jXLPr6CEG2_cA0M{fmpV8>=w7||*{~|yDX!h3_r%KGH2{24PuPhgGa;^kM>0mIpR1Ep)7mS$^Zq4GVs%_ -z-Wz_D78QW$_t#w5{(`^pa#=E%xEEW;tH|>v=bHq+fB%Qc^VZd!+fzNi -zNKRDpm`DonH1{x8Z_oKyQ+7=lKop2`G2A9E#I0v@@2=mRj&GJAKs4owA`gbQ#=cvH -zO4}C@)8lrVKYM6jV!ooV=Uxm=RmK86$AIl1S>h(Zz63)jccb#b^sR_j>&J+54@$4Y -z)O)g9N -zTzG!+^g#OUS(kauR7(4~LSg<7gz=9PYZ-R$;CwU=5o0FQ@MK3)I5Z3UV$Rza+z$v7 -zpH_{uT-jeC(9h5%MfM&_wXvhbG7BlAaPg2*hg9F`K*`I|7|h1Kfd`Edui8Ylm@$6V -zriTdtH@JQ060Km5f>(sHU}=1Hiitj_v!g`F;R9(7^BsT;%0fIt(n$>k=379IHOPSSWayey^Dh-*peT7BVg;RKc+NkJ2zlha0Wa$ -zjsrM>!Ac#+5dT5lV;Cy3n&XV3B%a(Fs1yh;-bAdGbV`CIclhuF}Q|&|sa~-1RBsH4#FhNoQZqfq*o(SXf%+#1%Ah=M|nES~kpcL0qspWLOsPBOMOo -z{bjWoqcysg8yR#7{ZCW>2y-mHQ}jyyR_hWI5yjr0TP4kVhWx?z(6q1}r*XUh_cnLn -zN%gTG8GIG}64bKzR;)8wz#NYNX{dG|_Hqq<40P#T7BKY@AQ14Q~M4+=F#vxTctGHiV -zbM1_CV0ljX+pkuatP|wSL^5lOd$awBjI3)(pfKmEsDSw(%VmzoYQF>g7^d1`)JKTJ -zy6ye}-iljCH@rtNn{U&qEexZdZXe3lwQ{1bDn#&r>Oo^Xyki)ys*NuUI)@#lRVrVszve?ke$(aX%C+tYA-7K?y;FtKk07@()?bcAD -z=!On#AhwLS3?8SQc)t~XbP3h0Boo7o^YJj#*l)yZZ|`DE^t6``Y0HW0Kp7kh-Aw^pBQxG1 -zUS2{#lM08?06dj*GgvBFUs+d3*RgxMpHttb5|+N_PA4A?JS8!dM()OMw64lv)vm6P -zEm2M%AwS~=452^NkOre9HUA={TDxL=1lwCaB5H(2=nkIt5Eriodl8UJG!dJckRx@o -z6+?{|DzVsXye^v?OJ2~OO3XB2!e%0Ew5+7qR~Gx*fr7Swh=L@Vz8uPKP>-6g!WXgv -zEi5YG#bL~Hx{1AaerGJo-wRP_E&&lGinC3IL6CgG0v0l`dteGd^jH5;l?gJ`<25U@ -zH`7Hrrc4@!4*X(xj7@iY0}G00cL7 -z^*S(9eF_Cep` -z;0M!!`ppNdQ_s*i|5%g)Jqk#-mTp~$%`!UO53}tr69zJBJK7FwGKJt4y-SQ?$e{FW -zy!=COdkW8jfpzp+^^yYCbTPH58gqGK;{l0f3*VW&ZzT0{mFA!nnzq0w3;6O(Zffpj -z{g13pqd&-0(3X;{#^%oNL>J&?p=RwY#y2|04$Wf=sMtq4Sj)oRPZG02Kai~9Q?eU` -z*2(r|*w$AkZ_$FJq~BvEv4U-#L%2~FWd$gbSvGTtwUQ(R4jiupfWdb94LcCa8z>HX -zN#p83sCpRr;iseW?~K7o@bN+18?dpzd_DY*1L>HDF~Cjy^WJmDqe4eLy|JLLn4^#? -zR3v8BnTJ4XZ54c7$|8c1a?}dqq>W8Kdr&{n7%Q_X}O&DbXA<$B8+J| -zn#I34srw12Di)EJ+ycA`sZ{g4tTm^W(dTq!PUK+Q8B20rG@>7K3{L2IMz7w^&!t;q -z)Yv~EUWNu6$FTiApu~n9wN)UUQGy^*+#*@Z_{?ai@>y=z8Z56+EVnI7u2BE0f|*EO -z7v83~;mJ}lueAOs-<*y3uf$hYj&rqJlzlfuD!FtRLCDH?-Emvk#nJh)Z561D*6u21 -zAU@jr9Lx!aD~svvtc9>V*tt50y^cCpAxdf4+o{P^Y8F#&ih%qqA3w`PYT0ySpi(%$ -z@AX`%Sz@6_eDJC8)2AR$RztPgxoZXJK{d<8)Z3GtR@pP=Fc+>;%GUQj#lEV#DJSV| -z5DAts>wxsKBU|E|I@niJ-dmNdnyf=c&<{uMVZ`n=Q!)o%OH?`0L`G`>%F0VXoxAYL -z>-|-cpb7Y9p8LFo?ph5KT;WzT92$2??NxHngPT@ryDkZ*2fHsMFi$TFIh`0Xa+QUDpbT|u!EwRFl;4R(U|~efVJ+~PjIU|^ -zm|!Z`zEFMO1>6<(pBRrc_GTk(&4~Pd8srsJJsK>Aqx`)+bCRUc2-sWN3p{`^0e<6di5C}DELB>qf}GgybfqPyx}!J>M% -z90RVCW)wyenEiBNpO_OMD+!77h051P5fpDcKI2H9$E7*Y+`?q8K;S>JYAztY^6~Fi -zG!P0Chmh@Y897SUb-)IIVdmd)59@dZW>jf2u^rDI=5LyGk^;zw*ojQqi3;fAC&s!T -z`1{KH(37%wkplbVLc3`p(K@LrJbeMk*kl->th@DR8%P}AxUf-3&)lr-;>YJ4jS%-y -zhR#BxEtzw#QeJ;m5+?qN56Y@c7V-Qsnvm3!p&Ee=ewEwU-y{r|zgk_g9adjx!Jq1K -zHv6UZhjJ-?lDeeH83dbeKavJSsmT@OyinyEf1^J%ZcCpCH6uCLmplqzPoz4x7dhZ4 -zgkJ?*0ZgHTq}JZYRAqYLM(55Gh`CYt7hHIR?z+lng{7#-Z9J36#a|h#&3H*Zx{n1n -zhpf6E6}ioWqq?4*^6>6*5h!Vj6URr?Y*5aPJzUfpAIEp9Xgwz~GiO(BeE| -zq}DA;Enk6*TAl@Eu#vK9QfHaNm7daOKLi>o6E7adAo1x+fX8B3ARbVCbIlfK6&r0c -z@N!Q0P!x+nj!hu;5R2C@5QY(lTfwy(v{a0}$u?O!91`T+kz%8;DZ}UY6a|VMwK8+( -zyK8wD+*6G+2#|M2I+O({k~@2 -zw`*m_$=b6uGho)sTu@_)7V*>CU-#tEBL6sWv5X-&5}+kj+2C@E)1ybZTD0Q!s -z_bqxZ!Cxk|og#3L1C^@(8BHx#amr9edT*)a{}|ksbpV4~Lj-o2XZbpg*l49HF*l0k -zm$04Q4}HsZ${o^h#lq@cHA142U>gO&*AT8u-3C0`>7?E%cAkWf9ywD+iKFO7$stud_l#6}OIa~|LBxvb>4ozZYlEx3C35#Q -zId?G%cv0uh<21oJ*%aRndwXM_!a9`U5--nwFuoUdcdzNh-nfOm-It=^{!kvsS5CcY -z3;T)GC)w^Z>kBmX07VKtbx-5kd3}>OKZ*16RP!-TAEzx-*wEshZU5?9(sG$XQ2$;9 -ziUNpGqXm7x`q_9=gT{gjXIycn3TW@+DScrP7KcZ8p)F1 -zo{>9n>m${%Uo=r(o~bP9LRF@j(I&ZhTj+=MgbsFZDyI)T_=#|^h@Zhoi?Q2sO<%Hnc^UGr%Y+6ae9_bNC10CQbYo;g$g)+}586_fdbZY$iB|-6z7` -zR{Du>hr45k{06ed`+D*h;f4et-1U$re-UnmE<%}38x<0@T6HxiS!B1STCB`{JGcKq -zxMg65PV;ISw+Gk&2zMq#Hvr)dEt}Z`E`}loZVO)lAl!ogLAX6-(ud?EnxAK@vt_p) -zF^Hw&1@-t^*ja`)$nfsXB85a{mWxYalJsH{9%Jon_vp9M+U$48klY)+=z}bI#5TNt -zK*CP9=+f9>gwmZ2d#uH^yGJ6h%>FWU;ilB%Vi2cBbdXeC#2Jr)O21#GQ&oqaja&Ta}uvC8@F*~y48etzkw&i3)xxW0x7~I7OP;D3|FBt>Q -ze*R5af=$7PYIqBDNZL4L=h7e#j))0BxChgPm!MdQG&0ZZnSc=#2vA<^Bwg>onbSMe -zytw@)jumz2Kt;&QQMu#;i3ROJHGJzea{JqRbqcR#TNk^9?XIjMO}U?pAuXgp9kMl- -z@aG&IcVe?)XZUEth%YCW+eN8Eu%Kaf_IjWs262X*0+`AJF)2j%;*@{5!Wom -z{<`3jFOZSvK(%A7F)q8CuK^Xw>QK?Ql8oKzvm_|Gy|JMTZmsek+jouPr<7ECjo_6V -zIIGYeTL;$4L5f`X20FO||J_afx;kB1r6X9R$7=YJyHO+-sJn8lO-Alx(W@5=tj -z1Jb~7^{BL5hzA;tcP1FDytUXoc9Z>ShUkpscho@fhB}r#vEqu79q|D5`^+fdc_>k -zaaVn)yDKNE(6kv;) -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 -z{t3$yVgi~Ze9ShrV?F -zhvCjA`EQ2X#}<8*?S({lf=hz4Pa5yP8E#{e|6;gNC4*)GoLI6Pt!&^yW#}=Unm@O_ -zv`M9UH3Cb#+r<@Kq&kVy%>7ELpVjVeu4}c+BjPY}fxb6$O1R_B)%bHs?|}u1eDB|#(g^ZBJZ1gs0R#$qMQxfuy0zXMpVcBa>NYdp>o)*HZ!6cHR@RkF6LlU@*4C -z;;OLO*VEBVcQfQQu03#a^>b3Dmoz)hy~k6{dCZnKgA<>3vJ)}047bhy -zX1J{>qyI77n}Z7SU$ut+VYpF2Z<_HenVA5!)szm6?e&M*zJ{}Cf1=rGy(N+@gVPMm -zqND?5?0`q=k7h90u%|^dC$wkz%CzaU{c&M9QaZ!-k{6?KrQK96oX=C^RYdk_s6Ecf0f+sh@t76E&RW?w -z{^mm(L8dAHc%Go}(5b~~{*zi%jOIX4vD*!sACRUpbrrEng(sG&iMUAOAB=!beT?ma -zqwStc6F5c=6yeV?JW}?nj{ww{b&RGB^{*#HxeMrydDPPbV}*WNGa{>+2Pq99yXY)Q -zT`cB|s4(iDXS^3HRpShU+-C$+B?Ae5Hci(m+LcbX;&OWd*7nNbear#B_W*^K9mT$( -z?sdlbB%I^LxBXuL|K->7VsfqQLz=Ts^hH|vzc8o1;bqs%;E9>r89Pd*4@2?Pc+9nj -zR?B@P(W>|;lLl)wdU`@jA8+`32-JPgJ0*ebdXM_kIm9r+PDfpfP5F)PYv7Qe+VdRB -z%b;N!PFkrG*kl#g{l;?(6N1AwF%Q!qHhT}n?BE5PoTku<+ -zr7JxeBh}c(r(q(6BeYsm%hArL(F;Ts9s6Zb=1p=Lf4i=mXFoJXNOa_%V$Q41!gQc2 -zLk-e7q{hqS9%nfGfolSS$DMl=69~_Rt{U~^)-F(Dg4MkK>xgx$7IHLfJOtp?`OCo@ -zW`;CdIrnfTE!}^hZ(S$Il-9Wh2mYz_s_lL_a-<2l*i;NRC<=Hs8ku8fsVY7Ffz -zW=O@o50cxptS26ND=#gKC9Z-z1WJXN==o$Zd%uv}7SEybFSMJ%%lJFYnjf3BX#r^@ -zNGl@42`_CrN$x7tPskpYD{z#h{w*2#c -zkqbvH-3hL`-nN~Z!hVviZM&6SX342bM%(RM&S* -z@9?}9RzVA90mi-J2urEM;ARE6t6Ofj!?S>o`z*cRASkq1bk5qQStGqzc}r`7irh0S -zebZ$RF%B3hLZ{^0?4LEG;l{43NE34?6<>+MWjaL -zn0e_RqH*IYwuqHfG+QQYVT?G6d$?zyVFyhLfDf_2szOK(6@B&`r=MWNy@!nU;|>^F -zFtsxBd-maUUwi@KE5%{4stGC^izSI}-7Z9{pDR!zKfRSIyeP!ncjfnPgZqiJ;@mAGf -zAhE7=`c3mi_)Vlnz!h+wa*?1{oI22&2-8o>)XDc7@74eo{BBy(U&1id9*`$e`G)mW -zmNB?bw{jSjQJK8~cLmTkim_H}HHsG`F!b@cL*wP<8hjnoXcS6B$jmV5gXnmlOzhu# -zo$h5%o9u(akHCHBpcnxm<&iPra)DV|V@}h~`A*Qgy{X#@K2mUX2#WE+n>rtpEsy2- -zC6J-*6I5j;(;QfLvF;za?&C;0nwOyV=fi^lCI7J5*#`VuBi-h*T(s6i!y>Y7)U1CD -z_c2ks?XiTNT-M)z47WEPy{1Mn2DcA&xu+|@$?;|Pjx@`89O!9oqr5B<$p2U5c#=7WWIT7P{T1s -z96Cw80=Os`;A?hEO7+|~Nc@;ucNNSqSIZsEKt%MSP82MhoK7Lk7v};`odJx)BK`Zo -zrA`_n5e+!rref?d9OjF-4dd;Pvpk@%`W}u$JJJu%NfujS3tscRJX5S}ZAV$yowXXi -zsu;E(L#&A2F84|k?i2n(0L$Zq;@$iZT;wY6`jJ34=px2_50r)~H4fF)yyC`GoU{?I -zlia*l{)zu^Ky%1t;hi;@X5f}4h1?v%0c%b?F<=jtVoJwi{5`ibK>3!=e0B2ZybodJ -z$^+ARmXS<+D;lzQn(^l=H`v6iBTrx|Jw01;d7ZI_VS8UZEGZp(kn}2Xxd^1Fc`Q5g(DDiUw$wmoFM&SoY(V7aH`tnZ# -zzko@KxwhE9plM(kpE3CYC!MI>BuXr7^gH6$B -z3aQ`#)6Gn}FyQK(>Q@OD%Gw?dVBm(+`3gAU_mzTQp9AVY7@vkhAgkFACH<|R6w0L{1KnEaREoCF-OC??pV+zbW -zCH`hua6qzuF7R_qP?tiD@HuyeM@bRD!|JiUt-d~cr|=^?_(|cnvF5kLbWNQ1ZOE+^ -zcc@I?D3X-YTQ;)bVT$@#mnpuJYSe-+00U1cL*x8_4dE6 -zEw$X~@=4;#VJjYAg1-xD2$3ObyrB8^%O$qF;W228!jm(NaXF7XsmT7jT(_bK*DGsg*4w&oiS-)N1?@6m>U$WpCUWEF(F`COg9 -zNt10Ojc@u+3ilY&y-9qYFh~Iof^W5POiFGH{UR4F;L~owQh2G~s;b7W|BNPvuGU*~MH3)f#BSYgn&4xMz=44(1UskN`2B_}=&dHp&&VFeG;BBpxMPv&GQqa&$Vk4)QJfI6}M6c}X@kuDNm -zlFv}vqo@b+Wf63tF?6Pz7u*iNrkXpU_X;RNA^rMp5Bbi-7is(_=A< -zLr0Ms)qj}v(s|Nv#?F%Bg|bhG2f)dP&!Jl-^ib*I>4PoMIj1rYJUT}yDn3mw(Hz2} -z%1*;S*@6u#emq1-dFWf3F@gsM4haEC7|n*^KtagjvXQ_6=GcNa-B;*Yx4VzZ$U>xK -z{Lr#92}2X2`v3`9^=@NL$xf3t00O0RCAe!I&o#jl9XlZgbl_SUJ3JE*CbP4tkehM= -zgOFbo_ggb(g^*jQGQ=MFEi*q8lS3i?W{S{1jRaSP80JL+pJWEhq?#D#QoYBN~lcH~# -zSQemN=FVHsU3uilc5)u&x)bfp#WIDnmW2t;!ayhi@rP*%7KD3BA~8xQ?Zt#QS2l*g -zw*5m8C&izlW1ZIlWyOVI$G^vpUia^U!M4W;i1SB$l({S+(q777*Ev<- -zF=N0aZ@QwqJlmQlrC%gKS;>vSV}!2>boPYlWW!W7bH%Q)fbYYoD<^#lu`WGcRJ1QR -z9s;o3A`)kFCw2(wZqMd)e3xttMBhN-BL}rQ1&68y7IQ_IiI2Qq1{;juCVtm5cYLK( -z(xI%ol05Tk%Mq_rrWI+iMYtxt%ECzf^Oa@lhcf6#pUlF2E?({UYp+$6qM9|)-pbc6- -z>kH?4448r6a>^nD%^ZnmLJi^^Nq21|%i= -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 -zR391Wlt7mvmF^-CaR9GBGXZzg#O&; -z^|jeDxky7T#%!aJ0NJhz-8WqDnrI^)XjdlrQlx}gG-C!rUaXy_Ka!~Gv)Rz#qkRgu -zqZ>~oh=3Z1DG)dOEppiy5V=ezQKI4%Z%aViyeY<0F?F2cAEfE!%X{F%Yn6BF<9Wl>nvQTG=O67%r^z$mrq0MP%7LtML6hq$cxk~#G -z*ydF_5crERKJM8EdL7l=rEE$YoV4O8w_#9_zCR}++FFE4E#TjHMSXk$1!Pj(^+?=N -z-TD{7Htq`2pal#QlD1h^scrAyVGjC(1WZv^J?E~G88ri9HJR&CsYdYiLJJscb1`7+ -zbvRk}eoqXrmX&$;Pdr0VgWhnK@ZF{l;?|}Wg6phN#+F`*5YuZb?13E;4QDv0SewF< -zcyrtMiK&BPPCXcoqA(lasWTVj6k>g8-U6pji)q(v`h7%DOG6vOQ%6Oga)~^Y%J1hI -z`YP%H1bLhk#>ni^G$vZON8?|ppa=u1{G43nuxsG>s`1H4W~rGzf(&Y?oSa`E46N*Y -zXvyB7NJL~?xYz`*RvG_TB4e@PA`Mp=2md-A2@DCzcD7*vUFD*Df(qAPnCizk!PD*i -zr=;H;oBp1ChF~{~B~_rp<#u@B;fXO-agG3lcabTrRt_#Z(T+MVOI3?E;lJvjlaQMt -zg-T$#kh?19ar=h=9_bD1Wd5+DK-8yDfR|sa^v&DZ?F|Y7ElUW&4{HD=RC%kygLNfZ -zf#~4+@)sMD+I~n~0d|3QUwk3=r1C@&hT&;a;{?6~?gt@*t9V?laL*eIqAm4u$A5-) -zl{+jBjZIuA!eR*bV(oOuWv7TR)iNa@i9`8{n4!Z!v4~6Hvtwht7ZSfwa0ND>B^nAN -z;SWtd4j-FmP{&j>tm8w9`F2+>cN2BGyJZ9&G<~NfYv}Vduf8wa^r04iee(E3uf1Sq -z#uKmZT;rymFNnH*9`0Pfty~+HvwwKNs2LK(Mo(qbYu}=Ch!CH90c|_j55>|+TV_6* -zS37~u0u#{CFS>q+&?kRPp`mQV*oBtbW)QE0iFJ`l*2)o&9 -z$9tT^O*Tg!M|XxcMJ91Yza(pGufKDGmj#NjC0C1ApQ0&??{|m4$2S=twdTdR`)o(% -z%Z+#PAxheYb@Kg$a?*rlUWv19_1nJaVpZ4l^1<%=5&J!gpUiR}()(%4gM0J@0jAuU -zk9#_lmVCa}{yz5mUA-FDDe#U9LzJ5Q#sIih{de{^ZC@DTQhWT?X_?e%(k^o?g7T^| -z3$;DB`L6sPWlL(luYQp|hHdy~B@;cYsF553_J&s-_m*6rwUL2k -zFA-42m(1cjM9CLjSJ;>)8Ai=8(nnev`-Ja%!Fa#pOs?N&OKDaTIFsPV-_|9((f7pN -zfw$M@J_kcNa_AlP_$xzu+25ocO`e~Rso(ouXC_~riFt%L`a$rzs!A{PecWqxzCXtU -zLV`h?2K`VXp(}1!ryTcP)bE^VsAg{CNX<`;@#5$GK1lVMyRO^zI%s{F(cix13@2~( -z^njV(OwA$=_-Hnn-Zm6bmxyV8UhUhLd#NY4{v;u=Musal9OFncOI-Qf4eq3S{x|9x -z)YN}<>*B$a`0r2K?viV)2#cOg=acp2K6$IR8Q{L!+|>q;a-lR6A%tC`!9rN>+l~GpXQUJYJgSFR?mm@5~+KWGntn6hg1gho5={y2Yv;u^@TK5lA`v -zw;V<~x9fjp$D@lE^CkFV;CuRj5SeDs^r+G{oF|`9VrG<83o-x}s-c@&XKKcyC(Otp -zHW3gMl@G%&*H0O6I!$_1D^~vfWTo@!I8zr@G&iH^UPtHUsC&K6-)-?Y(kGN~ZC(zD -zY~$tA9a~~iC@u@{UnS2%qFu$hWRr58f3<78G6U9lWJi`7-A9rM-_7^g(+7O5_Q~L! -z2oM0@@7^7Vp#CeSISUB+19GA1S9T+#<|O>~q+zov8hXBsZp-OS9*%IR{ZoyfGkxwrWxzyRHTCdnXgYUO%2 -zw(hNV2A>wd4;`BnPlg!mGmoFIqscNmV+g*Sza&<;`z3K@n$cxU4Ruv>pgsLfCF1CS -z)ZLE03vxcCe*&uef_`NYc)L_L9cQdoVjU`Ze?lxx<@el6S4+bmMqc7~sg)DMxaeAjV(Ur`W}{mgw_7N -z8KwDrrpZ(_0Wf>8i|TCholE_81iIhj;dM&}ekn0S0&EWtnbC%4fh79ke{R>=SbyW! -zGH-VZqTn<3F5`vt-gWHK($^hR<54IPzUBVKNSm1X{z{SKrsw6HvF(U7c#j(+cDE4I -zhOb<`BjW2*TA{YRNFU^iFHZ?^{IY~0LsNc_9X%69C)g+OTR97&4fru9DVx@#?E^u* -zL^_h*3j9DZ#)?Q(8tJ_sIc@x3UYfJN&uFgp&vv>r#(o+e3FZ -z2*X79(x>kt7L11aCt7Fi&?Ob4jKd`+A9#cr~*7`=63C1oi -ze^UTxUwK>Q5Px{#goiyLeVQbB9tcZ&lb~6p-P!5Aff0+y%A9Jy&R8a*z7Id -z;pA53tM$`eqv@sp7Oq;IgcZg{uK6(PO_9X~lN4AAsIp5NT9@P$|=N4Z=zEz#-&g_zFng%r85J?5V#vP-s&oHV9Jx%ajCnISxF!D&z -z8H~4beqW8lU%d;o5zIP_5A$2|rUH~++H9^6Mj*{xBk=u6-o&cZPl_S~3)V27_-xEZ -z$g{uqqS;L7>o{|U*_eTrcNm7)K-p`|^lW}%AQxtT`Dzx2p90iykj}|6peY+;W$ztz -z-=tVif6y1#3d*yd-fW;C?fEOM-#YK2JE0rTIxdife+U;QgR2c$?d?qPht!7iK83mR -zoL8R47R!1ih`Fr#GQwkmvkPRR&JTY^J7@UWbPjAffVUK^d-EBhlOkbqFn|f|5-q|l -zdn_4Qp2Q}+!c9v(|NDByo4-xu!Oy8n&q4yutHIuNy-7#t56s`xN0K*AZOl-bko#w6t -zv+x8q7*vxPm$4DBuoV_OsglFJtmEAmv3r~nOGUxLJ4E6PDnL^~`%PS4=*g><8h=u) -z4?HT*eM^qB=v830jeDVfJn*fkFXWV{mo=%&f%g_xu(AWG{M7|{kC|O0{@%}{WY84rgss_3`#8RBQCY)a1A#Yd+wbg|7r8DK2&87r= -zaeq;lD@f+Te7G!p2(9}IR~6|P1AkUwA-D5mRZ<0%B9%`ENDFyBUE@eC7T9 -zbjvMHnvet?IeWbd*m>2gDQC{@B(@ -z!$sMTp6a4hEoy8iV&R@m@Oe3c#PE&bhuwcWfnFEw0~ct1!_~vRkDxY5{(zzZ9815q -zZVo&ETUl9s{lOYy@%|H60sCEfdl8!y1xKc-3>a=J>s(xGm}rjdy;f~yi}RM~rh3_N -zg~*aw6oJL8AU|_8)OuBZC%1>g5G_g=VHcgrdo_vic2uT`ch|HawWt9*$9r3aLygX! -zI>hL`QqJ}8NJ=zi4_9YLcW%^-BY8 -zZ7ZF?y>*^ROo#eqaaDv-mx%Z@pb3E1g{mB%I##FO_%1KWiRRYs7+sK329=joll3Pf -z7=n$hD -zeyYS4X4-6MB2T(bko<=Spdaw)T?~4z7QW00o;}vj01mGOhYQy*Yxyhjkcxe}&7u9A -zeHVLP_TgE^Laa4=^oy&cvVc10^0Hw#lJ -zqKu@O*#-87-^AMzY^bNwNh^XomD!0FV^wSCw^e#Pg_580M$d1}l}R^dg7D9=f4|Qy -zHaGE8ZIKBDQb*kVrIq{c(8F?s?A>I#f!7j$ktMMzT1#=M#e0Awaa>!}Q1t3^l5oF< -zILp@E64~G|?1=G`U3a@2%m~G8~*CO7FZ|F##90H#Aj3t@DVH -z`_Y|qGGdxN5mpNgdn4ffu~1-V>Tx>0mAIz@?ySTp#wGVcm4G@3!a_XJYIJ#l33C58 -zQQymMbd4K@%mw4+0&DiejA!7Cn*BSJ#Gj-3HsjU5AkMYS2D?U^G=Kg%-O{s0vK?wQ -z5XQt54V|oJI-c27Q_TST8K`i>^Ef7@&5cG^O)x>!RvR?`O}^(8fYUA8E44JCyH5*+U9J=j(1Q8{NYrk-n6K#hfL!p5;nSx* -zM#`2`A_k(63&RC)>WVceUJ#ksx3O@j@Qwo^_wE~rT%te5|HSo4SuKkUbs_=+j#8N%r8>=@-GscWDE`s+`o~hDZxga=BxZ}AW&Sodma+ruv3D# -zn&&qe$SzjVhmWiK4Ly5M@yTTQbSe&w9#@x!AhAxPLC1k?2&M|K6M9nXdDkxub4YHn -zD*Za7@5p~VR%zf&{`Ido6GI51UO4%{{1}cs9?KrNK`$9@@Z_yG#ie;M^a3}3oSO%eH;J{=A^agqqs@y5F`&=W}l-BJSDg^?vW_ -zHTLvtRxg8m(f_1-THsSD#JKERyLWc0V#@c^q^MG^*j|$^YIQxvb%lT=)7?LFANRZ; -zmc-*3z1_9OFEAKd)s~Bg1d+YXoM|07BMsT%!H^1lmPetl;HA=wza(6-|G`!RHPcwz -zox8H`+KT+)O{%S$!!(M6x4nb0=3w1RowR#QAIL+JgLx}yF=jWP6L0c!EE&sf4vLf;4B?)i`!TvcK{4p3LwFiwKtZzlC -z#wb>dYj|u1veARfdi09u(>OdqQXZoy!*$d#tDpVrFu9BT -z9Zmbf#V@((nSp?Nhk+zHJ15jj8_lcRj@R_X*Rp@fnb+n2mxKaiF!`hGpQFeDScTR2 -z)KVylOdu0lQ8-ga6aO=J@UPx+elh!r@BwS(AD;#+%!B()R~q3A)dI8bMII -z4HR&iXYcWT3<5P)HVTJAA(nRDyCq4v$*KFG8%y7~mED0zD-5T_=Q|SSE3`tP-s&n{ -ztC8k#N4~_sTutjIPRnqklUE&GHEyy -z=VJD&cdSnUA^&EjltLNVFi>6aq5?-R#k!cuB7v2Ra_C54@ja4d3IOU-L>lW+&%XiF -z`mQIg5k&J0N?dKf{kL|4=ZaP -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 -zm-TI>!Zbx13pHJSFj7ArS< -zK)FCHFidsMSp(iRXlq=`YdVz5J}rU?w4M2@&)CoNnSp+~9wZ2$XS9>KK%0u_qsp1K -zkPDxmP!CaS{-3`IrjXkJ!|I;)+?V()je;p`u0;e7>@0pJExsO;Ea#VGC>?AjRaeFox#1Ar~gFBgmNXk`A+zhpV4KrMBEfTg8&Ygc~TBZ|HcAhJducx>tcQPWGF!T@@x -zEIfeX$RdRE0qaLt)(+|1Drr2f-M6jGWdfEAJ_gM+rdcDrT=QAZGWo)3>bFe7$TX$py5A7=@)i5b|m -zpOSyz)S>U=HehV39yjURg*qq#m>~LDf7> -z(F7D3X}i*G3S{UGj6U347AUc<9rPI%uu@G{?E{hQ>4BKHq_iz+du(jTmc^VXXcqhDEXg#Vrwhv>l9u!7GUi$=)rdBs1nQ#< -zLy@^r3w>IM3mVtUcFY*#EHG(c0^dCMD$J$VbZj(%TQa^>12l-C4J)I}rx9EZ*F -z16|04;p>}6j}i>V;ygx!rjs@xN%m6zZCA}(6&v3cH8f#PqQ+G=$UtiFgxC2(%u+Vv -z+)Q&cY1;uv)dsL5OOk3x1zi*U*NDXiiSdo}ow~BblB9$rZc$UaW>fzhe -z5H})^Cs^%=3$&&1bB+(?eQ@*{Qy3Z${RM%!P2n;`0GNou=1hxhGI@M)v71G$6q7J%Z`Jvu#TlW8#>i;W{aa=pC$k&(JPwfey~m>|Du1+?a++w$V6j3UvXtL{BUFB3OpNR*8mc -z+GNKCzQMod?A)>dCI-Aor7N7Ib(rYfQ&hWv6Hn5p31YA?lxKksoP^xE^{y((tYz%t -z9tWZ`fY--lIvNB1jg!)VYKbfDfqJlAj{4JNjIYR(@7q;LmaJA*9aMzgrR;`hd7PdT -z@dGB*%;oEojPd$ttX+69%}S=Zr@=1-wP4_CG53TO~^&x -z6X$W%60ZIZU#xyc_sNHSS|btqQZ}Nhs$>`-C2nLK95D>o=B~u| -zNvWQ#AB-QHPm=dv(ZK>#F4#(3E8+_~G9R-f-(KSb&2%OjUXMx?Piztk#2gRSH3)KE -zb4Ul7Gbvq3K?Sdut_1MzHddo>-T@40PzH6TmAN^ZH8yQK<8(519;4jiGI-saa(1?Z -zSpi-d=*lBAD(Z3on7*`1Dn|)W1=&2nxryy@{9UaS0ffYPb-6L85jMii$dV_!98JK( -zqz1))98+F>K@DebmS2xx^EuVm%b*boYXy%~A<2;3z*ZpbmMAf=@Rw;UlaOKQz#UBDs5WHZM8~;zojkH+e9^l5xgy9ijhfp+*W4 -zxujK59>Z9Bz>gH_cBVUzl;V?=PL>a%QkK{%Ewnztx~Zu~Ps8ZG{UDg!z_j{aMD%k1U5yoGbAr8O97MJqy4j*%w=I -zq!JYq^YsSNdJUjljz)r%Rfo(sBz_!A0#$TEWg(=NBrJ*WN+jN5R$21ki87n2X84dC -z%+R`!=Na7FE7$oXT&+EUI2jl}W16vPrCu0eN(tnUbdW&n-AM(Fo0|32+_=(H; -zHD6UTqGfIzPGfk?*%ZzV>d}W|3Xr4$&}k1tdt3y?rOBxcjSEB%xg2!AV=@zU;W~Aj -zKyXwKXOW0qsmxoW5Do-1ZuATt=8ffSryLSpcn{DN>pVa`Wg9NnE~ZfDD*|;2lB}u6Ym`BMm0U!5Ml$>$X3^QAU%FpBEF{oBRx_U6eP!KZ9Z?arLJ{cQJ -zg?6&MH3j9%WM`<9EC5C=vCi!T28g{X&816NL$~8pM8J9vFG|oIYa2}+pig08MT4o2 -zsOwGF$HmONY&UR -z42{M9=7B%u%=wTd&C+yi$9UP -zzC4|Mm5@e!)Nr-v#s*0Qste-CfiqATSHPsMCD1s!_z2hOVwscb#mJJ9o24YSlc8_@ -z0hDy>Sfr-V%ipvmh~(L~8IuT<6!JMLaSVmr3F2S!>5AnOhbIA5HpfQsQD?W^C6bso -zT(pEPFZ>ClC%TGy=H45LlLt*D<*v1Pz&jH+H8tdd$If;2YrWQa7{%E7b%qb#_2PX$ -zvFs8Z0YPYY1_};2P+`7CF;Hw_Km(MNPaEi|B;oUv_&O3$WVAN_8c*b;2;A0;tuD0t -zqfg+nfNw|mo_c$J%xyuIc67eFFl7Sk=ZQ5;t?suhZv;(|}bMdzAEL%l^ -zq8eoo-va9o_^6)}*{&UD`jwoQA6`H7lC0zz`?)r&@d+iGb2-{}yUc$J90Wvini-nn -zh#}Nr6Q&Ut6yQJ=pO~E$G}g(owmhiOcg7HUSixsK}jx)Q{obn>KUfIn>&~tUj}|~7y=I{wBv73>ukL) -zrnNtmh1_mP^wvul-;YLg~Lr$h0a)^#P6z{MGw$NjnkI7Q7MDv|J -zdC+?tM}PtMVj@VI4VPu{2~FD%vl#{y?@)O09C84F#_}Tq;o8QDE@f>pZ1>QaKYF+n-1V}(tr -zuZIoKvRe=Geks`mL^!lIfF`@HcC1gwN#xOm@)U`Y;K6X5p8RJyux7+SHn&t8=ctk) -zE?G<~Bq}DDbye|h{fj(?0B%uvBxAS_VY9p+mRdW6*Q#oGh=4mQKy0@%mT1mdaN>dc -z)Fq^__IUTq7&pg{k*f%kklW0Z4VoL;+ -zYSp{=)@!gQfz6cE?5YDgp$}&_P{PFpi@okyVH|u?oz350zRxP1<#2r-Gz48JcahjV -zN*uNg&6RnppbAJ?bf<-nua;Ey?o)8gTG_4$&=qE_d8>ZcXG3{1+0tegRj1agTyQRp -zHkJY^kyiRs2|uEmoLGY`#L`nThQkR) -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 -zw=2KF?2v{o1(WTvvcW0WM< -ztWeyW0$aSg_QfIx$zwC;Ryja=d_hwZDL6<__URN~?q$VFd8G4*hE>)iNrzDW}5hqs)G_p2ygHiv`rVS@nr<(zmwW0&tH^#8cdhLPY -z@-lS$QTj2Ir#&O0tTYL{=mN&J<;_gE#D2)!$1ziLVS^GuY139IhgX}dYl-UbL*oHG}NsKjLpr#-OZ!Rj-L>%7txI4WX -z!gIpGe604~U@jVc2rGIRIGf!TptaNIdJ)|qtQTrtN9_{pL|GL&$c1zE4Aqw5!?pm5 -zqsd1ru*b?vloH%36B4d#W^RCoYl>`~y{bp=Q6)ou%E$I0!67A}=WKoBIB!%dQTk41 -zUYRKX0(NDb8_3v=Inn&hfe~pxnO1)ibL-RJd*S=qj$zZUvBc68KJtXncqQ!duGz<& -z)nc?C0COC5xwcu`HTkv -zs^kj~td-nEiXq1&Le%hz2feT2HB5wZi}6QCHOYe2w> -z19Bf!L^pLIQfL7wKX-*>E=85HAbIB?kpyK|I7Q_I7obg9z;e@~tvRS?k$u+1i@&q$ -zstjF{`XKxe!UUIvZGd!~R*Bl17wK&aHi$XZdcX$4QtQsA>`&*du{>8*8^fGnWjX=5%YxdOtw2ae -zWD01iCele2H+1Yci3=rayv1OFi7;D5R1_TVj~xI238kANnftG~C^#1;A4wlQMhSp8 -z>^m1nS*g3&pW<}d!xg;2s?Q4k>H=~*kFg|bCKm{PWjIynV)jw(nX?W3F*|1@CpZpWdaINe6Nv1PNYFGhi_4J!wX|s{=npStBZvJ2wt7G7_=WL+9;uxIBo6l5Zgq -zCL4TasWKX~I?AfoOIt(myZJ`v4_Li36t1y;b1MyQTOjLrpGs2j0e -z<=OmYFL1!3gufrRuwSF3NVaFdSE*4b`*u#njTfJ8VXy&45@+Up{du4-D`u=0H$z -zct{{=B>GTB0oSR+hQuMD)9tu6KJ|+j7tgrKxuG)CzvV`TXd&dHPrzx-w_9V`Il3e^ -zKmb!GK2NLsdG7_QgItZqE=QG>WdLD;!j!s?&3Q3n% -z!}x)XjKOdd1ETBzP@?9fq(e>OH0FHPrWW_txULYIwauDlV#HCc$G~P& -zX|X&i8M3D&_!dvM@UcX>*%k9L4nUBk4h7@aQWtipB#k}?H2Pw -zPzU)9xcuhgwT7|A29zd1h6l-b<}_UqZYk`W&N65|Gq?hjITh8HldY#JxG0cn>JCt^ -z_-D4j*<8km+ssPS`b{?UM}KU$6C*m}6%*3Pn3xa}ApkXbkz?E2aaaN#yzLzM+vJ!4 -zEG+rIvx2qqM5VSN!|an+1gY!?vz*c1eTv$PD!`PR${uADLG+| -z{bGT4mW``fpo5`&w{olu_nhhCcS!ulv8Ik4iH?eA!ECwE8?u}EKXZNCegwn6c-#t# -z@;j@acF3S^syoxGlN29OURbl$EzVn(N`=bRh1C;p%gcqCq9 -z70dm$h2B_{4Ar^U`9D`r=Nqz;|(cyXB8foema*A^0CPWi(8yld3)>Yhapd -z4wG2IC8S=#vC0npLsTS1!`rWf`H>G1*Msmi1-%@FH1{4FD4c5J7o@0A;0Uduti(N8 -zoO`JUcgtp)2M!%fb9&|pIQYlZ_kulwEW^1*V(JCeC(iYy1BLgC|Ga#Fmeb)lV+v8A -zj1;vieM#L?;HXf1Tj2mV4Wf~V$}O5RREYiy;SRN%Bt*)ggc?W}0gSqkDIg;@O1dxv -zS$^6F**f7UwARLwI1x>S_W9I;@j+V3e@VePJJD-_>H?KWBywy=V;MXOQs$bcGm*}h -zn3zJB$4yRxDvOIrB7KD3|MC4-f3n0S%0@jA_DM{i)>Luq8Hjz_d{q5UBs#-5g0&}^oj`#^Bk;@(_)k(a8ksnn8|*QFwGf7oBQ|w=wGH-qR?c{U_M$e -z%u$epdO>UbQkcLKPqnC}Asouq_TCSv6l<$|yXsBI9pxN&uT{Sv0K}&5gI8EvBujX1 -z-c`rx{ty5E@k-#4yFeckw(4)mc(Ip -z?f~ncZpST{M#msIP#p5Cf -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 -zdr`NPCdVR`hzv2#yyg#)^oXWF{7bdsP3^YH*R -zo&a_zs;ag|CC_L?_Ch&zx7q*#{zwjdBhJyPF3l~|wjvul|?HuV|H(hnG%`DhKSJaWK;=J`=iyt4>=Vd5JQh0){ -zVYe|xI)jcXY`x@Wzv%3xg -z8`JDrnM*5@F#X`aW8tgq-=>N_H8@CI?Et`tYpREydhfdc--Gb%ej?8#14Ixte%E4~ -z@qYpp2uIV?cK=uwRIu$6TtWZo|=nN##Sb-=i`t2@KCSvmdL%nVGbQV -z2BBqc==3nFd92#>^OgL3^!z|?0HtRnEUW8V07(6S{YEXe|bbNUlbI_ -zz~j>0-(hfq5}$tso812$fv1~9$zr~ubqX~OU8t_ndHE8qL8hKT71Drn1XHrf3|@zn -z^7KO9pL^LwxaM1Kcr_C)`h(v-gl+;!M-AfQaGQOK{YOHx2y7=$hU;to8H0bj%X&T@ -zbY?!NJbg6Ay*;je?*tYs{gr{{BuaZ{#oE1uSs56800MRU{h -zd&{>My!ZG#3hNzo@8?Y~_MKA%m?{?m^Vw*I(8VVE`{d7e?K(ndp?faeLAoE0`YQG6 -zrb|szPG#XtReSGUR*4;E4dthjXiq8=FdK`TFRGvMyLAGp@AC_-4cD#s!QQ9ZM5fOr -zKa1AAj>?`fR<-JWwpvP`ZV{Gcy{Bls?zX+teN5;0wUm3gKEh%~a2z-)K`+-^w8BA> -zC}URb=H1|4H0G0Dk8!)hWi^_i8gPwnR9Z61Y`;O!VE2!mMw`Si8gr-l1wRwIqO^## -zHOLDf$6x|iM!BaxUu}2~+xt&9^ZTb$n$IEc -zxsfNweIWtP&Jd#Z%F+wXROfpA_p38-ILHnw5fBP;45%&B+TH%kO3ot{h1!i737O?F -zegb01$DD36uQkU$N7Xm8o2S>D-u~UbPLS@K5g)VxPnCM_n}!_zN)e5Z^H}F9294BF -z;0$DD$q3cMU3_Q8x-%c)fgK@VU^4^53J@{(4t_>Spn9-Iv7gcv#8Mpjm6JzpXa1BUEeQ4p>GM4vB@1IC&QSOlGTKd)ZVjtgt6IUT8L{5Xe>5J%yFXH@=XYe)A|nzro&((M_oy;!|huRQqO>v)P|eWxLD=5F~-zI -zEzQSbzHQldHsZQ%3=CcriTU|Ws4*`GL2~Q-{+d0fFqGh!%cqY2J!ZIK5ujPI(ZAL^ -z-hd@-BChLK0R2ZCI?vU|+2hAI2fg#YX$2rmZh(vHFcBRJ01S3x;wK~(i}#E;!h*5* -zpMZ6VDN(W#y*Gx;;(Dj~7SqSzmyYCgWTrnxrHDboQvJaB0JR=C@L?2mDnCIg*jtV+ -z6Jy;pwoTl0;G(8h-+2>>KH1Kyc$DA4!9WxurE0gEzoCoDTZeb?-mx`MFZ5EmVqEGi -zM{P<-I29J*Wa4BXcWsBUzQ#{811-xut%>pU;O+KpBay+tG7ucj-X?c6(j_5KZOyWG -zKHyThEC8c7R&BRbOLw2@U=u!XejK@7(Wp8}$5Voz#v!vqTGe79@4mP9PG5AEoyr61 -z0q_aSa}1DqLb|2QM%H-65*U9xpBzSB -zOuEoBds9L4e$z+6F=3fSWqURJvWQbB+}SiR9TWX-l#K2)<@dg@KUZ7){;@`Lrrc_6 -zYsXV{`J%ye-0A7L(iU5A%=0-a4{f7$etoF@aIVeVJP9Fj2o(b!aJa(T4H+ri8$CiuCpfCLGO}eJ4xkMl8ly_2Tas0ZBE+s%_ -zp951KS<@%g|4lUy&I$Y_FE*XtyWtJ7yj&uN!50q|=4j|GT$rvL!NTmtEO!gazi0b! -z_pSutgY435-ssu5+1gszWUt-h0dXW0%ql+lwSP?83+Nlse3sseBhO|3ic*rEi-vTC -zw$GCzK5u0QPG{unkTEL}3ht%ek5wP-tw5YXzAOKZvnU8U>Rp?wCIES_Z9GJ#Eg^GO -zcFzt1zm{X+F;0k{0l0KY-5aZWfjbl{_~IQAz*Dtd?OptlwL?xu^o(hW_<3+VtsT-D -zjV2fO*IEim-lJv5tFAV1&F2b2j^32lxYZ*It@q{+*Pi;P&O4+EEeaNROTGG&=w~JN -zaP(zRS-8$h!-W>l_q~ojbpF$cDu6JTIwJG4y@rB02dWeojLtKBS;Ka9s#~)Q?qz!L -z6w_p_m(RHeYmQn9)kgdWEp6F_**QL1yNZUTNzLbJ89Ybm_i2;j970|=e&-$+$JTg8 -zE3I|^s3(^Rx`TA#Ta~sGY(Dr>dV8S&ZPC1y_9!+m`20Q_FlPDkg)2@u^)*IAB@4=` -zS_yPJX}Zt1kN0%_YAF*!oSQ3WEJfm^Q1W!Mk;<(7(0DCT|>L_YNJq;{Gy -z$ZJT_g`xI~=d^HX(%g-90DO_=Y*>)Va8q$}4tqfd{i&bfch%VNSVI7<7=v~m>4bX{ -z5lxBwQ9s~`8UKQoWH1k7P -z+}vYbL7!rN9AR?_4hthnl|NjzAj7LnRQ|p+!OcX7j=|f2uK7xNdcB6iR+M&{ESg=O -z{QX;5F*RMgUNX6Zj}O;DtTKt2{m+TzOTxzt7OMVBF`Hiz@FG-IU*LB>05~!~7UEUk -z&B{(e>-0DgJ_{1Q)-$2Hc~%PWTn0Z$zuGj+|iCPiF0r$Q$7c0kF;5gCA+F7v+!XSbc+xVblDOofE#A=b7tnY-7N&|(u2Eg~6}783owwB~Rp -z23%OWS+Jtq<(7-)<*n(|8~u`TY>&FPwGXn)JcR;r2sCazB2!`;DF~~!jUoPD8?7kS -z1`?YBwlo^B#+lb{_@W$M5FvX2zOml9b~6|1rd+IDje{|Y9+3GQm?t&QX=5MH^AaHD -zae{S`A0UeW_$Rb5;+DvUfq;DULEHGHd$-OIS9G4Iq&F8uNIRsXbue2G-$i!O**Y0l -zZ2@T^IrB>H!v}bhofC(3JI)bhKu*b-^k>L-%FGRZ6tz(v3VDC;1Y4(&fWWq9NCKcXn>Hb;b?`d}c^A(FCwn -zwN!7k-Q=kkZt5%Q30fg>nL@iuLq>IYyAe92eKo|p?1CBW#f -z8_TAQeelJ_B$o}WKE`&g#~RpVq0NPJa5S9!`eGpXqx2Lp&1oV!vZr;`rFGU<;>+?R -z{oe%WOyKeCM!DJIt8JDme6iWxY&z7Dsfd>mslWdh%U$z_6MJ?d3xBz^S(N*&7nXEOaf+RDxAZ)aF{?y -zh9YNrkd4qAX@1e6@`=%eJ`o?=Rn}Okr)a|t=g?pqoEBFNoElk_${d%(X$k+A<+j{1 -zdvBfIv87n*>w^}7xofe5gHyMS#-D@Ab0dW$c6cJ+To)2%ak)H{zeT^A3KHP`v|gHi645+t51p3z6yHoyx%qYy!B) -z`Av@*5S>;Y%l@$3VD0**4uDDLTJ|t#jKBUb%boMZaua)-x%qd0vD^@RUo1EEUzXeO -zR}6)GxZHZzN3|7E7iOG*%P64l>u)6|;Ui7(F&QE|yqzJDPe-^hWm2Oa2K}IOS>VXh -zNEOxjxYWXZ@X<)lP7UnAj>#+{ph^DRkDwxEL^>-n5`Dkj0ZlqQEO_HW&A>=ujs;)s -zFdi*@6f(f3kMwWeJWuJGz+Hg!;Z)> -z=h0p#+tOeN48bGyMbeMP_Rj3rpZLHzrB}(Jl9ivYO -z4$dXi;23%!@Ahfn4!Z1OT!WpuS10g@vHOL!4)tdc9NOkBd67 -zk*2><*$mZ!?IrMu53*=65`<+yJlN`*?#PF>NmDxr2=-)J~<%_YqRaX@6v%MmT>DRsjUYz#ni(sgVi^* -z?H`Z_$aTAHM+-d80AcLEwMxX^BE>~;)I_b(f83u!?|3NSGjeT)!66l8RnA}6Je!|< -z0OZ*VLm2on$Lz<%3~NcKWSu$INXI$fFKBC!6eD|gn4<>QYVYc`0&3(y-Lvt4dDrYd -z+mYV1Vf50SCq-Yb42^N2-}|nJfRMjxw2>9`ljD2-uE6WJH8=Daaf`W~-307^eQ__f -zAy)n4a{u&H$kzYsa<_}(f0qyZ>vH4gci5BvUzgkMAD6o&$jIE=^^zS1F%rBSwnWLcldA~sB`yc09P82lrQ(C4$@)+7R__5CmtFLqz}j -zHt)$@;bI4Z#dP8u&gCAh897AE;|dtU@PRfU93*0lM0Grd;%b -z=v~*puuv$@d_D9On~Is8f(b*p1f%6V8@;;U8l{s_@E+4eN`k3=RuEj;cu$|hvqeWF -zn32`yp^ok`YqLW7>^<7QB+u;(I3rd~7eIIav&(bJ21tp?;Mklml7zPa23WXETNNKE -zd%zeG;0S%TI@y}&{KV!=0Z@Z#=FyVXOS;Pyz8KAGCnYDextswg#l8D*HyXhYI|G$X -zCKp>R``PTU%;?ai$Casj*uZ+nrg4(P?DYi&<0%SI4&Kt@KQ4DQAfZgdZA*(h56@qg -zyU6NPg$WI~j=-_0D7{Ny7CHlu!7Xe>f}JoZjEQYNZBVb;B -zg@=4a)G&_NTv9V=#J}(s1tS>{c`+QF>3|1NA1UNfGrbZsl0j8kD91;Q3j;TQ5xWnJ -zJb(#H{eyjYNK0Cl94?3VqbbaLxu0}3JK)pQgujU;s-IA8`2#4d1td3CpH?%)*8`6E-5>i}QlLA4fP@Im_)wI*l-V?RkU0xF5Mw*5icVC6(Knwv@P((a_g-aUR?jfav!iOzT;n3JuG}z -zm+@u+eCkjC%W|K5vD`U1`QiXVl4)|_ki&miZeFbNZ|Z+o?o(fKfVw@|xWfO#ay$LQ -za^H-ZYAgN!EVr+GqT6rYEY=P}Qb6(RxPMvhjr5ZWcz&vyx3i -z)<8=$B63Xk>I@s@ewkn9v5}W;k9zjEv1Xy^Rvnd#5V0MVP>qQ%JY&;|Yz^XKZJw9$ -ztL%yIg$0TY52DH^5e$T>y$;qs+MQ(-809qnm*s{F3HuMrZNEWjNBl3#UGp!?P4|c8 -zHuz$>3;(j*EdQ|F380uEZ@-YazgTX3)T}+%?>LUU_g^gcR%AKcVfsHTcf~}3>B^jA -z4ku-pfs@{r8{SYlA4H3P%7*(3#&xk_!=lP@AHAubDul#j&RfpFO-NhUy-ahySgL -zjxhZzv;*+gbTM>ep*oy=ukw)Z4~WP_-F&)y-x -zrQwcmd;sN4%G$n0Ope}oH+Ft)C^~eJ+Rk!;dk)AY_PY&NDmxE)K1@m4U2(AmSawZW -zg)bymQJN-rND&}K9-Ps7V@*V5Y}hkGO>E@%&$l0Z;%BB3;qWo5Fk&Tn{tG7MBLY;W -zD_d_^eZf8i$w?bj26c1NbxwZLzIVW?{X6AQgUgop-0qQJiCbe&ANpnw$ZH=@&%w1G -zX2p-UaAD}`lni8XOOp=}_7sN%ZV3r0bfVu8UD -z`3K1Cj@!NqpW44nIv!E)fuEB^_!jWQlt#&1q;*{-eM2zwLQ`f^w?ebc+KE@Gm>H^z -z$tpm@!$JF;zGB{33Kz>dPso5A>tJKnBUFH7%AR970UfY}j*iIZt2r)2O4cqt2dk;w -zf;*CeNJZ%rce?y0%iR?~%&#QsF)Ik-^QLEEsV2X3CEmF;##Hs?a_`ozLK_l-Q2;pk -zzgLzCtHUd7BqOrMpM}4Z`+COtAW^PQ=$-!9w8guBR?L?%in?(_$#fY!xIw?k3$r{!QhS1bjhX4e((y9ko0;oVpLc=%J{j!cDD5~qQC^zn> -zfTjwBoJxhw_X?I_LzrEh_8DWet^I-FJt+L#z88S6 -zn6-W!$(At;ARKs;l8#D`z{%jGmKIid08af_Pvumkz5@YJ<fcxb=y*=9^J7f+9A3f@Q_@ -z6$!sQZu^vQ|GWL1`gakitUdRiM$x!a62|GpE_|vRDs;}Auku^s<+QPKGXa3mdd7`d -z(20@@uYwk}%SO$}{c7=1qtt>AP|TMl#C6E)kU}C+gkSm3wECVLWp4QN%ASeZTxr4_ -zabG5}m{fCCk|?7UMTPgWf?4|?Uj4@8#J^~}A$kUN$-1k2!7I?h8WT7iC9J30SNc{C -z$D;hb;F0GOV3B`wwEe6RDqc3n17GM~nSw+A)qg`HA_xBT!2#;c_>|*iZ5wJ=&7ihz -zY)hU;X3vyP_Oribes{GJ-qBfTWeAQU>lD6f85foM-Qx6GOpeygdV+qK=bvKJ&JRT+NtNei89-sk`kq{c_qUD0`w2X|C=m=TPyD+_)bjH@)v -zAxjE?=t1eWiU_~+4opt2W1U9pgm8`XkMQHz*xf)rTkfQu{na!jsPAJjsxtxpnSqNu5= -zCr?ww)=p!~v3L;%-xpIl-b*ve5|b+TI3E`&OP|V=y@+l^nwbFnlMn~85(Kv$s<5WC -zkCfS-J=v|(`&Y8>6w>1%3p7?8!sA?3`5`0cewTsD1S7@Y_f{?zc0;F$PC}J~Oo4#% -za?mfPp(ObD(4Gw-+OkTfk2zpZ#~G15#(=Co3fUru`gc0U7GaEXMA{=P}wI!;)RC`rXgbhhc+Z6sj=aOa*SvlQFQQSWcQ -zK68ogm!!NL=mfSpPPylL<`n~B%|>f-TqcV_YBN8g)>jNOa$dRxXU3P;k8^jD$Vh@c -zvO*ZjcanJ35%0W>Oh*~nI`B5c#1dN9tywr>XcqeljaE#rz^4)mZ${1GYe=qc&uoV|lJp^nx5v -zGiQF8Xv5ZPhx-b9)C06I6XL3n&JUKrzDn`dQ_yvGbsWgB{Xl&Rhak*b`u+!lCBubC -zr539MDZFs0U9E#-j5ruT#ce(afc241^u{Ji2w@6r=ctIgyHJV<4F}$z8N*O5u(VZH -zrc<6FQ?q0#eurwZSKX64#u6ENmd?;I@-i3Z6Xo`b+w>cxiiD)aGt -z5AAgM)a7Pdlb*Hil-%M3OM+Tpcognf4uS6M-%3{n=gZCcf(l9S7|5Y5{U=b%p8;rz@uY1uN%4LDyhq{o8L-~K*d%t%f)|Swv%h}N -zQ~O~yAn`vScgQ~=chnciUHjuN$Q}9ztH=7syTU2ju=eAN2?1K1Kl#eop8<_yV~tt9(X+2mgTF -z-1_9P$_P`)ECIz{$C(> -z;a<5ixf267C)Jw2hW}rX+Z}SymN^$*DX*awj>aRrsn -zq^GLLxQxrl$hXZIH4}jH1#$yf{RO#|zCiA$nn@f7SO&6E;j#x`orf#l@z=T2iX_;E -zz`i==Zyep%r7+}n!jM}(Rr`b^n10crdgB()M#kM(q37c4@hHmW2@(-QY9r>Wkj3~R -z`ag)KQ)4OSa~>Tx9bZpJKjo$-JSzPUko#HVGuP%HkbCkk$bIt<$jt|K(gEZ7ACUVS -z=Ji}KOpyV!BTw{qpvwLa# -zy+wyr`?(rPbSv@RrpaWjXyKtgKOM#f@m-niyFhslQsyBvox}=^JcINMk+plb5|&O3 -zrC90r?+#IqS+}Us^S}ImVs;PbTJuFdqxs>I&srYEt--hAR|S@2V0Imb^aJd=C-C{aL*Vhh`$R -zeTa-F4zw-9SV+r={{o%skki>@cVWO)|#9oR8rxuc_0T -z9(!XK^8QeYj4PxxkS~)O*B<7K&?hvKF74sSMnEWzW)Dgth8XS14N> -z>9i&n(%ik17prU+m@Qy~&@(dtYGtB6_KWIa?1oX7HB@Vc4=<`;tVeayi}zq>r)u%e -zlb6)lbE*019O~O$9*dY!f;*a=F9$78`J>EB;aahs8x#=p5q^31+bA78#r$ASytkbx -z?NUD}fRPDy*zK7bi31!(LBRNDrd&O%(gndGTYhww;>agUc18*u`4!_#8Iy`<8E`6QZO^gCclRuN6PaKHa -zuGI=Z(Y6v1spsxKUBE{-Z>n5qWSz8Je;zP5vg{gS7jA#)Xg#{V^34d;MK_xwdfcUC -z40rftmb@gLf)~Z$9^jCqaj3_o;RX~Q?{Hy%FkM(Bl#S3Z^URJB&^aC-`L!n6^&XTd -zz2cWQw;$}O0v?UL2w6D_r(7VBfE}>8Z@qeMe|xWXA%<-0Qn#?}m1U#}*Rzp`MI@Jf -zw#EYfyo19|EI!l>FGZN-<-|<;5k&|VWZ2$b4}`ri{*Yq;b$KA>57E6iC83r_fpb6} -zx#G3h3r@M*pK|PqHY^23W%mm;z_M8#%6gU&aa(;B--mYZtV;u1sXEN}U8DH8B~{-d -z1Z5M?DzwHn0A+IkBNtKSCwE}!-4t`dckNa@9moMvqHiwwfb$-l&A?^07-P~I{41_S -z^4{MYz-YoUfY41SG+gk>>Nv=**0Z2wVm;JaBi&Ii)SVC6J -z0ru&c5c4V7Z956BcOwv8@{k0fzc&!+ilr+PT%-Dr#eqjBY$_!71@GyAZD_(CYiTMO -zegBQr`S~>0y)daz|52jsE>x|K@M6mb?b^U8hb`)QlT=7nyBr37nGn6i1*8J8CWH$m -z_NKe)AK-KB`aX8!~qTh)_?q#8eNJpP0zw# -z^qsTNg6I%T@pyv{RCLzoqCPl>i<)3>7JVUX5HvSfgXE=FSMnc`yW2_OQ6yGHt7Q3) -z$j$mCazo$*MgON#olDfb6 -z;;tn9m&iTa%JLvn%`o<_$PMc9SLD7m`H#pgJ8k(tMecS%0Ix?HsF}YaH@?yzksBfA -zkI22`{#WGQ^86CH<^C19o#xpfu`k)DfTXM=k(+!Fr-{!5pmw%mN^``}F~i>{fVICw -z?*1>4ySeJs=A?^X$tox1g-z!lk^A-qkaGpmM*2(S<`noxG!p0Vu}Rcjc&4Upq7*MnqxxU#Pie2;u8{;-&Vg^hzyKHT9`hrn?1=K@m%BBQ^aWF5 -zLfhg2;HBjH{BjIBF2|B$&AnQY7rg%I62@|?nM5jn@fz9q0LJ0-tgfD+d!PwUQU=a=loJ2BD71d|r6&AQ7=>(Z! -zZR`@-wLk~j(M1NvtwIJ{T)!CIGy!)(Ioz>a6Kf316=oX6?*v`MQ<38#uGQrD_Cz61 -z!_)3{M65c(pjEh9K8RAwIMm*B?w0zA$_hbtz=%{oh#*khMz1Q8klwR4fRk%~lB{-p#*7-ez4Cby@36E$U|@VPcH%U~!)2?3Dc6q6NW~F&W*=-dS5Bv~4@#Hh*n>ZJBkW!5<8Xw>vognI+Th4ys|E5nQku;)NDXk5mTI^vnV9gaZhuD4iqB1 -z9}BbnJ9y#7OU3LQKC`TJ`#aD@IY7+;sfQF4 -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 -z+Tz9F!tn*?pFgPaB-01 -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 -z5rXMom>UHGPOuv9FU)$%q0hb7EI6(CZLr -zcN6%zQWy!V#a%Mj27it%!<$7)e)OxZMlwNAv-cmx4EFGyZwJO -zjjO{`AX9f5VernS)p<7ZP_cNJyvAIGf>8RwFxWs1DZO3>3b`5jnA1T8dUuHY3TBRl -zaKNpL;c<{dd}W(S)}H6(EVa4!zMF-NN`Ix{VC4nHM(_fcux!~znV6l#F9QKfXJYbH -z-X5($8r-$!^~}Sw)U~vwAdcdsQ(-gX1D~S&nl)|$p6pBbL5(?li$!e3Bag>F^efyd -z{L{R?=+K<(VhOsUO_)A29Fhu(O=3eFu>R*dlxiuI!Hh|wwJ^Qm90E^n9GYD^Iuw^0 -zs}V0^StI!_un1}(*ZC7U(Sh7zXBW+8%L6d4XlPgj5&gJ3;7Jsrrdfa+D!BNXKxUCU -z>_J7W -zuQV^hN*ZpYv7IR*ICuj-O1qxJCA)HkL0OvSy58QXp!p)JR9ZNaSmQZQx=i8VZHe)4 -zR{XXW_r~}T@_{La^f)_^Ks+aEq@I+{a&G*OSJHK1^!)x}5BpJ;cr0R5%P2v-dp7;M -z^zbF@Kgc+-X+Svmqx;EiqPeRqC#Yy%I1;qn_=D|cCe_4fi!@FKLIquu#8-di+7z0f~ -zFOH%ntp>wd5nJS-EEmD?HZ>Wcvp8+Y*T4Mo@y;Z*u$3!}PI5epY|?^-0GT6dFb0NeSPTFz809lGX -zWS)8%VNPi}yP;uJTq*jMUnR*l%S3HzG3bZ5?MPb+Uy&b9YVb}_>APflDjX(H%`xIE`V -zxmqnrT(odIYTWH2fgi{Uts;)W(6c_d>$&a;f#MvA@}MWgzDgK^;QIrj5*WdRV{-HY -zO|r`{m5sHevcgKaUc8O^p0UZd*@pI$a`&1!oC0LXVdrO?>JTyhiLHk>;th9XrbW{S -z4hac4qq~Oj(geLv-JV}7*)$GebqWZ9UdVIBEGncP5Jm)Q1gc+X5tG;5SKDTurBC9loS;OXHk -zIrD}onw^n?pU;vFS^@1qt4$fP*ytgdxW#`R7iBJ%h^9x$p)-E4c%`(FziIg<$YUmY -zNjKH|j6Y291N9U!VjfP8ZjgJNE`*BsDI_*)KtsLp0jW*dN#^FjJ-HUWFn#D-DE0*S -zWbu^xkEDa+TA#-G!CXqz~bX&x5nu4CzG -zS5Gf_7i%VXzWQ3}!v2n@Raj2yNCa>d6ukb9!6g!;rDbQj{{6P;ogs8p2S(hHiG6jr -zg?Y?4q$?8P@QawXVA<(x=}Xy-w8hJ$%42M0nr9x2eifPE80nyBwz5<@!AVh?LGWhp -z9V4E~Da{afQNyYO@;E{DWb-mlkyts1QCct?Y}bj_)k|D#1$J+fXuxPkh#x( -z_Wv;Kn;K1#IAqB`lYs6n$P6%Nf284S>vw5Py9sO#WJ(UB4D1n1+9ox1jD&EQuG-um -zafIkRv29F!?k_45VlFbxZn0!n60crK5L;z9F7mM~6~hWf!Dr*p9kJQ}c414m@A^xJ -z00yen3$dw72O=RmfA$D{ph}dMJntkinho81f}IH5BC@A?oDhK+6+aI0UIHUn@c}k*njxhe`h`Zge5gpJ?@h -zD8MZ;D=wi3;`TXWK9GwuG;syoc&=LCI~u+$lam0m%uH_x*uXn_`L!qPG%C6PD+ZSNJc@UCjFr&29Jpr@0^3 -z4F5OH?N0yy(%fOQDf7yNJO8D*GgoPHz_!Q%G&j?KXl_t$-#-`~l@GrEp}FC&?*TOT -zw6$jko#^iWrMa0qDAw59^p{Q7;~iqQW&-GneIqe#BR3@1_6mdkX&wzm_uk|_k^B5N -z*StWaD|4u|8COY6G_LCSl01L%Bgpd?l@mnn7t@LTev-zLQ_h(8?MQYlT4oeq7r;ev -z9O-w4S^TP~h)4d3_yAV*n;#(n*Y+lL5Jsa1V|T`dtd$^UJmaJv -z(kNTzHsV0$y}$+CAUytd~;z4EBs`3hB?QCWqT^{?ahU -zpY0?Ujr=L`lek8Nhm1I7*_I+YCr^3|R@g;aW!R0|x_1=9#bDxd`@Z`3KngA0u0#Yg -z=&|b8BxMVrjG#AD1-RFro!liznF;#RnjciuFkx{U!_ExY-+T{~!$pQ2Vp{mpIMKK( -zt?Xf>iw`7i&k;l2iqAquY*=l03+hG8eewoV&T78hT~Ha^&Rv)xUbZ*jH&-jtUhYKgyj|6l_|(~`VhWH#wvS}xEABz+I$+C{|0dx^$pG6637J|x89qy;ai6s -ziOXAn`o{CIT0rV*aHXNUS1$-}JXAPlcz!_>OSSt3v`(kfna@`df?;d3Y4;*y9ap|E -z&(8};_q*@z+*yQgN1b;9+&cCeS2ghS;JUP3f`+70wX2Hq>Q&zs*%f31(uG}&s@v6_ -z5sAY^T!tv+)Fl*M$Kb@lCf((pU9bNfgA$yJR{yG`nun|hmqemt8Ll9P=hZVBgsTD% -z{h>CbRnjV)plBz=f^KZZ5Gi6`E3T>H6(^Ti-g~(NUL%?jyz^G4z@{sIPA!gXlP*3> -zbM1AnDT?XOq0-N*Lb2!=v!Mo^d=F755Wrnv6op#?TXqpV?jj>VdH%NA4n&bZyig+f -z1FTpvFQ9qWYgxtKAAw*8ZI7$G-*AVN%%OJA3oDB|4Elcf1{%%uimQef_ge5ZA%`1@F6SGkvv?*Xh9#y_C~SU4hrf>)rhU*J1V2LicBfr<>Qu1EaS_ -z@mNZC2z_?9_lw8V!)Mp~$L+z@-pxUrnjL`(Pi^i~%3qyZ@3X6|qxPkImgEew0T1yO -zLCrjJeEhS^78-WC;)sZtwkg0isYg)}K#6Z52)Bq-O+d$*f{8fNzHZr)+wC*`BcX6ksSel51q5(27oIu=M7<5QZQcgS?)4WI$(yE~)Tu)4?n -z7b`tgV^j#L2}wz4N=XVi#P9)ekHBQ>$ER>s2NF*T8lK;9vfXRx6QW#XeXxymg^Z)O -z7Tl3gaN;8|TgJk1QZ@SSt=*R{Hq|5ycYyW-iZ9DtMn{wWfYhs0UB)f~Aq4yh_qm(_ -zWYEO?T4c-NoYd^%m;ITdLVE -zMkBtxy5&BsTd)XyIwy%me!aUw*0M;0iDvGhR^)9D>^mNeG2w-2-PbkSy!uIW$tV*? -z`LO4~13ll>UY$i;+lss@kA+BI -zojFF6WD*a<9WVVy%}T4m5g2BY(YKQBR~5P&zb22OA>dC;^O4uCAPAVi_Bj)}P9|0N -zDRqNf^6g1+(M95(2sH%DyB{l*J!wig@ -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 -zbJXRxaT$J#s)V_S%Gf!ZzGbTi} -z2rzdCFT=AFPcr+6S;Hw|wTu}Xd>_*He7lL^d;YbuoCGa22AqyPcM9*)b{HxJ{u}#^ -zLbT4<+N%b=XSfQyvGCxAy3TqvNiTX3uL{@5oUF3%$oTBLoM}<~`XDzvVA6N8$d}i? -z(Obv-rX`7bcPEHM^i{h(B&4!MY}z77p)(;6nbSMT?vj`Ux8v!q)B_gCyq_^gxhHVW(t53JHoI{`WsN-H{x>Qfn+Yc$6r&ijW_3ZpRjG=*vsEO$XJLqMNY^V -z49t-Q%6fDe*q<R5_`w_bDgv{J6=z%D{9vwWW-jN(Kuo;npPrnjQ7#169fjpWl~}9-D|0?$wOSKt_)x*{msNDzJ-bS> -z1wKHXe -z^;g_aDAG;fPT|+OmTHr3Ym9k=`?;DomAWu2PXCQNF$vBkh9PCc6T#iJf?;y>M{UYM -z+xBVv9_0^>jakiY9yN+GqZH`+RA_kPj@LG>{>NJq!efC)U#J{4PfeZQ#~ti+;g|zA -zl4(JP1VoN=mAz1V0{9e1CA4w}iB=+t`#M#N^O?cwoosVDTNc@Zn#?OblhbiJ_yqN) -z#P9KKdNzG4$Qh?1?AXUsKd-tzhZ8wITCkrPN(yAhlRdTLFJsq1^eJ}7n|?UxcPrJp -zuYtM*6;-{!l)?P0VyxhXt@iQf7`%6dcYm0|^UaHHR{M$UlaH(zg1(C*D)sT|&rX0w -zAv4vy+dptpO#RE#`ZKMKujeE~0YoDQ&X_}(v~CG`k=#S4B4J<0>j5JLifK^qDs3?L -ze5obX7D%f^&}%ZLSMS`lYd!4UHrPqJ{Q%VS@#ZIjsJH$jlHVxr5}g!fEwp*I%NeA@ -zwkC&O9sYjDy$jGy*Jl=|wge`}o6vzH0opeWd0ROj5N2faVdcHCMJzW03X7|Zh{h{x -zP3{X#Z>5b}T?`+jq;1--&h8J9n%tFDz0LMX&=$ERW3cD76uYmplnVM9bSoC%uL!;( -z-PQC{6(b#XiY&Tn6;9M?=|Yw8MlFw#`{c{#1KV84LMhKrSqXb@H%g~rOkPioVROt{ -zvJ|y~bpe!j(|g*VoMAg`2*L5WUh@*jRtRGlq;KMnI9X9rf%P=!S7y#lS+*iR*(b{j -zLxEVskZi6HthhLcG6&7Aa)e4@kVPM}nsqo0CXrg+nJ-)qz1ym&5`C@;fHQ@5Mj$y6 -z><_5AO!m~7PQY(sv3akr85U&zt9X8He;NOu20n~C$Sok^2I^W+s<4WsL(39ceogdm -z3nN_vTQm;8I!oha-Wk0MiXg;`AV9}h0+urG^PO9(NYu?N`1Y^DBL1LzoaC0=^G*38 -z()MzG3PH6$YH`1Gol|vUu%|+NX!p^Fi(YJIPlP!Jj@chmm26ZtMqH|nVx(Z)@k>@Y|SE8&?a8D-uiV_u~y -z?Dsa$u|3a0n$EvHxD7qb&1I@u6;=3#-^#sy4Wr+0$$;=W6z>@Ktp#|#;p>pn8k)jA$v6};j7qTT=@emA{6#O`l_kq`lu$V -zJok-anS{|7j=!6nwJL7DL~H&#_|jkzmIQurc6D7{3@^(g!n!hQwb3Wx`q~7HeR3V@ -zo*Ol>z0`2Jv2xN*(CJr9iiE0g1LY->2niB&`w*E)B -z9-wqpN{j7MhPvI#dV| -z#J@8!TQ-Ln&Ey3yb4;J`-3_s*>t^Y@P~&keF622i6)?F}TBoCF_MC$6MMdo~)L56R -zVp*Ji^Ua}k7qkVM9fU2Ud1-PO4YA-u@z2;UWYw%9(rCF8s7~X88H%E}f^2O|qo>A= -ze}WtUvHze7s61KhPrOEJTMJ7tS5V(*I$lMa_}MGoxTdX9!%; -zb(@q(O8C&31H-rklbHds)RXv6e`zwi^NB7+AD0-Pc1+PE0)&Ln>31F~%XDD#b9bw4 -z!6_)SCE#0&p3&m~tY#aU{PF@rZ((a=qhUTDNkkNn)mdV&0#2dX(_?)WY^z&&8BJF9 -zuRqsBIm3k}E-)+S4RaNlIZA{d{1~<;`nRLEO;~FMIZsNun`JV<0fQ}Fn -z&9gh|ch9_LbUEU+!C(otLmBCxAdr@mB)%QecN7W*rfm)Wnn+#~SucJjRkgamp)oc; -z85A2D-%XJ9ku*zK@jfPDau{IVXcoO-$LHHjdJiH#j;(Xf(8@J -zJ;C2}uqJ+^T_|~q-XIJS9Xb045-?#mrdIl5B6~+X{qxTWE31^dmWoHgmC#;j-wpll -zv$7dz2i -ztML!iFRW1DLe;Yzkt3|4^Qr^}E-pO-dxV;*H25unRKiB2rkQJaT_BMZu`?S{>j@V` -zl7WIuVZ^4p1jyGZC{7Q%1sksEzi8-V8P30=xLc>yP<<{9u_C%Yx4urk(b*uMQ$P5e -zEF9>CMv|mRCgU=>N|dj;BFB4%ffaHQQWtC)ea2$m998|m_lm~g?u(NdhuwL;xggKk -zwS$#VHffjB2I{fN%c`YZSKMI!=`uaVGXalq;fxKxkSOjK3oUbR4inj$n9g0+YWv|l -znJiM|-}mU+$ex2DIS!twMx_{HQYQVU>Z}-H0F5?m@hCzg$)=I%p3>{*i*B8zfGBF1 -zO>u%Y#Bxw%?CJ@WKsj&g9FC)49B?G`0V4;aah|K`c>^8RoVVo@*Yp+V_!@Ma-)7~e -zJ6uk5fG@n+Ib3iqC@p9SD@$5yu*Y-Utp6`Cpn4xu$CrWvNO!JFrLwR%_#Q0aTDkEd -z$(~XNT245uZeWD`**|5H4OR7r3>c6nV?q{hF{r#FPg&#mJXtA|>Utl|k-mh7c*C+f;eUe%-uj}+fSr<5g`41AINqx$82^*|9c -z=}~PcT~3oXbKL4f>ZelhAU_DrODG8_I$WHy4I|`hmw4gJ{OYp_?3uz2^r8z8u0LEP -zKh3X&zyTk72l{3MeN(&hq6(Lm>~CKs=P}?y0tts+OI2%dkF*j -z_nT=ZO(Tyv+SY*_2?es3DoD|EV&t{ZmqIo_I9?^bD$!rM3>l`1Jy5Ae9&U;c*d(*l`A9e5Sy5p-y^vI)ONWi&1VEi9qS0)YhE$D%(xYV -zJ@tH|;Jz=OV9OvQ;=(i|rIV8R9=p>nhrbHL``gG?gKH*eB|eLmmcft`;ppfoR$Xt4PbN4`}udc3Lds8Q4EjJRD^YAD~SRlkeh$Jko| -zLC}(g^HGNNo#?VFc~-!A4C13~aC*LAGn3%ARt#Gb!ef*bbJI`58o+*MenWd7!ZOfyui7lYoTcTo_NvR}!O^{#>Oc{WFBt -zMr=9p^~n{7_7i7YcVjl|4Kce=fq`tQF>l*1b8w1ue90&t4TzLk5;7fYG40jm=Lyv) -zoyS`wPAxhV=FE0V=wYm)zY66;+afh%#+4k7&HqlqjxN%XxpS#;SB#qA- -zn;;&bzU_y_ShEP;q`v>IAP)MS5SU$+BIYGBns~UGsUDdDc|F=R(EJC!V6CQfC%mD? -zN+8YkydS=t(cQ0Z`2-Jn2voEsNzx-4)$`}3p01irkgX7LPdpp%kI0czy6lJ4 -z2fU_?+LV{zzrd9fD!dW$(Ui6glvr!*>QHFFFGG;TQ?}8>tp@7K%xic`%>4)4aPuXo -znP#2g)=`J2@i1#!T4}D0GP#biP34uNR4+gW&v*P%pNf~XXmKoILd>dhoqhLIh?Msu -zk$bZHf}=34n2cyXx#bIS$PP9bgt>-&$_m87#3hltNF{3JiNVPrF5=h?Sj)uSrswSD -z_HqesMA#^=DhUO=#DU^QZ7e+a?^{1b_SEAoc;!+uL`Z3m=D;T#70Zxp{9)%kuwIEB -z^U+@$V)1_Lru@ognA6Zd?AG -z^1?PBeJfde2sPrBg@liBulSB=@k^N@vwygoL67{RQVo5euOlwa8iApVGdfx{%fS&t -zwn9T-v9F!T0++GHqcv`?yC9PoZONn-!Lpf++U*M$UTaeYlS40+HW;cG7FB$@G7>@z -zzktFO$6)9HJ3Ip=fB4gK4A@lK?SxUhDZmcs~g$B8C -zt=?=Vp*C2~j^z(7P|C+ -zS&K7&7IpPFagZDwAiiCwP;!S?giDnEAag^zA`bqY1AGJqTyljZjg-ZsJ?pu508^fc -zbGcZ0O*Xj7#uGKXciH{A6g(}o5??a3}$`0DVbU8JmtV*)*iVtFMt;}EWy7% -zdQi)YZ>p<*3Nu?%G?I1*{H#Ts*!gC`i5 -z40iAT@OGC$K`>$8=;`hfknWc5?(RlXx+DdpK}zXHke2QSLAtxU8$`P602apmJm-Dq -z%=xyTc4lXGKkV-R`dx+DE(!tUI+}yeeeP3eR4HS#MM-o+F6&~%DZYv|V1LMUhmL}ZM(jf->-}xmRpkGHHYL1TvosjfmAs)Ya_w -zkY0C}Y$vU{IZC&{qsuYG6v_a#cc&H4EsAka#;rwXG$4$41?LW~01iM90mhq6Es=$a -z%2{wgHKVcMKe>L-3hy0lb)4xYoYKI@DEeNwz1hRT*7#&6++|`EGe9=6#7SwCvYC;b -zk4Rv5PgjSP%N(L$W=0er -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 -zF3hsp^P&!L7)dKrPy+y%ozDZAibPOn~q+6Jy -z={l(jJ$=vc+1;#03qlw|<50D+W_<%!+wodqpRRpFePyCOg_9Yc$v#j-&Q!QS -zW-lAQ;KT5h-qcgzYMFLzaCQjWz+5I|_`BeyI2#S6ZN_!tq80 -zqeQvZ0tXnpvf6n`!ve$>HSB?>W}1}@ZJCb}-Mt*v0oqUEPRrxQ(}GmOYSYK7T@RNz -z`0DL&UnnxPy1K+zahUA@Mcve^C!fH56?)cnonMOyq}gv#BoMCPxq{NTaIMw3;b$YN)ZQl&UY8pA -z`vF{tWr6RJvaVp$?RJzs?B`(?PG9=m%sU8`_=trIyqmYC$imja;nlsxydks*hu+Uy -z3RHz!GH^tC(L#n?I} -zah}t0tdK#L5y{D~if&+t^IW`Y#_G)h(byK?8)g9G+HtFdE(j-{r)rd!e@>KLLp&Q6 -zK>#>4hTHh5G9D?FL|)Gk>gXj)^jFRdZ2+g}7I><#3rf18VL)PKYh&&Ut~bj|i~;d3 -zqxqYY?#Ym&%E!+J4Ca%TG*zC{dJ>p^H6V-*7h*!Dy)5Alyfr;g0)~$3is;Dbf7JWxJLU57%%S8&H?{Xy&9FHc;@GL5C>B$sQO`2q5lpHRkaybW>*$<9RJTb0V4C4+oY -z!^gGCFNfUEU+<>dotM?2u?$kHoy)U5)7-`(7OvphEBpb_`?6|b%U6jx!)MZgL{Zrp -z=YllLh?t>V*^(W%gjl^_?U)(gsE)~xs7+-YH=+=U<#-Xeo0JI?hy_ewd{3~>QIf-d -z69!w7xvAbO$Ge|*cZ4ZfQd2Ad&`96CBQvkt4)XM)6DsCd>gw)$IRtaO{xn$Rnm6H` -zbTRL!N9m{!Uuv*IQ7kA?32GeVb~St$6R;2_@z^spPe6n#oA6CK(|cFApW*W?KtAZ0 -z-rPJ)tZ36B8GWsmt=Z7KT9h)b`+PmJI{-Q~Eu!rVa;kzJzGzZI(I@b|wqhv7G;F0z -zd-2G66f@+iYnJ%xn8x@5e+;T_36VfaOv{3)bp1SDUg}y2QW}%F-w)P5Pq~41BF%1?c&;g5?=8k-p?|Hpg%M;ULqmVjG-r -zF`ff1Yt)($Nf)yc3$hDq8L(2Y0Vvy#qnB=|IhPDdi%L4dqh%y7ht^wUEK%iKy;W^0 -zh|m_(oU+A*ZZnH9tT9pA_R{lq?B$OZ_rklGHk=^;q_7SWn)n%DVj&CO)fn)40Y_le -zMkEFls&>F5d;^c}6W|W8FTIi*yX4pa0QPD1`Dj)?KgbX)P*7AUTK -zlkO_tJedn`Y9&`i;t`FK*RP=^SBE^D_zGReZ6mD9j8s(9q!;35Woz%^M-vWn@38MnTmX4n?B`1?cnr -zDkqB2vzZ0cVKE1I6y#6Wx96sUhV)S3Kx|ufX2M; -zley>Yp>`s4gu85{o<-w4V3hdeAcf!w$CBgl?z^osrb%&nZYCmB^vox<>Mpe8Tt -zwnhktDZ`G)_1u2@tDJUPl~I -z?t`gDRfKAyv5pRv!dVSN>wS;t0AFO~vdbghGw>XfI5WuGA1S|qYL5OkDnDp%rMplOUE2%KI(mLy3``tA< -zWh!k%YW<)Q=Zz#?F0@4&0NFrOMRJ*+ZUH%$Iignrl)N24N_9p5QvbaeA0sQ9s5(yC -z@@b%47%H%4hlFiJEkJ@PAzK(5Z~xE2evQIAkM5@MTR{6uZ#5Vm*x -z1_4VsM&yV|n_3{)Sral^-A|DEBc`OD!1+w?%Nq9v^zhvt3*G8925*_%+#Jw`^+8JV -z;?0)x%G64)xP1KZVhqp=es(JGNDi;?84_kWF?f?)7BaJpn|12Chn)4)VmAaY_2si8 -zUBisl5zO+D0WUp{AeQ>ToH`IiEp?&DQUT+5jbK2vX`Uo@0-q)m^aN|sDLV5KcFJ1{++P%rO`$=y*OLQ>^6>wWj#IyY%>i4y&ec)Dc3VYDMH{nMYz#>Dy45 -zNWGz98K5C8ZG4EXjBC7vHeAa|)JHMUkQRbO5fea&%gw-Xi-)dL?>NAgTx;nQ&AGrG -z=9hlPQ0b4LSq*ZPs;IVu*`Q&vS(5N-wG==G{cV>}unL6x%&ylivOP-l=Tl%FcmyB#6 -zsCMvp9jLtEld -zNk)zJO%+vlGKMnHTpkCMRleq~j*_C5-SmrA=cD~$9aVIqKp~rcdk%E$L3Rd55v~d( -z@Mi%fAKXU3v#I^#g0#SC@p|b_WRUBuDUEspmh^_d;PQe;k98wWpU+GDQuoYmVgCHgAq%nzb@5qg04~bF?ThLl39K -z7PB`^U~))?DvS^%fCQ5{Mp6(b*Hh+9j&3P|t)wGQNnM7CCKopA{6vND%SNmyaQ+DQ(ylI)Vb&`9wF3Gs>O=(4d- -z`7wRf7xYPa0vjgyxE2h2L?)J->v+f9)fv{-&I{1yO|Yj7eq^EW0UF*%8lsLpb}8?m -zVVeBrhgU=GbVw@j-Zk)4_~37-Nh=`3IK)3u5KFXYOvc++21tp4#w?kDUm81&K$0%T -zVHa*6tCevXOnmJ-Azl%5u&1791F{wwy-*XyQpaVkqpjC!HLG1#+QIzlOj(vGh<^-3 -zAAd994Pr#E<*WI(3EFV>hkI@Ni;NnA89gAyw(c*C7o6Uwd#xhiKD5RIp68 -z&DL|eE;tgHG@*-;e8}_8X7K~CV_R2d9Y@~1)zUNO>e9)L0q|0_VM78&bPhSTI4?E1 -zv5Q(%s)Rpe*ne8W1proK^|fX9u*bK`8m7cdo|P;B=qtcw&=AzCc1<8MLO5=_1WyZ& -z7=;};#0-IzN{8DwLr -z+h4rIi}7U?3O)i>gny!=lrKm&1{smXjTHq|gCQ=ZyMBrEPL3P;fNNUQdxfNW&VyjW -zZyFM1%G%uC)eCikKWem--!)mrnmMp(CzFVx-NBZ;d2UBWtq2{ -zbVo}$KgnWsFd+*}hy=MG#R_~o?1Fe1L{L~86*K+Pw_yLu%xKq`7$gp_g|wZA@38o9}%svsHk2pAqYM42~&@_TiV-_z?3KtSDeEpVFdX -z!^MN%R2mv!PSO$q^l_lQfZ!%3;%UZ6_ -z_NQq~^@78C64wQ5Mk4|BCL|;2x{IwzK~nO|7g0Q@BW9WdmSP@RaN2t0shtLprf$}p -zcNF3X%QhzyP=psu!55K-h#D0I%$llCA=k(2kI0o(HQ7W171*>Ex2Ht82UXdctcnqk -zRJ^qIgN)AJ$cgJ{zp}fXG`6bB)W$YU6z!Aie=C>D>-BO?G!(C|UZBRqx#l=q -zTC5du;R%#!1$ym;L%X@?8GKh9k&gK1yHBQ-Poa6RILLb}vQKx$$5FvF`+G&m0>}>H -z+G*$8xGgS(7O|%+I0+rJby>@!PzL}s*Wa(qkbh(;fsZ#^+H&exp)N=9CJWev#sRX( -z{g}od7MAOq0v7i6OZmorXW4r-nWtE^PK+S$?Tv%K@Wzu>e35eVW_5=P^5C)SZIH={ -z0t-iNhuPdz5%X)1_F(e@ZQK{b_k?;k)EHa01-;QyjV%ZY=L}swtpB;Q5?wUFN=2Fp -z!i*~me&roRU)J8@G)AWzFl3O*Ld2>{qIdGSdMcHt3E&7tbf|JWtaxd?>+N~GcCc$t -zy4~Ana}d0ZvSc0Uq9E=k<$CS{e46ikyw;Ofv#ng}6d8fAT{d;oO2ZfN76U-o^U!@k -zP0fPyG$x44gQYN>4_Z3m9M%=SHVlkb08S-GgLm3Z0gcMSYPA)ZsYRp?i`WT@fmJX% -zmnov->1ULDd8Yeq)Pd+a -zB5ZD+SQ3Jf1Jv~>c$wSIr_VCjtmvsf@~tP!kwnONc9fD8e>HG6v3V> -z*+lHBr+o)9Q7uJUPa2bZeG$utS>}mux)z-C!X@5l#c(5^=Xt_=&E}EvTCFYaoV=h* -z{gO=_=QI*35C_kRAY&p!UoTO_7Tx7V1LT)?P4Lw-LB3z>PVF%FZuop9FEgLFIx;=(U6%nA)_h^S4A8LuM*Wdlg`x -zng@lw(!}QMYudY~YX;CdxRHiB@nSVw7Sb{b5ptZ3VZ6DSNr<^mYt;KRD;%F^<;64n -zMttJrb#vFd%#b3b+=aBERvbA1&?|$4ryUbPY=c+5!H6b2amwyUw%fz=8jF`x!Me6; -zdI2BFT~;7d_W384HA_Rtb6bsh0QPVcu!Ig!NQw%dL->(ty#-o)#deY)JpD-u!>N!n -zj!#HbF>ZY78Xz;RFtl5)YZcimI(v0wc{UhvTNEjAgah4qBv4Ep^7G&um1&g*e!Fxk -z7#b^{54E~`iUAu^nSG?35VFKcjym}(B=Rt9B#2OcMw}b2sD-)&k%XB+@FUNI5kK;8 -zE2TTneD!SFSLX(Ni&z5&lE8|0%I9RK@PxnzE%ZP^MRZMGksLbQ;RH!c_LYxLJOP9F -z5bQMZX#6=T`r-KkX$Ktib)AXNJB!x{_Y>8883h>C7jiMUT0C1$Pz|blfu>?6bqwZ$ -z3kU4=U`K1NnMU=4YkQl3u$v(9=A2&!BLhV6bIsIyMrr?KS|LID)29R$)nm0r?dMXK%XHC#y=B0S -zg)o^=VLcLx&THlZ^*wzUosjT%=ZR)S1y$i$SVgNl5gwDtfbGk)Kmy_E6w=T|1K0!4gaF -zm#!^~LOjn;Ajy2z^W1>(hpv6`plfSA=-ME#?B8^4lyADWDo6V%ELL94Z@M<>y{^sq -zUDvMqQ`aVSPD_x|zt^=<6lhz&>)Md_y7t?D>)JvfEO)wgc=e|OM3Zm2wu16B)^}Yy -z^_Q+4t1Ch9plf&B>)M0lC1gfty^nNlQvDndtx^~(RT|4DY*WQ*Cz0Rj-|O14zjSTCZ@RYLFI^kzPS-a0u4}u2tAEqAYk%n4e7|(<&*>9CbZz~|x_06t -zUE2wpj7U=*b{U+R{z2C+0p^Xq)3w{Le(2gO6c4&KZwIk#Hw|}hm|^Ihu08xi*H(I@ -zYY%|j>)MsS>Do2lbnSru)U|uM|IoFuW(48VnvK5e+9akyyx1!&3kTnIZQ1t#7!SI( -z-6LHa>R#8@zSFhEzvnsK0dWL3jL_lvlrW -zZMi4(p!)xdt}SoXC;cy7JN=NDVOuI>4^u3i41YnOl1wPU$MqwjR>A=IC`cHQr~w&O2d -zTjyTa?z+>pLnj_|?Wu3NHq|3t8>l`#;is;h|3lX%z0zw6q=H21nT`cGYZHT}zXU0e6N -zuKmK><)^Nld9Q2R!FwNWKIqyCf9u+#-*xTw+5ghDNrXUw`m!GB+5;~a(7A+v*R_Fv -z=-NJax;7@V(IZ_O<)6Ct%X?iL_`9wRlcpQ~PhFc_li*KXyX0Qij{dG|6aG`zE=#0V -z{X^G&`@iej?Dx9%cprVhy{;WDh`=Q)^HbMm|G(C?#fD-O74c?&>e^jYc;9qwx*xhW -zl}8)eBV8NjLDvp_(6#k`>Dq`F>EU;}cJ#fjy<+p1uASVsZ+E9_2Y%PJrSe}c*!{oI -zwLkvQwVl7~+8~p|F!#DP!7p7q=}y-cxYM<9Jn4x-iOIu$*R_ql>)P^Z+vsmyo9s7Tn=@PNhpz4QUDwY3L)X^%u4@ndt!s|}li%su -zM89-x&IeuFGi)~N|3ud&_=m2I@~5sH*@`y+qw`qTHhIvsZ&EfBP7v;N?PPeEpSt$P -ztb1L1)B9f6jwuAP{zKQE_^E5t<3*}%Lub?uycU3)DE0`^YVwtdjG -zBmYy^7QffEOa4RGX8f*eJN=<+D?Zk>l^=9%;Xie4>ECqiqMy1p=Dn^Bb*F1*{nE9K -zAL-htk9BRtzjf`cAG&tYU%GZz)Ni`>mtVT}73rO>?SHRpOaEKf&i+H!u6?X)kNwoO -zS6-y(o`UH<=-SDIzv%3r!RDvD2u|IWfm4EBn2tRdglizi1+W%`^JO7uiUG`nqR{IZK`-`Q}!8cu- -z@rSNm@<`XN_+8gl`=)D`{6p7f{h@0+Px21@scWl0(zT`Tb#2=J*0p2G?{w|Gga6RA -z+wOF2vU^<{2wML^*FI4CL)RAh|5(?a{gYoh800a_M;A^oBdY^#`ynCXj?R+yKsA%0RINB2(RSI99 -zn>gHs-)*YG{uH=*XIGQ-rrQg1JV~sYaE&+Z5Y`W)i|}KAB3zKmV8S&Dw&b*Cc(4#E -zuJGVd_qs_tCEPotDLi~J_s`Vp^~8gYPVs`Pc0lOy>RR086EubMUY?S-r>?J`mVpkj -z0Oyuo$2ceSt2|lkCOy?IaPOq4ct2F{r&CTM-*vVDN%>@af}Bil_bF?PGefP9SjkMD -zfpY;R?Xy@*>+{ct&umi6?JMxcUL`Z6yG>*DNb4+Z=OVmwyT+b`)2H?h(GnC#d@m4a -zk_a%&Z^Z*Y?ldNr(!yoBcfH>+O}a|V&{5hhby2(^_MWa?r_Tc*7TFS?l<<~F6?*mK -zQTN0%L~Dr#*7}_J9T>il#H~Gx -zsX`P_#bO=EbN!MBYyTL+ -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 -zo$nJF5DHK72pjX$E4Z3~LwJtrY- -zk?YQ7&_^b30Q4E~1-UA6sc_7uVPt^p=mqgtx#<|2B3)~++h}^@GoJ4`*XA$i5efico2n`=GlcitJz%% -zU5E0#lRU?2d8>FvT@v+W+{38vy`oRCb9F)H4n`oB=;y?$q7}y5I55=JWx75Z4wP$d -zLjsDauqTix$_1Shdn8{|X9Gn90?Qh+$zBz3&@i)>Wn8IJFo4ff-B$3tT_;n@Mr!g2 -zLBC5ZJV*ALwmdDCHLSD*rJ5W%m7RfBX^u0h#eoQe~R-fY#TM1b2+v|fFW5fIvy#Ha#@c}pQ*H2Kkvw!3R`pKyS5$fXV& -zq_o)qgs`_kt{Ve4S{9Q9!xZ~;We!}FYNKWMa-`n=(BW2#UN=(KNyG85?n|{Br^Yef -zC{oO`CtktP=e+wGVxtV825z!|ejjpe*UON2Z8#cT)0nx%%$LAp+mEr=kApxHfr51< -zvWl2!vo@ABG9AI*kS-C59eO-9kJw8~IIKwm->Ot$#uX`hU3xq&Ef>xK*=nt2q6r9S -z%GzTb?aoUjXlf&5g_H;c?O~JQGHqdW?pa<=taaK(3;VL))x6nY(82z)Q3#xzItKuR -zozzhN38NSc6t}||6HA|4Cr9pTY$b$nZ)19J99dTQiKWIXSt2qkxLAp_j24cx43^UrlH;@m%)zk`Gvn$BD}1wI -zW(-PbBVN#czCLTmy{a+a5En{W^^gkMwDaT8v~Bt5B_8C8lBP;uz^w|6r$6phGjwo< -zs=~a}Mbo|nrxHw8Ca=6`TVfwU%Ag?fRSyRo2bA1Mf%j>ZdOb~<<4o7_-d+Z#lA?k1+;B@;;-NYQCo~}&~%pb+?!lIL%Uu2XKYP79o;4N(;@n>?)(^gr$7lxahHbJ->$Cwr*AuB7aXlsdfLHS;!IR@(*~vO -z7h;w|o``~qH{|nVHqXOz8;v)-^ypdou4{X-1$&eT1pZUkW*wKrztgoBe%H0_zU$iQ -z;Q!RMi|e3hf77+Y|IoF~|JJqbzU$hOce*yKX57859rho(cKU;^&G}u|UP#B+xYM

      e_Y&%^-KW_LIr7;yYa% -zq{j>Gm#z);PhA@jx{vl=*Iv2TwQKKnZ6h~4^*dcV<-4vO-ME0I-bZn#Yb#!0T|=hN -z0#^U2YZv{gYwJy?w>;?DLYAL;e(Bodq~COHNVt_x-*s((dtEyq=|R`-sAZ-4UDrNe -zy3@5Y?{)1!Ga>PNUAyd&t}TDBYxh6awLd@T+RT6I+R5K^?X91>_RBk6JLTWH_LoPx -zw&|U&JtXIcHuO|j{F|-~@t3Z>k%0J3*CzT)*QR)^YpeXBYg^sv+RM%ly0+^NU0eK4 -z*A{)ywP(~Z9_!i^&&AO0b!`P))D6`KUHci5XouqBgRTv6r)$6cQ`esRrfV1c(6wX# -zQ`gS9*R@IRb!~c-9>MhAbZxK)U7P$~*H-+cYd=v*pZHtXMtr1eL;t30XW#4EkUw -z_xuO1E&G$#?z!i+)&AtQ4IX%HpL<^0zm?QUOH>3~_MX>vyyLamzVq5<-*|1ZN4z!y -z|5v$bb|}&}UYl7!{s*ru@n5_)S}|*`7u^qD`;7h(uTAxh*CzNEuMP8!*UqH-H?RHt -zC$D|Z_l?(1&w0#iEB(f6uNXb%wTFy241Vz1N{@JL!h2qOv*kOleFpp*`3J8ZdCzNy -zqW)j<+R%@9ZSwz-*N(sEwZ$Is+QYx|+Whytw(j4&HsyC-+x&soR=wl3NBw{C+US4t -z+7NfVHcz_RS&aKl|LyYa_U+B>nf6UL&-G=L-noZ^bJ_~RopzMD?` -z0>_VUh7U?&wB>HMI^3My&n-;hv~4r?Mx}Xh;hHHJjA^5yInkF7{NWz -zNPkiFzP>Z$w*9s`+PFID#`(5GrXJ_B?sa1QXBhp^i)nT0>)L$B+e`cFLRWsosZ&f4 -zo#xxqBs^$RlXmw(b&uJm3+~<3jqA7d*XtMc2xI4!+ZUDR#n(GLi}kAl!yoFR3wgA= -z$CI?XT9XQ6SNc^FzOI|4ttH)fcU2ikVziwe*E#Z9!wRXoUr`xa1CB7ptRG#_OxNn~ -zUGdyp-hSm7zwKweb-2BBKWZI&(<8A^@5aC!WL|IYKYiPuqy)&M>hUJJywCk^W$b=V -zE4#OuS_D6 -z1WE1t7e9}y3 -zAxJyMM>_6m%k?FoP5AV&+x*?v?VpUfZkCo-cegAMC+D9+4L6J%!Z-J*Yrm6fRw(y_ -zswBr%_xEwecWSebM#5;@=NYfR5~?`3c=;7Wn;HJeo3#wuVz2r$4zw@x`cCfW?_#M$ -zHEvdMX@k-5^zSycQt45Q`_QMeO6$4XPV)CrvG1c9<9J#y-1krU`@4DA!WiAiagTWn -zJ=<=N>aY86uj-qGr%t4r+CiE1m#9}%m#TLI!Y;3xqR-+=iQU4f_an>$k}x!ujM}2l -zvhRlB{k4b4$Cy1cE>?usQhLr;q|>*zw-*QQ=j*re>7IAJ0HAUVVDTE#lJZ) -zI7>JBLg^;^WIo<#WfAB06?uQ<4J!EfdVPQ6aa?4h%6R1^R&yEfD2&^hOmwUi{ibc) -zCwZS}ZZ=PfPZY57?mz^4%hNKF$ZjR3LXzy&glMp)(G6GEj-EIjsf<+^~FV)Xay6ovKmCu*Ypl={yCB -z>t_nJ3+7__SlR-9D?D2Oa-`@2uWgQ!tbc_hyLTe#049k;Vp4>qqx2WI1r -z)@V2E==)sZ@MbAOI%Au8BETTr{I_ky>0C(!vwFQ;w7~ZzWmC3xAZfOlY71Rz#hdj- -zHJ`r~MDbstx#+Wk=c%>1B9|5e%DQoqXK|G;g#dOdi787az?Equ%M5Je9?T?_(ETXm -zAtw!$C$najLs|6IzILakPkrt41_C0k__X_k&7L#zd3>JR;)}f{IeVsU)#AEPJjtZw -z;ev%l3d3p-XfyTG$so|&;@2Mm7N44=x+pYSbJ9mo`E+PCu1VQ=CrLDZkX2>Ph#4`3 -zyMVNSpg%K>Uq{BKDm%E?AuA#Yu8D5tCXwEqR#Lo{pue2ttABn{-;Lk3KY^lf)#=2z -zFO{s*>^%kzYSWpTD3j{}JYQ<2e*j6Q`U>mFdjTfu|KaK$n*v`#QyN=9UbA3L7t(42)u||H3`#9Ig2u(Qj -zxVMilE*8Sq8&`qX>Nu1pOxfdzS+n?|2VRve5Er!naqfk5GEc_Mo?i?gphw*6c&=>T -zf1vwA%Ya-@yJ<%3R|Nu%UwUOUBaXG4AVymF$242uyF3a*5pVP_TIe^_ZP?ZTA4;Vb -zZMHvVr$# -zp?JL18fS4|Fy3VPf;K10rHBmtU-w>x=?$4#`v<-s@&d^P5dE)we^4)13wqM2)dgcY -zfIF3;Uz}^+CphFt{}R+C9POu6nlo&Ep_F^sRWsb;RJQKQ#tJl7ap-F`wL?}-;6UaE -z>g=21qn2=QW<{~=+q&q(&d0uuRd*;A@s*cs!Dp8B$K~)9`jd*hSMD@sa07dYKZ?1F -zO12YR(ILf#ExnrrZUb+$c+`3qGC7H_RWlV -zdUqR!!8fILS)@-$He(FUv9IdT!v~wSu`XL)ukjd) -z7U+X(v&wy?!EPDWbyHRwC7*c%CLqtns>SVD!Qh!Xb?Dp0g5DoN%!qWFF;9*sk}@bR -zk#1Lg+z&Y3Bk+nB@Dc!!d{~Mh%kn}$cLayqshX-$=9W5mt(1_GdqxT7PoiR`(yi4T -z;hk#c*?|%{Bkv;lS*uWdbjFfR7d*RZ(jmK|>4@pQ8ITu6NZx&GgW^#@+97?d!M&YK8#@6-=>%a`I1tDc301 -z$DwN4_<@jpD6f@PUDAsVfkS+q(Bh4KS2pBMp;eUg7s)*7Xx)j2Q2QLsCw|}Ads^+V -zaSwJDvp(Uo3ltc7CNkvkS2Vt%`1MAPPvJ*dD(Cu*5WSp3mr8Wm2_tKpX50Y1A+Bse -zB0QKR>UcrGkGu@@>r!j+S9tG>mlv;MWna>cBM?T!Wxs_Q;?l_cmfK!on2gL9lA*AjyiXo@oi>to`Z9(WNc -ze6l>RuyDXjDdI4^iw{oztK$Quq&3Ln4zpxblvz(4gr!6*Vj8B+JPU(9PjgO=l4&{q#S|Lw~yuGi-u^qG%=*s!|Q3n_%kTGdj7!w6Y`NWop|`)H9XCK -z0pbFJxIQ32+x~~hPtN);k*_x_j95IlM!`F42tg0MZa(`ePRTxNxM;?-{VoE?gj7_C -zQpJ|XS8gax2@1^T{q7-3)c~~vTJI`Uy`+;B$Yb^&{u1l6W}lQO_^0b#aOuO^e(HwOqMjjk6F5al@>?xd|hc4R}Hl -z+b~1vMOzizeUx^l)xu#6!uJV2ya$J+C&{z)1uEFpupbB9!UVv&l; -z|Lf-Sr$GI4^V58IC=#OnKR4f~n*f}O{G-VlenElw#;fD?niL}!R_k_LZNg{DuuX9b -z+LdX{l4|G>S(Lh@@333D3xJrbUvbYD12D9uh%lnB@vbU2A}y5){}4mP>pd~vwKC-$ -z#`p|Q+G9i;jY4@A*BO>cU3%0U{u-@h5SXEn{eDuDbqNh_R+j@FdK9`yYxt+H_fq6d -zi)IQ#BB%A?ktfL}InfzlW)kEh&tgSy-S{n*wxkt -ztiyq%UiD5M7=80fWA12WUa*BaULm0GOS!K%ZY9wd!dQR8#4NV>s+SSc6hd2?Gn^6BN8XV*rI_JqkT&I>q0b(Zk!JB~v}n -z;ettYo#deM`FczeT!P^Yc -zFn*b;8FggE-#dnXK2@OLiKq@2rO>fusY}#Tz&aGS2yi^#0igQ-VMGo&nM7CRV%w^= -zAoY=qY_{{nimzTjOd8ZuH?5V$L^^6!l!hdGZUVg57}dO*@*Hq9KHPFe*O6WJr~fE| -zBLhaKh&IO}-865d4GD)9{*C29ss=Ga^Jr&;Bjb1R0A@`5_Wo|-QQ>-9DqIVo0T;HI -za<@MF57ZB|9R-za0zHw9iQ=n`8|U!6hD`ba^_8RQ*JT*Cp5@<41{=&qfkK6=5Z~$@ -zVTPcZ9nOw&wXvdm9w57R$=RFVxI0rIw+AJgB_4WV6pqPANP95=%esDR{%K=1jytZO3$z-L#4A%Li;Ixnp3cWi8GNP8iQ0g_ao~gX#GF3 -ze#A*Kdg3@l4B+>Og2iF;Q1TQ1_9mU!r-gC|Knmc^rG`XGm8vT4(sHQf`_-FSJAMxG -z9kA%q)bZu?xJ%rbqWk)3ximrg$%!zayDSri7PbuD+_wl)pV;u4S}ag|%W_L0y|n|f -z<9uzz1HCzb>neR5-a29?O*r1LISjy9PGs0xa8$H6kd$mt -z!-erPED(-b4VVJy%OP|5sL9J>Xz-pUZCqZLk4o^uKi^^Xep(4Q8Y#l{&kvYcY?1_W -zYA%mgJn$$v-+6IFaD9jYFk4uu;lkoR+%n5kTRaV3Xq1h!8am0zi2iz46(yG4c8^zg -z;g>j_wgcD3SKL$gky1AZ@*7Wr+*Y-SrFEU+P7ha=aS@-bh(Z;F3aWNkR#C;PD_k3=(!D%z`oG -zxs53MN#Xbh;5D&zqw7#`2DL{4CIDdn1NGZfyq$%u{DbZ -z?!bO0<$=ScOk`IvANUk4!Vz4_7l^K@JOtM!ZhN9(^?#ZZOK(;k-(Oky#|3Lg4xbQOo@fbwk@ -zyp#}J&o_FAS_!wsngIS=*}N3t>8A8ZpLM%93}DsI2x7!NT&T%*oWe%uf~ncOrbV0Z1eCSDvoh?(T( -zWF`y?%)~VtsaT7LjcwS+P1qIu+1!wv@hN(5278{#j2r2S{e;qH?@i)X(I5lp4^#wT -zoSDx<2d7XZ@eccs?DtUADR{z_#w&wvE#CwYoND2tMhA*(6oFSQ)UG<8$E?{ajql8M -z6nEa|;a^;D!yE9@%GK#i6O94k@z7!z=3P5c@W+J?AMLk?MT@2XonchGl3!mARTEj% -zjI0$jaXKcCU;%^&O~Ff=2CfU7(>{iJl;}{WTv$J*r6k`I?HXn|4y3=t?S -ze6m1VmA?t8E7TSLk}nQWTV*rE%0D|b5E)LnPo`PFx8c<>NH)tIgat!3<*w#e>I+o} -zt~0ZxFzOkpv>bnmtW6({^6ZZ^M~fo_b+8wgK}ZG@GyHWDz;`@@NjYklQGB-++dqP> -zpy9vG8xLKAY3=+6K{hE#)-mM}9cYFU&13}UBI7uFcz;HBjNoz2snJ>Kc&$`>8}mr& -zfEk}ZW$$9zt0SC^USv=v-!}v+N!tnappgqsLFu@#4kXWaGutOQPSjgDSIb#Q7%AW) -zklk?)2IUDKV6YVgOAQ_0pc$OjN!3Y>;m7Vra}Y5);Bef8lU{a-6^Tsd{VMr~_xn!$ -z2k$@qgD7N^+y!}{w}znc>mS|^wF7*yqE%Q09_+kvJBQR!#Ea(1Ueq`x!sB$KaB!rn -zB;jFYgLgYUBol*pTZu}Jz9{^II(_B52}D=({cs4ax?MNqDLMtj(phVn0Sz*A%4rK{ -zbWyZ0=Kcu{5BjYMK!k-4ohEr>`ZixKyg$mRy_OPa)>y(RZNMZ@5AMF##q}#oE2u_C -z|DSa3jnF2~TK?zie}F$(iN^5hlNSd7G0@$w1YN8gxmTX)bvNo#sg4@LdLTvq%lRWB -zQ(uehJ{Eh?cg&Gee1z;vAy3wHeEG^+Sscs^R!=8ZhN(_OLV8IU`y6$pRn(ViKt`+r -zw>#4C5r+?2EVDrb1bCzTd-viFjmooplwH>VHV3+$mh7XlGyQl`%%Rr4H>0gFy9k_B -zYK}Y<)meDE+&6L6`z$*pE7e2fiI7uA=k1hfKX4onVbnus8vTu^lRC)7G<1|bep=5B -z^po03cKhIeh`&+5e-ZyH_6dnl)J~@?3?aIpcBMH2NwhT|NpYucT=t75+8K!gb;7?$ -zr##BaPR;Blx~Aw;pRnB4-u{qXI0)Y{lL+nt$3ulm3^UoQ!%a_N4RM>W5j%$4r3h*; -zJJ9}?ucR(oPHj$LzX{0~;o618uq$rrz*^=`Yw}bG8%CHZpN|CaAO1Q1YQ$j|YxWvw -zW`FA*=+h1O@8CkvX9>Lk%xU-hf~{A0MNnW#8z -z)%fez5L0MXR#Hm -zufz)2obl>%&gP;6l8JMESBfEtI|EKB`S-4){&aXi^s_Sdsd*bq=zpr?vGLW-I*>fb36iqiF-bGIwk*dYjtt0#uAH2|aJz-mr*`?`%X~IB} -z9^{M$->N~jq0zjyqXyVt#A-)YlYDYjI4^nq@QzB|MhnHSc%^V!9vRGbsQSQ>_;@V# -zpVh?9iJvLkOtW#+K+d2VSGrVsFPRi)RAZaghda!E&(pzVNiB^i@{=w|`c-^MD<>k> -zTR_)8B}MPs4pEl%j{^JhdLzKkFj%!uFMndttf`(3K`9P<`lj5OqRYY= -zB_qj-pfL$Dv0EJ*mb-(EE*YqO-nfjL|x`}0saqx25B(^-qb5*e2r -zw#5vXj*s8Jz$&7w*aErFzPFK&G)3DNN-a6fY>KXtLLkp+2dUZtXdP~7}nn1Am -z3qA&}GZ*$P0i?>^D=>02 -ztb!zbt@LE(3P~0{R(9+)8=zHs;cCr?82>f}lj54;1MB5cB}+Hhq9W-z<54cu)6wg^ -zR=2-biP)yn!_%XsK%UwheIaE#QktnWXbgD&d;3L<(>t3HhpFYuxE*F?ywh6`1YfCZOtZ%%h1k0Wib -zq8VJWmVc+qK7zp%`}q##<&DB27E^&?s^{_cuXjVJXtFUrKyj<1(I61)P#F_xNTb`G -zh-d$I099b;EK+}F{pct=6)TNnISBz8RlMVQL#OA4K3=s7v4nzHH%$>aI<`vE&3DNz -z4v(pFgNXjT`cNjIIezOJ5d$IoIsINdrytuNT|=5Cer>X^y{);xw|ZocEStGA@b@D>H21;Ek@^ -zH7fCPLkK6Cgi+JjBSW_@b{pKbx0~e^;nvUc5sZ|lE_qh5uZW8xEl9;Jw|0rk-Su|2 -zl4tVtdL%1ZY>@WZ>!jW0R{cNVAK}1)Jcx9Rm#rPYb*ikC7o}Li5zmrJGPdFgpDe*X -z0lD;@X3uQn@%{DkviFLm(_`|rc7cC>Xx_aD4{(uCRXfeHck}P}Uli^jf+~ERCe|TN -zUBs{>-s_S`%rS~lydPkqd#-72QUfF#q8G&g3+HoBq+sHXlu|QizVOEEe3|ao3S}e3U&6s?6_eR-5XoY6{-_x@)eKAY)2Y&;=Xqe -z@&nWESb43_ZIS-)e#XrkFG8H#3>K5e2KduX4X=r49Xm2Ob6q2_JfjNHH@FlJim?5D -zaEqInOU=lg?87zGNb;V@$LDqx=ir3FPqj -z+iVOtuH!{$*RdUse0*G@NR1tc=LCFx@c#I6l(L=tvQ_35)gq&!e*{Wly55DZb`Ak<=3TiNv+SVDeJ^+ot#7J8A!CeHB8){N2BYa++AMAHL>v)j6YCLgDBs;c)cB~7yuAAg$KEaLM86^!h#wb=8;9X3< -z2!x@4oK=lu8i)3Ep-kDI>QZ%H)0IdQov;Vi+G66o^%N$-%W5=VTZ1phZJ8Sihh^d- -zYSn9r!q~+et&z1EHl)9(*+qe2x3q1Bu44*FV=;wA6Y+C6l6>#Bqd3!|aH=2adFP-( -zIZr+BuyW%GcJcbdUboi@udDx2{`vAIeR+pFZQb>OM3%ND1*%A+BL7GEKQgMJ -zKB{)|Kw5XUP4x!@k)MCL&jK(23>5ri`=|VG52Pv-8({9yr|c++LgZ6H@xzYr;!oTB -z5x1J|ef`Cu(PH~&ykjIUe20lmz@bkFuyPlcEbTlf;5$`b -zN-uOBqRK@jNBzV6-xeZU9*CT+)>@~lz?Q>S3!?X``Lz^>#jxQ`@6LdAVz_|8{CNm1 -z#b)J5Lo?+|lh?TRIMb6SkDFT3Y(MuMi$CKwTV91(gpPJi!0-dp;(VoYP}1YA%NplH -zXk);5gZZ@-HR>FgHZ#|cLi~YU#@Pn`Rzint36$lIDPa-!NtoL}w@Ayasv;;iM@Fmp -zRg4MR57vOMlQu`1bQICPwWYwn&G=mtRG263I4Iae+B-qwwCq_nJqBW55IZj(2 -ze2ctmeRt};I*=+{-jB00gO(1GxdWClsK{!zW=)T7LF&~0o#i;*2GGuF5uKZ7L;V1d -z8MARsP||#iuA;2uFnGP_K=bHPEFy^gr>vsZN$ao#YkbfI7j~HCQ4^|!1v=} -zSVwx#Ie1Z9%t5KAM|z=xN9!(tFE{p3U`d?qUQ&hl&-d+c`GWF88^Tr}_4I{p6-%Xl -z2Uk%+nTd=`@j()N8U0O*_e_4~v6KoTizd~U8% -z7^?hP-vFux=e~7N`FH`UG@SIxF|M++X_Y}WdezpU!%F2c^q=@I`5*DWb-GR|y`GkR -zKj683ff>Lyv3_B0(|$vynmNQN_dUS)Flin!@R28Iq=7Bn6!lAFow81QVXcv#5VJWm$2~fc37BPg -z#)~P$=)zjmD+26Yo#BOm^k>bC_)EXq4CCld8|2kBv*;qlT`qz(FRh}c#&)RxU-f?h -z5~Z64A!3_XAKkaJgZVu6B(RHI4rss14^~xB5keQ9k%B^Z=tupZb}`pY#)&j>zmd7S -zRjh-6K!xJ=SS}Z{JWEr0Fh;7jjU&854o7IQu9TylX0sEBDm?yXRpMQ-p?JG?oMS&W -zK~B8quVuO-Ig|?Bf}%n-NNtlEBb$Aj(%vKJBfOov -z!$=9HQEbJJ0<1}a37bZN+dYYcVqaOS$TuMk0OTjmusd;?x#uHEOGXXQk;5@KU^gjS -zl8z!Alo-^(D*E*9l@slp`H%kB>Y7yYcV0)@YqqEv{zw0-_FUxr(Erj0u7L#U&8PT& -zA9YgD09ZATk0(rhqi>YZSvN0jz6OL-PY)+pm+Cnjm0224d|)PW_kQ7D@n5Ec;0u2| -zp3skQ48Iy&X)I8%CQ;bBr6XRY;fW~@hyCw0b|QBC%xu|oIFxNimFihAGlIaZk=TQ5 -z^c;#jH+ucLWsaPHP!WPLX%>)MnVk9-=op~^`%7(Y#NVpo*3=+lH{wC|tCpZMse9L7 -z%&_UHWre)41IkQ*LuIF~n$|QAQ?NM4>WW@ZS~Z$m!zZjNA)I12t?%fG8*2QzokgLN -z7wIvm-|g)4;7`FkJ0s9%P8mvG86GuPg$!K7b6y4dMXX)Llkt<8mZ3x)El|`+WL#O9 -zSdmnK5Z)ZFswtAdB%Z}aEIIMZ+hlooeJj9Ds;-CbHNtx+LKM>h2Ti(I@ -zf!+s$W&s~vDw~oJ-9qsa4rf1z44p}lZ^JGCfX2+nRz0nQHPAtFG`k5cM9nWMEU1T}TAPX<}eV!nKyx5ez -z;z=J205rNqfyXn@ph#vT{KR`vG;kHkrtQvk%mUbiclg4il -zoi?zP$oO=KreM(mMZJoR1)8g1naTV#6UQF80XeH)qY9@OiS~NG*P;(5gDPCXR!M*E -z3`D}y3;&pgBIqfsD)Y_o)m(C#M<&OyZ3aMTo6T~mV2Ht7z2(86wU>U?7`{pl7N?NFP$hyNH}LQz^G?EGO9%$_QFZQG{yb{>?+f3`0U!n%VIZ}4@jA&{pRg?tqQCbknZdlKv>Y=j0?r -zk@=r2uNK3%lJxUHCQ&3SjH{e~R18U}l=dH5h0wU@V<ko6=cdU^(#kfw$S+4{p*I3Gr|SuPU^O_QU(Q`g{vp0vGS%04CCc -zfR*#0tyn5S=ibNbMU5gh3H$_Fy~(UC3IAsPul^Du$%Kp<6-J` -zN68`5sOK!yjVidZrH^#uci~@;HtL?b%k^+9xX9d_g&dXOAD!=Q&C4Ah76Tvx>Jz6D -zIDinI;izE7QbM`wqhx>1REMiHlQl4Y5X4&?wUEHk+V -zuX727tUGf5hLF%HqI4|I-Scb%tg>Vgtm_PVUdJZXou}2ejO5~5X~#NlB)DtiV-}Ac -ze*{zR@7a>gTZpx)yhN@VK+7nQN83P-iQHmD& -zgT;lIV6wPrumH5FolP@rwu8i2x -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 -z{i%Lvw=as#|Hx4h -zgbNNPN4ItGLN5ZJIr(y-Dn&N#c9aMDFzpJ=c0T97Br^jQHna9JBC9BRw(Zf)RGZvn -z{7dFF_Pjm<1?42Y_09Dv(IsKhFnwWRP<0N#39jeKg$h~SOZWur%?@*XpgY83)7{L_ -zUB^1p&!diuPuCr={B<@A4tvJyEJ1M82gC!B2gK~A;Tgh;6>r>@@@v;o&vV1g-Z7;P -zis~ta($1zqBwP~n{j6bJ{ii3>Dc5RNla#EG%lFv@D{q|`{3|noR?`8Htw%{UgCnBV -zf??2}JI1^jn>XQiqQ=yQWikEhNEbi5ji7l5Fd&9V5zT7gk0@8$YUI6mO! -z)?x~2)%vg1r2e>c8euT(n;lP*JZR26k_71`%m^@ZKhyAa47$~4Fbrx5@~lQs{G -z{-pr2U=Q+iy2lewfjphMTMZB7uruHsq^EfumhDUAbsMwAHt5gt{VdAGAVdE*1ptL> -zOLyd{Q~RkcF?Q`#cm2tl_J$L}`%K{Kvf@aTA$#r_)b~5Sb2ty#xlQW{W!nF0$R(f= -zp;>3!8=?EzVvYvf+;%d1otXN?@jGHt;=KC#_4F4VTqVd#WkV?ck$l%@ynehQv`C}t@6jUGS0&5u2 -zgn%898wHU8+hn%&5b@)7`D?!bp$fF{Ru>dV$Bqq>{*wa0OZd5$SW2X}&8yvFFR2Hn -z)-gmr^VCNRP+zI`h~RN^zktwDQ71BzT6EhykyZ3H`j-M2U44D)=DX!u6GO|yQ8O-G -zb?4!ln<;6J6d{sW$92~tlWz@-`kxfQm#+-_Wo~@}+kJYF@AV2Yp$DR*<4N%~GC+>E -zY;X)bU5*JB^zKS1O@zK@US6C^C24-lC -z{@)SXKK4`hLy=PTRp%hEdGnw*T3mU#CJGE04$8n&yhwI%DKWLr!{R6ro@TVHr!;cN -zWrDfJ3%5kF50Y}LW{hl~J9-CBE%+)MfI%8`p-&5tE;FT*lYjG~2a?dxIN(@YdV-d8 -z`Ze+EAbZzsbMzMh{2W?CcpmWDw?Q?;A<26;)DOh=_Dz?eB7d*f%#Q~BWk>*?E`0{f -z8_Nj|KlZg#Ht09?pm@ZYz087aE=eINc-{elOd<+kmWU8RhEuz5mObPSA-^`C;sCwW -zk*+i{NluIlD#L8zghwjmlfkRS#ShI~0Pw^(a*P_S+Gzvoxr_Cs82xldJCSCCj(*kx -zwMAF{n68x6R3*&^r8}&zLnh26;lS__I*sY+1~0a+WU9jN62rK>JUT&rD=HZtJB)2w -z1=6A7bczm08#OHPwM2C(-t`--vPk<=Zn+fTIbDd5jYJ@o2pl*MEWH1965=ha#c$aE -zyG$9r31)~d(V_4Cxj})Lle|B?=}krz4T?C-;aZ;=0brU3H7f2f=ix5ehRR)Ybq_C1 -zb~15moe<$cb`?Gm+s%fzs8ht;&u}>Pv<~9oxionES8FbhKE}#u;_hD2!}sU6wtOwp -zCc*06cb53eQ~M|1Vqc@AUp;#)xoPKDOxpgS140saDVpK$Kk5qAxk)$e6W#e0t5k7_y&TbIUMDD9P&H;5J9Mo+yK$k>4R~j -z>Tvn1Zp%FV_$t|O_LdC|mAvwikhxjb@|_j=X9RRW9m=XY^xcM>oHmvp)e^*MvG_tY<0S@0uh -zat^5#BFyne3?EPiTn)^dN&l77SWB-w_&z?Z;C*p|0s -zRO;p(e)+|%m$Q#6_D=^}{Uj_!^fJ0OU-Yqtge;&9;``W+xz)rMslYWMaP(8$9!$HM`6E{R~^ciS_ZI;{_Pl2$E0qwldYQ@R24f-c9>C -z{ape#(-+Nvy~iSBQ_t=51z>*s*AU- -zM)hb~D_qDtD>@=BF`){-Djanr4?~5=a#B0y)((LA{IF`9q0%xi6mHzKYUQYg&O0UA -z`v2g+hpx0b-Oq{LE>mC{P-9MTtY)^=yjh{bot8 -zI5~ELqbm#)(85Vz#tot|99CGu|o#hsVkR#+)*^mbp -zTy9oXgX->awmgg{O=|$FJsTN@> -zP_g2uz#&28H4q(;KYyb0yuDqjkf|~9Xic$~MDU|&@|baU)lyTD9Eo=Hm+!}2Aplv$ -z#RUVQ7-L*u@HP%B1(aslrjS{f51@+C1~)I@(*y}5?i8snX*tc?tLG7C)WBgNfFAwQRTr&R?oL7ZH~kYUx`WU -zp?APF?|X)`a;RY>b+%dZw@-03pc6Lb5BC*jlDq6<>Sip{##$= -zW7ljTO}}}Y#Gob3)KZwSn$AkB8gM04puD)jUL9M4aK$3~|;tqv%03?>D5AvKBWrtuM9)mW58Po;;?gs}#r}Z96T!kN{zxv8D#i -z`L{N8A?qwiLcD=9(QVUWo@%yx?X2Te^^r1+kCWk>fD6$Sebg5Vc#S%m-*pB>;m80d -zb(<>!#|q?xJic){t*0&luOKT@C3lJ9i`yi{9CyU=Ozd{I1oEoS4G3Ls%lBIJ{jK&Bj -zdhZqzW6XT&;#v$Cg+Qb(5@Dg^&|&9`d1BPphUA_C#8yEJ!A&<%Iv1MKT7F=}eeYq2 -zrX(csmAe~uy3}ba1bi<#C?)Y#t@qF0LfyXt#h}dzQ!7P70MYP`CQ8Rtsp*H$f03er -z`}6rmdqKWC0$02D7vam);Wdu~<};M`0!9kf*(`a=6mUmATRa!yZc$ONTL)^8D2XE- -z6>He)3sJ`Aa4BT6JF9rC&3FZJ0i)S7%jd$b@k$o|vyGZsjZ?;xmD3$thWmf`x(DvS -z)&*_Xv8{@2r(&aG+eyW?QL$~?wr$(CZR=#MwRiXK?r)qQF*W9UJ$K&?C4^AWduX8@ -ziauHM?7j0GW|Pjr^XNvek{<6e@h1(YnE6JViWrrW~r#*^xW0l-Afho -zS#3-x$O8qSpb_`O-i`1_W~qCuq&+XrPHAd>c>1k$uD0vUSR5Hl$qN@u2 -z4+hMO-=J89luML7jHtn4rvOfz0*9LhR|s|Uw#mC}6O*65sV?hHf-K8=JQz0NI%)f* -zd#=Z@Jdmax9=>cubjq?hc3xY|KM$9WNxlS1tYiAs2Y$h>ucNy2$E~$;&|Q~`r`8=M -z5c(s!V&RpGhj$<`4~L!yAa!U@VPc4_d41k)fcxUmIcH2UGpeQH>0nT*c -zn-MD)7gQ5L&EdJlzlq&D+9R?q5U$FH*Glw*>+R?I>+-7ec6q!1f^^;aY7YVNf -zK`rJ1Grl_U7DmDn)!XA&RqPBaj?1VJN89}2Nmbb`vu2mqmZ{m&PRQ+6uGFiQDlqX{ -zP_dLHs{AwoU -zAssGeH6+h%8K=_xl6P -z%V(+UtUmJ%&qvACZ=w$9fNnNFBZ!RehGH8*8{Rji*}qS2xTsoC$IK*BjmVh13#4mP -z$AY$el<{o(XWYDu@*Hm0K46ff>aj$-(D1*^y5qiNd7p=S98hL^=Q(fl=`Qb*?&oeH -zAL&jbReqNImL2c7m3^;FGf_Vb8e<86TC -zEl=gRXwZotp6LOa#JVj>c7N{;2?td}#t`eliO&cLTsr2tdFAjx(j{vJxd;p%PyM!N_KoBgfEiPglLItOr9S`I?t^SAdTF9-Qg?+GKVdjl#Q -zl(dG2vPh|2GAbNGse;?UEEw>+plIPB#2wZG1)O&=crniU^88^ilRbLz=YzF?ga{d~ -zY1=QQrVcEheT=#2G!Acu;>I6z!m2;%GAfB=*`>>O`3aNiOGG#K0eR(%-%>WQe?m|V -z9-;D@v$2;wG~6W!u%!*HqO0Z3HgbQYe54V|JthEnQ$83;9!aBljp|nI23Kg0%>i<- -zT+@M&Q{!*A<%47tYpC_F?Yu_=s*1;ZO&KF0CiSsmi$cHJI>6Kn;>o?eX=u>H_3&xz -z>_%ieYIu@Y -zo}9J+c(0b9>n{3BiNuyz#M0^8!gjFFp%o`)DKK1kfEQlbNb>7}%uh_?{*d#XXcr}K -zW#j|?82AL6ZM(oZ?(eT`bd~)im9zFzHVuz*DM1UcS+e5kL(Lu3%~F69yMS5R*Xl$4 -zzPh~)jFxB%<%sxYHW!)2+#AAO(GB)&0rpra=yj?YShv^XKwq>l*>X4L|E8Q014QF2 -z)i+xEP?Uz2<&Hv|slK-Zj#Km@;CY8Dch$(~_>ZNRT8>5kC{7=t3dz3}XX0!unsWcJ -zm^Kxfrn`*u@_x$EA_S9%75Re#I`^^NVI&8t1N)q1uz1A3{pKMEa?m^sgRTknBP;wn -zg>$7dsaW#ge)FJ&A&ca@l|prqb^)#?%njC%Oz26lovtTmG@etbwyB1Fc^(kn>ea)i -z-byh9q9EVW$~c_VZ^}cy0t!+W9K1nVWmeLc*D)R%wXl3%i~-L~ -zu0F(i-ijnx%jcPD%|Vq0FZlNnGCKuO6Z2FiklJlKi4Dea33_MIX6A2ujpzcbKdRi` -z!MUOC3wGmELE-x~%Vyo?TuochBYw!qNP$NRo-+228>1(&mFA-5-tnlIzgvP+ez!8T -zifGkL(ew0SMZwK78fz++S?e+2a~tM0p@)gp%7!ELnf3ORW1N_Zc!vibYyBBfL_${m -zi)vmRx$rY8vznuFXBRELiBcFjwp((J$nCKFp#JTj&T`x2DY4(IEhm{(2eVh_k%-)T -z?9*t(%=32U$d;6M)@bqRVIc=c5uF)KFt3~D08&tIxFCsYGx}RaELLd6jWKBmD9y|@ -zO4WGfhP%vZ3*45G)4?9xzG(E8%Q*{aR+AwRVZJdQvo&^XL@wh=Hs?-`@Grjz= -zcO%ky`QA+6DQCG4&3((AO7_N7Zm0Wg_B1jWy3LScgX2+eEr7txAjREw$+ywGOd$qo -zTL$LayVoTa60NnaWeI4ay5bGqEG+xu2m2^?4cR9IImcxqVy=Ny*#CpQL?Lvmj@F~x -zIB~G&28t;Pn~mN51+`paikc=bD>7)|ctW?T@H;bpgj56Qs|4d^r8@*b -zm$?8n8)q%T_LIKI@ase7xIc}foUg7Z%n2@3eAQ}Y2_^;qhMA1q{{=HkyXB15)VNi0 -zQ6a-<5T{o>u68x5dYpiQC}43|_MJUBIx1p|Uj!v@3W@(r#}u8vmCvd@z1;C_)p6nq -z={;filX;A%I7f`T7u?gxs6T%!z>>hDSE`W>p#rw{mNQ!~T)l>y><0JIOHCBFA8Q}@ -z+J~&FLKO?DpIkx9#)>M&$t2YUsJe>}+OX+DvgFfzY$K)D{+e!7d)o1Hv4KGM7HVr% -z*z(K2bC52_R~q!r8eWujis@4=@K=Z#2%m;aw9))-N;KhZ%T -z>rL3VxSCwP)#3Wln3q@#>4m*6yc1~XDW+(;7alPSfG|*Pa@P;QnQCmo_Oo%!G2u6} -zc^DDYTl=NAZcY#UNJRH@DJQ8lS#E;Oc>_qnT%Omsc#L(;2SVqhWc#*csw`}S_;CBt -zx5SK%S{i3JaiuK}OaYC39zsDETKR=F)!m=bKFH1Y1CTC`f;+mcp2qbXMhZv6C55$e&Qw)aWgwPrwT%=k?}IJfKX2s+l<%Nc9Hj#LKfR@y -zgGPVmD$jxGrZK#-@ki-WopZfN<$=oScn=qpO%p9PVK@fa2B+Z%x0$BCu;RIVm-#^M -zaTqF6CnTRb5ic(B@~{I(%;0th@)aO!!uIORD;Pegb64cxqPp^nf;>W4f{1H9L=Ba@ -zzuK&y@$nmqV|J#=v8SViI%lJLZAVpqTHH`NW+FNara8ndjilV9>88~&Fy{G^zBB>- -z39{^8;4&G3&l1r>IZg=#!rlSYrpvoY^n=m0XOM(xV0$ZXy-~R>8eSRZMzRFy5o~`N -zju2ger65C;1LhlB-i=q}6x#(z{%HiXQ$f=p#bSstNdX9_RhL1^^df){kdG<)6Z?e -z`}w*TrT6OxP-WD~!&slZR_6W0uz#8=b>u?B?V -z-a8u%_Q59SE94yuOEWEu9l{@OpQHC{90a8kdbSxF=5am<3#N9w(krldp|h$IGihJ_ -z418=OA#)yR*NhjhAMXzjzaLXK+7I5B{Ec*Wcah?y3iQCete4?sVPC5{C^6A96fLW1`_DHa4U`R5TU1pM2 -zl4xphA17~Q?{}KKTc7C38YdEH$ceDI>ODdLV>L%#gUTuMpocT~eUd~G9rKWgFhMdQ -zi2G*$4DLxpG?vFljlnWT58`XW1z)G(8dJ@%`TR(a6Dp8I%PPOkS5ooh6XlWu$JDOE -z0O1F#TC=?m^#h#6v4@^qs<62Zr3rzb&#PBZ0|eOEssO<}!@_(aIC4<_BTz7m-9TJ@ -zJ~7O{28a5)R|fuw`~1r(0Qql9i6iKg;a^77x4f?F?{Oo`KkkBs*XY0s>5P1YEX5KL -zy~(2az03@;JUU*MZLp%Z*evj3Gk_3op><+2GqLxMBkc1~aCr1{$|>6=@|VXYuGuMi -zRPKDeF$40SQ$KUsfM0|!CiqV$?@xT-x{-+52f6~;G%M-=4Jm0TCPH<3YB{yR+ReKP -zAqEB|r}lenv*$~{D#sKSH`_JDIEtj$Ry<_`ICoY(f|WCKZDgXh#)T0)v52(&+FTkd -zhoXbd59;Nh$4O)kpuZI*nPNEgY3z8SWiFvdImt6QmDMzZ(9NGp5BEf!d>d+J!`RpA -z$7!dGP#_gJ@B{vX$x3T#BZNy+rcybYJr39uLIz~kymkMNNuJa@;s2MP+;}kGcbu}| -zi>8(XB0tS;4>%Yd`^bR3KKfmxDu5<(3v++;w8OM2ZMzC;=ZlnXK2sCpK5Z+AwKttc -zOo@DN9s{nfBFbjyI}<2^)7ev -z^_C;b0wD?-wq;8N@O;~29PnZO991ud+g}$dFn^tfKMvG>8Q=Jee{*YEK~;Grx55@3 -zVe6S-sa3kZL(xCio9}*xRPkwXu0CE%(tyoc4-ra)uMXDfiuBM{H@QpGd5&}Shp%}# -za`wN;r1)>N4C4EYqrI%2gxdF92{2c-{AeVIBD6C+{t(LJ>&yK8PUqe<`y~qWWBnNgoKYt#e3>LSXRK3${oT@J -zL<`%SPY>FvFNh;7R)`palPu0t2Vo>z24%W#u_ -zi8~mj&>!@OtAg7m*lwmL;pW?hUFNb2F+}L}b3-nQVdiJYeHY*k=M|E{v!`_$64v92(8nY`DNfx4NWLt_1lAvVBVnk$$-0rxv(KO}2QY -zz+B>cDaU}Lbp0s#a`XAIQ7T4lduZ0PQ5f%08(Jr^IPBrIQ{!;)dr=ivP=Uo{^@OKbYp_6_k{3;6T;l;Z5Snk<>tiH{~?lPtJ!0r^lGsL>=Jr5 -z%tgGHQQDUP6NW^>=F0>aw=DAf*?H+)AgU~>6IQirqJL#hnge$he74OZkV^*W2tyZxk}-zw7Y6X%ael&j_D -z+z$Y(&E#Tr1Ulw_TqIRIr22e;9--Dx>FP$-S302~4lck8(w8bq_-O&PmS64PAA`ZL -z8(O`s6vUExewmB)KQw#u9>4`XgW?imn -zX(t2%)Vxy#iMt7n>0OhTu8H_4N32lKHf$zo*OmT!uIV$Fc-YDRK_aR1t6s%?fQ_QD -zRQdHH!U4|a>XGN8CeY~ZY#?n&w%%>u^g5O%jz$QZUmCIllmH>dZDl%ngK^fDv~GPj -zScq;ERsJOlW0GgYB1x-rLpm1;PWBMj53;lZ{Bzm5lM=i_k%y;zN5I-s53z$1=tplzgdMa#6+fPC}~Qz;=p -zHm#}I#;p7q?IRPbVz4D -z6f2ce<8M31nE)|;FX=n-<95|0u^+;kuTSu%5W2WF9jayo0_R@04zoJ>8I`OotJYz$ -zNkT}Sj2_5Gb{dH1hKKQp`huqp7vazIV@48Vjy$IwL3#p*{@pQa8jvNh@L(L$h147U -zy`fPh0bCA>!mp)a&H{#`rkIAN?oo;IV5e{WsLKFc_m_TDgaV!SoUG9#J3b;6F{OLgQ%Jlj>hG9njWr_!3Bx=u-08_)uWrFh^rt_7+a4`na -zqp0wc)nW&I&*9MFzg+Uj8RAZ0{9W_nixQ%!QvfqF&}pH7&4AOkzJQ#A3V+B+(}L@x3c_1?CQ -zmE?|EWPopGU;fO)F9hlyS5xT*nn>~OFbo>Nu-PaA3-!syGD;rrdyBhdhN61fE1r0W -zSjuM6AP74|a|#)uKXs68nHm`Q^DXN8#~4?mnX#;PueFA||1^8OTvRx5XKs5+0Z-Lg -zD_p863BaUNHiB_2<%Z6JB9Fr?Iu%$yP=X-u_Yn5Fw6IwHB+RZ{l4bvlM6X3tRxTz4 -z8AIF58UA4VFvZnxQmI4bNpzHfg+dHIZ+KF&SnWi;@o)BMi=tHOsvddExIz*X*Cu7S -zOp)%ph~jI%Ou!?H0K0#vQYd%(L=?=&HH>_wCw=C@GTQGa$8OC$Jd#VtxWp0MnfsH!trD1H8<#pCnslJ9c640(a2?2PMYGt0Os$s%3#j_A{*r -zWEmB5xm0$?OhutFf(4<5CMVg{W7bdI`x{PgUwR+QD)njfk;z3f{ -z0%q3FJ@^}Ca~?J&qc7hb2fv7wUnrwN{WbiUw8T6{t2sg1f)p -zMrE0j7Un_vHWG!DVofp-6^S>IY#KzarFG#*Lm>1mik}cY%xB*Ae_WIphh`XTkRw|! -zkgDj2oj_)$b>a>3fj<$Dzqm?T>+9;^aDI>{zt)ar6&aZH_a8eFV<_k1;h)|4OI!`v -zWVL-lGmeVm{!JY*3ZFOBdB^~f=4y`$)1k)T9&9Qo2F`A#9Zj4@SIcW$nDu#WyA}bpPm`|R|5;;OIY8{g|-y4)-g(F$0DQTY3 -zLH_poyh<@iKoTJ75t_b&sQ%gZT*6-bhObvNqe}_;C0J!<9R?(?{DgDEmST#kn;?1$ -z@%1UwVxoLx@*`+$xT1l-AbPuX8?mQ|#AgR`b2U%M$nmVY%hgL{%aKXtJwz!{ouKPe -zd#9otD}`Umlh%_za`^2eD_OJA9}k>>K%F%;w6b&p8mCbnYNs>BA~bpTKP8Y7?t)t4 -zcbdP)ugD8#WxmX+S@JrL+&OUTrD`u?Urcbmouhz`7UC$Sp+D>LwWGx-8Y^0e(tuebd0v#38a?~nx98v2pZX*s@13jd@05;bZ -z2^tg!?GBf_mAJ_z)QJ)HJ78E-K@~P=W`_^Gp!?Hd+f&Fv60s@h5EOf$nmm8fE2EUnZkO+mFp`% -zEXH^+j1%wLEP0tAnJ9$0rNj&!$!@XvSp;H#!!kIiHM+Aakx#nCC|IK11e!SaEy%ny -zX^~YA`1}<6F$=O_0mFtmM=-sh9(|TXa3*KeKS^``mv20Rl)Du#IFIp;kMhiBVXqej -zr*cKaaMwfHv7|QmHYz_D#ynZR~g`shk -z)fy`_4U|FVrkqky-2Fmhu1+xWl!Z5t2b{;`b;|FVtX4WBDs0sHoTEZKjie1!7OlAfs% -z$yuS;YMmVVhr8Cx9NL#$0_NrGbAi{`2J6S&E_`-xXMe|KW~`e)#v;zJ9JO8BkDw~b -z)~#BHZ24(prY5$7ZI;I#>u^>kdX+K-KD0wXMQ{o))LM5+yeoA-tC9r$l#V_9)6fms -zW7UY9%{F%Z_G!=DdtO3R(ozye1?&sHdnKTb;sQsDXU(rtQb={_vo2qyJ*kdVR8Fe0 -zxk0Z1>|0LZm-cVcnEXu|nam-kAffMWzDeVse@J6AOB*ep<=>={UyadCTjUby?Jv?e -z{SRr}{w9s3c{3u^HiKr&O4)B9L!-g|R8x}=*EThjgR5yy*V;-y_l>=sG<}7{`KB=5 -zj$N!3spMXzjkGZ+0l=IButx*2{BmE?fb(WO87n@C4;PENpGKz|wEA2$jxZ$@UXGCk -z_7bj#f{gGK`SAIZ&{x;K^J-vlUEgvKOCmNtF> -z%725#o`}CdV~$CH*?)q@mcK#cHjY$t18}KWT4Z7X0p`$W{7c_<3DQoQbe7CAgewvgM<2mgpBRTjVmgae5@}6kVTVx>i6jv?(NLq4e<_4n@jDi!n7}^90uAi|LFWBu3={EuDu_@u -zzc|0}H(0+$qC%U!Xf^h9HbD0DV<5~Nx393aZ_)|zJ}tDFb0Z)F4kBfC8KxMO(#A~9 -zp5P_53Q(8cb+=%8g&rkT?2{!p0-wN%DvA9Uvl8l2-#*bvUXU6PKHP`&f*k89?PC&K -z#$__8x%Z&C4(OIJ<2I~lK=nXRGcya$VzdH&TfyVFTF@uMFJl9;b~dnGK3`E~n2>s! -zPa?#UKiY@;y(_{Px?pMp9LXv1La{?C5r7^X-VK0HFeB3v`ON@FF24O$Kskn&o^DBc -zgfybUP)PmhMm;+7*7;a1hj8y~W0*br!~|A)hQxZNZ)Ht$JGc8h75iGE{Ucy`YN@`H -zS+L -z#v4+Z0@vhsLp?7*Ow<8&kFkd*s0Y|t6)CQ} -z+?}AINet>dOxbDOYc=9zNLU22jtqyw$p%MZo5ysNY_e4IS*mbsrXaW%cEP5(9VRhi -zh=-&6hh)V6FUcre2p@oAlld>n7-{`28GZkfjO@ApAsM^P{+5g_|B{T_|47E`KP6QE -zl8hw&w}XY^L*d5WU;%3ZOoM8!u|}Z4YCHqiqS)c5034Nb?FGkCEasuc{}(fs50G&E -zg&FJr!i-wO&T%Ab2)qgka3l-_b;MyHx)INQx!}E-ZhMO4d;F)p3skF~kBT7h_x+Nv -z*cSsWFXCubjiT%bVdW2G60-tIkBW-^VhlD;=EpJe3*BOQR0E=6p)<*b2RITYT8Z%>*2r%#3jFao;&6PkSWFTruwAze{y&X -zf;VXrrRWYCR3Mi4fq;S^8E`42)q -zAe)}_5_P|?i<`AdMIy~L2+Tm;miHHY(Vb9sZnhSpMD>3C83ZHK4!h-n3zO5HA^3xtbQ-)GF#X&(Im*b&qZMU;+dfP!%jnt2@9)$O()SsAz3nNNdvCQ-n%t2z* -zJ4o_X+o}itpT9JTh5FX2{9j_=5tsa~nL#_SLztd$3FD<3ZlLWH$!+~7WtDd`sV65W -zdzTCuFMxyK3SGJHK(GM}PSbRw@F#30W7r>jSCOAM&iHqp2E2^$vJV{CCfNhXWkplJ -zsW6E(g@YnRXN8@28rY1e-~s9c2BqRxgbNvTl<_}?v5s~hYB>D=-!O`?8B_ef4C9~9 -z!TtX>j7VohAYcE-Foqh_b$=U1qO&i-e8%^yDq;&u-sT`m_vS%C0|47uY-IF9c2$C+ -zK2eeF{$PclaiBQ5sf=NRLwH{bUOy+9p`;FB3iIxIu>-`4vFaPG10c^`N`+`*Y{)g% -zhALzVR5cFVD_IGg4B-c3PM}T}(KRzAoUt~tbc8}aM85z& -zUn2msg!0wWb=Wb5)+N0HgA}pAy%tTn@AtPP8TmA|m%V(dTCH|!H3332(vVW7mvk9o5RF(S!QUog(C+e$|B?3#@=5d4D+MHN*!(;|EW)~klX%THeM!~UsXhZhA-o8@% -zVP?rbK$@f8sj#N*^}~L6Rn2CE9bq?de%5h$xmfAgre`*7T*Uqjhv6XDLI|b-kzGRo -zr>d$2043Mfe5V%{(#1ln?uP<&Q+bJ>2*Mcj?!C`F%J_I(r)axGz17A;Cn)IeFNRF0 -zplCj6z1@i%((SG!g$8V?y`y6%ZwjGL3UZpDEkOA;+xi1a@=vpo4lCzzV$%2WKPd*< -z(5;!ow-Qhs!GTAa2O`eTm1>MeE)vB@95(?7s>K57{T7jR{Mhwntgg43eAbmu%98J< -zb#nxfB`ai=n3E_#7L9kJSYX`ubTkj-Q#QSOq(f9K5t=!D69Jl4XAN0YkS!kAjU8KH -z$T@kNN4Wi!lj_ofa}-+E*Ut=gP3R83*v?~_xfszI&9t&VavRIi;5(mqCejW7CM;W! -zu?|kPJ)G)H(IsZDrBLQ#-96cOc6sGED8?RmzTO80cBVZw47yeW+EJx<;9okL6#*6V#MXX8}(*pVNl@#AVVs=o~*}gHtD!TjYD84#lk=BbgYyi -zn`1)mRrkA@mAk#=dr?Y8`%`%R4~e!hhvjBCM|U@crj-WuO!%zyluZZ$no8cNc7bQH -zj~95m1s%rr)HzB)7PustkV5rO7JmKgr%H9R8-Tq}z#3w5!Y`7@2hxHcCqx))Wu~h+ -zf|J1^sDhF($TxkpT3Z(zwa$-?y!v?N_}%pc?g{=jtQWTzdVY`DVGRDb!lY6oN=(rP -zY&`~Ysw|6yA7m)^!+T<@3exz4QTbMw$9}qM!;O%bPC#t3z1{<;J8m(g`lg4uUeau5 -zZ8e%2(I0*uwbpFWeJaC8OBqs{*T3s)4h$m{gQ^`82GiHy8;JKwRr|ELO4(?d_$hMD -z*hLD*&Lj#7SiwkEHl5U9MSz)4J*Fy!$wSHzbe1-EUR1SrEm~9A1d!pGp{5PKR4r50 -zmLickLkE~?aofWj{JxHwQkXF^*Ly`|cY?q1=AjckghKABeBdzsz!YfUI8Gf?yMIOd -z)Hge -z1?D#0Wn;DRCQ(xxJ~YM7z6zGaI|SEyc`W}8!y5CeOSF)%UG~d84}ky59Cgk5RfHb( -zGBtcb=ALT?W7Xn(ti=6h8m-Syl4u%=7}MSz@yeUFUwc7eiqVhq>ym`C+&30>nz2827+ -z@I{%5+{*hm>ttrwIc}v04*F_Wlw1WMVskq_dN*(K^{w{kC=+N=>SsiybDw;lXJaII -zmoIG=Gr=Qb^epABkx>DYefm+Ha4?|kmLfewyLEe>%o-_BnKR6F;5k#*SWZq5z0H$X -zUAw)?i6Dn2hzpth=UZ$v-OtZ>`j>;pI&hf2SC?BX79dOihT?p&>N~H(9pi;hJvHp9 -zQQ;3P`-q2O0v7Pp+j*<0bp6qy&XRIeRDOBfT21pY?PB3a7~?`nKcbJ9p{lPzXav*j -zh~XdKxsh`ApRwl*ulqWB)_wBd^IM_z -zqwYGqh*;T4N;R%lQh;`nL<6-H8T(zJcc3I#77tWZ3T6d9Hia!WIWH@SuY2p=*v$L1 -zvbr`OwAF?r+@MUt`#6p{)~J>^YD5?O`{mo$hnSn{H^ho6EcOvHT@uNXa9X6M4+7T> -zZgGBJ{fh8`U0hIv0eV*4lv7=7EL99V#Gy(<6Y`D#SN;7FES!G|%o(mkS0(pLMTWT? -z1{|m11&&6KJ$7%}T&6sQ^N}4t0i!bqu4LpjB-B=-x>QY++9cN%9g&L|Q4Zgg4npIF -zVM1cK=^P1a2f#f)ne@z+=$V;wH?JDCvlM;joa6ZXJb0a8D)f)ev!eQm4JrBcM$@ZP -zT4yjFOtU|;ul2I@6&YUDEEJu_(uydB{BF*4q2cM=VbYm7WE~yAAaCMe$=CKKj`-M7 -zUZ4*=wa+L>JE_1x;vd-KI^z}$&vRGoCpM%7xd4S#uCNLxq-KL{=%#p?=L->_IT<(= -zdpi7OS%)rX;73`|Mdz|UUY6L*@WXB}B+pOTB{8jeZrk!qf=A^2C|(~7!)z3V$aq+U -zXhH_IxY2Q@VKj(sB;FDF3qmi*y9qlVOc1=j%;l9P#*VNxML>xf*@#VP!Cv}8^NKm` -zCf%FyR?Kyyk9fAgpb^S}lfo___~bBfv3**Y_1^U*s^B)N{G~P%FE|;=;eb}H_H3ip -zSbOREs7=M~wfnn=VN^8GK?>uhRUUj&%`Xf7F(5ziYsl9N(YqCshBneL -z*m&f!saHtdf#>$Dde`*VGkVS@^P#erl+iBm>hW~IG5BF?ziM#-0liHvyI+NOm*)hA -z8tfK}zL*@ViPLR?=uCDE=0aACq+JJhI -zg*UAL$t6=ViuUuVUsGMf-UL;;lnxZTX4Fum(~4;i?zQ79ai7ru@J-M4OEx-~K>E+9L1u{-ou3@`+tW&%Kcg~lH;>0XtcN$=2 -zaoSaPZLg2L=$HgSw35k -zeU+*1Si)VE;1e-&qT3c_nobFOqslET`764)Y_&yskMteg1esU5sFn94i-<@M@k9D4 -zhob8HCpP`(K~-gaS8R8r1#Is4v%^L>@7G&hR2EAgeDP~7$#~i-Wv*;LNh3k=pS -zkZ`8m_Ph@oj3*BTjWlTYPA&7qRN@_|z3F>$%@e&36AJo*%JG*)9=1-A5r5lF(##u5MUKGDpqO@BkR#G{kpR -zo*O439mjs+&}JklMPd|y=y*nBg|kYPj6+u^B^!16ZxmFt -zWIE4S{!NiUe8ixskoN94Ry=V6c^3Aa%!)Ci*+pALM|Z!=77U?LAx{;6f+gKghxQ`g -zxRsuWQw}{jrh|HCQ{;bR*K51i-yh;uU -zBdh9tsa1l+e8WY6zu+R)zu}_8UvP0G8Rajy2=QYE1w#r9zHqga-O3HuC0Le!{U#58ddv?ha=DhSE6f%< -zi{n_Yob@JAy^7r&FssYZj_eUjt;`>yN(EypcjAcc!R-<7$|R%OA(#e2j{>3ERmKtF -z`4_x{q7@^k>7)#FvVom4*$Ug)0X(52rG4JVzY*w=sOIIDp#x6fxuHJtpIci((?Ss~ -zDTG%@c7Yk~|Y^@k_`eNtmTa|K=mjV>>&i6phW_&O`+VB*Hlo2u6rn8Ub_8w}AI`3u3mKsf42}4w4N?~Oyzbf^0cWLYHQX07>Qf?U -zbz1L&{fYgB2*(r3f;b#i*o>ZLvi;MZ8jam`y1d{qpCb+aErn)?b4$ -z3NQL%%f9NK)z_(^)}xcpe-3c$Raaiak)#-~ -zM8gyD-A}lq-enM+20QIgWxHoMZLY;*r4?;*G53hyTwv+JeL@#i)R_@$coU}H_DagW -z2Hkd}Gay_jvc9bg42cUr=4~FE-`&8-s-A(8`o=Ec{|;3e{t`@(h+4(W?X6m!JH74i -z0AmUD!!s8=8)0>Rbkm>07Bx?KWz8wbLyoH7AShegjNrHpH*J@~=|)#v5Botxof0Fx -zgy@1@qzVN#GB2JP%p>GL8C1- -zSQ0$8g9Vol`oYHGrn(nZ{P9si(;TRiU14)0JkeUg8zf+&;Q~SgS~LM -z=ARy=@Nx~w>VX#>Jl|F}UTb3#D~1_*JeJrY3ny=E(Pp|nH1XI} -zN%CDM@Psp4A-*l(sgX%k*mJj$HZjTuMz+tho|oUz#v`1do}S7Y7ok^NaT9MDQ@2RI -zVwga47;DxJl+s@H6h%$BAQ4)sAUnA#gQfa^3g -z^y#H!beqKy-$&XA%o!^)@?a*wsDe{OBdq0TT078%T9(dMLTf4hm)&0Ddk2}?0(D!qM}Dpcsojv`Kr+i`pI`4k?8_*aT> -zTnBc0kqo5P^g|Zv0^v}1KFDLVNP;?_kY8qj$@ENUZ)xD4@tjMXLB!*;E*3-Euk*>{ -zu|q_`36B$xe($-se(I8lT?jVPHROzkvP;xg)Nsy^0>T?zI{4o{QQ!Ba_}}5l`Ex(& -zr%c*ism4UBQPF3BCOLWhwmotDnB}u>9<|Fz22BSKs~K2CF_2Q|-C-X_zA?C$!1oH0 -z>E>1xgQpnfBU_`y_;qT6P&rF -zzx-++xb??;=-yAUhzgRlC!J&Tn_MKG=BL6dk+1eMnKdEBS9ZT9SaOsnM)g+Rg`}hS -ztfdx7`%t@XA~nPGE5d9kSWi{8&Yw4DZ&6p-b*5Wzu@_U+jiWoZqexCn}89?2*Q9Dhe9 -zZPK7U>3pTIUNpK$>@=&$3#ZhAZdQ24R&?(9H0m(3J{~yI$7UQgSiX3w$%9bPW%?0L -ztEHHH)mLlHNTJyds>+B*a;-X2{yQ)EoN3s0<=32o)7$c$mppLJY?FaBtwiU8Fw+o6 -z)EYV1FP?NSo_3}8&Bm#>uphlx;~DMY-)8ecU%)y+5;S2U -zbquu15LBXbi62-_TJi>QHj_IrX_PoF-kAJ)z*+1@dtHB_n!Yqv+TwPVg@6KvY1YqN -zZMD}`1IRJii^sU0r_XkIlEn1YItR?Q-KC!;Al_hAOY2=rc)~-mo>S`V5q>3p_TR}3 -zG{tSmYoIBS-wm^vrx>_WOX68%4BOpy0ZkQ&O#Lye8TZkDuH*NsTF3r!~{fB_KQz5glt+{w0H$lD7Z-oD3Q) -ziV&kb==zvHGC>dK0^v|;;Ti$ZS-$Mi93ae6 -z`R9cxfR^rJYSW3crwFrczix7|k)nu0m0eGZkR>&!B4NedBPh8zap}n6=!!r&H;F!b -zdNl~vY?7A^tjr2Q@oM?Y760dqHgtEE*3XhN{#I8`GUXV`-A-9%bMm%f-E#Tfl3_g& -z6ENe7St&Z>m!*lJg0jy)tc9%59ghW^_$H(o3HAqd -zzuDs%UL%sBre!aP@5Y6iHgM9zLFyz18@EAfS|i}*2iWyoXv%%#KqH>n#&r9+dr$5N -zBX_>zeVM)7Rkx8vBrCx55`W>5(wH$VM&U(b`u#B>d;thJ4;?lZ2vxB5+LMNf{&sTd -zIQ}2{RCL^7R0Rj2GLU^*MWp#rf%-fQ2uj<_ixW`B)yEwrrb*CKrYhX0i}eWBVQX2} -zP^?R=&-n2w9?(>(eO4H~(pjR%6A6!?+@z=^b2``X6>wW3Vc!R#GatB8`9HH_kO -ziXA`Zq!x};mX;=q6|dGyZuYMi{1|)MJtMx`3G(c>W3pm3%fessYuYUaj5lY4&`+c9 -z)@D_SMW}~C$ha>W)HB5xKsl&PPbQ#q3o0~Txulmq>TG*2f867nU3znn(%l@J+FdAr -z)~lT^e7$^dWO`;z{DAVU)QW>;L49uObFTNbeC!=Jz5v!NxiosRmRUF0mv!J-bzTdn -zD_>WMmTssV54NyDn>Enjz6?ghUu4w2^{rw>$4} -zZxw=Re*L})kgs#Tl(VcpM(Hg9rB`!99*s(1Zx~H4>2?LxjCp1{nb5T?T-^lkV&D`yWxYq$`7J4S{Q&N?%TuZ=a|{Zf~-^-6FSAp -zcOhX0oga5eKiWOAr5(2z>>U+|L;1ty2b$P7mXY9H70`L_UY9W|t8I<|mM_gl5hpG@ -zJ2WGV*`Ac!vZ!TVR#_h+EfiiT(s~?JGQer9$<4v%L*GBcDT^aQ-Hr5P?^B2l7DlK) -zJS3z=myg1=x@co+iax^OFLkjAi#xZSUDUF(Y!gBC*{!R#B`x=XgoN4ufkQ^6<{Zo~ -z3pSImhy{^wS0PQxcja=HpaLnm;L_#|{Cc?X%uTJ3E}|mR+!L7kp5mfmEZCq%U1@J_ -zNs3^{DSa_SQMD~7hiOjXe4Dil3PHwU+d2j0RjAdK)z$evrd^lTl>U+04z|1uc+T1aS!_IT53TJ75#%7=@|IpB-K6;6b&5!bC|@g5Giu4 -z6!nDsyODeiR8yy1JW6Jg5^roPcxufzz%bx%PESaH6CF$bM-{l4JSbx$ -zsFggeutihf+=d-pM_1FFsg4ioA<5R@<7|r5+u&zL6%x*luhUi_dad>Q&27-87Vpt- -zTsqQOOMP0FOFRflrLF_KVuiKhR%)dc^P?L;@C*lFp$f?}ry8uM5F_BC3JRrU@fLAQ -zD;4CnMz^!Miq}`}BfDVYxIgK~Qa#Ng0tI5D9ixQA>dh5V`@xXsqgMKHP5`B^@`{t! -zfW%2FJr!MTc9HEDDXAb2U>~<3QKTR4fxBVn#isnZiituPFK&Fh#vf{9Dpa*3 -zLkU(X>IR^+{s^j`(g>6InjpvL5Bf-hp=W-=I?uO%nFb>AQ=7kf4Q4Bvm-5Y<7kLEi -zxLD`RI4`cd&T()R#i5f2e;; -zfD7SS4LI3wOAV_X3xPS5rWV+SFlp>L{n^h&3v>J9)XGitMZhf55oq3a)qV_p?MY;2 -zEH^%&^VZ{)saf9ZyTb_nxNqD^8&~|9NRxh)(TmTQ-Ym#eZTchAOK99VImu38zXAz? -zdB$No;+y#7LKg|A{=>PEsQj!l*)?;#V?GrZLU>(^~!U9lvNc -zll5?ldm;vW48RdGZ~Z#C}wLP7In=r;^d -zEHvz&QZ#}|D%by8cEn)$xJx{&PME-8#Tpk@AJM$vEz)G9#s7w(KJ*K6wUH6NdZqX$ -zoSwRdmmEpqMB9@qXVho#QZG(^DX4@PYWY}a&yD4v_T?Y4NuE@6^)@Oo#LFcZO1nimQ3M4rXvfN{l87e>+Y2HOF0cpwGcqG^^5e} -zp`NNP9|pu~f74`zk_ -z{XiT){l2P4LJX?slphS#H7(f>DAK)d~9o`}U^yu_99 -zh$I4hbp(zuUs=)9%(T-LS{<9_qbcR4#!7I;`iK7@1zlQl0=Qd-uV2qfj0S%J;TfVc -zjVwPo|@2B8eg>& -z4QMSJaNwSMS^((;Q<+(m=o|Kz?|DDO4gtujteNR0hf%Mh#!Jouuv{*byhfJMa96lW5H}?s0^=2o-TSqq%vTJQ$D6RA8+!Y{O;Nh{Z0-?W_|G$#Y2N^P?(1 -z706#c{0Cs;OxaMgywPkt@&vb=bl5b+#lMuAs6o;YmbBv?O+E^*dk -z6~0HXqDUhXE0Pi+0ut#^_jSoQr3D>8IH!@M$(yf0~U>94&dj&Bob;0L;*e$v8_QP6}WC!e4p!L{^Jd -zkMMqw55eF$z))w(W)y-K5!}@K4hZ>FX+FG);K*V;Yl!rnaik@xlcNIrjl7Q4OYz~U -zA@WaSxopkYA@|=d9ht&r51bG`xAQJ~Wfpx@v_q%+8J);*#yeC9JBykYf|nr`ge0d8 -z)q(hOe636pM#5}r%wve#-Hdd4?u$@>+94?^WpCd>7v`PEa@eF7IY=@{qM!l>$n%@s -z1zXTe8SzlNW0@L;<(mCStse3W()MG}hf_4QJFMv?eJlN`D7!H5fxbM3v5AY9(DP -z%p(w(gTYQ>8TwU_S?k&l9krJD?aM(rR^Sr0q$CQk%A-buWm@$HOjNVoj=&Ft($+?P -zg)F9Qf2FLAY<3Y(JbzFS1NJ2@WOc*oNk-$?e;eByULVD9&ShU=egj|b+1r~LlZW|L -z{FT8eSHe+djKHg~#lYIGsbrlqP+{6kz~+Hd2n;IAxBqn%MB?2G1T-Z0kJl(GoT5W- -zc2E(N{6y*{kj{Zfrt36NfX^X7EXtzNP;cTx2nH}Au3hpq2#^cwMzVOmdEd#;1N>ea -z9F!;6=s?&oMs@vq!>K1)et_!LIS_ -zCtwLz7CwN5gaBD_M8ZcMeFLiq!w9GmeDVt&+G!3sMMc^s+|FVwX}7j18J%!Khk1H- -z)d@ImR<^~(!@yj;+l(hBEEVhHI@qO*1uvcQ)~m;+wP$diKw?i&ZwVg|O&*s?>u47! -z@M{0k;VTJ&Y6va4-c^;SAwnv&nVH|V)tDXSaor>YBBC`|b1xBk5j|jhfIkEM{EJN| -z%c18%_`|$?zs!v#a!8X|JXLl6Cw3#f39p|`^nwuk%2n9pOMexa;e{+^yFxOhfXS?< -ze8(9FM)d_g=Ge8j;8DMMO6w!=*q{K`eRIaCab5n^iY6;QJES=1VQH@jrN1o}o|8Vj -zVZI^iWp3AwL0!T9{H?Q=f=_bP}$S%rK_dw`2+nx&m -zoWt&3XqWM1u!{{${o2FD*(CtiC(hXX2WKqym&GypMl(?^o)3dv%*ml(@Bj7WxaUk5 -zBrn|GX9StPbS!R?YpDbN>L}+6xTVBC>Zi>Z+4XZ;G-SBARyR8D%!)D6o%gJuIrp{v -zFP?G5V0LdRY($!Oc(?I5K>^812?ZLyY}S~b^mmKMBE&Tg8j}FpS_S`KQdt^haiVprmQ2w2xzjTcZ;f{Y5rM>v{<$Q9S1p#T73@ -z#DJ)B(GJ~cm=(b^HuAF(FBRkma$e>^UTrQCMif2@!AMmQdMou>M>-j@amR28>px{i -zmmR*Od}vcbGgg4~(IbR?Gn(Q1u^1L|Cgnp^Cu!c7$oK$qrvkzUG4fGS-fz*^&w2hR -zZ6TrD4E|TFF<~9P@4g@mw2ci4)ou~u`QI*v)@xiFPJ36sv3I>!DAe?v2uLDlCIO>% -zR?6Lkn(RXe4oWPWA$M3mXQ3B@Jn!>;WL1EHdwjBtC!Z|iXn>*L1cL-}ajh|vu3z&9 -z+zHUl@kWsZi8>S$0*sR6UJOwAhuwTozz2TDu}5Wagzx9nq%46e78mK(CLanS;r2e1 -zfA!&oU_w7K3BkcW&%^O_71Y(Vmwwc`XW;fc>mpyD^>qWyaf^b4wF4gOO8>%b%t)FU -z1(+P>9GegbrphVG8~Io$@ulVGrpMUw;g`YcczF>pTsD_FkS*4Zn&y#JAR?wZ?y68pWBU -zx6*?HeDVRowWU9aYZU^ezYA511k&+N7V^H~JR3YE9^#vHEs{&>X#2!f5L85ACAhr4 -zU!Tf)W4|PeL!xZ9e?jS^3`|iB-I?lCKC><^wy4RCZ}Lqp>bbv{pMmhWstAsxl?d_= -zAVWMVeprFJ79U!yIEz=GD$I0e90)YEKUBcun`v+YXw6OnA93IWnwW;s9=6g@i$5vV -zaF~pPIWv7Wv7{FmmNI;al8@7@NCEu*t@Dm9S?lAuE$m4eKJ<{AR{3rX}4NuEe4R3Vru72{g?biu;&um -zz}5=l4%Ij+W4ubpeXUvn{)0GzW-Dx)B=3{}9_4X@uw*0lo$B}jI&5o@`00kfJU?16 -zl^*6}C)be&5??+sM(1nlFi!9v5lz`;iqj~Me99#%bjCE0^2+gL=T^z3fGmp%y3+hG -z8;UH&q3qq4Pd0um0f!&~PdevBdW@K!5L9mHTxoBpTMcuEZeM=#m1D3~^*Mz)=UP$X -z?DulJ2O3c!=xG3q%pCQhu5$J>nn>;u@w3Rln@`E}-X!k56bD@EBG(f;&y(|!MNwNkge!alN~ -z#N!Au=UQTGSFkR+qvLiF^#XK7ICxHxs-kgM`P|(rc}7yR67*4|{i}cl`O?9^Ax16l -z(ed99^(Zl!L8i>5+fn6h)4rUPaik`<^XT -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 -z@_M!%pf9e1XvSL*<9 -zZ24>)FRtsg%nGP2&$H+ZRc&h6E%|M}9*?nn@{H}DJY)SQ<jZYS)rCfOlXy@f6hs -zf0T4T^yxG9|3Yv4R6!NY3$VabH-RKa8yt5L;#`#Nz2!TUC<)t>|>__OQI`3@x( -z{jbuoUd;|e`~}@JZrXL7Ru#(pE5Ex82ErMc9@5j4G7{qhtI%hN95@MfP(l#yD-m$&?8`Qmh(c?UF#PpIV3Tr{=SFnZe^{+& -zTbiX~>`(3JEbB>}X3@NiP#9kR9qM?g6glX}01p|Q)S3b_v4T{^a5&?8cwSv{b@GL++%tnyF3@Pm@>t=HpMqC*jB(@kuy}mwghBi-TvN^gmug1b6Hi(e{w2qH-^W -zIWD)o45|WqGG9Ef<^$YCX;C)mAjIS-aA9I8K7=B?Espnd01j05#~Lj**#+p>Ax!!r -zhqzNa-lBASgW?$;vW+!STnl8qp1Bx*t^y2~L=%=|%xpVt@FI)^6v{qMh$X-C3|kgl -zUxCK`&LJC8`!s!60HY&#Rx3n98S0>hqrXyxYW>@C46!vl_{(yf+^q=f%l%_HYDR5Y -zHyrz;J%s*MoyI-ghspD4Il9>bFyYDoxkqC(ejinwk5d+B -zY96D3!7($(D$xGq9Jl}C96ceKON2bI2tNeel-0_tC1lZ%A?3zmVSqVf%#@#BI+kV` -zBlreZP=S$)8rak?nLc0UnmLMG5)HwPQXtT<2rmmoZs4vi%KgK2jFj?cTx!RiT2S0-2 -z1fiI0di(2BNKznUUIXch13`Q9;I)uJf*CCtUdW -znMaywa76scBeA>LlVSFpd`}R}@LHG#fvaxcO`(9jL9ZK+>$jmUI1Uc4%}`kmS05;1!hWfJr*t7U#? -zS`C-+>X>xKxsX&v7bM!74uqUjMx@&x4s~)?VjdN?YTct`)uPh{OK{%PY=xQ!tDp -z*8paug8Zz(Xi{85w=G5$<=z>F$VaBQ?zG_=2){tc$AnMjU|>K@Vx2HY3uTcrtfo9T -z`_A>|a_wDck9W>>$Ht1xW%Cd6DB9M+#c7w((%eO8mY#~5oD+Hepj{)H0H=@i&A4Gq -zf&~|gXhcIoQ8ZwF7F0mOZZu(}b=E7~ACJxgCHL$XGic=4U&`au2JN82r%i><-k>B@ -z5F$A*#vV0PO+c%&M{#JuU8bj8Dq-6qq}Db%2RJbctfN!%)2)Knsl~a7Yv8Y35@hI~ -zxg=pq!S7s>lWwqq(%B?&DM1H@Ns}qQJ|8^Q=yAah?(MW7fb3ZZF|ORnjW}}YMk)1k -zqz<9&kMx+T77tCpYFa4su+PDp2z_<~MMR&;^v-%k9~J&kPRqIlaTm=ys8!{yRLn{?xI)?eK3<`<^lmtWJwzXu&TikVJv`^N -zD%>C##wjmhl${XO`F<9a|a`NJ{h*O7B#?Nh{BstDO=w%Ne5hlz!x0e|J -zcrosB!hm_5!qD4?qIXGzQ?b3+1}nAS=3}=s-Bh3fs~sXM3>1&7l%YC%%9O$ld_T-H -z$3-u2_aHy?*lXE$=Vv*(=j>TOb@3g`R&rs0-9C#I#r{#0!(ZGTAiLdmM^o2y`~#Kr -zPHo$Iv2tyH=aaj6+8qFbE8r}pea)N7vY3doeyzLDDT5^uDAwXGTf(C!-t(() -z{GS~qCX2dPHneyN_c4l`A7Jf_KJ)xK%4}dT=2{mc!-24{MdE3SUccQ+!eP`_i#%X7 -zgCtHcMO3`qcddjPs*AKaIBj()O5o%#7V(-sT#;QpiSIw>pyk{;GFceo -z8b8p9fWSbMd(3#%_`|jjLEJ#$w2$(VyE$P(-a)U4Y6NIN%OagR(9fbxw_4mcq^8bu -zYlSqz>oeD@ZZlU{?Xzy6%0$)*ch9*w;EQiw49({_I`Hd*ORQl= -zNpU>%THyJa3!Z$RPRT6Nh)P&eIBQZVC~inBOSVw`91)v0^XE*#`4$H1-@Pf5;;8*J -zrBV>wzxKfS;lACTvN1?J=G+q^WSG*yX?XW^=@?+*pI1e9zAnJ?RiS*erv-0grM=zO -zZ>JL9#?&Xp7?Wh^sG4X%w?{kon~3%Z%49~fxMz`T{nN=94!yS2#HR*X0NVpD=q -zdD1e&U0ZpC_A2eSKWqJH+llK|Nza`7w+Z<~if@9#WC-&_aa{wo+Y0LY -zRKZjO-toGEA{9qDwMh8&c4E*?IVy+kHf9;~LU|gmDMlM(t@5k>Q#jvVllSg0#T&y^ -z&kam{N5<#%=ipWKvMOO7jY?cr%uAq5hbl3&-HVE60_GH&N9Rq9+E4PzDe@WQI^TX9 -z$eSM1ZxDa?@_3wzVz#NU6j -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 -zq7CKF9?i0M -zli}Z{#+EIFT#Z^X-cbrezWPIS>aw!(_wJ@-X)idv2udku+i=7=M?<=SgHHa>JL;q1Ffj0i3N{Wg9cU5xZN(&S07!}B2 -z6AskXTToV4%`m)iP?yhRH(2v@71D!lJ}5WgZ&p$<5q7KXA-Tv8Uei{FF -zpQ-0GEQbi;n4SMjy5tc1^T=s@#sZIC;1?7B95fjBxo3|#r`br8Shb>B$SRn4CP)TTBF;& -zvWpty4_{J6jfD>%+LtGgLuTCNk=B9rG5+!%=zqbIvOEV+uBj|P$YP}rokrm5*^iX8 -zGm-GA`Mwo@h*;Kvv}^og%!H%{#vYt?AB6yYp$4~m`V(o+<~6_mNH70c-CgivyY&fN -zN6Os^6q>QD!jRE3tOh}08T%7dxaq)AET(|;(T;{BR>SR3 -z?zUqHzJcET?MrSAe)^Kv!6Y^HuiFeonY~;9fna5kc63h}e9S>JVt;j-Zu_5|=I%c_ -z&B%g7y%0>&9iEn}_U+>!X}H3`6?jrbWp~`?A1*Cgj0)!ag)e}X&QoglEPZ!z!W<+F -z$~|Oioc{%wMA}U#WOAS%fZ%m)ircs#F%A7AOzwXQlf}4y36pW%{}v__d;Td*I{!zQ -zjQcH2$_yx-=CBgQgNQA_`Mhmh{r^KvfcyU%YEt~ahMG*CSp6Y5y$0ezd(@#l3+eC8 -zylySP%s(R0D|CZhhS$VEeWUDXQ~e)lhMJfkr);L~8_S(2pOR#6vP(?V-7j(1#sTUl -zj*OlQgY8_cTXj3y$93C1(ExZerL*bR`gWDs2MI@F(mNbqVS+G6akZDcm3Gw}TJOY$ -zOXcU7ezf1k1MKjML}S3GkG$YE6vPH%*z}xFQn+Dzyg;K914`C#^A8+s8qAOCN+f7@ -z5atR3QSg%5Y>0w2Wz1hMG9wnLN_%o4q`?8Oj!DjMj{^y!>ML`b%d)OgucE$=*zsP2`5Lm-<8ha~binNi -zSe>(%A18$OIrk*Ea3j*Bgz9A?_ajWE%Ynh^lb9r={~yGp{$IqTLU>2O1+DH+WJJ;$ -zep&NX=t_dq_;&+IrKZx0of*{oJGkUg7C%@1thZ_Rc(6^6K_6P%j6-I6c-9iRI5W-6 -z0e*SFDWGAc*)g_whkU{Fv&okM8ZlWv0#;_6+1ZY3L(zvK(;r -zW$!ZwP2cga0qacywHX&r#v@gUlO;8+147@pICsq?lS)fbN?Y-M{5~N(!`nT4jD;|V -zUIW=q;7-YL1fAJBXLRt^ieLj&QiQ>(l8`;NmvE0*RR7X<{yBx4Wt`66_*;ZIKQ?pC -zFmk`48@lzNPwJD5xzFt>0PacW`fWHa3BT-nV%R;n{X}lD6qab!myI|*ZBrN)n~Dl# -zID~h;$O5CuMX!@{p+9~Y#A*4e?xKzVj{kG<-IvNOOLTZrqS8C;^5qZkV>9l>^ta?6 -zcZJ@P?epSMGJ{)XboMq2SGq83I+}_IFdmVIY6TWDXv3Cz%Qlh1MU^Vdv7ATR_ML*v1i6@4k(Axw -zAPsi-gzNaYgUkV6SqE2$Yb06r;F0va>07jWmBgLduBnlL#q@{0*%{rkyWC11eZm?d -zySlLQHa)t1onMif^0gMe2w4iO6sNhzyX6 -z%QfT5;v3lRnp79{fkmPqzZLO;h+b`Fs$ZPFlwBQZqZ2oNFJ|b^&{_vc9Wh3??m81q -zid3x7Q&nbeNPVP*?Ale@glXu;txRP3Qlm^~YwQl!bgV*bS{=x{FWVSF^yLM}S|k@o -z5j37Ak=F*A=?^|tqZ|J~Vx`u2{|S>?@hertA+y?LoKpr0y**k<#Azl>nvum+fR2gO -z;ykX%9NcU3Qdo$u>fUJAtZ@ZANyikyQsgHZWU@%x>ploOcCFO@ap5`v!5{_eXm!Wp5a}hf|1_IOxYSVb+|Fm*CR$ZbwK{YcABS^JxwN -zwt%mg94ob-^mbcqaH$5gTN8eHkK0pMaEjvVtdwzeIt(lt%IEH=qYE!K&KwV`vjlT1 -z@-GIh#w~wqYof5hUh%pG%zKiuuJ0Kv89LlWa%g`tA^rq#rB@4(6RJ)=eGyLMLTPe^ -ziB~`Kb~5`f!rA;6;S?5j+~)xUkID{Q{}|tt`XZd~;S%n~dXrY&h@u(pOyfs2;%R>o -z&N6Nkk}txkM$FCsML02=oAm?U!0RV#n_bW1jDUv1K2W0A>^pL3cW%2@gq)x(L1Lim -z3Zti@L`!dy%R5Ofw9#pFudK&g=SqoM$q5)2joqc}}{z7!|OUy3v2g1>Fz%_D}R%X5gGDaRPD&JX}3nU5PT|H1D< -zGZ<{*xz*}n@f~s*_zBkyJv%NOOmP^;_namlH{p}81@cJKKa3M? -z;cy0Kt+BNsq_?6M?jUG0uI+|1eIJ&wm(a&llr_Xl#5ZO0YU?CHqbL>!Ti3 -zx>k0SjLa4F)dcni0d1fF)F|R##!3Dcf4zC{IYrVv#$bVU~BDq+@wUbg^!=PpIb0F>Ll6?#70IY`2iSL7}*+5@q3_s!=D-z -z4_A~RSxPp*3di2V5a_s4?DP#CB+|NBM`oy%5G{7BCG;cKA)9F=b&LhzLkE-{_Vf#a -zfAuH%;YRubY&{k;1LM5|;{NVW)(^QZwhjs^do63y^9lse9@{`H21YM0V|T$V;p>=QDHdaXx4rMQBGJo -zN=czeNozCmP+TzWpFQhS -z4&C+Cr3K^g&1}>;8N1X4_D5;n=PYpT%L -zfhd$nDCW$54k6xhnd?yHFUaZe7v$vo3vx>R1v%BfAZHW$zmOAj=nHaQc9o!=g1aOG -z_25~4HcjkmDtzaGg>iQbCkVJ-s%e|YIDP7w-scVBUsXV0*PmvwCgOzwB*UW9AGif -zxow(8C>PAl`SBeM59i<`Hjrlag*|9R=Vs;hI3w;)2BE;MU=J5ae59zht^KPyj= -zRw0-q>Pfh!Kak7osW4;Ks=gM!IopEEd-rS$95W|5$1p%&kqD&A-IGS;hdBI@g|N_j -zKDe^b9z7P5jx=(E^Y68b=mM31E8D`FdF&PUonHTyoE>Oil5=Q)Ml4-5a_b+-NoCzo -z7}*w>^dHG-`M)J+y)l;hsUlCcy;=0)I{V{h5*dSR7H{4gP(W=9=qz{(pJeF*vSpb0 -z4UYT9c&4hxR-sF(si8u!giY|7kU7nUM?m6XCVZ5SiQ#vRl^*Rw5-;21K^jP`cvc2- -z=Ad9;GeU*iBYkz-WYNwTOHDI3k}2HlYqU3oyy-WKg-4Ulpa7#(7bZMSwod=Z85A4m -zA}Z1gA&JS?iEil;pI8kldNEp_dJmI_@#+-Gl`)%Le40pv)&uL;vU4NNqG-w4b`t^m_v0Uf2H@`TYR*sx?aC)dOCWe) -zKi1@XcjyL=z9N*VUlGcrj;Ltdt3b$o2Oe#t(40@IQ(wtQPXik=_8VtdIH0MnfHcOq0d!+N1=FHju -zM|1WX=>YwlJ9YU-b2|D4Y5t`-A^*{wO_yJqGx%@K$-`ho{G~Y!{agY6YR+afL7*RW -z2x%10adySn62^T9wZ@`WTyZZqVm_hO8cHgw}0m^v>}X7d@J -z7FHqhg+c}!TrN#R*V*W6NGyL9D{U<}`AN -z@P%5j$0niTlA_Y29!OQ@X;m4 -zuB?`z(?UVnT9rkDi+c{M*U95L+HB$?lbOa8o6#U)k$zGk+- -z0s+MtAUy4S*pCEAq`VSqB162zk=QzredBI(CfH`306;{D!}_upg|h%wdnys~3KFRr -zvMcF)Zs9xSs|&QNewHLpYPD)<=8JFvx9ebp8L9}N^^vfXvwyNYY&B-D=ZFLyQ9+1( -zhO}~WrC%eH-Jz7qju3iiDgJ1JUpB4x&T}NA7ddIrcW{izB`OM>4&aK=kmPp0}Zu9kcAI0dc+0xOO9omLk-mStrWSn~P&9gJ2PcG?Sp7V!v;QyEBEEfLq -zoF_3YquZ(uxSE1rp}aF$CjO+Ie>^7)`7zZ0@|@oP<2g-c!|7lm{`H)YEnl9K_Ak#l -z_`f}8ee>U*6YM{pGvgo6Y21T``oBHrqw$yL^!)OinOpyQ&cKHMU(ZPwec}F>=S2R? -zbMjPq(6aySIkQFo_MBS(^_;H?!@<7)@tk+~T>p5^fxG{BPN4sK&bvgAe?2Gb|Lr-G -z{_8m>-FD+$_1Gr~R=fW8oYL_Bc+TFxJ?HH@sP;de6Y3BLV3t*};APH)FeGaEujfqR -z|F7qC1pCW#HvH>3XRRS+|Km9W(}m&wUp%ML|HE?<24zVay1p6y<2hrTv`rKs@8Kgp -zO3%B)8m5tbDFQ+v$2?2fw2`l=FL7shECm*Rd?azBqo*YmQ7+HI6lZpV&e8tPpm*d* -zW8UFtm~ZwU4eZ&ByYe>{kmxcN#=(Y16(#}8FQs?31^DWNaBR!Reb~Cn0%4>c?uhki -zOBE__0E}YCy(#PEFueus06X5fqstT%XWVt2$ZG!fL2x?8r6G2+600c8C)QXXwQ)N1au>Y0M{5dH~&%e{xSZrb$mfhYrSV+8#)9trXW) -z6-qTIEBFeF>&>fpH`_>3UhLe7rIY5@`2wkD! -zSnVwQr+_N4aPLZ^|6?>f;zH;pGf010DANZK`L1;R1)P-TkW<)#iq=U1Wtyi= -zm9r9UN1eM@F4&T+@Gj~Y4n6PBaBGs=2y3z;=ow9bJSGl!@qoA#W?25Hf`d?;JQqz( -zO9Pp_s7i^SK#Sp~q|9p*LbeKOH)c6YxhP4332&j<4V7eu4Z+MHmw|~cj2;0eH*_T( -z0|oU1vd5qJUo)R$IPp}FkD{xT%zoM`;0>5iPfqvTkKg-ev41~nG&Z*qZi+1N=$aTa -z29Q|ALBrkSRRb1`;z%832ffmz{Nk9V&O{Fm;{Q~9!#=?YrEq~*nDa7)!u09 -z2Xp6JDomB+O0Ky&ST0kpuDRo1$pY|>^WW%K`F{h7Xy^v7t9O@7t#=@l=>mcUp>LHq -z?^w+Qt(v$LY;(xTqw!hm1h9ZHIO#qUW383YeV?g#$cLF9^$<*0RglLs#9zE>heSO+ -zC5Jq3R55x2auB;TbJq4ylx*q>7ieOhv`Rdf04s-u_A~xg0!l-GDO7$kIl5&=7;_%D -zC?ryX&>+2abErHyfahFce)xNKHi-+is+E6$9bHewx8sOqxl;B%{kLLKNB`>scwi~Y -z$MCYaI&&%k3pEfS0Zi{OtmJr!Mx40Qlk)d~-Nj*{KWHBDc&yL!bT_FU>^p=LavNc&;1e&& -z#2`2DuEFxMICWYLYUs;W$y6siV6-oO8NX=q!q&1vVr(WVbRyv5w!q*slzSz;TH2>Y -z%!!-Q8kfg*uc4fK`b~l7BgN{#V%kggnp_BXr)#&H5##d(Y3kRPARZPQn&*m&?duh~ -zUDQ6)dp^I#->PzjfH|X}Iv}tEpLJ(f9$DgilV}5dpt@7&GvU?+d2l;9@qe_4Pi6~R+!QqX13rdD0CJxSnz^FB4uK38(y3mK7%({RS^5Dw3R?a*Jb -z`KE#5{0?X9^Ao<5Pag@4QC71@ulv!OLJ6))Z)D?lv48N4@cj@@B2>5))#)iU!$W3q&{0m{jn`o -z41-PKhe8tD3d!n73u5d=ObWyM#vTp>q7&|r72}hZ+q#5c7xEyE&8pb8m!sxk@8LuB -z`S2{Zjs&)gGBM<-f%jXBaL?*Xl54G?>obIn6AM3pAQu-g(6L~l*(`Nk2~;MgwiC1Ax6ksFkB4gZ-hVBzoBaMTH*8=-tuzRWU=e0h@!> -zv!X!uD$g2&kcS+zRo?^rPg6%)Tvef!y|7Hk&_?E~!c8MI*d7m~a8GGD`dO`sP8p~mOkB`{*s=p6QZ;x6aytU{kgdB=djb)^@Dgb#p -zb0c#Iv^%Dr(faD(vXBKG1sV&hPkI09V6C5+?>!5@dH%jmB*JVG${8pm0zgvSJt3Ho -z!GB&Fhs!+Nc6x`as}MoBQZh0ehl7b)2%*y{hmfSbV_zt$qb?Jy6-&l}mhr?*oM@yo -z1pP+g{@lknflA9T)L4p&79ft^GjBsAsEbTOSu9;Y~es-K^p7{{`lu(r=S -z;QE-VA5&G*+Un#9;0y;1^{B*oWZYPOA}6su-H&2x5qX%)# -zDa!`mwl0bvzKt=a{ABXyi>IfS5 -z#h1$>y21^9OS0>Ie{NJF<)Q48Y<`nd$2cbmzr8eMLjs!OM~?;^%QXVT-5=K~x8Yto(Tl_6;DI#z2EGWey?Z*%fv9U2GdB%R -zK5N7x@GDtF&V4Dexj(T9_AEN}j5)#!t_|LJxgi0J*@tvm2Bu^kCJzODgUewh^$4hF -z$H^zX{v;~~zbg9gHUS_z>7|ioDqoAiu%)olY^&!Q>II7=pb4@r2lsbP!S^E_f#lYs -zYWc#uZ+eC!(r?hGk^gASOzuX}e>CRQ(T|pWsq)&(1Dx;vX}js!ZL-Sep}jVb6n}n4 -z1`#%z4{o}t>VLnr(%1Ku1ga9qQacCAjf}*#qj-_7GmcAO%aBxw2Y8)CUE~vn -zl%~wR4jw3XS$rcMjpTU)Vw>52rmUzc3Ar3GsBWl~qA;!OjQoiWBlEk`nOQnGbg(x! -ztrKZ!AN1RIoP-vd)XX=5C4?K^y|4-MDggNVb%r{d!A3TYpOK)bpE<>YGzED#eMFw=rT -zJj>*{7ZM$JvhZx?_lFH0d)Uw+T$tM<9)%od-qV&6iVdXDy$@K*;AHu%CWktmoxJ0PU3OduqOJqX{UNjm~TEyo*;opqE -zY+)L3$#V!Ef>`#QaC0BbrGi03=-I?!{@qX_5zTOz53_vx=sjTrIZP=_K-Ej7I@{%*{xwS>#16nHJz8Fn}WBMT(5;Ed`+ -zo0m~K44AhKzn*(22-Yec(yLSLRupg7gbXQ&VB{0O9tYTZvR34hQE733@MV+o7MP`y -zWw+vEi06j;-=MlN6XW$eXx3*Vk;v7H!C=g)O%j+jbG6=NDIg(Uk(S0_M1c4HLW3?d -zt2#mHo7~;ZXnI~~8t^fq-Q^$pGPU_k4U7ZshJ)hy&DNwbbhjhFm253@I_c>x0fx?- -z!R{L$A<9f*TThTvS8yvEcI9fryQ5*8Sw`)ce1+M4NxBi(Xi!D)vZpAeY9=94=EB%` -zGC(3n`}VXw7D(!uRVo6MgP_Q*#1N0sC36Z~ -zXK;gMr+x7t*2=X0!@^{1p~g_Ez%=2}={}_NEMn>D;*l#!&$PU>3=*mC(zjyc0i8q3 -zJ6BV7sXfjwkTH&_f-U#`qhu1eZ+#{7fu@t!A@_3%9wCw~r_pS5moz!h=Hk!5I -z4pZSsuQ`gtlUD{4K(F>h%Fto}OE=0k0Kb>YQ+};nwXu5a*9#0vGU>rbuYfmOgX!7HelO0x+VY+p!@_9%vm(^r_aPL<^$F^ -z4<=o$Y>i)w!8JWrf`xCQO7a2JToH`nFVg0e%qG(HGLIJBzfApE9V43>?VH3%#v}*1~?^^stx4)u7N(h(|~F$A)W=8 -zUs(H?DPf(0UXq7^)8D)PiNrVFW$`dZQro)mSo*d5*~l~x^kA2wud%71L}yl5-lGD) -z0LC@|8@32wltj}ufK^(%z#|#m!Z@@f0SWOD+{90_qp`;i*4Zr;)~m666EgScEdaY> -zd6dru@-$kTAb8D8c+xJP))^890M^Oo4M;dad0B}N$*hJ{?t>F>bCU?bf?wm6v)mG*{$aegr+N4C!vCamBZhYK;Ww3Tmev1P8Q(hD+8)J`!=A -zL1f9Ck(82=I42vVHgSbrCvniy%%ll#ZMX4oH{EtnYb@GG;`@qs{tG48H=_9<%`uQU -zGD{#^LWV@S^2!*ExL+!X%yEtIuXsCPyPc}lI;myVNTs!8X^Ye%bEj!%z4Rg0{`ryS_6SOR1G1GFIBBOFIgdu+eJy -zE0WB&=`qKbKs8CnD{LubVk|Ufh~b7F{1WeISk}8X`5>J-4I(qsKA6&CycLI7Bj@Iw -zL(&{Gd`gNU}q!kOD%d31ccaSZS35b&3PGeNieMN}+G)0m6h&Dk_etP~3PoR?*z^qH+t+ -zMdF%D0xasqRUXkLn=@oT>1l>yv}MqeTvU|z8AB?u_f0zmGf=RYK0C+R#wvR?Vy45( -z=v$W3bS6wW84i6;!z34*FiT>Re+xY3n?r>zdu0Wa@d~S4ZG567rqjMC$Rj81B^L1I -zZc%BACoxc8!_tkxm`%`@_qP(UQ_n0eFH3hz3^Cvwmg@Z}?%>+pnqRIv?pJ4ON)5p= -zQ$L`6O15c;t|J(|u{u_++C{n^nwJlRsSSGHRn~DO#Z0B+)-095<8y>=8vy=XSW@q> -zRsx}kJiibbINLV+RY~dUDA-~RZ)j8TyRVhSY_#R8$;Bs5b+FiEb+W|2M{-Qy=NCo{ -zyoxl4ZWo+~R0H?kxg}p^smApeP?lCN)j4T$ne@&LBrLfR7AR4JItp4WR -zSh|V}WtiIQMLiY&q5H_Q(bJ5M)SJN1M9fs}j_Nz7GSX2=7D6jw7A_cABCyA{RFZ)C -zrkXDmgy6$ePsx_RAi50?q^|f2F%FTvSz9pf?!w_tk&TXw=anNUL9;p-L68%!u<-mA -znRZ?RN)Ap0rZ-N9h<*`mI%zLIZs)^zvl}t_L20f^Y%$9#ZXr=HHkZ$$ -z@W#GzZCxlG?vI_Sd7w?2DX;^e1sVwy$3$(E!J1N@xE`V~*0<~5r*Lii$V>K+Rvm~oG?~HM@Sh$F6V@@TK_+UJW;=1y^2|#P5U_Q= -z>MN025b|t@0x!ysc6pk#+XELRd5KcT6;z}rjH+ak$E=z{eA6xe#LLC&g5>u;F0oXP -zK44o;Ytu3B!Jb?e&qGnMxi~!$`ziH0w(7F{4Y~uHytQb|0i#JHDx6(^q6!qt7D&%A -zU-gSiKq2s?t_Z*C8-#;F61@rKr0H(S|1Te -zrM+#MH&x?cAS0COnl{#*W|V|tt4KgL&MIs}_RXGr0zn20G8e``Jd5_Oet>IgSfdVz -z7k9UEXuA@pm<}bGr{fg*k4Ev*Va#j>7L|xg#G!L6ko~)fJ>VPcWVM8}2QoF7z{cQM -zeGkx87Ron`@_{|Pqv$)6&BdHP8(@RiRZ;qFAGA9;brmE-pd&NMxM&&BrdCoFS5r{< -zbj*WF76(p@UL?|vOvbHS-bU{UZs=|wU9uEXBzx1Trj4MX)mXb5;taY0Nl%})P{aq) -zb0*9s`9dW+A(!np0Y|SR+xz;2*u8vrgN~nyp0Vb@pxH4WDU%VAL>QYx<~u#hk)jc_3LI^J|b|LIAp?Ws26uG_Sa#iLZfjFn9xW;_P0s -zJII!*Z*n(0*fs0vr?&RU6gG~dGOebBiSzoGgJn+=l`O_}?GKk(q#MvA!jWdD<(5Fe -z#9^qbe9H@zHVoKrK(9LHcS(s;&#lsF4vNH8FyP}aG_-oo-VH64nuL~0Z{nG_a0x@P -zF;z6k9b{nIS_H+l1%w1Ee@IP$)hNlhmKA2bl;)%tA+l|ntVZy9w^Wy+eMdav2!bs3 -z(XA&1al{XxJZLN0#SrT#KBYmV1epU@J}hSy97p&Kk)sBQqmu@`T9dUzl)WYcW1U)s -zYDIi*pQWgyu1TM$VEPhV47SI&!D2!wtcWOV#I~j=BCMe79Quqv-ZXAk8jHXtsL7{~ -zE5>3UU=0D6DVqiu5k?3%dP&XCt@OC@PT7~9SCP33$ctH2ol@lDSFc4U8Q08eBr&o% -zaMk!&RG&uV%OM#~1+%o4!yRXbWv6UG07?*x4l-5()4*%r8QPd1deyYtK|`gLqJbP -z;zNAkyht*sk9A^ -zD~#59C&uK#F_k(0b)=Y7+y| -zbl!H(XIHd!u(;!JVoupkB8})ie^rnaX>EOXZ{;Gd{{0lQnwju03`ao;{tOB(_6;#|Gw?s&_lE}`9cl78r+KL+SFz<;;!f66 -z9lgtzHF>s~A8x_=W5awW=LjJCG3lN)qfUveg9-4%hqK?tvJ3bCN7Ebo@IbapHO90V -zDiP#OP{T`jKBL6iKceNF^4<%Ws}trl5gTjKb68h5_-$V*eXkyZq}`ZoXnj&R~mJ92y|9{8@iX@ -z^Ln0io1mT2^aEu%WCz+#%%v6~ghUsprDar3nj^lXID|7@Tmd#q9(} -zt+e_cP#;zgOFvA;m94BbiIJJwL{X5Fw(<7f$5WETwHwq>hU1KGux=HJnnpXfP5@te -z)ccf;Tbf)=fu~MUR6l^BC?#s;7mY~{K@?=9pB15WS)R#!AkdJ|O8co=LZ3=?=<=-) -z4i?(~#+IwKE~=uzl|&hOAw5xP9dBHOw*AF=L*v>>e-;By0F|u(2ij`nDAY=K%-ec> -z$dcO~4_*aY^gWQ>XA({9fH9C*g$Dwk1M|Aw&ZA2^hz}?|*%Zk&NL@AH(&iXT?34(C -z7mN8c={lKWiGCsS&hwnP&2jrALY7ydb^fKCapov#31U!RQ2{TPp~yvA_IWQ{_b}< -zl6o{C#_p%v>*VtG+&t;tYt5J7i$J7q%NQ?HsQ{aSB8D|Pszd>)ot6Tdjb6g{g}mV**#9Y#(T@)kS2EM76CzIKtriOVVkqagS8T0*OE -zzFF_3b=yV1OfSUAMDC+R?1Mx>cs8E)hkJrJrRn0psdh)Ea~vo*@H=(DG#RcRwH)^5 -z9uw?RaONL-UngSe>z`RTuyY_=ADQJ>o%}mt#%5s?tU#*l- -z@J-tUL@dv4V_T=Iik`BP&}U7MaV`5tSGt;YlgJ~=!bxDxsD1kkE=??Y^-i<#@ovl? -z;-OSyCCmNPtA+cSRCJG51SC<8soe6yu7O5r>V -zDzDL9nB~K&b%mnufRxZk?K>CbQ>uCwqnEnWG#PvAGIiiEcZt#}G@DHqA+j%UYlN3` -zS33h3?#SCQ1!A)T_YJnA;NpWs(1Y|>&P4#FapN4d+4bgF%(Hs;PI9qI?f&AwYSnE7 -zK*nJi%Mzos(i{TdNDP%B`ZA#oVKb3s)5LXZ3bjd0iKXq(|iX$hm7E -zf5c_t_b0cPK|+;SA0obwfT{f{7|z;0-i=GS0Cm4mF4CTX{0SQaCz+S{+5}J`3=dD6 -z<&df)k&?9;LNXkHJ?;$Od%BvEdl2SjxnBo=<$TQ7Hemu5$UXg3fOWqjJy)e$ZjhV; -z*GIbW#BG>_tA3Omal=^?nhisi%1PPbzarO|v{hzNQW3F_0qdyEDx;;ZHR)7Tv(6S- -z1t*c@kdfY&*OW1fKP{Go65aE1q9z$0Yf1w)<4}vLE$I*CaD8t#w3pE-CySPHL+EG) -z4U(eNxpM-s@&wSt3Yd4k;?)DCB~5B>xv2V6X#M>0KJxsQF2+muyRLCUaPXCQ8o8c# -z5E;|GWrgL_rD&J^6q&5Kuw}f=ANBxZ9F=|#nnV`bkVG{O77V%jh#bY!(F7$I7el&T -z2?%qQnv~F?UwcZimQtPRp|-^eRx!K;m{-*6rH}YpuLan+=>#pg5Kca^M-+4nWt`_g -z+3W%Y&mw>GNE%tG$duF?noonsihe3Mk3h_FL00RB?o#1A7S#j-hQGS89rz_hK%k3- -z(q!xqsm!ERN=BU_3g=Wv$chTADiM7hZo@-iC~z^p8Z5*-{n0LT8CflIe4?yb5Xh-> -z9kF8GHDJ^uTA{3uQZ!0cDG79<16$j2fGkGl#g(Og;7+25UCApNP0b)cYX#5-6NYXB -z`%vRyP6NQ2`4lR%mpHZu@-|MG5|(tw<=|gocI;aQX@kK_?PDBNha!Bk3@XsTq}4UO -z|Ehd^{=8GXYOvAKQ|yY<W(PjOOD<1!>eYiczh|9y|f_7wW -zMIqWkUWPI6-iHs#%_c#IDvFT+oA#z!YkH`-G|+n`S!0K|&LENLvt-XapG~%R`Upz6 -zskr=q5p}ZYc9lBqt!*a@WX@OiHHne&0e4Q)(mC36#HMs8 -zP-^Nsh|CE{Bk|lWee&ihlXS$h)&`vE83fI?M1tr>b4!Aj@Nd-RPxLM)MXHg44O>~V -zgqnz3ivvMVB-~pB&qTs(K3{9D>Z5W^;9T+(Uj}<_3103(lg}B7SHe9;31}FcUBdVESe06 -zBJV`g7UPFMd|^rrNPS8Qey51v*8ToOdPP5jFbF}C` -zQY+Y(#x5YU_A~vDW0ob+v6`rC7$qGO{<&M$4Nvjtd$Bjnf^?nbXf<3!-izP{54>i# -zEa*@*@V0gq($<9qxgrNdg7tQSXapK?w4I>0g})VM*o)4-eWS!ggjwtXSj55Mef{EU -zEAR1-7#68f-nNAfC-T{z(Zs+cP~s(aR@ClTV^P8>M|k286Nb#|+0%*{Sf~YU;huzG -zax!6AlX|8E012fH;Uy@)x4kRzzFQ2Hj%KGkFy(;+!d8adPSIfo-cM&HhZrzhR?xOQ -zw9FQN4f|3rr3{I-_4mYkL^@$|H9z%E+Y8j2c`V1?BLR?RT5vGY;7q?v!mr7!dXyMy -z8Bdh$heQT!C3*z16v}&OLyTUkQ5lYRU+#b9!vXyO`~6HtwB5w8bEwq>>}7_g6n -zKH6GE%OG`YXT>*gcu5ch0$BbL`Fy-q;Sq(D`0x^?R*OGye4$$4tpR%(UE -z055J#dnVwYFf9nhG=98TSp0x}9%9I4d5mX5zA0^>X3hMe+8u -zf^006m{bDe{e&|}Yv(~(pc4Y`#Sg0oi&N=QPte1;C>-~}8kfEHfz!%BjMB_CNcVEK -zC*2f<;v?}pS@sm%CrHc9DT|a5*C|xFaoM;AXWk?7t*FJtB6d2)T|%bKRV;5ug$PW> -zUFFN^`k+Ydm#=ba!7_aF-l1;GxnO`PHV7mbWJ^@J2%{%sL94tb5=uQ@PR=Mw -z;{9Nct`3uIjQ4LbV6i!3X@<-B^A8yEp;ma!ai~?SmD7AtY_@LYZ%!o9gzMd4J)_cY -zl{ez@3Cvr0e9jl0T-*a=5NZiHEM=cFdJHmp0Vc|pRtG1AcJTN49Jmb|QKB}}oYIob -zS{&cc;tmw^#MVcX+e&E~2g5#fu~Oh0tC^C_9RgX-hPzvHsmc>l5y>8)9Um#qEs{;6gU(bd{iQ3c?@W$%tI)C* -zgSvd^|ByJZ$%R$l=Qbnt$d&)d8z5FlC$5`>d!Y}96|Ae#3OIFz;Qcnz-ol8o-e6zDYfH3J1fQP>>p!0)~%2u;a;Yd(tT$)X7 -z0rkpz7Wptj<~5+XSkTa`BHch4-{uHfl5@^rY+ewS=LqB})gcCJ8Qq8F0teF?h4rvG -zler&fp6?95O!Y{uBsA}iDpxa#tTh0P$*q({lDWI|fSY3%*3q$bYV4c^rN@F|pBY$m@jWBG}4CYUfq;=2!k -zoo^eFgw?WaH+pwI1MAoRUd1H2=$>>-a0t<`B -zh~Y-Fhoe1JVa=jQzKA+MrY<_lrgTPE@M>$;tl9DrPcweO=AqP+gMs7WWi>(ue`@7E -ziQWa}3|~&B>mJz+=HM)U67j3jw)loAe=-LmMAOA+nQI$C%@QCB(LSXzHp2_$ZKfg& -zl=b6#HozEefp{ck))(6xzu#IInmQjcG3s8$}IO=OS!fZmrmDs@0kXTEj3nVoB4xgg>1w3Xz -zu#( -zHjvf7DZS!?^Q$UP=?@9Pw|8v6u_v&sO}o;6j!#EDFo|F?N_%P=6fC`Ap7jZ$2_Xei -z@JtBwsfTQPs@_a&-=wQE5e=2i85Vj{0}@JdgN8D=u{NOthS86P2c684Exd7(&X`gz -z3D&(729-7L89ArP3T3@8HDPW>RSXOuD;FoU%1`y7cT;eY?bQOk#sRRZmSV(&Gf@@- -z)T(|pqq2Ee;v%9o^NtPG3#cT(t3w55R7S<*QaAI|tuLz&r-W)5-OBz@mowp*j=DRO -zS}#Eob+cqtI>;J4<^wvb-Rrif!S1i6!Xh<&R^84PbWR`5P2noC$6(R6fHnuaQhyTk -zgESZ>acbtJsTGSrQWH@)^Q3C`X|gUe54AUZ>w96Tk9j@ctSPjP-o#IJzf$c}G2eA$ -zvUrl~vJ1tmd%($CmIy}9_OJ$edJkZg__0J-)t8wCqC={o#n@%X?o1OmB{who*+R&6 -zYmXVk)Y=ES4qV_4-#Iw^tQ?Bva^9ROv -z*42@wETS{w>^m1ZTmhpA${v_JGBizq939`}f3^4aZp=1diot}U%ik~MThks%dQWiD -zYD-WB%Lc*A%k-sFPgh!}6GU{ilV~hcFg)k}Y3O=HNHSZYGDgfBd(7RQ=Ol)%7>%sV -zEEe9&h-XefCoOplpp$@t9c+&lHyhQm#{`v4a;i?l?xX>HXW|)>XjY01mSc#b+Hxmu -zLsmy5eT;}?j*cnCSp#AJW8>_aJOO4CyA4nyEwc-zF?KSm-nFGhczH8dY-Vh#yThnY -zo88JJ*}LN|RxT^a^o&M2>A&r`dhbDTpheq*Lk)5oFH=^nV`lY$`hhJeeU?HNnk%LSl21 -z#0|x}nl29=DJ>9Z5H~7=gt23wp`cSKarb^A+en%EmL&6p*mX1^2${tdZ&Ub6@qJ>3 -zgU)VXxnVt`Lmh1bZ<81eS)#C3V|rj$FED38vwFb>^oXPtfqrgy4(~+nB&vm3_~_8q -z#<;#kI9pKYMtI&u)pZ)mSj3<7^_nfH*~)4MZJfn5Z)SUBupn4qWze<{ge02!;MwqD -z`$6|bg|OIqi==$(tXJmF@I1Aw5!JUN4Hho0&^3`zVV$v{RdB`ZKD`N=+P#(pf&8KR -z>AeIo%LVi65A1RdTLyFrQ#y2`_u}QAk`U`4dX7p=_RF705c6G#6l38PS}kF~Ubd|z -z`OOoJ1SW2^O -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 -zVfK+tALdkQ+M|N@da$8b|psl#}GAOM* -z5T!Z1hdi?a&WV#_(}YqN#`p1M6Ba0GTo|F|GsAbM_n^oRj3iVgq7aji4G$_sHOxet -zs)g?lNux9M+kU7}!8Z5+hqExSY3Z<3 -ze0WGvT!K3e5t9g{RS#1NG`q3096G6%$9h(H3iWaXlul(3c_+a-7+SaI;&atz-Eg1l -zbdpR$w0vZKYxymDktMTWv~vK(jp3zJH*lg>N{1t)-XK1*-IYhDBfJ$7)C%UT4z=Gt -zwNXJK61QqD?BIa=+<1G@wXj=wbua{yyZ}$H7@~qb^T09U_hhYWcD>92!&hF{vy?-S -zAxAdxV5KI&z^7H!O<88^Xg2{Zg}w?{%j(L3Zr9g3T@lP*O1{@_kG{lEKT9_w&#Ob$ -zlfnD~iw>;ew&d`mDSYFtsh9E=m$qrZ4B^5;A>-tl&AQbR2g&L+<~&EGH`{$qB7WBX -zY3J*Z>?2hTWeO5Dee-Y|Dp~YT66z7G;ZTno6fgNUw1p-U7qq>$+pkfwM@MqCm2e`GPGNfk%a1L0wLu$Da_5{=Q~@$_T^HaB5!;oQ56t&6^qegQn#pnl -zH(H{5>0GqRV@yuN2{EQR_k3|&;&ZT0f^XkZ1x`ZBIzr7(>Q{b)1g0Ofn3q$fe%B|=#L(^#=*8f;^_}+P-iv7A -zE+v$>jmSn?*-~)VBm|f>E&xk08v*yLi7bk0EXX+C+Vb0h%Yj?!(Pldhr~(yBh8E0D -zBLO=`Bb_>0aG3@$z?RT>W@h5PKbYn<$~EAlB6qY9d`CuCY>OcQIgnUk5rJ}>wA{iz -zV5kGx`V-KIc1ydKv?_r)4_%F1ilgq;fjq=5l6thowdiX}9J8p3XaoI;K%l`$a0u}8JEn)4_PvG~ -z#L3-b_i4SRG&$r`f`%y-CNU+k1XSeUamXv=v(zd^GLDG>7afTw2jIrzdNKl9qU>3<&AFE+b4*Ad -z7}M||hWN^wu3T{4E;G94dpMUw(!m@N3MH;CX&p_$K1#DBhYZI&<6QKtJ~=Mz(_LW1GTf|0YJ_k -z`iW_O4@}5{mu05Zv7Wc>g00o$j3>G;m774&5*RTl0BS1#!f(g&TIE193$l?(VRz6Phyu+q1dHI~&h2#cc?fuF)?n}0 -zou-lOIYU6=omD?Xt{)}&5cU?A_6LA`8i!h#R}W++Kbib2QHG&;Jo?2?Zi5zR^nn?w -z=tsZwPb8rWuIzdBi!c7!^@V$U^-urw{LJx_<|!HG9IpBn&EVrBtMLtLgEz0g%E2qr -zd<>No&C~KrIo@z(YPR81G#c8HEFdGKMX(Vs^ld34cP@7mrGvZ<SoxbMNW80mcJ)nAMr04jZXQIU2E3QvL6!B;*LsFX(kT2>v*3{|F -zT3l%tGyLB&je)T5XT0dZmc3X?ucT^Lu6MNW)Z_~%+is-AggV!kzr@}+nnA+G$Y~P( -zi{xj%_<#O0zsc$7G$6YHUeH7<4Gi1>ndrvN>-e=Q>^-JXBlS+a;uY~(k?`bY6M -z_$TYD{JA$>A7U}^Q~r>()l@h9c#r5T<6FJn96Ne;QmXhvCv?Mp#;|GRi<=CEgmP26 -zC$e3Nw(`6mB@+F-f0R(dGfYG2png7X8~tmaA9^`e==Y2E@oV`=lMB!LzHRR9vpWrV -zJ|C5-@p%u+TxoQk8FOryd;9v^5Ax;mkjfuNfmooQi;41l+^0IevDwKVo!D;p{rx`E -zZ}sx6dJY3T_F}Hl0DqKgeI2DIpIw^Wy_e66b{UXmKjjm0tMB-)EFEs;+k6eNF7-^-P|RslXaMA2Ts@ -zo{vKp-o(9Ldvp&vYopFuI_lUeiK#y~M;F8KJa_9u*av=&N;CLn-kK|bXVhn_#4vnj -zB^{H{GCsFYbm3u{+5MvigPzH`(=xZ!t&Z(+Z_D0~a-(CD*?S?yjADyQ -zzx~KTj0yaKO)1@k?*jJp5fT1mA>|d96b4C -z^&?s@x9?oD<>;Ogm~_L7tX8J5i=mNKo%qoSoh -zPo1!r>60+n{1W1L7Q8I2iF?kPlT}wP!{S>rq@8Ul6#N~7BnG}6nFkCSIWd?Q_i{fs -zB=TkSq$z&i(j>n^&#k~vw4p-#K7Q!VF7f2nr^qWgyR$pF^RPYn -z&dF`c=H&bSGJ*=Zcei0$pG{IfvN!>bm*K=O@##o7Tt8$vwN1aTVqIxIg)R -zelq>LljH1Zee6!IKb(BOJ2~E-Jn!!0xSmhmT_$GQb>+!0@401;*3)-wF`_B-mFobh -zpR(A%H_2x4uBrW@AIDb(8hXpFvrm7i7ToE1*p|01o=pJDiT+Hw>8t1Gx&(+M8Tr9v -zTATFhPIR<$fK{*=oEsMZ!9Q(FkOob?zH(f{|-sT -zo-cSLvkm``D~j!Sr56Uy-=qrE+;53P$)f_3LPUpSR#~*!@eOxyWn4Xwpv;?VPM12e -z#gLE&jD;A=2xR{7aAN2(jGOe$!qJggZ@EE9!k^^8$f>8Ib>c-6yFSS>lT?1XBZOB6yps3jN*f{riN4_?o0pbysJ=btfV(rw- -zz&j!+`8@1t-%EAVbMC96ysi$<;FB!5>7F5eNZdaUZI&Sh#sHnoOx(zn@a{d|9P)w9fLmAxjDoleL6EU4#JAKXmHK;`@nv=~_$# -z^VMTr?M5^gbIblGFZ5F;>trwoFo6LqigOF$D$O91#JjHLW{^OehB{sq~SEKa7Ee}wR4Q@-*x3fh3M>qZwCDD?iv&&G~Q<> -zdIEp@i^;BM(kRoAz)DW;bdPJyM;=F34H>8+g-CuwTP=Izf0O62r%hUJy`@1*!d-`;oJO5F?LWf*Q_7Q?$_{Yu0fr&8N -zGl2scEgSxHgRKEhgN$tF?wjJ{?cG0&A8+5jd-H~#Pj34K`C0bo??~T#A^0p`khI{5 -zJRXnw2CiRkTvqMB|B74Ju28*p^|C06e&e$E3NBwA`PEUiI;vMk!|G^U9X-WIsaqYb -z?vNI%qwVUbTpc~Ej#hV1S9ee6_$YJhqt#cl)x&42!DOq!WV_YTYG~PNnzGe2k$>mf -zlN0IjDD%@3)#-`m>ar%vE -zdwSyZ@u$GVu?cIE8s%GueNv$HGbXTS2<*_pE$^W*86;^Fkn_G~t`XY;&0 -zyUuQZdgkHmoj#n6d4G1V{prHEuF|tJXR}eC-K#zuVf}b^=IlC+J3DhWht1h+G~MZ$ -z^Yz@FUAgmTXU^``oy|{oHqYJJI_%D#>&LUZ_h)NtIQ!0UHuJ;T2#4zI%;EIRc(%sI -zvt2NrJ;ivo5~i~ePG?VgINJrM;)>3!@4g=IYRBfQ-{!05$X9P7U%l~sbrrw5ieJg~ -zVzruz)m4hsoNQN5zg=B(yLvC%)jQd)uDM;U)$RHYtJz%d=-q10cB|j*R(ox?T3O|4 -zoaJgP<&UeQ)x4DB`shS)Kddgh7A$LByI)Psel^|u)oZF&6I`vnS*<3cS`DsRJ#e*J -zPW4LJ)T>d~tC7{KJJhRJSg$6(UQJZJx_iC8`)Ug{etmQ@QEN%ptOn4mCb(I>{bn_Q -zZuPrvHSlgV@NPAU{pt?=>YHm>)vq3ESnc;=^@zhtdJd}>I;^I9Sgp%pHR@qCvSIb? -z!|EBv)yp1N^Es~OWnA5FEe*%j{l?WDrq#S0R(Ck8X6Y#2i5v}cla~uB|7Ixbt;;v+ -zs9clIZZ_l&sHOoRav=#VLu;T%3~V%*83WI3*XS#EvdbNp$r0=#)ff -zUVr5)U+>EN;)Yz@5Ib>kLslm)Zb*FQ;)Xx(XjWq9-oy$m+z!9f{9e+>z+a#T{9lxws?onTtCj -zM;CV_I=Z+cc64z^qN9sDBJK!x>0f-3An`9giJrLlB&!n_pCmqW@kydH7oTKx=HipY -zXD&X899?{p=;-2;*wMu&iH`o>e3BECEpA&MHr+1YbdRLdi?1%;$olBwjVvcF-bi$K -z@kZ8XF5XCd=HiXSXD;4IbmroXT)dHsH)2N@ZzMYUd-Fz4;fa3-Wb>gd#x+85_CCw= -zyTX0#-sCswo%NW=tp!WAkxcJT(5rw -zMw<2M%@1=meti9Z(?8S4*VjGCMn;ZXC;$Gki=}Q1EAb~>&nEi&*WY)vXui!O`ofpK -ze|qv{8-NOiIoo(-^5v7S?AuR#_={KJstl4}KLYT6b&f7xHv9Ft!n<+meGaOK)hF%` -zyWSVyfBe!`c#Nw;wS&tFaG@( -zIK{lkuRne%BluPO_}$Ls?eT>l593^U`X-5`;dEY%ZxXbStMf-!_+D?h{saUs2cJYt -zMQ5|p`6d&N$iXu$>H1@N?r-y#uKV&?T&f&>9et+Dh@R{7b4k-h`|=M%pV3z#>SzYy -z-MVpyP2Dzr2DKMY(Hd+rT=DsjbX+ZWc;-VVTk!0X+0-BW&v(i1U;ouE`g1*e5MzJx -zswdZa>F1w&(wBbz;u`q=O!IvHF`_ppm)dmwhKX2yIM-pruI)gaaJ`lXySmL2(rT}m -zb$wWWI&YIYrKQ}r$3OKsE!)@eY9~$U(*L!l%H92&cZ;c_lwoY6kS<%yj2*qRZj<}M -zP1U%$y}$YT<`&WKuGxN*?LOYUYz}l%!y~NTu8J**&G7LPtMc=P#F`MtO=BBPH>pV0 -z!PoI-=*ms+ht2Kv-RAYiW+-|zTA1gf&q(X0eL2p{#jk`Y%139I4{13()%{lkcyCUY -z1B4#L?_c!}E`xym>)k_i7v0E%!!z^w$1g=akR1N2-Sn3uJy_RO9$ZAj4-2F6UvDbE -z&68jM^>6cUvx2VwnY@bBW&4*6jANnK9ij`D{oVB^HSCa`S}RymWAB=wJk$H(K5B4$ -z{PJ66T=Jl-rwjeB5pUhc+xxq>A8voy$-gg(xYaX$M>=6o;_A0#k|bp3zgoXZ7UeBl -zg=-nJ$qpOmNw&BtFKH9t&)d73$NRTy0k=49B&OJWTVGsW1#?)vYFxJK%WMZ~wm-4& -zGP2cZmOu3iygH#z6c)%xHEQ;9CBM%s0I-tHv{056@|yJMNb_?diht5CWhGwct=%vF -z!2`Ioi!A!V;f^f@kjClFBI2g2_!90}u7o@n{>uHct2!jtmQk%9{yDxgxUBAmq;)M= -zB)7+C2oElMVHiK(t?Bx5H}GVq?W1ZfJKBwP_0=$?d7DkxPgl_&=hLqL1{Z*w#`tr# -zWmq2lS3i&*C$s$YiO9v2D5xm-R*B8cl+dV@+sTn -ze_J&*;z#$3%nvf_l05SdcPUyG5kh|-xfl`^%TDFazkmPk?!ABi?*3<7bZ_6hfAgN6=)ckCDMu`}FJ!DV -z!{1LG+0-A$e)2(UOykZw;oK%2H}%(L`&>+8s-)lBsRpGg|K0eXrk61@(6{ciG; -z%?y7Sz<(+sCbo=|t{ui7TuO?7tn!*K6#d|OaMiec`#gd1o8SJ2mzH;Sli#~6P2Xkr -zZ$D)D&$ztbzkPELnMzj77wP;34n#XOKuR;ym@`>g|f(!1DRa44;KDeswno?MG -z_wDHR6aR@>-jPA>nM)nS(zJ_&`veE{J>O2F9fJM18QXrg6MfsthdDT5J6+`u{>i7p -zjZF8dJ4cF3Xq2BPlCd7;OEjJQCr%EaV`UQ-M_suG32@T8{p{rGweQK`l`A}SjSjCb -z)2Xqaoy^8ccK+SYN%Y`X%Y$FV4}P^g_|^Ksui^*4T0i*J>4RTI4}KLt_*L}aSL+AA -zvIoD49{g(c;8*7leic3Vl|A^?`oZCTl=Bf4wp>_Tn-= -zRY~9G|3Y)J)<^g0``b5fig)+-+54|u@$>4Vo0|`;kI3HgYjf+Hsp0FCZfzaC_>lw} -z9L+%Hdl6%>nS=>UpoHhB5)xFaWUsOPd1`R%fa9#pRR -z=xA+{huXI?r_Y@q%aKeIGs2F;-Tix%Aq_5dJDfx%SYGx%8(Z>@UFC8onxOAG)XdRX -z^4f2~+>TNsxkKF^N|Elq>O45<%S;AKlX+-^V!7kg#{$Uzj -z-#nBkbZYyO%zpaeoBUz&+g6^s>gUl7s06CY)YJ3kdATh|SJ?!T*wvrY1kL2IYH>$eZZ2Q5ELko55wJs;g}`WjmkAM{d!` -z{dIWpIJfD)`D}>bvL5~qUk|I*@cmbDjO?>6%w=KxAG|Qm!tUfa_Vm_ILhmM|qqD2x1Lj!g5j4XZ({cle(%QQ_cW_;coW8p~?fy#5Eg`)t25H9qn4KQ(V_Px2EN -zso6e5GXCFsrI#jg)3~Pn@3L}eBXWLv*tF@tl#jmp=bm=s>HvZG&nnqJ=hkxa_rLmY -zgYUnan~d&ce@ehVTzq}UPu=KrtN*$$N8g@AsBhfcyLUGqZf@S(74HiFb4I9dZ|}Zd -zqA7ZJPLgqD;&sMnIPPY>bC}q(&Hl%@q@!+=Z0G9Ef&_oumRontHKRZ6vUh*pWnUie -z!vKNuF#Js8j4$^Wj8CtGHDuAujVpRdc#emUv`5qKCwIUn;zZ$-}LC-{!NeW-QV=+-v3RH?(4tl(S7(E -z8eJd8$CCKP0cj^go+IwJTqDcVScr#~hR=<=-PLo=i565Jgu~p^Na;=k`4c+s<%qud -z$>Ea=fw7-hRpE=D{9U!h@1)-4Ghb?6{uVT2QMqBaL1o-YVd%?ukCZW7wlH7Qj?S4NbH{DJ9|NZdYo16c1$a44YyQl2eyKJ-V#vfdh -V{~$xz@MWbino_K(un^y}fzl>X1SqKe%2WB#pM +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 +zmht#mPpG>&OB>rTChzoJ9<|7@!W>8hcVqH*N +z-QbDNLMz6D@z>DcwErHAn^JRRw`bw}TW*Xd_Fe1>xr}cxk2qcAXqu!43xs?kG7z(Q +znXECRtT)^R`6P)0LH&Z0k(YN~vtn{v*t`^WMoXj9xu^B^ft)$|K*6V{E2ObO=AS>3 +z^?Pj)Sw3Su5V&B4&uklwNF7RtIC-(Hf0-6YvG0VY;iOZVnox(~_{<9Jk;pfSatFqR +zR&PGYu?CSlAW^5$N6yF_bqCbQ>W<2Kstb?b*l7(IP|R^;2?O$dVj3)hGBTjnMrb7$ +z@DScl-opmad{iKjQzVRZVxJ{>as$Xs_`F@q$Q1A@6?x0OUHW7uNYsQAsd}Qfge?UB +z(2@Oe1yja~PD=G#8VQI99Ef^YQ-Tc=@B$JVZB>S~BCE`7qd)JoYp4xN3046~MG!&w +zfubi@3q=x=SqpGL3$B6ME9aFu;$<NV@}2}ON$Og)IWR@~Z2}v- +zZk#k2OlG`cG>Gky5Pn)q2oVEob+GE?HlO|Sy=NWYT^Hg?49P5I$5|c>R|jjM)pbq; +zuLQIhJD5eP77#S<#vjfU7}O0T=v6jxw<~*@YC0>~y!7ZEIy^p4x-GEV_N +ziKr;hcyJ|xI77;1%bW$u9o>-~YRS&PdCuywM4UydL_d$0^`55yt2kk?qQ0bZLABWVAsYdf=d`F`0i+^(d-CUsC8G=ttAUZH3B +z%PEWbSQqLh^Nd##&_-_V_kmzMmrM&d-%V!@pckqANi9&{JhUc$ixaAzdDse*EuId$ +zfq1ye%;F*AcFH0?kM_bUO%*47E5mKF;}8ecW)?1HAQd%sJ(tpe;wGfcD{Cnq2d##I +zr@d)xmQbm47Ysot-oJoy(y<`$j~pl<44&voqcp#ygPakViN5NwLD5Xe>_FEM6)F%y +z;(ne-3a_N&J&cAf5Tv#s>eDi1yFRw1?(E0_rsbKG5xq(Vk9r0?t5|vR>V2RH>8O+x +z=`E5<-XI!*3uf#YPLQv}Ws_vIl80v5k-d1y0$jWalMw_2diu$f_I!%W2!Tc8$zZ0T +z{<0^yv;t_V^1M@nhmd?+MX&vc);hkYNjx{Na`VEHm!$QTTBcw4Fc_XDPT`Sx;Udmf +z?ATf}$;jL?1Jd`F0sG8fYSxSjjbI*fQdYJXI7{gzYPs_6<#b);j!21NI=Exr)SY-} +z&U)N}Ri@M!W^PI?g{Q)1njD6plS=a;@SYeT2&kwHdy3mTT@jfypKB5*kdIJV@(UK9 +zNl8-&o72puiqhSPCH7#9t`w{fPy;gwvj?PORsbo}Gar-6kXlh|LIkjDRaGeBni(*v +zgd!L#z6x?eohg%Z_qELe3*&w`l9pvA!@_H?Fx{OI6G$Gv8~)#sIBu0teC(T|Pqmc~ +z6gW;p+sIr&JBirnzT-?gnJqvmw!w!TzoF@O* +z0^r-ZKM(^Pacva%TIG0+mkp%p8mLuMgQADv=@f}FchF%L;H)YY5f$X5q`g7DveD8Q +z)+iyYYj9D9WdK1I!*ntXPn|aTb|>ECw!h>ll1Hl5l~<;k5__i^FBR7~3Oeu$27xMk +zuTfds368Sb%LMjHF*zoToq>_!GzCpoM!H%j2N^}8U~qxjekTJIla*ZHSk#6r)fuGY +z7xLSk9_F_L8b%gXc4u<}=_aa3e%C!c$?gLv_M~sWc}`We#~;o%Wf%W+<~EJLN1=^O +zcq$i+mG-kqT;#KFx_DprIsx +z;retJQ8?4l6sCxRAR8tI2fvVh`Z+>(v9{!U-z4uftW#|Gt7%3SzInEDD!7vO?8{Py +zIxj|3fP6&rG5l +z7g2l0%Q89I*Re*V!?D6?a5;WTHsgl}JBLa56|XL;nS+DoVL^(!|3k&#CZ5q +zfA#m>x*w12k1i|&jHmGx6AxK$=r4%A=@~u%9K>^@q!8DmVtX5rJ$KGd$Yk4U3t|*0 +z#+><{yYf9K$M0Ao{9dBGc!sf9E4hyGj|QzuTFU+1v_j)MT7K{p^N`p1k_N~`oKA

      gr8|wQsg;pYQa0egZrHUr2X^ae*U*jPlS-}2CkSsk$JvY+DDU`NAC2*cb!K@I=B3BViz +z!@p+Ah(#9Ry_9&@ZEd&`FjzlhxTok;od#NC!FUaGJL3DPA}QWFPzokj +zLiKyUCX1T*)#|$L&84_!C7 +zF&+3K)}~>?YDENc6v;=AEx1%_j&8%UTd|ZlY|0vt?IElZ58BS7)pOT|zsN5p`Pt+(}NdobXq60dca|g7eik|G=V3#k_ON^$VmI}qIpcTUh7<{O&+@Fr)0%BKOkN`=ziFHt=Gd8WdkiB +zy=Hwm*`_iT0R`Lu!tWwX{cysuneYoZ>>#9Q)=_eFVSeS5u=o)EiA^#upCEm +z%nh<6E`%7e{ST<7s%E?J267hz5vDE1#(W#xf6tp-BS{gTnuD04UfRcvgWZ+2TP!>m +zhV(ehhA0O92N!B7Odl$DT+g2~hH2mkfjF>JH=v~9=w`abBd-a^$hdRYOiqbB@)=VwW269ezJU#*w2UFJh~6|tmn9y~h+K1x#$kK5}m)29Zy2jExrITb8R$ +z9PpP-YagxfeNeVDZr7T`$Dp{H43>7a7Z4#lC+wN*PvKxmHJ5|_VmRs>Tp%DLK?%#O +z%^UBtw4P`P6|Y56q3cXkGqUc&kYv+5@W&wR2|gz6%xs-*NLm~nP9`lJMPbz{5d21~ +ze;_=GVz;>)8~Gm$g6aMm=qNtnUzdV;>2Ep;5qd=!XpNVV&#j6{gh%$+TZ>Mo4SApi +z-{(N_qy^-;`$=Mg0>~zaYWTsQxRmLxBEo^o_;8DOX|}IB_IXvZ?0zTFV6@?1W1wEc +zqwpx-W&BE}3S)fgoYw|sKmebnV>y2up&0u`GWU;U=o`&2GM_yBzs+>4N12#6@-ZE~|5^V5 +zoE!h^*x~rU$UmR{7_7(CgRB08hR6Q4e+btbA#={>JWE8+4Ft1eBxV0dvi{*D{%yzq +zYRJ($6a~Nk_3|>f|NmCT`{Q(v2N}LM^1M%fGd|B5la#Y4J66i#`EQSCkgoMljZ~NC +zzC#W&Zk?t+2i@&Hbd0@$9)emhq*;g2_nN21=lr>wNp5O?W1;1D +zjWGG-k}UpYAouNGp5M^jUR^!K{-Cwvy!l~v<3-`CT99W?&7#H0mi!$rpQOjkLb+Ss +z5$*0?-rl~>_`3Zub@pxf$|Y*edd*C#o&1w(2|G3_6fha$Dc3-~!a}0pFr5fha8z|V +zHILczwbZ9Pr)j^nVVZ91+8X31e&_Y1!nY@xI_3W~y~Ba{ZH7&LoQAJx>IV=F5nC0C +z|1y9~2`D_j*p9dD7eH!w{wMAz8ou`QuZ79UoP=9;U&9B^EpKGntiwB=_ea__{xdx6 +z2Hdj%7q$0|cXM;{3x4UZyeF5GW=z60tFK~S+z)@qdobB`aOM%U! +z2Ii&lHGWkBR|BZ6HB$Pi**bDkern(Urdtt_+Eh7eCy$dnG`=cO+#c~EUFNiArSy`~ +zbx9~S>AD)hZ7T~)sQv**ejS|bP8Lyk_M3ek3RH2wkvklb9I^H_FD{(uw`XhUgvdy%&+41v0rbIB12;nTwFeVb#a +z%&jvKju!)Q58K(7C>N-$%Abvw%VvHiTnK9uUm9t(Jzv>v)~UwmvGU$kPsHi}ZzE!P +zdpTPk<`FBMB_L5C!jApwR$@%!E4yhL#J}p$wK6)Dcxio2o>?ap7RflBO$ee0^d4)< +ziY>-N5sc+u0?VqVw>}gW$FX;4GiX9%c{5*|eC`cv=cv+@unkV7KmI!#H!4+&H*9QI +zCJ5Dl-(wYi9((IY_N#II*-oFj3VxK|1@azya(?^l$zEritZSxRctqJxi`zL7Mfc%z +zcZQBJjtW+^@q2y(V-ajAx&U@u9s&k$_Ha_s;755{p2=`K6Sdc8CFgc +zM|0_<>e6>RjvLQSYb`gum+lo~n8GNQ!W2E2Jk*@eXKnP*^I_HJ!;Jop{_`=)C)VYm +z2c)$UZO-Zs!9J5$eRSBFEw~Q*mo561ee}?iIp3^tVb+MxYO!ByMxC**{BiX0&>NB< +zn4Mk)s-0Q1e2n9zzZ_@7`@(0cZ;o1{Tw0f@Kt{xnA9ake~SCQfT)puMvBMu_Nrasd$6i()!MJ#AB(C#k* +z+Lp~CCugkcGhamku;$cpM+8#$@^0;17Azx@g!?e-S}l>|Iu=hfz41Z5KN2HAu^ifL +zY2N?4Y_Rff^CR1M4hivb8U|S4u{aICH1MP7^8ACry+q^r@S2srxi8r1g_6$l{SG}k +z?8mQYSZ0g=Oej0jQkINs!i~7IYR5$|qrJwK9UvxXkeh#P^^@aeT>0|aX}hbrs<3zM +zu=6Z0*l^oGMSI)sLLg3d`!;omdwXtuAscP6u0zpHRZJxjW!~ET=dm*PJzL<2^dhG5rLf=qI^^@~ +zni=s90jixaRb +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 +zB*E~UaQnZE!cskD>Fm$<^`L&vm6!P9u)q +zq#%XM)FPrOkQABtx2B6R-A=ID4uP^MF#&DqH9s+==JgPxJ3QE+kIWqL$^flMlcl^f +zxTFicE+7k1G+0|os01x)apQ@)2RsF1fmgq-KdPeUZgrFzdPuTN|J`cdeJasBH{G5jpK2!+b>uER +z8Eu-78xzD&va~gr#-A{~L=TZjT+^TxQbjHnZCc;iq!45mC+h)+JnFjxOl&EpNW`}# +zD#p^EDbjv(UwogFq}ZgN7l(aH4WO4$6<*%v4RS5Di*tkxHBK_dZ7Ggrs+F{pSO}D= +z8$z;@NCyNyH_+HrBu@ypGnLV#$xW!0f43|7hyyn&P7EJUnzPocW(!MNKiAc=9`)5BhJd({@80Tm5PD8Lz`@`w +z88nAIAqf5{GfY`}!pbX1()`25SAJuLnl0CTY*~J8rh>5tQvUp_6|JR=LAVK*E|ohN +zIz+EktrO0(_q^5!glL7RrwzswQtd_-SU$;HNa@730^Cdrab5_k6}Fq|E6{_c*qi1@ +z(EDePj63NVGU#W#{6OwHY9|(~h^4uytD9nY*&FO_$BvXzV2%;nOD3xh| +z|3HcG`>7l;xKq+ZO;y2N-928$T{V>YzyoXMsaCMoLS~^T6c?{5gFp*Nb`2GGX#}n` +zAry>rtS6@GE0DkwM#l5ogDg$#;z78@sZ)`Uf7k~L{v(%4C`LlXbIcvTj_C7&atLFcgB(hyn7cwcnq|}g1{KPYf>^l +z@q0Nr8VDg(l6r9tZ<|>CFERPXcL2daJ+ +zCw7^ES^LU@lfkx%Fg80rp0K~RLo69Eau^c*Yjp+dL5q=ff28AK +z`Mu@f1VL8aD3`LzHnpTck=)TD_yk*~)0tQa%aXlI3PP{KAyIx4T$`MTT^uZue}7+4 +zkl~jCIxp`cUqKHL*}MU^!s{Og(;f(qD3cC$X+@&rYr=%FwvS;?C``B!|8iWKUaGk9 +z+Rf(L_`UC7f3`ytM}$%HauF;y*>lmym$ASrO=Ql_P}bK3*l9L2*UywBJqvBWaa7Xc +z+U-{C*F&eti2o}5=}beiDob4AacOVJDq$5*ec +zaw6phKx|^9h)bgdR+-|C4=<7Dtnee;UA`^&W9(({qRIg)3TBPN(#As^w6-mq+nS+-5cnmcM!|r&``4<7XcAkc?GFY@r{%atC?t$GuC%in<^%L2m~S{ +zMt>JRCIWP5DV23BO=yPFi^^SAx6m1ua94l*j%bF3pAXEaMfl=l#=@&E@WQABnU>uuf*d%HZ)mWM}(_F`H +zp^GRi(Imw3p)qbmf8d}^uj6YZ#F}dlx}3Srk{QIQl3gRo1Y3K>M03EmosJ^rvXX`H +zPz5E11EAB}I2OLmrB}h-sWLR~!*Hw4HmTePQ({(~H`~vZ=e@?AYka +zBC!27K~W7){r(8C7cVL#htG1B9S8&%@$S|nO^Dj}Wb}z`q3~EH^Kd4MENAjEz|~nK +zY&M}!4mF6nn1!TBAC{B&>FE#j3=jYomgCB2JB$|=h8IC4utGn|;hkHPt|sP4KA^qP +z{X<}}>u4>@pNPr=)rAOrj3kErC6#uwT*#8($PnazPPswJRdDnV#!;r2=_V8-XjPQ9 +zNp(vt>4ZKg;1BWQE_g+}KJp+YeM&CWy1>qz(#VeJI%4|&D3V+cYJ$_3sAXI3(v23J +zBLJ@zUM4iyQ4k{Jk=)lZ=f(tt)r}#41e@4#O33jhD~CwKTF4PE(O!gByo=x*74dG@ +z#E&E>Ae4Kcxa91B(^V4^cUVfEoIpwCwY-MaIX1Lkj)(a^2Y>WXY>DB9w}^WndOSon +zkpS`qB<1QAvOU&|r3y!k>VqCvEzsl{E;W!#$&FMF^xnLF_(Y&ryU4<;`OgOoT@Ka1 +z#UGmrI+mR493|G2jWmkpFigzW#dR*lOg@+_4$)9gTD4&EbAdtFOx0|Z-{A;#q=HF) +zgXyyICqB3}Ks33f)AF3pjYM0?w=Ll=37}pxs(s)NGzo@Bmj)F_BKwk^1X|`J)s}u~ +zb^=nkG~2}Z!S3qTc)g!9`?Lm6P`4-o0w6V|Cf%85OO{H`f$@s+)nA5seLtHO&8M^f +z2wU(g!Fb<^T`3%vuWoQ@*O+`goeYO%gN<#pnDa2Z4t2|x;Be#q-unnLU(%pf$imN* +zbUye1%vJFJQVrnN<4*B#}Cw`7(p`i%7d*Eu)Y@ +z1M+nqvxSP>4ctVgl9vAJp=zUu)>+&OsJ2ehFe3$mWp3!!#!|QiX}t>e_%r$pp4l=X +z&d3LuKSw=ymi{TO3#tY^IM}a5moVypxeMg#i%vqq3fXc%@5)qfY9P9Fi|r7>o)e>! +zYPZZ0B)e5^OHk0`)z|_%SZl< +zsCkfyFZeR$gBC&-x(s$jNr~b(pIiqakdO^7TTm)kVLN90m(bVuqx9*s&K+G7xkiu3 +zeS0)${rv#3#1Bu*RA2zCKvYuKmxgjp?;LfrQG*yOmBjw|rJ?KPR^-CenFNDZfSwYL +zgxZABt7Iq)f82MZEy%T!2qnkfX5jpT`jbHDno1cUv@M`|9=unHQapxcc-q^H!k--G=kl55*Bo$bOoL+2~lT1X= +zrwum$r8N%u2+D9{i66u%T5CdwI};9~LKx$^3RJT(8ls4dGWiLmC0HZTlb}nQfIVQ< +zu{nMvCNH7{)TXY?njum|tK?D-1GniCHAWO#8!=w|u;#h>l6jxy4BJDE+^963tu3yv +zV+9`WNJ#6_{FXsP;L1|ya5Q=h>SNYf88?! +zFXrNyXOp`&{9_cyEqmxVuHX@7rZx03^v3tRT&7TOn~3PLBI7IL4hWAxx;|7G$j +zlf;!Psj0#u28>Njak|&P5GB1R#*YMwErDPpF;nc~P>kph))^R!X+!)Qh}vvYH1vL^ +zE-raPQ`C>Fi2}Ui#<=1Yc7nW>Cw2n{o4-%)#;c2O<2276QMJ|pmW`qqy?3_6j&YqS;M}#y}W$6jk9#6}HZPFU{PYL3@3%Jr5 +z&wKcbXN#x-`-ZD-WgW`?Fnq`scrVj=!%m<%hZ>kEu0Hq`IoqAI%%DNP8*-v!je6El +zs-EdeIzAIGsrx5&hdgrhuQ}`OuZ%o6caWazM5(o;L&+C*HH>AY`J+prWCEhc%dCZD +zTaFES;e$h|JM%rbJT=^X*uaR~OCxLeIydq2JY7ep!@zaeWF>Cmwv}p>!)I1x%(`W2 +z696RFX5rp+x#U+$e2IQld-%6Jf{I@sR63m6t$FW_^oy&)G5`Z#40()y6WDGe__aVz +zqlNO0bUCAOfRhEG9NRKv(>kz^XtX~8i3l!Yld)aW|1}QFF1O0!3)UlBzhi3yH}VC^ +zY0=`wEtp$ytP;ndfsLXVjzY=Fm->8@6W;dQF~bE~hik&zUSLb)h`VsF9>MF0o#f}L-N9ef +z%m`8xlNywYm^%>6n@pv&Fo`GTrR%}U_`Wl#Jik@87`~?C(7KteTeRv>27f@jk6RVoE7FhN9qc=PGPWEO6Q358a(JPHs=*W +z4-8j|97%68N9*0*sE+!TaZuuJLiyw;;$l+rA>#Cgf_=iod_gax@n;Iti(@GOf&qT! +z+$H%}q>;r5$XSJH@Fhns6!q-bpKomh4`L!{W&V~;V7HR(QkUT^hpa?2FfoXbZ_T<& +zg|7=L6Ruj(GqI1*`H821#$JV-{(^iG`-tC3W%dQHsY%}X7CJ&6IL-S*#nYQ<`Rm8) +zB%`y*1b|o5!9CJc`x5#yO-1o3(FY0++TK9S{Nip8G}Ok%NVlJ>-6H!lI^M# +z-rgnm2ylI!aJ{s>Y`n}`q7MOZZ3fPvtU&)3NZhaF)vCE84CYY&li25Z$2d0WEQAFx +z3z2m|odRhFj8?d$wtI!#Rsxvlw$3uI7PJY01!kg-d0&}!SX@r8f&1q~b3?|@FZ~(D +ztS%wge#;mM?H&%f#%J@SOB0X4N~C!HdMu*)@cs7M2T##!D6~J10y+`H7pWr64qS0I +ziqjxg!=*a)V1m?P{2c@+M(|zrcf2gRPOItk-DgaveHm^w +z-13SJwxI&MP-@Yk8x>ibaq}j{7GVVEBJdAOTlZEO9XwE7mNUtquQ_%}exhf~6}IE} +zD_;34X>K|a2)m0HVA;0g%fw`+UAZKN`6 +zVwi--6zxCA{~~!vam66gekaxa?!q}9fB6)CV>1JRt_&a?x8qx|65Uf-q4Uh~1v=dT +z+Lre*kl*6tQrFKJxq)JN<>SD78kQaq5TQj +zKDJaF%7mVUg>;r0LJG*^PTs8Vfy^VBK;VSCu-~*1f2=GRjJP|}WO2Yh+6qQ=Blp~F +z@(dz0W$B)r^3EwomQXf@4sWU#2jZqbIm}`gXf2OwLV!Y?CUaH92u?G$+qru(i_V=U+~8-@i8FoAK>UTjQw;MCB+d_{Xmh@pC%=cg=J3Rc8U7Dl_rRT5*fj|_wr$(CZQDl2 +zwr$(Cla6gCPi)&xM?L+$!!@(!Uz}5SUA1{#1qlpfntNh*SSvoXB4#Db4mfZzX**Nr +zuze-vpsRpb_`Dx}CM$KbI3Xvej8yi9hv$Gx7ZZb}4$3tJV~@<-Q1@`dk(g6>Qnf~s +zmC49qq%O51MocdJy3h%Tx;`q=)acq;$>|43QvFBo>NbI6m;4O$Wu%CoM&@z+O%Q8U +zHYoS&CaL3su8tGuCiy!+&ve;%vKN+xTYeM-l8_h8d#VJ)G(v|E60j3$1DBBcBCi;9RLz208KyzmmknvSuRhylSint5o~ +zY#AqrV5j<%yTLLq&Kl|z$%p08uHucpuMjETmWIcqM-=Zoxkb>8Gb=Tj9< +zSe>4r1d}RR=1WO$IuG +zS9V=~kt3Qq-Q4+75OCTGH~-G>1ah=hp`J~cr*(bg^CwTGQ*sg4B8@u|VI;Zih)_p{iZjpN_Ukp>b(t(`0k19xVcctJMnO_2yfbGo4 +zJ53~LBH&Wb3J^0X1l<$xL77gHYYd@x#S=O9<(Zi?h)lvimdHa)gZPLy#c#foM0w#F +zQY9Af{^%ymQMOEw^I>6;4gp@(m-UepJUu +z0ZD?wG$G%j?y#(LbXrd(7TJnO6HE@5YM@(*ovvxj{W7zAxSTl7s)F7O8EWzp<1lS4@UlC{$8g?#P}diBvvhBwY;^DrJV&1#5%re*$2-C7I7 +zHkN#_FEohD@-T^Ky5;WJ7{dmVp}CIz~n*Se`}!&4$*trfe8 +zLjXfk9LE4VYdM*`I~-gDGUIXK?FWexcJ24FO72Q)Ysp?8i#uxr3gBTN7=NAi?u-IE +zEc14;lP_WnpRfIot0;6r;7wwJhyZKs%BNvnA!>g_VsZ-?7{|`$%ZMm +z_r4#2r%R`fo8zu!Wqm=&SzqA>&6%Tv$Xc=OP|#PhacOj0(uZn`Qb;7({s;lIeNOl5SW%(qA?xUK~G0)O@8^`qbQdMvFbGp<_Y++f#@`>7=SZyJ<;;0vMlH^Go_~WDK +zaFbQCE<#aYy%ZN-r~GN2V{iQ{!tm|88(js9*_eXk)^OM418{)VK;?>EaID(=7Kn|H@NK766aA*Y*E7ifGrdpsjBjFNuGf55F>aTu;lMKNn6 +z>!hwnUDD8!{V!Iv`xjuux84DpuY}EAy;9gYpoXa@yL}F4z<7=KH{VC>(lpK${Ir>9Qhz-8Sx}^xJ8{z|`gV++loEPtPi-!gjF>2xt +zz~xgtg&aF|;|hV8GEW|e7JQt+aEtzdA-Q3pH5^rS!D}age+FA*A4&j09j1`8md3}# +zw26Vy0_D(QMS`U)1G)iB!XCq3D8%Tm?WL)(_YLfV)Q4vIbo4;qb?(@7?sD=9XBwx^ +za#i^l$@>f!Eh(u|^r#~E9qD?G#c?Q1M%+Q)%jBrF&}nfCyK-3g_80^W`3hwJ4_)@p +z8eeSaVay;S?!Q^k)6`2GO-xz`# +z*zs7DVeyo`!a9HH;P62Mr@iiW0zRZO{ejG0@MCR-*( +ztcERaT>kJnL4eQTB#0@RR!D>gWSyeOL~-I~xn6lU^&>HCX(+J}GINiP7_wpp=p#g@Ngtd&g{Yw$`aCb4tnNN*GpV=_|P2d8gqB{s+)Sd&%^}ErO`SB3a^LsnJcYvEaSq*W4TZG9GFyF5sWNiHGAO +z6`ASL9Yz8ru^zUsu|`GUrCnA15N{Hh5Y$-7mm`exBNN$P=7RXRrOtJw+KFjrwjQ$8 +zXx=DWnZs2{JI@G5TwdNuZ+rbdmX<_|j37~#vz}1cgiSKj)&%ntz851C@{_%)Us_w# +zNo+g@;LeGI@j{{|p}B)qI?}4gD{UI%FzbWf@HheuAp$%AIH{QPK)-4qvzrPx5xden +zMY!BhQ5ja`zr>^p7F~mun~umT{PBs6obz +zkCC=lh#vp?k1Sh-t|)kUrBpZad2~z()sSE@`3--f}JZXpHw0t;a95)IT3KOu|}x0P^Qe|_Go`u +zx|U*(PQBW@HWC-wXG4gjCa$R$er44o=w*SnAeE8uN&b5KWr>fNv(i8vh6RsZ6;n@K +zi5jG)rV}tzW9wVf1j2PC7M`9r0=ncyT8DcRCeF$7I|};l+dxdpROcy!g +zT|TR|hX$--xG83SdF;(4KO$xfNW*nIPG6dOE;-Y48 +zdZQtIj04%}9mq4iu+5GbZVCv*k8gP&EhFg~_Nl6z?hj5?yNzD&WyS{ZUc$UtNQy|y +z*>cNh5K(+9Zx;`ePj+rx$p|x%)Y|ZM3wQX$<6iGHM0$Z8R~V6fY1EQzBW>9?N|vVH +z`H^Il5ou97?vfZ0%x*%Xoe4w`7-{VukU>$3q$UkpjSLh%DJ7W_7$OJ;^5kNx&dn>ICiEWZ;`+mNwghEeME7XQVal_x$q+q6@?7=5 +z{S^KW6m)gS6<59AWsu`f5bzpo{9J((*UfRH@o}})+6ks6elxR{ct-qjExoB^2*~?8 +z=cl;c)2CRqHi|7VxsOBOOtpnu1fq*hO8z3Yi@(JI#z-<^>C7-`5?l#q2fvIPp8`3A +z?2x?jTf$}*rA-Ub*`HZML((AP#Hw)#_(n`3Zs3nxs44b26vWm +zM#KxlG@y??Vu7bKwG>5f0ffMLx@0#Z(UK4j?nnVs?|&x6&f7c%oJ5wXFMY@x?)QOr6t0+C>Qy$(NnFG029_kb)=V&nf*yw$1 +z$3vc;@n9&rs8<%OS2jk;V4De9PYSkoqz84Xl7ypi&_SvtnofFs(mTcRhx{6BEjm3g +zF+lvNMmW&nv^`Tx0SeGll}aN4gXm~lNc@wpP~33Js>qNmuvSH|_m6jbCE^=88_4w4VcLci^M!16R2p&< +zJoT7t^p~KH6Vdt)oxQ}n>8U*>U@q==c~;pPonl{a6u72jo^B3V<(s6GiE? +zJ85&)Ocq0IltU{{xSL%x^4CDC?HPVr2KD9CbYt!T;VF-4Lz9+!Z?Z(egBW=UQE0w{ +z=DLuo9Jq$w6BsRC3!mK9--`i_`2h?PP;ObZBG4h3Q$H-t+st8&)@)p{0F4zqq*jBS +zfv>kt(a8XuB?H55FcmX>RHfFkf^8SLc)8YVn?dp2Znov;xS{)YR-9B@0&9D&pV!=o +z0tGe2^<@2mn?72j`Y_VL-aQALor_lJcSRoZdP&Z8zewR?bPQ`&Z5+Dxf60TLdYl;q +zU94C}Jkc91G^G`7upvxj=rg;usfREB6CH7y~E5KI>yC40M!kCsux-f4n +zQ^|SpgjwW2zz#TmbsN#xTx44XvrWYZ&Z4jiL>g!YC6`&}*(nd!M-87dqTp4`aOStjKKJTo%cZXZY}A#8zs +z#d;I)29vAQh0xduA|KIYg$xEESJ#VMotad~mYZnKcYR8j!HGF}mMewMT*{4g5NcIF +zwzLqgvc&JaFAqkP*w6-~qitiPKsIT%Ilm{po;cWQ#gutV%4N4oi@lCQhs|E-<^J4) +zGFSvml5smJ0;HdP>4Jdh{yI|g%;>?lgr}bokL(sM5(AUFL4|}(_->b`LNF^Fv}y@A +z;2lTe^4h)v9qlbxfI^YA_)wy@H?nsrIgx`M=V`+a>E*tZosTR^i(m#ry$ZvOseLHi +z`04u3q__YvH2(0V(njS5=t89hw($*TUzqwl{ +z7oM{J2>bU~u#OglTfdWEjj&G@ivs>v?LYXQpfhtpguPU;9auFmxU8 +zWS0I!kxA71?ON9IN;R^0a@=P*!h!5eCGQj->bObO6V^NfK?MYb+)MHoEJF%EFmtTPVNqOgKY?)yJ +zZy9vGbu!3QU68WB2GFjt!l*R^uGD_v-*Y=K(X0KC}A0#w!ze%^Xg+kl4X#o0yN<(bV5W~F#H +zkyHxP5bPFM8wNN{<=55_^YjAPM8NvL+>saaEuPEhr7WACPY@FLFKRg@d0XX6sgJb* +z4Byp?2yGT;n}%02ECdPCuW%qiNCv73M$6kdI(;p7-ss*EE_?ZI?(p7~u|Ax~>T3O! +z^)zH(h?l>GwZg@6k9|yO8^c3^T2oj+>RIy*JgTK>kql~RWhqj(5sO1F@Jx(Z2bD7A +z(Nce1*{=gu5@nFjFeF2zcGf!eodT0&4pwa>PT6!HD^Z`mRq>k( +zJ_(V+N#|OWbBp?Ve4Q+BPiCF8eEJLErE{tl{zs|%Cj0)~UEa78)g3oh%Ec9&5c+im +zv~by)^oprz8`o*gq!mV8o-w=$zA}rS;X}UcW3BCjT%_52wXPXqB +zQQe@ceY1@)SofyvzoiduTj1+Tn|i~&?XO^^Gf=x;?P5U!bHb;;+wM52`B$+j?31&3 +zWnQipa|AQ^SvOGUC;Uqo9iZJ+P +z-^>WV_xBL+vdZx*8*r43&V%IMo}MdxokHqcBl`Y#)7At}3V~8SU#3})=NFP`J()Z#nPv +z->Jl&6qljnLm@yYMmh?)XJL~RRTc_hAP&Tmbu~dN+x8p82@UV}t~}wh09gDVqYZ*i +zqdGNi6EOpp{Fc&}Y3@=JiojlqW1!@|G+a3eY7GHCTrZ9@Z0(ppE!_J>RYe>YnJ+B( +zDNS-BIq9l4H3GGG@+_89T&@I5@hsyVJVB+pb^V^wjVU@?{A@-t>fp@uNJj)6)+oBh +zC?{m#CE`7_O}?i+zp%GnADxH?N#VJpRQS#A-nDFAh;po%bkM}KBsnwq +zQYijFI`Vr4dg4w>?rh)nd>AM=OQB_K=RJFE3%`1_(}HVSNXLJ&#p;{AON(pXq+RXL +zXktWimt4AyCeKT(Beq;_3x~wNmg(pT9CM0y_e?D{vMHCHHSyh2A$K|1WO`DGeX}|Q +zI3gQ)LMN+VvE>_Bs9EOtG&gq9e55t;ALDT +zfgEufgdcewe?^Pb6l!D|&3_jy|Kq-F7iUC(#a5dU^$ys54t| +zbiwvDfpm7RKt7`j!}gX)0eB0CpBL7sU0GykDonuYNItzcwV=e*gzz5jMXm_hEV%6g +zx&M`ytTA;!-NM$T;8>-m*P~E&Gy$cAL@c6E-x3Q_NWT(S2NEA1ykm8i84>X5@U;4R +z{UT)f2}6&S;jlrJOmPoX4}kl-=OvyH+&dF=1vu>CA@T&YM@zr +z5OHY3Ms8W9RHSZu+s9vvMfM=U$GaouGGRixQao +zOo1LCg2ChVeIrKcTdf4VUal*=%u=fcTB>5#=gN9|oneEb6e}X>ecjRX!enDv{UAzJ@au2H-{f?Q(SN&DU;<2j5)w?Ol7Ica_tyVLptI*;>U=!keSy~k +zV6)rY9ZdxH@|}gJa@fTBtbq;Um2{JPZCRzdIC+Fh?uFg_x~T20uk)3x*(ZEap)A(= +zFa7j5lNNSX%cbed>~HDl40P>v@7x%$s-vq3^0mI9zT17o(ftH9eNaehWx`NsuU +zj_5146H}?qxzN})s$xCLEPa%3(o1{M0&hmQolg-ans+W9BC!j>tX&1;?M14x +zrdbNG)}Re8Eo%aaAA$-8)Ghf_cY!@@WZQj8u&)54~UsK=TBYS&#-2Urc4S2IrxETR=LsR1ji0(K31bvur +ztw|v07e;4c77wt#i)XN*r2UJrBVqZTKNo!g=dz*x-V{8re~XAOW;0g9H`dzQcn>s2 +zD391kFUUIGa;p6k>%6g +zMhFsXRlLyE*_-eCgQUVRu>kr!9BagjGgZM6S80J-%|34wY>L0LR#!3wK_opi_aEKV +zg&EmDH)<9hDRH{8hg&sQP$9mT@bMSAKm4fuj!%S|3J3VJ{c@^v`cS6q(YUL6R?XHD +zF_QkWIzR0b1u>2Xy@1yi)|53dEC$Qv8%FHzAL)Xw!-;_3tDf64f?mKp?o|EHq7oXu +z*=s29s}yWbC^P(d=?+(Rj;?dMKI{83qX;Gq2@n^5@BRi^9xKlWTyzfyckwX9w-&7J +z<+TIbIOCss=wmKYbj?MRAj2P(N30##8F4tXgEFfotF}sT6JCCdLmLOZjyk(scS`n; +zr37sjiiKgn9P+3M8x+XB5p|9@fr^xe$G{MY@8Z#&rNu~MCj|(%CggkH&r>t& +zKDkne#Rua0-%CLYb;JnV&T{g2{t=UJ&yyTpx3xs1%k9)rZ3N$_$Q6die7HEJDOGSC +z=xZR)_V~oele}>>3}3xKdk1b4|19qKBP{<`k@h&2OQ8W-TppybvK|=$(_i=bX2gdplVp`*6GgJ +z{!4B^wy-d_;@}iLzIEa(i}j)*A<;ghcyOaXz++mW1M=#o?sEXiU*}Q8ml?`&?kXRQ+UY1o{i_DM>Hy4ZgUECB|h +zB#ZRV4?1rmNA5$(YpDM$%_PQBIf>My(B3}{LdwbC$=@cp_}j@U*PXWjSstwSRCEH) +z{-xtzh=^+uuR^Ah$B1dS%C^fw6q+Yxy5W5+uSbX)_O#PhUc@7zCmSQWgC5%*?4-$b +z3p1ua*g=cs0e)0(^d$mb^0UyRE3FgeAt=XqLc3-G9~rXQe}Z&yJh^FDs|I`n-5xV& +zN%h*xQPpySXVEHk0wJX%H6>pkIA7;hrl&aQ@>$D|vw-1$WV=LbkjT@B6+SHeB!YdB +z-C=P#&jb`^wae<`wzt^|JcS5cbvVWzf +z%Ly+{jsESEUq0vUW#Zn269))GFr$PG;md{7(H@Wm- +zFM?tTL88LCtQ0(TB|WD3%v`F9zE)Qvz#7oIsXNGMaQ_^;1=@W*$z#~t|vPx%9xmAG%t+uf;hTI}0h`rpIrv22&4)bWAl?znykb_?3LJ5WUGkbZ8$Tsr8xC3g;A;==*K(0f5EWPrk<78LQ#FkaU#BwSZ4W3vYGj;YPyYGcsh;OUoIGQY!xGd +z!ReFdQB=n4Y{NZqSXE^b%sO?dxAn)*B +zEd+MlZn))9VaL^p9+QvST7jZ7h-kZ8701dD9bdAFYkxdKj*>tR51TTmz(IfEb4-%x +zn0YL3we3KNkv?!mXJ=9`JvBrih^L3n9aY5_)KN~V9}=fiKqe}_04^eH5J>w#4*H9X +zL6Ai*4S*ljsqN=JnI7Dr3IqO6e*)LZPDNAenk@_4%oYw@;LDcA&7@g_Vr?pzNHma( +z#P-?1<{^xPKRtMV{P<+4Tqr#>zSwt^6Pt9CHEDFAyH$;kHhh5PyhxNsv^iURdF=}r +zYttI`%m4u)rpDcLty8!qRW--KJr?V2Y3UgcQ?Oakla18{CBv*5um3KSG`08-`LHs=6VP5#<69Vq2LDxhWuK4kUgjA_ttN3IhRj +z>!|(!P1#D0MPIzau;Kv)6mH1=l8r(LG!RG$O32{eQT@| +z(X%vWNOc)EcPq>_YDslZD~&9HozA#DnpMbxiF92jJVjzD0kiV +z+$3^!{LA3zfStUKOSr$L!WM`uhkVC2-L201-=l|gi-6gJpgWL`RM%r@TVGMP+~SOM +z5*d4$5xhD@%uWc^ds``gd*GE^HI&-Tho&tOXd{knJR$bxDd`hYg*@^}@c^-cbygD%nm@YZ?gC=U* +zl)JK^hLC^5iDoMgu@W`^MIMKJ_0z@Ifs2l#q=;NC?A}{0!{|udQa$rhlcTJ37p2<6 +zrPP=-G!%$;zLk_kO5_FD#ogy!-+Cd1R_EeVjfsaz+?SQD0R=8)3rJhGW +zF;gGYu^N@xsCNS1dZ2gE!rBU&NA(*!5;j9XQ}!8-G9zEgi&txyyNy}n11hp9xYyEM +zbki~%uCE`M?$f11YnEHZ<$_cjwoA-Lvb8BkEGorZb{X{Fd5KjfC0e1K&fwV!>}VhG +zzbKozm_V|PXR6t$(4>}WTTy@h+#D6e@%Yq1p9upgQFkT8k{DtQO*x7&>3kkjvHPat +z8McEoLiNIWV6-CN_A+`>Xm`iJRBe!In#UkMB`Q@3rNQ0*_kQv2iv?kUTVG1 +z^=^|%wfKdLm!PUDe-p{yVMT<)6NpZrDZ<_`x-O2}3l;we*<&yXd-vQ@`U1Zx&OwT> +z{FlPSvmgNy<_DH1{J#h$L~ere#p`agt=r9B*z$CE5me$Hf-GfbPVN!cNaol-eJKKi +zzjp0w8e#xqXfnGx5K9y{-Kqk5OzvHwVsgp=<@i^hRBi2?d(leJtSk{c^BNf$nm{O% +zrala1TAqho-5uv7-W-PMQ=cEG=amM;&LAQ6UWdI{_Eajf +z04;0V(805mL`2%+zd?9i&!Wt?HRLJjpMysHK; +zdhiMzn4$3g9ajo!O>y`8w;dit(rpMJEfK;LuQCR`E-%s}TFVlx3 +z778Pws+;I)cR|P&HZIhR^i@QSxJ*Vc8gD%@@RlPV-qML@l=%;^>=wrDr);24O%dQ* +zLYFGK5-2fV!Ma%(BDY}w;6JZ#-$Bzj%#S<48$$E`S8CX;Yl~` +z1)$ZR=b0)C&dg0LsDU$su?abP8*JTS+J6mAi+_%3gH +zO2@>4Kn_dlQZ4`d5j>X`@lKEt+_Zu7{ +z2BDlZTHhm#a%3!Er@4MYm*D#P_UTg4Y<%J;4oQzvY2HnQ8nM5>ol&F +zRvrtx^OxMnfd_JBHY*X`v4UpQ#kZ7^i|qRG-S5esN_nFO2Z-fuq-oTFR=k9EXvPWE +zDwTnq%7w<+5=sKcNa%6T4ETYQs13Q&Q;a~(WgFwcIZ~zFrhkmGaOF)&&jSns-`%>R +z@Ya)gc^u^5^*{j|RV)Cw{Ku_b<3T@YB$-;$GI)jX?A|M%dtTmgZ#7gHw1T&!yT~1- +zl+TpNLNF@!spGHFt^)nVmLv!^CLCu4$T27K=%OsxLeOb}BBo%V|H&t<6~j5qh%yeP +z+GQ`o+YWX+@rwe|Z7x;&d0?;=t{SDW+PP@%w|GYwtuQz3@;O7x@DCJ^OK9$E7LDk~ +zmomRG2=vF!zIrJ7H9~wBaqJl}t_QGDQ#~})k{%O#qTs!;d>**FVi32@(PS-ec(~v% +z&@V>OnUTbnZ5nnej}Fee!%@fnaE7p}5laA)qmf$}*FoOA53Fk9dEc6oA`7hkE;Q)I +z|76(LNF3ht!mT^H!IS9|dP_v|OOB3|#V@#+nNeHz#68o+P>y#MuY#(Xqw(f{ +zLrGxjC7yGfWW|_Qt9IkVOQQ2~W<`W;moDiKdba^2EllAY7D~pVS%{H%1;%KO$T +z=iXcOAVB5~&&*PuK+<~i|1TqH6;5#nMqcc%YYE(3CI~p0RjrpW@cAk9#bFH^(J0L@ +z;VcG#d8sCSZeqQ&I3ci%4Qyw==?KtKgA8rVn-w|Dy7B<#bUV$nQZ<3*Kp^`dwf_`4 +znjLd&913=@r`ywqRxOMK3N?`7RqYe}lC$W4BydcAsLfMBgVZF>0xs^WKo;_*C!H3- +zpC|vQAMX{r*S2$)cuw8q(&SKL`F#>)i +zdO9oVnsQEZLDXNR9@&Q{(QJEj=J_ui}FviYg +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 +zEgoBga#u8^GVmg#xA>Kr6v()t^KZ$4o~ +z#s=M?8b-CyBq9XK6E{RFlrax@a3iY02IW9D0smncdljuK{qvuo#*xn@vbp^?5(a89 +z23BycHaqjil)S{AC`t4NXF+CW0TP|19{=S4l8TAwQg8>tXfvtH*>@DS^R +z795yjfRx*NCro?FT)Au{m*K?hGNFbMR(*eWFRb)-YmwWYfF<_yqq4GDsCYuZ)$pM_ +ziPfNIYKGHh@`Qpp-=5!V&vn6j8Qltejzw>U0iZEx9QehB^xXp+_IK`~WkOA;9fTwe +z29#y)GpM&uw}DS{*ae4@wwnF(*_slU?)ttpMz_prA#V{eFj-~E0uafmA5KwL?FHhJ +zL-7L;`4m#E?x11dxh|pK5f(zzgTr0;4=Q*A&9*DQ%gKSi+DhW7L~OO?Hq_0>yyYn7 +z)b2AVFeUQNmE$gZ0O7{;81^mf!Uj!Mf&X_@BRU335LAea8ve*}kca`pn!bwge^8Al +z-1VsZ(}Gsmp9+tvocx}@Zjo6*2X6Lb7X_*B#2$t~;LK2zQ`5lSpUqEV0f&ukKX&6X +zI&;Li*w!*lL7s%@ppKt@)A1{T5SJJ-fF3g+ZXxX#UAOBm97ut~x&4k3ns- +z3!yVvIk!rm5!96EKqSu|9RpAq26T0YY1FDVhRh>_wJ$kH|B@KzYAVwRD*h}}RmST< +zs7q9Ye1?pFVvXuo|HK-jmQwJH*3PZc_#@SM=OIMqQv2jW@5yn@1g^AGfHR-sj3zmEke*=HA6Gx0htat+Q~hCcY# +zf6Djfd;nXZyB>heIldsr+LncRC`ptIU(8hEK7(IFaV1zUF6}&~hj&}(UWWiDGXSh +z|FOq5W~&J`uFq~$=+}y>wVm0R@8x$EFcnV9yi)vkXdctLhkURsKo1_FAIvF +zP|pgusbQ%vTRd^RDX%xFjwr}tPM>~L%zn+=l8!U#mk?;CnHb+MWL#`Q$J1PDu#@@Y +zx9q{79G+XM&q=%)X0hdBBjKEa*+LLARv6(CNMEhuWHBfC+3mHc2N;o~3%g2G`LgKn +zeM*DGA9#F{k1`+CSWh{mYL&Wwos?v})u%rgn)dih;ti{joD#_J!8+x_1TWYikw|_i +zCdxLBiP5z2gwC3KCa~>WdCB!vE)LU03rRv-vaz0#ZaF#K>p_MM1oAM`uCWuFXM(SS70*A_y&%%TXaLAY}e**c(KD +z240^tcMvg9PG^tqh|f1e>OF5NImdP8sp)&DG@EAHk8p=Uz*`4 +zduJP!sX$EBxdH^+-nmX6tHI%?d%1!dlyie8knzT!Pj_HrR$jc%A4lkAV-`|`GO)CP +zlL~~A>g#DFpw)G|tC)ZWi>d=bRa+4`=DiBVx}j>nCvNIL?vCB+g31_-k^4!UL}X)4 +zwA1_+qo`sqQ$_y++MfI~ok2e!7a{nKIn&W@y3ciT#W4WAxCtf$4&G +zIgVF}d;Ljdg%D&nbgE9p3Gt=^b|S1vuf2e-bDs!p+G${|v<#Whz$CiE9&afCUC?e! +z&};WnKwAghNiP(}EidVlj5NY!Awn|5huvck216TMPmFqGN^|dW +zJVo#BXJQlWiNyHP;TJ-rFMUjEN+99%kiAup?4!BSLVnHz*n&*ooixEMAc{zt$f*l- +zb3l7OgVAHpM1VMuoRTR+KzUy*cL8#8l}udYVTzC(fS!Bn6qcXTA+X;=*z4~?5rRZf +zyW|vF2VUwB`GK(CSFV!%qc`Zyi3*7_omompmE>m)xNXh!|KKmH*oM*zNyjChAc

      SZ4 +zD!;8bzfYzo+75ylKa_FK#TDdV{xZ#2p1&{ElKSog7tB#1Jr|9!Xn?i(QPdYNf?jjH +ztNf5^?CSQva +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 +z4{ijd;r2443nGXU>EZd013ar< +zvb27$M(I#YXYd5AW+Mlfq&0rInlrxkH&pxKJt2-lM^bdoL{2s?&bx#CB9~ke3kJsw +zkz?ZksG0ex_H#N|9NAlKJs*>DqlvSVnx4}|HLo9$AX;Fql(X8A1Sc|MWyotMW`pkS +z#qqwrLJm<1NS|bar*=?6&rssKYb4dVOA+_WM)QX?qin}cjXi3l0Jn{J+Ez^LceP*& +zwq5}(y@d(3-z0}GnXdQhkJC)AXQsHdqcUwjwl^BPe-PN#__gu)-s2ba{MerI#^Dkr|(btEb*^W%G{9)LN;?)}#3 +z=ea*c@ucbP`MtZ@DToxB8iw;b<&_otiJ#Eq;gLg*Zy)zoebM>1_QQr&!OP$EXd2>n +z?|Vej?m|7&_S%WwvCM!~&k(-d>JrWV*O{q=-mZj?y1FT%o2>Wokeh5(wtA)1-DiDe +z&U23AHsy0p!*w!6xl+(ec4~?1yJ79JZ*;+3_tUTkoKrX?NBT}FBjkr~ +z^S0lvC6F;Fc6J#x8||B(=P#5^=e$~-`QMqCob^;@&91(>}rM^9eF(OoB2jo +zVr;wSb{(dCpY^z*e&%1PfI!5?H~R>&-6bt)O>WoSeWTJZ +zPTn4F^E@0`7c9 +z>L}f&+4q8mF4;ivYL@PT3eSE*k{iuBd<=lzxwBFLhJ~_JW5{}cG0Vn@!(l5c63e2B +z&`f%1_n}Xa`|+;k`4GKwWAEkbs$zAT0uBz?rcW#(XP!@> +z=7jf~J2eh(Prh`yO#N+$db6q2WkgfCouFu)@u +z?x_qGr3RdUK=ZYxx=zxCjIqi^yB_Rf^**9J2f_<7*(*PT7H@?g>IsSB$ITU5TZrdc +z9DPSNDx!c%n+m;5%u(X{+5yOUTOLpUfwNcp&`+c8q`SeC_tL%=q`g1++$&MEzt^F| +zR(7Y)TUR+!;+9gwDIT8y$__b?{IIs-sLNhhc&>< +ztwinHZTCS84#@j0ncHv~or68KJ=gRh+-N%BOS|dP(f5oyH!Ljg^57lNEXwDzYkJ9< +zS$uf2Pzn=yKErdp0Ncr2QL%megeoNa^?-g*%6Hu)2dDqKRve0vvblz6N8q)-9ZGT+ +z9u(F5-nIS9_YJL0{IHtDr>wotDsPfac7D}sKYYi2PX|e(n*+EkEk_MYo-^(D+vlZ( +zV|>A5TO)8+@W`%rOs?!|)v%-YYlj({Z&7V=@e;-3pRdNrC3_mazZ=3gt@$AxqsV;+ +z*4vtanO#?M8e%pww^QEdyX3-3)PnDJk3A0Ud~Wsz`bW)|igCG89Z86jSKpG7cs2Sr +zWo9Mg=E-z5WxI#{La)pqP<2IMUJ_egZ}ruF-|!iQ@7+Er%~=|zuW;Xdg)J@k{BS+c +zbC;HtL=d0?gDeW8WO6cFuvOo5!-{@w&(#3IO +zOS?X5pq=P!_hw7`Zkamtvf0S1VU7LMDrcDR32bSsC;+%ccyk~3>`uGhR!Q!RbW~Hg +zqMFbVX|Me0hJKh=To|rZvGVCDart-Q?#43!cCHgwXSMMd-ihz9OmgKpBzK04RHJzE +z{QlPaO7s@iNH^pA1V9pxpN;(z=5NEEt)q8@+xkW?`K8VZwCClaGNJbzH56o(+WVA7 +zKeV(|G!NMU8t9D2m@heiF1G7NT{@@?Jdk~j74IzaCH_Sw1oh3}_iJC&`2_nF={ +z^WyXaJu!ym<8tZF8is7g;Vs$`D}Rt^KX+!(e%v`)>N!{lUEf;QVxY1o2RWIxCZuSv +zFh|%PHW{7-^3M;-?#3FQT8GXg-tVPL*Nya$2W1t`3^rsfONRD2M{(m|B|Als;Fx~r +zvQgH>n>jw97<@5XW?GYlFR%@|cOagU(H?j`bIk*Zo(t4z#)!t!KH(vgYK|O(KP@O~ +z(4>e4FI}NnsmW4k+OHkNbj(cH@$J1MRdvTNr?A;irF_HFqcaQpHIl9RHTWYeo;FG| +z!hjxoJ&;B2**~-yb&Z9WX{7Wb1sSGpD+aJ*wgc~L@WgS7Nk9!mmTA)1%)Dt$arY~g +zB%q$TYyfv9NVNo?h5KEvRNw)?sWlgiXTtYMFXZH25@Dc~@4sq>|sr +zxfH$K_tQzG=DB@uXQylJYd87sDvXyHH^0JPj^+CJ{EAfWl}Ib~O*iX9d(v6a20dpd +z1Vk=DGoGVr2kGOy%FhQTEByLYO+nY`juWZ`0CO8}RW+WJC6gfd(iIK?(=T6UIubcb +zJFYnlci`JR3O(Loh<01M$K2~~em8V{ydT+(J$^4i+e{MV8ar%n16ErCtZR-jazftc +z;#Da#6wQV-o%Tbu!0$p0R^Yt^o(kd0;aC= +zu#$9)vARdsYWBCN(?qvFMX70YL%&QI^W8TnWUZCm2EINerxu5Fju9TVxV2@cwse*u +z`NF0I58KFp0r~Qt2FZr`tClh9LrW^vmqU$@s!=dfkoE-WMm1{N`dvD(OL9Ty)Vu_I +zA&ZK|u_3HS`KAN&9V9OYT~&x3`Tty|u*e33uQ^-tNJ;hFiL%WYY&&S^arwEsRg#j7 +z`?x@_=Z($6VqY8Y3s?LJ&kgE7oKJVx;9}Ic9sh|+b?hx6#~dsk-LZWmLO(RYF)F43 +zU2_MiL;vUih7C(tAc^=%%5(G%PHPXa$eL$OoN`JO9Rr+q2~U&b`G3`}MKrZCUxSpx +zII}}*ypEC9D58QfOin&JO0=@i&9fH7K34&S)QyZjSU)64C7D_|pPoKzbbh&}AJe+* +zP9r2c-R!vrf@0bh0V;0vCc9|Eygdx_OtDd9Mm$XA0vD%~-V{MNVI|T9(6d1Qtd)|_ +zT2gH4%vt!Kq2=P`l;Z0(S=`Qe2=@60i?Tg0DZ!Q}!PoM(W8&qmTu+rgpEp`#iCz_I +zXia(yZ8uotL1e+)KioR^kUy{A=3hwTe=PnuK^MsLsnbd`Qp;isea8J<*zUTP^>g9q +zLHb~*5VBohylU%3r&|QD|Abao%Ts%osoE(%APc!Xh742vLGyxKjr11&nQSNAwWL`y +zL>A#ttRlAN(_XpWG%$&vBUchc8QU+C7Tc+`W1?SKq3a-ZXk%Al+M=@a#FCV+(@Az* +zC3ksI|8PE71q>GFtnC~0nU#Q#o;JOT0H3Kkbqp+7?$k;a +z(I~d-bd!F>9gqyf$2!20>f$JdJW+%Hej#Y0Ucmr3?9W{Z{H9409kU>WCbQYhkT8uL +zes{YTuMfR%zkRHzYH=z)Pr^*zYUO;9x_qzCe5?*_pyDkvg=Xo&WJ=}oVbhm~szTdS +zyxb9iT5NM|&S+Au`+l4`Sl;c6hX~WaUC@!e^tj?tW1WwVni->;s9M&N +z)Sr2Rw`xR85dlqYwS9_EhG4cffMM(NT@(M^eXKW^+?59Qm_CBK@n-^lyEjV={quU8 +zrYMd8yB6+f@HvZu1)soC?)B@6ZJW*@lE3cb%5A2f&x&F&4q*D%bMdtB+ykKblbBua +z?5L(4nVT+FEHfS=e(#yQ#nd-P4fmz5t0#|n~S;5K6(LF1+bp- +zlrEawRso1T6$GyL(WjG2<`eGtLtNc7s3q+BEE=I)in+p=t%Q+drAdm7 +zWsB0^heoaeH1Za`jP;lI!Pi$kgVz59C@Q;dX1asoZt@V?MGMDC +zR8Vozx~_EvtE$FW#qxI*tj_tIVVhQs=o2YoYLM1kYCoVrJC4RlIj?)IOOvYRBH6hM +z*FjwjfYp+u;A2o?KU)CBFJ*YciQ1*o3QN{*j#&5RcmzXj$-gF2Bi&o+Ct&G6H+2|^1ZNpYi1sB&z +z;N+P-`SBl%1JL2k>s!zq&QG;{2n58bm&#x@M$*ZxXFjsa6L}3J_gQPbl2NF`dWKdK +z9!egyvDQtE-w7>*IretqK}8(JMWe|jNbx|MlK +zUv*hnTSW~8>%mzzqgQ#IhA4O~2+ti_>fOh!ICaF+xPnfWa2XyYHh`iOroaThnFNcR +z5{I=BuE?u^#?Y)b#qa5S5{=I^Sv)nKQaubb%oq +zx0PtoAz9b_T%S=YR)&0&uvv0N?W}GDnHLoTiP!$F3$(-%%9ubL|Y`u!2ic(}%S@8riL4A3;b% +z)SV{6MWTjvxl^cFTj8#fImbIG6f3gTrXJUS*rjmj$6hjcph;Xn7V;pW+R{aoZy7dt%>YtymnrovRZHxl^eI0R77i%Xa;e?r~HZr9V5SJL-rJ_UeXRP%`k$Tq{ +zRVkf%mum8t1!M3z*Qj`CA1+uJKE!7dkQLIybUVTnysHTBK4xk42By5zWv_Ox;8qb4 +zNe3brvRoli&M$|y^)`b6MtqX7D7?46Kpz37bmcT;yuoz)9Pw0YL_iwO^ox)_%-(&4 +zMBQLh5QW)S*Hao1H}3lvA%k;PMe?t%0iDl@ujN9TuG9FNw7_<4DQgFfaA|EVPvxum +z{xx&O4FUx=yfhX>^OnvyeJD}HYcf4^#H5?@Ip#JV(5)42E_~# +zIs5D}K`;))$`9twhz12@UWEut{)3{5mvHZ0-MsXaPb9cMyH=CYQ!h-h)IHCOYFNgF +zY@Mq1OB^qXcW+)$OGCe_;cdIPT?`yQ@$F43IKsIYFl>7eckN!iH +zF`T&%>Pl*sKvfrQ77;T!?CD95FsOYvkMs!wWyILPyb$i&sB({uSW9U!9B~fFZ4fZu +zT}ej`S$0t^hBy3au>|>hctYJ8{MzYoK82#{5q?t>Hr9HLB`uIeIipGh#Ub%H@#hXF +z#y)_E-Li^$MRO5P7hh*zVfhzx6Ox*Vf9(X#@F^yFY&wz{!2Z-7s>+5l*Mx86+ISL4 +zi)4B+hl_27GN+V+K}K^%@;hW*jw(7THz#tZkF-9=R@Hq+3y~u3R0=@TU({}~aBn`; +zkDj=t^&bwZyvP?1cyl|`IMS0j=WL95buKS)P1Z1|BKz+qgBsODyj2ZjzIrpzS8Ys2 +z?d5Q!{C+cT)h15_xheCPYw-%Lq*&p^fT8}=Z*H^vV99;g4|PEfh!^0KHF*h}IOmjs +zI8}WUUtY*ZMSEv2$Y_0D;$6`H?4lAz%X;p7ubytQO*Nc#ZkF;Eb7ai$W_OR=m|h$S +z=RC2*t>+Uzay9ysis~3CZ-n2}Q>eS+p~P4@(bhQqwo-tLU+R7u8WV$N-`bN_Rbw3M +ze<0yycY+<3JWih|Urm_LR~x}PH$r5Cyak%;U04;)J$qbs`e=cA?TP02G~3O|t`{Rp +z1l{TnEC8#4;*xLn{P^V&j8fqekUBHgFrFhL$K-@`EFu7x-==DA6!$d9HHhNULdeuf +zTSz7sYe`_pc?b@1Ro#uo%LNK%K2fz|x_*NHK1+Sz2rK|e<{a07@ihYSzmNg|iRa^0#xsr(GC=&HtULh0akhp>T +zoNiB7#e9bWwf~=ORp(v0O1!mA-i)L%&Oo>yT+IXGaB9H3NTY5FD5thKe?m7BNf
      Zoa@_sHR~3-jv+E%ab-~Zr>I<$xeC*a; +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 +z{}Z7lQvRw2j(54QpmBO$bd45p1 +zTOxmT!Q*iF-ytnkGoDQomPX~V#?c|`LCZ_mS3YMb$VuEd@fir@0`r$N8^-)(uf_zK +z)*7sLxZMW-6h-nFncPiSr(dKRyd=r|ErSvMBWPa4?@{KsGEq&bYeJDd&V_drl)@6E +zP%yR+zeb1RCfg1ZB4EpKwRsmzzVo^_&u_zlBaTHdibf0kGL63F#UKc8du@*p-cS^( +z$g5AF@qf6GoP7_+QvF*UG4VU$JA1W;1)+Z;w0)ic76zLM5t|e5%v<5=#*kvXmy)XL +z@SF!YlY}wi4}led^`(595qAd}+6k^!aJ)&&ICUcU_zKP|5@KGY3R)fNf`jkDifn^I +zn5O?7(@NaV^yiu#vm{d-Z4@%C&EluJEl`ZMXXimF>nB_LR*d)eE$ii9Xt^dqF4+R3 +zcrnL%_%X)3_u&>SDnlD_>Cw@%nnylnBaW4k=Qx&%@`KD&o4T+v^w$m>hvm%J +zmqtfnVmjUGbtt+JrQq)-^&!Z69E&cqMk@$72I3`!PmVUO0e0#Bcy+1(Z%WDKNxJvb +zRpJy|imBi#eydJB)nZiRlu)&OYUM!o*rZY{Z(#QTT;XyAH+Eq8ImbSUx!({iLn%B5 +znbOtYFp+gd83BYtVsie4cx)0YrwYw^bZ__Sr3A#{w1R)bv`|K;luyl5|L%cNElRGx +z4)y&NU)j-ai9{tP-9u)YkisUfcJ3nNq*v2&Wo*d=0G{(?r!)PTWJph=7A&q|9D!#% +z3#)lo1$P@x&NrTJnTBHw_|->0mGag5#&=@y9s6mm-Ba;R*zLV`DvL +zztIX&aFRfTSuS4DAF>h}OtnX@=TY_izy{~Gg +z@lPpx(iqQFGM&ugWRG$_TLHA3AM3ezO#V_qyC4a +zbzl_zuacJMNfWv+r9Xv@qIsq-3hvH)QvX!hSilcYSu-=X`9x^LwR`{cG%#4QxP@P3c9oE;B~SQN?f^N#5DQszifJ2I0Ep$3xv9A}CaQ>HDAe7ld&^Q(~^Lfh8A6z@BIHLvsBcaHS*JT6S!~W&IzVvP7MF;LhQ)t}8h0UJ~J}{l2{a +zOPk2`9tT=mY2S{CB2o;(i>u>x_^N>i>U@3Sg0!^D2^600q-8|e4L>;-S+B`H!43Nd +zYBMC{XCxA@J_Ec5;VhK$3h^;se~zjYRZNiP;_M7Eq9!gotHMLumo)r@O0+^h;uYSy +z-C=3bb%AOqeKxX25yia4CEOKGY(xd?KF!u}zge=(b|bbo80K3}nf-dFOUN`BPEf?(0yl4)*iRp!=*qgfW|-R1#p!oogOOHOrXJ=`+k>ueTg(>j4xaq3uUy8UA+ +zwEUI5*C7}cE&8!YUUFMIaHxpZ@SyYwP4sI#>zELmSp4kZ90RgQ2UgNss}cJd1Jik1 +z1yZrXPrvNuYZI8?Y`%ro{46(c0yH!({IU`zKB4Wq2e-)HRC|~E +zkUNq825G(2I-k1o5&p_O*XEzn$PX|r9H6ANhzBjE0B-E*hF!=4@=okzZtV7`tDh=dI?meDi8JYBP_CUHf(^uD> +zfG|*u$`PfBmvY_@p`Nm6!h@_KeKMWVxq&&f>G)UcIy%`)5a>&<*c+>afwu{O`z5@6 +zdNmxvNB;iNi|+-aX9agbaFg0a9;`H` +zPL&{vo_l8u*qyASZE9-`z-UZgrSZ@u^xnnPQ@R8FswbUU3G#T>2jlPynmL=Wh-X>JERqkP0o-jy)K^$HPQEJ{lKh6 +zX551l$w(k_rG=_Es|nGIjtp~Zn=|JNu`=-%XlJVgRAP{o-UN*js?-;ZOFOwF{lqtd@_4R#g$^R#$bYmb>20 +z3LguaITLoHfB;#q^Fv+p(8io?@&A{jMPgD#c8FeZc=Jt)Yf-FC;hY_=vi8gj4;f>`v4p|7G~JKY8(8y6cm&HBt#1Ox +zEVe@hb;xj^C6W=pymrcdh(v|`cS#E;UZ)wjN#`Vb%G-AYD(7wXVh^^u0q0u`3b;;;tD}n9deqGLk%9{{58? +z29Na@CIZxgKSb#io;ELoc4{>4EI;2H4i`7}|5?*I`2iD(iNW2dLd+_7^M|(h@8Myv +zY9MytBkupqX$3-VCmeiVf}@?iS;+VsnMH?a4okBP%R*)EOT6mOi*DM>6Ns&ofErOR +zEchMtIc%Pvm)5zWr&&1fwW@J>NRn+&*@ee0~~B=PoD-iwmI*6(U|O* +zG2br;VhK=q`M8Seu#P#pBHR*V{>Hyw{e*{tR*BrWBK%7FmZV4m^;1f|tP*uc%|w?e +zMXON(iY`Oco+l@qv-gfD +zwir|oI^XcxZw(f>@A~?2tZgVp*I+F$bl114g*C`0=8qtwZRNgQAgp+~v0w1_u<8d* +z6!9gHSpA38$P`tV6DV#WI63|zw3)-QjOK@$58`As9a%2+BG}+CAiAJ5jTXi3ccg$+ +zYctrVtV6D`bl=o7+_g;A<0YCU_flS6L9~KeMmDIn#UL;3PdgD3*2wrdUr0{Ag;v5s +z6DARe_+8i`E}7V7L_;&3>L`Etbr4<5QC~bEPzfMdmL)0hHMZAXn3RhVDD2 +zb(M94bvjfH5u+4CxeYu0xnU_aj%lNxy3P$wE(cpvcv>&|A2To+T1z+D +z7YH>c_rn6A#(^T%4X`Q$HNl#d_%G2g$!KDQ(+blR&ZDq%jxsIeN-GOCUgmBBAcaQr +z?OBix9b?tvTE6KfQ!R`5u-{0P`Ib%$_X{7(U@-n@&&x~jz&Z6MKtvC)5^#G;74*(lPE!*1+ll3xrlSM<=~Eb-qA-20}CFf +zk^7-ZMxz`=w&N7rSF}(9U(|d_vfpSeu6E4fH6718NnRSiXP0$c(JdCpDCTn)ZI0y1 +z)Q+X>SF#7g%v9JWcMBEC77{SFtma;a&SuFpx=0?$4=wSY$XL_8jYmQaZd_Fgdv6yH +zV(Wzef~={hVXxUulD^mJ2RwvYuDZ(d=*&uXCxSd +zc1;-(?VjUpNY`=)KDI}d-1#U%>$Ye4GT*AiY8pbv2JFheTSNLT!F2eGsX%pNH7iQ1VqnWh5z3ej`9#+8D*tKmVIk1SFO +z?K}=L?Q+5XQ>+VvEezYBupNZS``=ho7+f;>=Cc@O16eaF6#XvX%hRn>xC5p$&K-5w +zwbaS{U?u0;q^fP?=SF#r42eaEe$}|PqEbF +zyh$SX|4lvw`6$F>{H6>(AB+TZg^hyib#7vyV-@neeNWZAAF*f?Vsa=w2x~<6oP5I7 +zl(%afaHEJSNt}NbS?OW=-Q7Z*lBNMm`Kt@g_@al +z)xoNNpkZzbVw8seRlLZ(($WzA7^?2>J7|}$ZC3&<+k&2@mF3$(%Z!|Gf-zb*dI8IL +zc$BxB6@<`U5lE6$fhlQRgKdg{T@8P&A^(~ag0dC4(Y4+1TVI1pkv}mK&IF&c3-EV>nBuZs*bX`xpDoyRk +zmrJ=<^x_o7P<}hzsp;;vw-`2x;e|d$)D(Daa1d1yj*gxekQv(e6PZoLG_3R-6KFtx*1j``J(mw2u%L7mungT2W)E5S#ylld;* +zDns2!Ej}2)k~d=|4VS_&U#W|KZ$_&qodJUJp?ggkYB$|{4Hn&&^0>dJjH$jdu;+BA +z+$|61Espe|3HUDC3z>{M9h59*p_bp_E9$8iil+}6nTk_eNAFGVjP80pw|-ng&m=25 +zAU-LrgiHKEDau%pG7KvaHpP}zHyOkb`k{&kB^Ldzqh~?zC2#QC@k&ni4}t}NQ@klc +zc?&h{3gtKK{GT69vd6U})(y@aJv>HLfAmmoAXHSy +zY>8{;pfc0Bi;!#A($96~$Wy)80q8;}?7g&e%8pO1o-#W1gElhou3{Jfq +z`Ilre32pMv__=<*9{KN2eVY2R^|TWizhgF-O;o%PUt}1he~$9vrfRPUC+s3#gPARO +z*I*E76`7ABIx{J)vMS9dk3TZ6MWe{K87#!C%t`Rse;)YZ7Y*`CV(-F$1l +z_;CicJgSt+9Oo)8`6lrfq2tCJ)?P(8E=OxNx@ +zdIABS^p0j&n0o?ZYbxg+BzI9XDQbaKys7uOqZ;t4wiN|4L=Z*+oYG^J7_wy*>=ygf +zb=<#X>6*7;l4K=jQ8}~|)eFTHcFTm5;JIZE_l1;^G$<(O2K2!u0%8w@D*X*=Ic$=v +zS+x747>CWBDR&raw69MV1`aVbxlc?=NlC0rQDAeu2XwCe;Y01515Rgb1LS~KqiTM8IR?}4@9UWr@Q4e +z?FRv)MkD@-NlSrr6-$l6z4%bK@3OG0xOC!|P0TT2fkDBuk$Ro4ycSpqlIzp?Iq{T? +zF|YK`bMK6j_uiHY?g<&yY!-|TOmL`69bhvF6h<8!_Ull*#$BqGuhg( +zI#Hpup=1zlw+9?*Lgz=JV9n|lg7K5WPC+U!sRyMdt0+dqesdOHL#o4pYw=dJMh6H- +zGh4PsJd2Hzpa-aIkQ(=Y%~HEa=iyQ0m^ni(6CRAMXQ3NuAlm?vMToQe36S$38< +zEn3(G!bQ|BR2r0POq-LSJS7m!nht3dpOGo5K&SdN-r0==cKJ6!RPxE_!&e?@-w}aY +zk=d>_y752Cs?dLf%t|yT!Z+EZ%W&9jO7Ow0>Sog#gInN{6+QU)LsVq%qjQNuDpz^y +zpFZw-OL%_ +z3qe`gPri@COC>ohUC^Qsg|Kx(xOLT8n`6IZJoQ;0B}lmvjJD(xVt7sc{9~!b(WDC+ +zLq&q-Jf|h~^m6r^LRE0ndD(TV_aC|RUN&d4=HOJcrIgrvV$u=*O%wjc8KJ{xDYEAo +zJW2jyI3wvFxb!fQ!d>~?$b;T3mc`pk2oo|ADZd(hsn=mZWwHt +zQHHI2f;*zg-J$T^k>lz*zK-#~cV(P%GLe#%!^1Xh@cZVeANV^R@Ej$G1va9x&n(?KMauN(3F?b +z0D={{Oc(EqruUU9-o(_^C<;;Po$u=DLUBWxE?lx(!uv8s +zOt6j91f~%&hW;_-4&?bc?kz(bb%lrymkr-L{{=9$xM$lNowrpJ@rfr)@kGUNxKs>W +z$zMty0-5I|;aTtMgz&3jnOI+j#R`gHAQvM0okp@i+zd`b;?O)B4Vj-0n*?eM85;ZN +z<}nGj9%5vSbkG%0A3#UhQDp0%fP8fzQEkL-M%$*iPzlBbB@S@9Fg_> +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 +z3+RSg=+_|K5%KSNjl481&39)x$o +z-nUi{_<6k~(P!0`_w;Uce)$+iBY83nZ@);sT`4st^pqTJuS{+Cb-ccm>Tnq~hFzT> +zIT~;J0srZ-;a>ks@8d|R(V@pu@87Px%(dL~n}T#U;sSu5A9(^Y-0wM*ru;WQ5UMhb +zW=`Foy+6HEHPLth-xkWl2j?@c;dYp!TW?ykc!?onPn>R? +z^xj;71AtGXHsNq&A|xa*TFcd2P3Zxv=woQ~=@Y!BuqlyndLtn0WzviW{b#apEKy1p +z{8uE~8DNX)X0|2(M0-PIJJTe>Fa*i|lDpO6TN=UDlv4gYEgifH1kY~xGS2~rYAM)j +zt|{Vsw>8Gq=^p#sAYci`bmOyuEw(2h^#Gs)4UDu!8K0Ya9DKAb6z6TeX&c@d +zOtZI4<7Lkih`JuJ`u&MxGj}39Z5#8fnMqrtYpA0^E+e-h%$yxGRA3@9Ligt*0TD>{EL#Nkvxb_b+q;+W9LbrZ +z(8m?%((^C*Cb`A)z35}@wnX$TkK&kjjH>KXYzdjqaT<_heTa)|I;+qghPSP5^lKSb +zzsE2iDM(lG7II +zJd(t*copobPX3Ilb@9S0I2JST4nebbj%M_k58Cc(ye|r?0J{VO{E@Wop=gRmHkKr- +zmr+?WHCa0JzyxfZCzf(X;CoW*;4M}=mkr=OuG|OHAtYQDUJfS;!UhQ#ahVH3VdK|5oD6Obi{FOntBDMA%XHJ#ZJtfVc}QF>mG)=%?nibMJCvk +zm|gZ82WKb#E^~?gQ07JR23Zs9L#bQUeU^(#LW<0=K6%6l%k0ii96n@t4|iQI_X(R0 +zI>YzEwFRpc8&YbhK{0F>|4L-={iG4xYQacQZS#T?hf@{8a+Y;SLnG((Ds1D!ZEX +zcG3c$sqahbI;iZ^J&mvEjMufHUL3UEYX6K|;?)!C6n!-;3DTmGd +ztOA}Pnjq;;9I05r#|h^;^%Lm&WyPb|HlRMZYUjmpeVmM_dDhHrVWJANzIQO(vRfejoN{-&(RoYmZAA>nj+IkTKLhv +zx1)92@gwnzzpu0vAq$RVZq149RhXeh?8L6x#WwGeQ~Qb=LPX&q3L|a4{#1woaz=nx +zHhDv5q1b`NU8K++)o*ZxNGeO;aop|_t5-B!6?(0dWgBcru7}LoR$%rry?-d+7_Zf1 +zqW4Wel#5(rj-iJryl}hWogm^=zs{U@sCJA0GBek6{k)RG=sHtt3YB6Dcz{Dh=t92p +z*Fspp_K7}#@tp^!@FwSDAvhCL;OzBN0l3uG++xd!x!L1o1@iSu`lZTc?^+9M?>`z? +z+xGyH-gY@sj*gfGK7MDcbydc*o3WHHl4EG^j?P8o@g_2lfg3c_P9r1g$JGUd!O +z8O|x8HhJIE92ox1C`Bc+tTw*1k=fDGA?JdUuI_n!2JBT3Y!mq2tZDd9&WEC34AAb(xrg$Eer +z3Vu>;(*s5o3_f!Qocvza*1YaAffmNLd%L{F*R%(2uD`ihAwRia&3!Fb64Zb}2V-~# +zWuqgtu_6QcQo3x@kYe>o$-2QW@d3MkJ_m)qd_NO=AJTe(BLJm=kOz}|^oMVJ+lJIZT=i!NNo6_ s1`9+-PXRgFin7woyWAF +zne%(c;OEZy+U7UZL?e%p4u1u?`7^xom;AR8K!QA|FS>g{Bu19>o9Ha0|1>?8mt}KTOQW+@2;?&_FUk_`JP(q(^VA +zyJqZje9{Zh*OqS&?J8rwtWf0x<{z>>xq2N^Gk9*%Iy^B(-;y3ceQHSNX+68WO~$54 +z2H5Arbv1YMncD>FlX5!YUzt0LF0yF>)!e`Y#-Gz*ZYaR9UXYv5xB#8=w%3uKDq4Fj +zo#l#ci=+pr+){xKqS_6JgwinMzZ=61 +zBp?kia@0n;F*>3#;=$+u%BWeay>NVCi4EPGXB_VuKuGcDfk<>E@THXt-HHHMSsSp1B9;p8j+5WfT;)EbnIE-@Y6gVK38~Zp0Me?&OC0V|1&xIDx_iP +zY7Td~veE#D@kRQ_xXh1W^oXi5k;a%@F|*0lRiLhW+ExHno66Kr`?DllU}R6oHDm4C +z7Gdfm^6KF0-Q+38Bl>M+J3vlLs<7#)obXgIM=xSe{UOSSCfAfKdxSeY2fl$*px$l^ +zjOOX4l)rCIrAz)upjf=6i +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 +zr(i`!cnh_z~65qqW%8 +zjQp^-pw30(tj9&KE~M3Zw@f_6&&*3~EamvD%jb;Z!ff>{s9tkD^}dtL?jQ}^hK6J& +z-}t)S54nX@+SS?tLzh`(nWi;_xIqo3lel+*)_NXh3d3uh +z>lYJ&{h=h0=Tb&UF1yv=^edQPYysmV+?uEM$SpBeEtH8a(g*jd)-?<8^A~~B;KO)R +z0eb>Tzcbp2dkpwFyNujiVb&@W#*#!{EuTt9+m!YFgGk%Y;R5il09+(QU<2slxQ*(` +zfF)lssnb#B&)*fDD^8HhSh5HxN|O`D(|c2CIWi`JIN}eLtLf}+%lz?ncFA%R(DAS$ +z<({Ml76qu-xHKUK?X}WSoteoyyijm5N#*`{ACx&lgFLB@*2YaRxoy52h$DJTcnNNZ +z>4sJr-F-#4*pd0|_>=xpDWX3;jn`l5I+=nP&|9s%99T-()m_Dtsd82E7b8G|(VUVv +z1jHTP(8vc}J4+7IF5DA1kAXd +z*EbNI6o#@X({1}w>Qk15j>{*K$vbmHH6YcpzsA&fpZNB)#Ik)^;D%2Hh)8}8Vh#o? +z4`gmhcnxOzLyK}%odAYBsbgfBlEg%U$Ge)8T8jZBm0X?C7~~;ll1n9Xo<*=cV%q~F +zHSYibIP8x>K-fi)0wMK$%SNk2pXTHAXmu=eqL!?>00}#)NH6jqZ~A?XPunw!u&PjG +z<)VQDI9o+r$JiqA0v%t~CH7c{T>EPaFaI;Kn!|P@gLI +zM%i!0#=d-GKKtlNR*Z)8ieybaI=c4ndXD1a^)YqJ*$d`fUL5P=k&uQ)@&F6u +zUDXmmqdl9yb|=W#xj^e|PWj#NLI~kGq1uKHV +z?MVGN2!dP4Uj55iPQZ!7XI|Z111W(9Hlb8hNveAXx9Nk!RTUZ>Z0sOe+CSEc+!NcB7t&}*YRPrZ+Tgvl+>U3BKI-+|&4Z}?H+zwQ6bh{C +z2)RUbSnz${Q)5P#(j;%)$$Y3-g?9?$TJ_56gWfo~8z)BsBXEhlZ@Tl6whPsw;*=+E +z=xwcg*N6VR-n6D6^FMSan*izf4DT#~`?A`KK3YUi1z_kIORy>MFq6b>LD5w~3V}5z +zAGj4;zB0>*bvfrot-}H|W5Y>fw<8jt{;TV}4b#`k)n&LC9h?>7zED(6Z&z^(2zXtf +zQlZDW^jPWu7e_TBjEDqgFeQkX-K}a$giaCX>X1sFdWNuz6wgphGba`yp_lYmijJqi +zpX1AjFqYhwxxOYL}*4qGTq +z<|=?d>VNsxS1I_dM6>6vkeV0&JzysjEVLU9YSG%TPv;i*K^$IPc!2{ZB63(wUN2G3 +z4i)noJN}X%td|JRq2x{W&p>uRQd?vtfz&>IEPe~-bmE@J)^6g>uBqGmHayvvIb*{g +zqaOF;=5sEx6~7VBJi`tty&HL2QE*pSw-?zy63J$2)L}~YPHqBNnDUa^_lAbi~ +zrx%9gPvIrx79r#UtWSp%YjCsTe|j_MDB{|9q(naXjzOJ7pF4g@@tdF)tTM_%qjC^j +z7dh42W7j+j5`GwS{oQ{SFZZYi8$nmaMC8$DRt0IPTM;H^jNEza^h|HvP9TXsCCgt> +zIKuCeds_)r^``pi*Oii-bhDo8!E1g4wyH9_Zir;0c-6gCZccsiUbZjU9Nkb{7d_>W +zrd+yZvf=d$^1CA}FvDO&)|zid;tf1n`38TyY@aDZnt1Q>YYH5r`&69QaYL}AS>!bF +zL0N#N3`>FFE4<$XvbpkFpPGFHb~2l1r&JG|vAj}gQ?Mw|2*WaSz0UI4o+3ZhZrOGs +z4-LG=sx2M1h3gHI5xzGpIfnn9^#OYxW?6EU{r8)Nq_CDpe(Zq2`2dcoA@0`77l}WQ +z9+W;An#vTdyg@o=0^CB}Rhs&q@dko2{zR6(?8>Q~L(03aBef>ELpVTPXgVv{^_~O+ +zx#v!#2GL24i8jt1bXRvp`D^BJMW +zJeg%6ZYT+L^9cKEP@aifjY>WY3JT(tVqZErcgDP(UMeC*AN}Ib;=^Jp3iCiij0pr! +z-$?u{ppVE(&*D-E^=C>z442VFy~fKUC>VI%&-1+My@+!w9lyC6Zz;=iayO)y`&-RI +zULk+)SCvgC*yZ7NLl|^jv*6b{EWQTN2Rqm*$w)|X+9+#al;eOm^+)Dt=;t#paSt9f +z%$WlEfcsw#lX;BjM&88)$TEBkG})et)Pc#SmwV$vifiRL{Yf5;{bYA_ToF|fQ3o7Y +zRZ&c;{BhRsWzRbwoxbP=*$raVty#iY%+KE^c9(4NKPRM7OU1Yz-1%+ZU{XSm>DBPA +z&dXo0Eu_Hco2}`0Z`je;FbXM^?anGf8c=Qn6GH%H^5w~YVNOH?ZmUZZ@8VR@%@+nl +zeF>=NJwbEu_uRQDETKB-=7y?%t0AHxBay9r)QikTFedoJDqVY?QRBQB@Vp@}ax`Lx +zb=v9u5)?Qt_40C`%{^DsF?h%PjudFJ;sy5>awb-QsVHzH8B+8s!d=zWf2PyKEm*3o +zjZG|}RVzTPIqt#zUW+asFDo~QTOsKjbdI%wXez*_H^yM^a;`@0*L?3_$jF^~uiG(C +zHy`u6>Jl-U>Ch9uWegU@2Mab*k}`mAPj|r@SdDr+>>5h=R(HKMeTbuCI9Dytj%kG! +zM?*=%EC0GkxKzpo0bRqNaR5iA|7s*Fj^t{DS-p*tUF2%gh0MwAPW}1hm5mW- +zO-`nxTPgp{mE3D2;7_~1J$;o~nlQjUcD@{+MV|@SV>cAt@eHP%O@892(Y6fP;&!4@ +zhhlUe?3h;p#l&&7uQX*esp(i2-fnktzh3qe|8B#++t)FCG#q9-hG_9oTqhv~lvEkQ +zxzU6WZOjCO0^l4V!?Q~1?9+wkzS;BlO34{!orX|8;gO00br%5(SvQ#oG +zgzgwugn5p9hRpw3SMiPkq%tj6RG|~Ys#{fENci|4aL{C^^?@|sD{JRzAak0X6Q7HY +zJt#;QsLiw%qFP~LHFK;Jl%yzTl_^?5mMVyNh!528Uj-|Q;9w%lj>%B5mjAB6<7PpS +zmomXR+*=oqn5CbTQY`qFBgZLNw6Z! +z`!PpFh55@i<~O{L*Aoz2q?yM0p?`NLA#?L6IJDk#aJEq+vL`l@0ZmKOL{yy-TGJ_-BH0722(^6f4< +zI@yn-*!%GAVP0hDs=;{`b-@yIp50DMBgW@K;t!GG`G#~ZT*ZOC=kv^ZP&^xvg-I1< +zA)-rd$EmjP{fJW5O3~>6+S< +zwbZKM9Mq^9G7Gl#O+i3~Yd5WqEeR#p8C7`wBNGI#JB7Ae_P|F* +zI?euSjp<{wac4uOA<>R4IjI*4a$>z2;vvjogaNfE(R|fD6Sbe#w%yq{FG1}ww_Fh8 +zd?gDq5V!XuE5+Yo_%F{0s8t+qBDJpg&I7Gp5s!-C!l?-z(dv`Z>658!?FLnY=+$DD +zI+T^yzZb81q77NtT`C8Do1T9$5xGMT5iKL3PVa$Vj5`{e#7yxOu?0D%P{=-V3Nf7_ +z;BTmwpAq3uzf23#elaPJLnn!ipj%07gzmD19aa`jkQXr~xDIS>0H=1;%ZkCn9?{55 +z)`8wz;zi347rphM5S^&tBbs97Wf6oDjoh%mp9XUiWXY^I+)Boc_f&iA7Re-ng;I_L +zehOj+j35i2OTf15tZVI+a5B5ct7$c*fsn7kuKi-7^XBaVqH);yVNHl7^W{)D-BKb+ +zM*Tx>s{reg?}pBJNAL-nHm~)+pw#r-vCfE~4xO*+sdeJ_)>*ffG$l{3A^9F35k%w@ +zLx-@R%_tuM%^HaLGPatgw9Fv4R2ehC{%ZQT%^MM1a+i3W@nDZyXDU-ao|1lD42NB$t3*Vs^JsxUh5 +zYt$xs8<~kQO)9d(uW^~5%RgI=fOg1J$1{R>c&`tOgK+miX)bP%EB<-Bi2~yFY_{zo +zGhi-KDbtIp-w8TLs+9kLx1h2g0X +z4Dp6sfP?rv5g2aCZHgd-zS>f&k=WqcQT3UU5m^Jv0ULy9nI<=&<>lfg=6$yF)LJuT;Jb898q-fkedc2z2Sn7XUqJhWhOa +zJsz8ZWfvN|G$5d_`N%{CANJ^!>_6%V%A?m+n6iXGO4oO2!5XW43U1Q+QPG0TglPyD +zV8-06udI)*Ke9hZi|VMU*TQWJGF)Q9CTz{t6?}i}kbQ3P#C00B#N|~QRR{!q7ZARHIOA_t8>(zo!6Bx@neLr@vS$J3_e@mJQ5mA~| +z6vTbDz>|ZaT)7yd(97tzVdhUbq`Nxfpz?Z74jLA3MC(lM@!K@ny#pbV{wijVQ;ca$ +zUl)P}IaU0JhE75T8s=TuJDy%-E!(hlpGJU*!rAEhD)y^pc}X@P!B6XK=;DkLxJJ*6 +zbLf5El5McH#Y_SfTg^o?fn2p9HTeVLo&*bnYyAZ0REOtvHT8*4Wn^U +z{H<|>RLbH-!*t;l4oeSEtlY?}{NskLRUL7R=E_#^tLy>3P(48Lo!J3ly&m~5(^8H} +z43DCk;;Fb5hcl|k2}!x@;EDwsejYL4M+}S!j%tlx;n7;A{Tf>E3>NV+newHqLXxHC +zHJFd_9@A^K@O*?e)s}9dK~bGQ4xeO_ED(f#!`{bEo6;W?W~O+dy`?P=qhP9>l|H<3 +zXC>3N0{QV6wEow=(;6k1v`7)G4WZaa(s_CHU;Kf9rZQj8FTVMl!< +zB}b!d9>m^&wlDT@^ai$(-SsVAfMOL`l}gPO;C5XyL{PfuP9+*6lK9NX*`atOc?nhW +z#Qw_bI?b6H+p(GXiy;eIi?B210ILZaIwU8ZdRNM4W-qXKHv8@ja}`!3D(A+EqNCG} +zmR|Obb5y?h557eT(!Gd-+T4+>GDh71b@;8;(irr^ma)kasrkWX-!>c7GAYB31? +z^+dizo{9baiLloJT=Bev*vAX5d*%EWH3P5}Uc0n8t+h|{%nd#g@9qkI36^^ya*)(` +zCa+aH$HzxW-@2b5B06nE2RovvIH^S0Bcuxvb2?=z7iv*P4;hbuuhn_4V5h+C8oDvC +zEEE&jLZFGGYFOxnD-~Yc45D|*6yQNq+0Q3$^11gQM8+=oFY$>zcx9>Xt{aURRoVKP +zsrB!o3@H0}EgqfzD~h>y>cVP!Zobq(e3pxKFD_0d)K$UuGh0I;yeesqMml|oT(!+R +zV)f3hLLBio?`Cd@D8W6S2Q67&Z}#D|PL=WB!{U1(`s)TD#)DVUDtYh)|L#0e<|slY +zm{>VIy2;8qLN2xrV_a!8dn#1k5hno6H)*~j+0(%Fqb#r^mka6dRVG`l^1N7Pt1lgr +zVo1ASP9Mdh;NZ;)2Xsd6S)4u_LId4DkIJo +z(kXb@G@Oxy1}F(MU!W@^e~dbaFUqP*HY(0 +zP9%>nq-VOU%Vu@82Gl^<-09ePlPB~ujkzDAGqC+#C5fvg0krW>fEC*|OJ|_~7 +z6NHY>${rqGF1$~a0VK5nc-w3OYdpi-$J-HEYA_Dj9Uz&;aIy7BR2t{b +z^cIY%DgmlJ#qoad-l-{^@T?i;tsqz&;_Q!(MNwO0ho;J!qhnFiAs>Bdo|^vJI&Tav +zb#+4XMW>B)F83373hkuFcG>+>o#~DEpf)Crg82bwJSiVq83eL{p84t3<<%II#(JC| +zCp<@C=*HS2FFpt|qiOf(rZN6{5V%nF;^MgEDl!*l(^ydW$X4K~M1Faq7J1yR3!HP& +z?vFTIgR&vwb_Z?h|Y|98q|{uLRuep=V)Q7Msl4Y7M?Knk}1syB>JgZ}`2SZ*D{VtbQuq +zrB5MZJt)MTEm$aLMiNfJ6$@>iXg03%#o!c&Bg$#ImiXZKq=}rZ0q#*}&3uxW0^+m9 +zl)@k(iAUwYz#-lrkz=)DXF4u1ce0eREyP4i=7j?v?iGeT0tAx}e?2%ztEq8R(Ny@G +zBlt~xMpCAB!?29Fo0@~piDDXYA!HVL^3vXOGZ8>=8Fl+km@NgZn^OJ3$ +z=4$<{WNb=l&vQJ|=l4%)WiY01L%tm0=4`iwdHgSn)l8_Vo`92lY +z6EC7ZLH4msW~zOCr?hF7M*wBjwpd*$Uu_8P#;{oGvNqd0=I3`$K`S@)R)yvO0-&_cQcO +z`rn7F7V@g8#0oO4@F7s?^9`dRuH_$~rFy%Tn{3mgBtb$2y5U%mk`x{(>b`uG*8K^- +zPSprfG;gTHJQsN;)|>#oeg-bij1)nV+M$kI$JWB!BVgB-^*_P#uA^C<*tf`^q50C? +z=R3m}tf)R}$62V_9A;=cN?V_&O0VNcQhH6IF{^koc#)J(O{U%{(h&vznFifVO@bjKDF#712Hw>Cz +z??B@tq^)=0o*HG}k~lOz2>N8k#K(!Zs|^#rI&}xTC1bdHOd9kS2ABq<9h~ +zA$zd5hy%|MIK8$IK)tstYlnOotR9;n2Iyy;u3?2F?1pKa^AHF|&^<$=Vay7V$ +z+>4STu`)RqqPz4uG4$K`41#HSSL;mHuE$7&)}?L+kcN`Z5a<*a4z~F`&F-@R#1kEK +zlzAQ@%ZFA%Dq9q?TT>z0Lu5cyF$MksGTn{Rt@3vgB +zqg=Z!^9r8LZ;cVv7XK+Fn=^Y?-r@Bo?T1c=qlRcDUVWc(EIdcjwE88gjL8H%806Woj+r; +zai`cGpzS}wpjQK&VcMZa=4)h_l&y70+Q>nhAfA#qPRD*Y=@apwj*x>JwM06(bB4*~ +z;%P0CAl46G8Vqt39ryL6kI_T$>8yjX)i>-Kf@Z~4l?d0EfYCXxp}{N$N9}oIL?$z- +zKahqM03)SxlE%vWlj*IyAfGCS^){^uv^}SJ5R{2b-}u3-o1VH?^o+~hMbb=OnYXZd +z$s&{H+*9rYqTL`XC}UAC)y$Hq>R+&vIZX}M<#oRIb3du8lak|*HdE71%%_vCV$d`* +z{c26aZm4OJT&U8B#A4HWfH}qD(db^ob$~^Q`b8%2b%Yl!XM3+sHfj&(`F)uv%h*3DT2^j2?|I+3~r+yvxUeX=E?I;tA)FbO?DT{SUETu;iV&oALeLIi^ +z&yLvj5E25r4$cqyWrxdF(!K2bEhYQLz$(5 +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 +z_UHy$n38Z+v>D#;tUW~ +zLwmp4m1*P;;oEd%o(}QIyk|v+qkWHDAzRHUaN|^FGOaBCwXbfq!&8c#S +zF+b>juxAAgl=*K(L$I5RDz+Cb=e_Gsy!rSe6W!Qe%A{49FT*|#)ML!YMJt}lo<|)X +zAl9vO5ulokNuXXKdg+j^iT|~7^rP)6$<#tN<@nFMIduwPR)#BZZ^#EsNlktzxwY=U +z0Zq1(F_cZ^OMfca2O&b`mhc{ItahK#V;}n2Dk37awJT4w<8~sE@dgY#lx~8=WFnHG +z=^sZSRiwAUDY};tmS6JvfyyK(BEPJ@>zRtky@gwdogY#&pHH}~jT(QCb_!W4>|?Gm?oI$rSWgZB+PtEU06QZurADsB|(u%i6kSlm*05#t5OQ_1S2V3njV~ +z!hVX};mv;MGbeDTtXhN`7ohgV&GIz(Oy=h1q>M2y6+cY~SmOSD7ezm?9F9WWoUI@} +zrfSXOsbw8O2P`@%+EsnFWH-yayn7}+-02SOtY0DBj*eVFOqvN%nXgH?-P-|*VOY3p +z8oUC<6avXmahE+dmcZwb&ZyFU!G1KRsH4$HsxkLZqT~R2$p$Ku7GzBXbyvwKU16ly +zE_J6cXFeu;O;K57b4=a0>K$YPjQz8&U8qNoeYw_y#xbi$Z~-Ei6L7QzTPeJ%iZ;a* +zhGZqY&eJ8FW>o^v6E +z^DPY}9Typb>wGxaO}$4TSiISgfcKE59w-u)DXFB(!z0Lt^uo+}~^ +ziqN}?xu*3H=5%I06!f!w$Q_RPvEnCCHR2;)1v>{q);i+7e3JZt_M=S$mGl9c+K(K+ +z=nyg3DO+a3ngk!wT+#Wr=$}ebz9*hCt}=3!_Wy}xz)?s`?*jwXbmc^S(D-{X*3673 +zvs6u`Um9eG`kiq1zxH2GTomljTQqa`X$sKMDCg;Tw^)@hTIsL2Ch?2=!uQ3(+m|mz +zl|tGt6%Fng7`k(ho-E+p8PT>-6vci`Lh~PZK+pw3YJ>_v*d8E>tZCZCLqW2(J+C=b +z+u|Uep{rD=n^iD>iJF)OqNeXBAir(jl`Z3r68EWr@O)Oanej`>LiFAu*@C +znYx=SZvq^ctk1l}2ppf0C|(Kh6xo+11XW3Tc1h_N{qTeJ?8m+C?iv2SE+%xHlvyLV +z_nF}PCWn(^q1eAt*!~oPoRxo!5Nzp>(?+Xu*H7Nf1Dd8moG_>O9&rvtgGe4UpRv3q +zhtr+>GkxmcwnqT_bzE8@XyDWB%XN(FR^TI;=syBxP|V7o)$XeBhE79a?iM1iW7{$; +zM}@W!K#qOi?G$IgWHQ_N|Dx@lzw2rjfA6o@wzXn3wz*=nu^QWGY}>Y-#2!1leA5r^v2%z{^A*DoH5RSu;x$m8rNK}&s%Is9AM50c0dy^LpdG&bcz~w@7hI%`RW?xhTYWY89e+5Zw{Y5k +z>!-Ar=253y*SmB(#w|M-9e>Ipttv&U5$65sXBL +zksTtp{QwPuy;8y;if2UqJ;LJXfOeK^R~af1VeapRo$21E>=?a~TX{U%K$kJ|Z96GjlC*pe@glvg``5w?R7@0Mxi|XKJu~VA +z11}>)tqJQPJSI}0Qrg$1rszNn>M;cF6BJR60i`AOxFbdoRyP5kI>~sN2+(!7TRbX7 +z_WDIS3cg^$zSNf}eiD+q@&IGUy#40zNKzVsP>n~Lzi5x5$YZIWyTw-aqNai42L*Kh +zgS}+#nOPglfQ3W4&Q2&%H&(WbwiT`+R9Mp0w4j02K#Bc4=!t0AL0*9H08Xrhr6!fQd32=|X}0 +zAr0{GsPyi6MCItub;SyvU7JE=RQ&{!g7~$wqv*dt{ZK<-?sk|`zl=b-<#qB^0W`eq +z6*L?=?U-I6VqoMFlNOLc^XPmBPzBILv&8sU5;C^^EDj3HF;9E~Q{Y>L@)(v1n$J}cKb3L@(=7?G +zUQ(?cqqYmYJ)JWT(y%J+eGmMJ(kXqIIBL~fXSsFl#uP})kIwahkQmJjFoJ5rky99Q +zfRv`?S#G5}wyXHLJmb274|3Jv$Cm!09DQ(+n(UeUH7#)cJ#x*#q*+Cv)SlyINn&}8 +zRH*HhTZ7;rg;J@x=a#56AqU&Q+dZQL&l_<0&<}nS$HFZQ#|SK@3kv5(^apJSXDovG +z{@@N*zlFtsD10m%1Ry~<`>>lJJ_-&LRiS7@7P7t_^h2o^D&>C04dsF`=R^d^uY{wT +zP9W4Xe(M$_30ulU{d($vGm4)T5mj;F-PIhSYQm&GrNara0r);yw+e5t1?(J7{w7;? +zyCR;KiMd}$ZKG02>PrKCmFeq=xPV)|T6j$Et6fJRoKRlhzTAHP)0u+$$FHjK5(jx9&lXg>nRH`D<_}7OQ`06n`g@b +zWzo{KWIR5(h~FVfh!QA!qsp{;?f8T%+MayN4y7X{O-+pw*HYVm|IXADJvzPv*fu`M +z{Jrp&Qz}t)+H7?#0qT%1pKj5Ot5GK0%d7}zNxDwlRu)^KApwth;EIoTI$vIn?&At} +z6wc$_SpaKi3kI72rr>idxwZR +zm&ds{ +zhn}eA3C=x7vQt_*)-kueAHo7@j!330UdQj=lQOj$$9`jn5x-!eU#mDBjK%*tw!FYD +z4;~2y`J>*hC?(Go*X&c@?z$tEDD7KU{>9~UAPVmLpiPJ$vJ2zy=T4{yEq%7wkH +zAdy+&pe-Ur_o~q0dT9MX)m|5Nd>QzU{;lv=?V*x_Cc=+b{(&JsC@$*DoU_IIyD9Wr +z&dVVRPr2g5=x}pg`lQ>4nY2~p=nzujMOM%&>Te0wCEI33!t_=vA7Ih{tNT#%tg2?1M?bz`U +zb*<8Db&5f=AK({TH^*M1Nj@${p__L%jS?2V5fOrpXBiXQWEXHy(>F5?=7YAb1tt_l*dkST?ZE!= +z9IQ!oR8VF^E_6--Twv?5tm?ifnTFY$VBu1cD^i)up(&;dCA~aCS4MlLcqf8YB*bGb +z0#Dm68F8j{DRw8~9KiCN=&*Z4o-ySZLW%$n-Uj#Rf0QVkN)M$qtFjKiy_$V%qJ9a< +zRw=>M6^W&CZEZ7VwkA*fB{V6MbuCYuW;{S^fx+0V?|XEgtQxpo@}6h`YN9!)x}lQ@ +zhuf?@J{HThgPxNnr*^EXh3@*Kp{ZOuj&f6D)THD#q}=?d+HxcA!m?HB!4 +z%7Ik(<_*%}&&Tt(M;?3Ac1t&PDVK}nyVhxFDN)g$F-r!6@c1-WfMX{CPjHiLStU95 +z9W_$h-5+nqnXeAoc#^yt6s&*Bm4JK8b_-==F7XogE{0Gvcwf@!)?Y4<{UrmkMz>MN +zSp#56hD*csPGlchaup|9mS1)PEE76bp2t|^c~aghr&s(hbVbK!d}EOk-Ck3#j@1gH +zyIhZn*Mg(P>*>@!<>JFF>t5(*IycgB31Ze?M(MNgIK_e?I}=w^L?mt&~ +zN#1ECf2kEHB$RRd(6?3*3kTJ=qC>rvUyk!nx`OgXS1Q~aCMr$F_*#HGzj1>i30D`I_@vWow<9%4NAl5pll}YLs&Ze1Tid9aXEHrXbh#d8Q +zLn~S@M2~N8agSmWDq(SOLkV#qQ=go9`cFQTQcw^jg%&>wzARZ;mGq8kDMDMoLz`vU +zcICdv(eXL67Zzw(s+Y0;8FG0g} +zNn)y;!j6gN#339u*DGE9C1XIW^g&N($)#T86YHO1rLbqz6C%fjb1#_xC0fS?otf?+ +zB7`%#lx;d58R)HyF?H28YT_F8@&3r83K?OoQ|vR^|D9==KSjJr>w? +zlm$`;#H=x>gjqpJCupvy5k`g6hEI-; +z7kzZ>zEl#7kn#loLE=R5^XE`sPK*(iu~2Y$`UJFr1xa(ncK<2bO61Ttg*q55pTY!U +z5kCODrpfpB3Q>6I)nKNdJtJby`?4OnpTI9*Z&`H4!Vbh9HJnGvl;91`ZY14g>)~~_ +z4k>{X9x6EvoVlm>A3pK~KMu_1mvrEUS2Mhan^gHYwaT`|1m#IY>K}(Btt$rbIK)B9 +zQ7kVy4`63t7|}ICGQuqQO!@FJ8Xy*)jqC422tP#ui-gZy&xk8Hw89>Wup|0G!+#^- +z5KGcRGG^+{ra+BtuoV)VPVsxfzZ+oEb>&ENy!D$Hh|-jQ;ZjV|XDuXtCvD7f2#F$G +z_l*x>o1}@dZOX%d)I +zLM=1AF5o3b>+XJIqNr+WJEcS|RI}8Fn$J7E>`UQcMo^~PbOyR9zSi#VvX=B62NE+L +zGPMn`$}A;?%bY9Dl^lA}HlTO&B@`ao?;*VV%B#cW!d^iz*CdbVVPb+#rdRZ2qrrh! +zDp@5i6)qIE0*7xdx~P=hG|huML{{g_MTLrRXBEr!p(HSXF>2y_bz3jG>eO+FejIG= +zwT~1Z6Z7Y@`kd_!Ry6aR=|0bdrFl>#x0vOu^b7}Cje*nO7=;k4q(HwIk)9L;mz1hF +z+;2JCigM_W-OB%Aqf(X?l6$R-(WV-3?$4$}dd7-b8H&<;j`y76JsD`~yB5-jC7ccY +zB5cG4Ot(CANA@5%0nE2tC@JV!B~h@*_d-~zpJAy4)=bt)#Cn~>@fWgNht!3K;q#l7 +zt0{tOgzSSFqkdBqrMUw#80t>9VgrvXtMJ5kXkL8n=q>sgqcckSilPci7NyRzERa8R|>f~cnv +zLy9a}!ih;Z^T +zj_kBe +z4xqej%LaxXj&JugO(I*mEXM6R<%m72~*}=)~$~Bi-*``g4**;*_Jo +zgXO+PY?c-yrVoHqbXHyfgf0>K{lO2mf`iB)zoPdLvO>dk39_WtCC#%4DuuJn5}?!~ +zLvJ`tS6zhHvt9{_jmzHo>;#X|$F_hGv6p{^!X;gHhqhv}Rt}7iQ!&{XrbA&q?h^@o +zGE)S;+Tf0ThNPMf*WM>gFd2l$_PL7)gihRWvIry!D@4a}Faz9J=o@s3 +za!Eu2C*ssr)9ZoT(pN#F%9n~8M>;-<&h;h4rV(e!Y|MIcuv7l-rKhl0)&Pb@LX&v_uj51TOE^g0*EVP-P?DUm=`MY_aE`@g> +z0fFCQ#=4oJ1FeD+_&vqxlTH0!S|WiBW{U547&@&iB3MMIs{TWP_Lt&KZL!R$Oaw +zrMQFpq6t-S&yS2aqKt6VQ|VT_e92HcaFs$dYCA3rXG&EbS3R@kl(E->Q^6$V{h;2y +z9v61dG)RlzirO;53wd#u3=m75M*NGUyuFIt&^5DzfgT2;dyrI#638VCAWqNkqNQGN +zw-+Efwu6eXlmdt5Ri9V%)(TDvPK30HVt%CZPD?>(IzI(Qu_$ng#7=2C!JI_)FQXy| +zgO0(CB)0)g+jyxO6vg|K#;VRdYhs7ztmFrnQj@!k6hECB`n9^rM1G|RePFrLS*!r| +zOpPNagm+imO~Eo`vcO$a+xgv7{|pXX!y;(*s7WXe&{83xFXf7Gc{&YSE149HNbm6~ +z2r+=8Rj_`Hp(dp4YE|Gv4yx{?_0P%URuzW1{L7;pf%*DOrmqfZJm#cnLF6k-PPrSGvnCXCc@6`?`pYjdVh|99$E+_cLQn~E{i8GT`{nFHXCbiJco^WXjSD`=w1r2& +zSp7sm?i)@E9y~K0VR(XKMyEkr9zZT4Z9*KYp7(2pf0DtsHE$uO{}ZExGMGcsNRM}L +zR{CXcXG3K>Wz(+&Xyy38Wj`_kd3~ +z&5aEc{fO~->3ueri__&2yi8hg#5dIw3MOACQdLmBMmWzXH8HXqK_=abE~0R>Pa=9a +zlNi4h^w-dN3lB6d6WL!m{+jd=0*Dp3g +z8F)0sMra?0J}0aWHU*`-lgkh$$hv0~BRv;wup}*FFKQnArBS52z4|q8JHBMNJnK{~ +zIP1f~0V{#j0ZbKqK(f(DO40#_UzoMPRC>>Q4nz@m^M!~bfr;zv(;;P)z4l{v +zj8m7-yh4}bJN@{jrC;-azt&4z_`qg%35j!=BaSsty_CN1S5&Q_xZqjrt)#dNZ9a+!E0`FjklKh?#z +zXXs+2!PZHoD`6#y)pIb%>dQL?$V`G)5W$60mcPxcNpVK)-}OZ>6XQK)N<=qR(dzCk +zwq-(FIuMy(!?(gQUSGC|>yyonPhiJ8`u==`AG47o`l*eCp_DL~Dx8ij2f0!toLt}h +zj*)SqKxjQ$obw??S9+4MT#9IWU17g(z#3b|(h|u7a^CpdwMP)QhIQ{9XVI?#+kW~$ +zTsT`Uh{2j%c&O}DX32WR80pM5rWE>&MimWkEk6M)^)Xn<@C#{pi)OPi4yefL$#>-} +zb@L}$6sL=HBiU&_tITr`aXAwe)lUfF-CFwTFJ^ny?CVbYtaq$Tsifl&(t)X$A}q!3o<-uoI>c`ivDovJI@fT$oxCHe>`m=M3K;FQUthDw*)F#*|0${?3g +zx$#)E-<^U#Cq41jH+7lAn+NSif7CBmjR#?Solf0HL#6;9c#Cy3(`oS)HJ`@bY0L~o +zd~76c(V)*x)%Aauu(75x!ULMeg3H4u%**$6ECHJyyyhbz0dp7m+-J~=n4!F77e@Xd +zkPI7O`<1$gvZC)992f533|HnO%#692$UquJKS6|r{vO$6fX%ZZcpGgc7p}3TRr4>E +zLEl1X9vqwlwsLFqM8C$$QA#aEW&>yv(~TCwgF%*cH2vHl70_aVa%GYYhq4n3{(RXF +z=^n!;R@70 +zo0{-h$ywyc$uR4C^yxwl8>s+q;bhSeIoc&#qjWP1@F5{_iS&_~HkR;K!-w`tMt(sU +zuwPLR5R@xTUnN>v{E_|vP-;?ZrldzCM0uvOx!kFC2O2lpp}TPHx?P;BjVof>@aL;5 +zX{^MJAQ$ouufEoI?9a{Pu*retXqxS84X}afF4SMjhlC$J=tw@S6 +z0`Y|)?iH)l2vrxHeFZATOMdAKcoZB{u<@_S3B3*=hh@=U7OoFh4jS#U;!)^4zQ+Ys +zt{s)jn$CyBB`G0dr3@JRJugmBoXOZL%p^XZ;OOR%*ImRp!X#y+&TmuhOo?9E8ec~G +z;hGfLh-y9^H=0qM-uj<#Wd?{bgR#x#N)_U~{vR0>*Yl{y +zm>%K)WYVB!j&5ROGVP!^#K{xYY0C4{6m$C~)L#rFXLG@8`wAx2&tDJ;VD2q03@zxE +zR==B;X%YGl)j;yiU-5_b)h?qugWXVoom(_xBIl_hcKI?RZHkW}wNeUNjcvpeX +zQLCoA#jI2*JelrTKPn-eiIvyJhAA<>m{)oUzDakbM6xQyQF$5QVxDZf=4q(zhdO`> +z^zC=(|9))^)9C81IlQAT{%O#I6Mm@Tm<7R;V#lX{C`b-Mo{CcPCb=NBT~Y_+i3K($ +zH}NRl+6wMydeItNiGuVC!(r+@$z=j@bqKsv^qA~~GkWt!0Zp&!V)FPZGB(Hj$#uE@N|clH}5%WO>KhPb2E|75P?~s+|D+u_UjM +zAa8aQh4Y}eDP- +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 +zQbn96{xAi-Z(M3sj9V|ZC~ +zJeq+kj*2e>GhES$0+R9zhDWBcOeU~Fow-r0Yvl(5o03@fw-CzHYeV6~S1>)Jp|hWb +z*EyhGI}2{i1{9PFnEAVpv3w0 +z7rtSsv{33BPCh55=FcdBH3Mb5Fd;m)CTcd!S~2>RShVRq$@dn!D{gvKlrI-4ISe1W +zuW>!HP4!;VG?=JGZc)it+zA^T$BVTBQ)#%cdcaD2_`jpNW}o+uPW>cmJkdQe%TN;6 +z8yiy;OT@oc{4!8(fv+b8&oRxgIRd){e +zsNnYd15}LM{Rt`-KS}oMzkv#2b;oYEzd*(LU!WrUZ%~1-{3oc;B7FlD^I!i06{-rq +zK?URrOU1<-sGzL>4Jv|Ljz2tQ8=5)O@e +zO%Nxjz*5)AHqP(DmDK%g)y2nt^hLRyYk8 +zp%Z7mKLbDU4}*=6C*4V29$3vCLVg#*v!*G%osK*Ivno;8Q+LD|_HCE9y_EAon|{Ut +z69e9|$RZ{BF`WZpJ;g2S5NS?-@P^D_%ZjO_Oys>=8IvbAww{9LcUGuQY&bjE^nx#k +zK}3$?;MskFbfUy>)e#si2YODapu2pX2wSc{qa)?(R`*98rK)k9?qw^NbIW{8Jky_> +ziHpK<$8*II)28x=Zp;fZ7q=IWP6NH{1ky;?n!X8fr4>>jUl*l@L(FUkG?$4DN~h_J +zf+j+~@eLi7*o*lzFyc`P=Y}Yfy>vCau6;(U4J-}SDKOiq +zQl~H@SZX|@68&|@#k!@r3DRFju3$9(l5$ZthHiT33!@Pgazd|j-6=J%jA;SxpXnkP +zqx0DJpQu76)(Vp54^&Yu^oA+`?Y~ilRm#6m1!DHUP(=#se?b+PF27L)%lU6qA=&U3 +zs=yyXcg3UQ`5RTBE^Esf?EV8)r8Ws5i&s?Gr +zNlx`94Iy5Ge1TeLhOS+yTsk}wBJ92NKmuzhr77!1O3|Qnt-w=!X{uE!TOzJ8E|@}H +zLsB+%JF$~6_COx_b}3%lKA7~knvOCQR9q#t;*H_ir?9eY_IIDJGE{x( +zs-k+qYXy?!Mu{D!bDKC=N&u6Al@4a*nc7Rb@AMjehAgtDXb?x-=&RiLJ8t}GDvHPp +zJv!e^MI`KRQ<3p6Q<0uMXZ>$eVO`?y2);lAS)6}xmVZUv+DE7EZ)@xoBo-t7mJgYU +zsrrw6$kDnK91v3x`vcXaJDB`3xDGR+v%0sjSXZoWUUE=%k4L^kJ0W+Az~E4D84SoG +zTqJf`P}rIj-b9WfpH2$FPUtk>uq*@k(I4Zdo5+{IK1e~FsZoEttz8PV${8h$>{d`U +z)M1o=o{Y*P*`63`3bIJqKf58A2H)p&0o#^4IuFV8ja6BOK3>gh`L0!`*Vw4AgLW$I +z2Mz1j);ixhbE0O^Eo`X;yh%51NoSqigtd6`dkio=>{667u +zEWq#5v=n(Qc*93Lri#%&J88G=CV1$2R{*Wf6GW;z^{O>)VW(=eQ#=1mhO~d8*;gRB +zp3;s-`(c8(q#}v{=ebErjtmjM&Z$J@Doi4TY^=^dFys%9ykO)X8ptD<$pY<7vOBjF +z#sIFI!BeF;m}IG5`YL6t2#h?*Cq{G6FR{80sFV}8@8}3c??sn>2g>f_PJCS)T9O*l +zU&a@si^mn*-v^BfBlS$5)WxdR`}>4YdCX9jXo85+Hg-rVZPm+*u2)mkS^ZoJiTSkX +zh9njJxVC0iJb+8N$#RK?ZMb}uu@|jbdEM`X%DTju2w;1 +zkRchSvI!b)&lnj1dp+W&xQ?KT7*&6FDTXB*Rw?HKab7Gaw*X{8LB}FGu7Q$`a$AA) +zGj~A=3UX-PDFHUh%I7>JS}qVxB@L3xQ^{&;u~?tHrtPTk{$ecfj)US(e{GoL& +z>a19^aGn~WY;_DV&*IrJ_;w&nr0NwbUu6lD2|Je82ZwA)KfB|Zg;k_wD<-gZPMAR>|o +z;qBZ8S9X?@?)(J4(V0&PV21YwiEVgK;q~R<#os%rZCcCew8f871yfdKgw}d_P%K__ +zV(mrh_~z&BR$SKn0%LMaNq@VIO(}lErgiCsy4CZK?X +z1oWCh_H+3$Yi$6V=JgLVgdgJ?Q@6QC{wRXxlzbe%tI8(CYhIb9(!wnM{v^w`&38@6 +zMHkrRrhK*IG?bfFqIp-^H((~#@!tM^v`zt<-Z&DU`7@OXu`Cp0{7tC(0rJWqA9eD6 +zu0xav^|&otYSlsFS&e>ymD#Zmh>Bl`lzI~Uf{7koVv}gv+=r^%h+Ku)e?s3WK@BD$ +zbHl9+Qp(C$oAs-ZX_=5eFk-5?Wjd_EQ%?~+eb}khCDzwu-$ae&%0|=8S^V7wnRI1s +zv9mELOYa}tR#_mw+Uff^l<}*epuY|hPo@r`Z-CTk%mcgzly&pI)PXQXP3-1 +zYWiAMM)lVYXw)5Z=vv#Ea*A9X*@mMa9&0-CV#}2ns-OVb +z%SQPqOt=?0Fyb_VwY=NGI4|XaYWKI>p5~+BnS$^~{=jAqNSK5)#O`c8<4iDYTsnME +z(=zgWME378NYEW-$IHH+98=O&Kc#_XbxfjyfAwQeHFPLpn)~|UE}W6e8IvrkbbFI= +zJ3P2F+wwv_8@tHtqmQMPE{$vzVom#jq)e0=T?a;p+AwPImM*y@(C>h<-1we)lmVno +zyF&9{njklUauT&Ve|#Yo;QcYAKg>l9$Y%Mj{$k-Nh2~ +zeKj?f-l~lqmDxv7PEm0dJyrB?4Q~D+quqcqk40D*-d2wi+$s3IFwj>A-Q1ZJp +zg%@WOn_ln+c7$8!1Qb)3P8kf&h}LE06a +z=U|vpi8K9Uic$7MH9LunN*zkZp1|(xEm2YO3J|94n8ICaE>%&76)l~;Y8t3Z&$WA^ +z9O=H$t^Fi_Y4L2gtXI7;Z+J4CK(J~x0EpuW0QnnMS8;TdQ}OBQW8KBvCdP&nAA1R; +zw=YQ-$o*zjkO;$rk<+^=FYop0)n=RMiF$&Es*{5Fowe_VxA?wdR!ui%xLM)SIaw@j#{gZ7MLOh5}7b3jZ<{gCq0v +zrzk&bHB{+;3XGib3cE7X7~AeYEPhZqj{F`n5nEJ=6zeL=Ncx~kV7$>G3dTQYFp0HmuU{%kgOEB>8s==y +z#I~>?gk}g%ikr}=59U7jlqc=@kSR_f?n+j~!B2H)Kq +z@v!nT(f-77!m2K|h>iIOp|-O0mA +z{EqpAxgd&;v-qL-_H9cDje(uC>$%T{Q31tSm$E?N$E`|(KK<%<0(aQMOi&{! +z#sU@Hc%8bnoU>Iqdxz;hr>jAf>o4E=aNUh|0kd2i7P#IMd#p>l+8PMNPd;p%zJn$IUfL0!bP_WwHr|r~v4LxEkLFs?VM= +zy(3c|Nji&exs@vu`Z`J0j1vmYxHK$mYPKe$m3n6~(s$}cdvFN=^RWT#;e&57_FA0y +zh!W|c6dM__9Kl1v6~X#4ReUoERuDZH0uY|abVm>dLnGm?Vk465(en>NITWx}Ezo6d +z-Zi~MToh0zm0N_`0Ih#6V(qzKsdfSlJ(nGcan-;vV^jm_kv0OC@bP&NWR2`US4^#; +z)0>@@9%@X`N2a!Y{YmHG38RT`sAvSiO30sbQ0j#bx=r&EKgH_WV~M +z3I5J}cUYEk%1_wyCn9%z5%_UDTD_NX0 +ziVfEmKWUd+b>C5H6uMKZH2;wI*)`LbIuDJda;5NUjR3Q^ks~j*PTrfYq#9hbn7)85 +zJ-OkfWynS4z&y5bMuv7AJKv0f8w&g@@gZFMKO{bs9{!iahc4N|3ng{Lio}WmyvL-n +z0l}HXL_K(73bW<28eulH?ROn{(0}ATFw@dxE>DX-$r*xm*V`RS$P2gXf+YKFJ4uo4!(4yc# +zO5qf+7e%Z0eS>A^ktfT;;+A5PrCIQU)ls2xZXPV8tsQ!W-!c8!-GwS2$6n)5E+ +z5bM|v0-R~uYS|63+O^^(8aj1>dtFxA7!_R>* +zOY<>NM;P%m+NCuFc#9DDywHw!j;WE!mpOSAL(RKdu|jtTNvUTzUZ;L^I5wR%!7SPl +zU+^LSL`xf48a_EzOUIY*^1YEeAF#;1`_}g83Vs(BEdpMr7=3tN93P8C6WVI{YCgAahbDxlcZ6an-Hi2x^MQA)fT( +z8b*W=LFgGwF*oM?1kzDWGFrJW%op4q{346D9ALX^ +zH)Q2cGf5Jb7XExyVX18GmQV=Wor#ZI0nhFFQ6=qTiwYMNvk^}1ApiM5Upsd1y#c1T +z2`l5l@JLx*|NgY`BCxI@*h;j)(Cjd48WB4~4N3LFNuC2>AMvM2plpJ*NIon30_rod +z9XPbdUs(@56@*w2@d)?`HpIK=I_p^L#h@6?+S&mLZH`_0$8d=20>ok_@aTpdTy21h +z(r_A*7z0b(q!L{g6QL#|!N9}wPIrAmiLs1+j>uu;d7~w;%{6AHh;vk|_{RE_Q*$ +zBAEGE7F#zbK7llA&KuSBz;e~0p^ZoHE$fk+Tpd=@zm~Y1_W-*=V>W8h)Z8vA?TP$$ +zIk+6`(#;TSL*-l?buRWmwcF_kIH52nLE~l-F%n9;M{~B$J1ur;Tm*S>O +zgPxuTgi!uf*hj^|i>n#{wZh&P$s&rwAtE+dLg>#Z4)26s9*B-JB@^m#N>%GUrqf*K +z?N=X1m${JV02=N6-14=&s;#tJa0#q9{Ik@0K4^WO_R~cW1r}olWBM2Y1`~%51-(y6 +zJSZrBTJu=RyXX^P7>S)6{Dvp~xi6bxZGu35OpMUk)Ts;FO`bzkR&41*@4iy-2ydc! +zBD0oZo9I(*XdwlMp((IqHgL7hfm=ie?T3mmFnH}PGxPO(ml<3^u&UTENI7kEcR-P4 +zrIgT>YEqtW#+Tc-#``ZtiBKp;1t8AXht&RrDqT%P3KCI6No3k+b;yRy;rggdRV8|F<%6|f+%{|J2FRbjB)ZX6>MNum#?;Fcd&;WFa_^U?O;NQTgOJw +z4{k#(3oR=|)=VWAT6c?`1j1FREVV!)0Bw8=h?S=xoq4^VZ}$K3_Lfm?MP0jSp{0UW +zf#MWsOK}Yjh2l^s#Vt6+9f~Ezi@RI#;_i^(?(TsgA-H>z%X{AOy`PM8?>*l=XWTzK +zBP(;Sx!20tYp=QXe4gioPkcV|s!i(+=^WI{>mY5gq5C3j7!+bybZ+}jdXW4}?Rm`g-%+7s6DIU)hq +z&&4D!PtrR4(pio_p#~{Nxus60II;9vF +zFXPu7gm4r%m3k#;p}~k9mJxD+#tTcFJo$;PTgI~&i6Z<_jP#mJU1{sDh@LbPD8^f{ +zKBkcpk$v_hk(P?b&t1ZTyXALkWgg~hTXB3B)nmP;2j${O>q2eKtR_9HBgtTJX_1B(ogv{RB{O2LT7Yq@7dCdwFfp_EkNwSuBMT(B}8^I4x+I@b` +zrsDv+cR}V8n^x^p(Je1u%BaeI#nw}ClM#>THW2gILNn^hGHZkkJS=^smG!)X^c&>A +zgQ;-I(!5U={ofM!khjDY-rt$}cA;9F_yr$R1<$na(H@aIeIgP~>d8~IS(A_DVl9=~ +zZO;)-%QAwel$d5p1%%WsYV<8Blm*NC&(bOU#qFn^BO{eAf8QvUXX-N*@u=(Nl=Q?O +zy3}q5_th_?k@#N2?|SB^U$Z(`>MHtiHxO34;Vk+mTwZ9uD}TOiVv5(-00DX8nDFLD +zpi2Uu{p~Z9r%}Lr@4NerMox1fF@d;yjoL=)UFwZoS?(tBR1Tq?O@V{K8V_D~FR5nv +zdUo8LM><=MRB_l<=0S)W3z_gou}~{K07#xcmS9#4zW`b`C{58I +z;J#juT@=Mnl+@1~9_>Ec8eH|WZcgy?;*%2W7<5v`4Ho!cm-ZlpsN|SQsS42lF8&1= +z*=mI +z|5Mz-QQBkGZ?GL&WEkT0#A+&3;pjXdo(67Ff-%- +z&I`j*jz?Y{aQ%f994>V8edlNKcFxDs`-&GeNc8 +zqGEy7iXF)=t3#HstC*P^bNHk7oxQf@((m9rKF5a7+`_+|O3jk_B;7a;OirdoV!O(Y +z>^~Dn2`Rn3#tV96&TCWf8F0j*v08fRMs*zb?y~mH +z{_TtttKSJ8y9(#;i`7fq0YXW;zLB)&r~09ATH&-P&5r3vj{iGtk8n0dp$9Jbr1E<) +zQZ^JLv?basFy>J4IdVEmURq@G`l+#f(}>0F2T)?yT*sU+`_^%nNmdkB48FbX@&89@ +z4+|DYiZu3H?#XcvPgWhX7%HOQpq#gSk6y7q+;^u>p*2>$wH{@h_IU6!>?=G|KrsJa +zo&o7Phx%?LSio?x5sS-B*^5jTb?!=qJ7#t=3H32PYm11Z_;BYqv5vZUzv0&IdA-@hY2j9$oBT?F~HtRu`D1!h4KYXTG2z@2H&o~w7MUCqTmX+^}HV*0mm(I +zd+&k$e`1X@jfmRVGq5L%Q4%pBoS%V&YR~QS*QUy3o^r&Rsn$cj%x&+!*nYq%qcgcn +zOB};<)mITFGOb&cp>J`)i+4PFl0~JMBz(Z#lY$wpa1e{^Aq>n{`9GrUK`-x|q(&MW +z9Qok%C)uyJ-;q)q5oy~rqs_`bcnl6{ZauM(C&Qsx!Ycl*4_89d%98$+J!uXa9+QBH +z^8;!XqnLkQ;y8rtrfm+t!_%#H7w?r+h&6W12~^SlQqg_Za@YvS?xzeaQ!$u_rz;rKMsNZ<|YVb|gA6k0?%Oq&;(= +zSY>s*pgV~$;4{__JLbuC{5pB6mz(suN(o=lO= +z^*Ijc^jqNbL1>Dp3PR2hEeqv*fH0f6`znDvkp?7bL@K{ySND(bPaTn6wl5lGu^raX3d_to7d9 +z?t7g)wIeaM4cXR?cHxvK1#hN%os`9?*CxfIf`MJNan47gPiBvqt5RkR=8otKZ?nI7 +z5qR&+{bKZ=dT?P@HL+gI&^}PfBpBb{sM#t;XXA*EPA+3?-d---AW#r%i2@+bKx+?zITyox%Lq7U@h4w6Ml=vVFTFG#)z +zq+Nv4Jxe3BT4oO-;wQmRc*M)GL5t5UZtUZSC!q6bTD>(gVe)sCY32ioI5qm^0k8AF +z`|Dpn$#X3PpW@PYInvDB_)u8HNUd%5$;)|b)bw8w{i +z93N&32=tjrXFo3V3=m!fpV2wcxHR|lxlaiR9B3hm4Y#og)a(^he&9G!sst!+s&=yg +zuYJ!~3x}IO)J9OS=BiS79i%r|bA21?60H7qmO}L3!CDMd{|jqzZS((twcxyPoPLbO +zRC#I2C6OZltVSXT@`aMZLgWU=dKKCq+{F36=)8HVhvDe@+&V)FF6BUL8{Yw)!jHji +zTYY;xonNndXI0kA^Ll{t;m`y!FbmI0>;L#bYg^vcPF-0QI@oxz@cirB@qe-YpZwr< +zUz_)!RpEa!o!$L^Kk>HipEk|^GJOL7S2e}|ER6qmhX?=T^8S;TL;Zhi#l4xX?0;<5 +zKhJB>{bwWpy_WlGohJU}5>KHKp8)9Lkl^yr04OmQm<1cH +z{phY-`H@$3_9Yu5to0KuIu&!2`owd;=p7dW%1=)I!|fK;H#64eC0hIv(ur#3lg#M1 +zUZ<$DCO>qt+w;<+Dgl&)8u~gC{DG-8)3M|NdfN-&+Un8qAzQKDe>H-Ixk67K9=lUC +zfO!*t3R&9@vDCsz_NHq|e^aGQjDI?S8OT`(#=qxA^~AxTU`*idM3q(;!y`IV{dq-+ +z8)M~-DaZVmSw4viPu5fFM;`YX%j~5k`gpka(i&%*?@3saU*klicF^IcVBrUSzaYqf +z=CcU?XuS2>b;M{@&GYkNAK5CqpI@m5Q3%vnCR0LaMxzzxabO?r#mm8Hk1KC&BQra~ +zWl3-tWK-epphrguup~YBX&s*=B@Qsj{~+TdnuqJI^97))GI<7(>M}Xv*!D5Jt%v~i +z6SJmBbW71;DGz2vZ4V)VACmom7?; +zd`-HzI{AL^b1h7%IO(gHGrAEdm(f^lhg4#j#$U;*N&2RgZ^`v{sLKcTAfW2V_>No^ +zK&MVbmFoR7Kb+)dv~D^& +z!$DFG!5jY(z&UHaclSFUD$RDQmkkDP~($wpV506}akZNHWEJHwW!eiVww{eq_7Ey+|&zHWLqW?eztt@^F +z$hI(@SW~;8J!SW$Xoq-{AVqKpOqRp5+(eyV$WR7qZmcvMZo@tJ-bUfWL;Pl!x^)N0I{&uU8MIL%fO_>6rw8dFqlu+g#Lh +zIZ?dBbFNIyJ0cGs9ao2Sk>k;e@rw4IBSavEGl5rrQQmmxGS)C3jXg&*&f>@4v26l2 +zO4TOqa($oC^Flwq=K%%5#6{{E}b{=?oa^Crq5YoQ~kx!+{!K(dY< +zujwawh?mn8x0@jGFy=U1Vr&isU*bcf<15_P&Q;0gVqYPawMDZ6|iT1Ng-{dlVzXibVjuBSF0 +zE7Y8#J5sj@RCUBUiGukbiboukN)~^L9)qs5RgOH{(Df@Kzvy72@wu+8^A7FfKI={$ +zu4zzXF5L-&MJ@-yK6nu@))+F_)%ZQk&8c?46FRp$A@p$hUDowWc2rbaTIkv0`Wn}# +zsn*Z^VT{`|&}%j_kyw=7K3H1c`V=*~a(rxlcy(0m)&g8P1{-2y*lsc~d38#e;FpDS +zEOwo&o4@}YqOaUUD^YgGDHyUR*4KM}k*`By&Y&2zs66jp8s*V&QSK4@xLV^Ls1O&G +z!|f~C7pa0Diuf}dw|RmklrpFFR~e{y%MYHvk`h-TfB$?{Gjo>{yiVv^U(Ec4o^j-o +zo$|XY&RCTwI=!qjQ;sZ}*nR_RP?vkpwZqV;{MIrtjDCIQ?jjN_4U_0#e!qH%If8(1 +zz{P~Om)5C&0NL!DA1j;%Xu{Hu0>NDw+=lc|cZDBaS5$dEI-x}r5#~p8lvnGqRH9l4 +zR_wJXj^#c)<)E+OrP9YIPV#od-(#Wtqa(0pk$7xiemlMgv+g4J^j$33Z((ruxSOj`n`qF1`w0|1t(5l%FX=`@nlzn>V&&97dud8DvCe^o!FI{6IT_d5_E#8tqle(Q-ZJ +zLSW~_)LkS5j|0zn<}z?=WF+&wb=-(iKlbb*TXN_UMUm9j&b{ewU*Y@Euo{R@3Mb^5 +z@7Th%J7RCB=j$}W$&#KVU7!bnQtC5BynbgPyxnSaGb&E$xE^R{fUDd+m>gIxHrC^0 +zo+7p0S&Y!K=A797@aZ`INPXs40f|Pw+L5RtDHi7siCW{U(I~X-*4uaNAC4hmKZqxq +zf6%fSTP_kQS0U@`uo#~L0$qS6S1ho^FaApM_V_q-(KRaFZ>&t18e4|5v7;&r#fx~3 +zjN{gwUZf9fQyAdBK6WB*9be=HBtlM(kkUS%kB+7FMxW)gJiz7dPfWzqH9M1ix$L_m +z^WFldSxOJD0npsPu5A2wU07IrBlD$rA48e;vm!&~32ADNFH0Ougy}RK{`RV}2-j}L +zu<1WfC;V)R3fIO@B>PDYM(OM+*X(T--(b7&{mem%3(K{|Zu?3)Smk^bTK^r7rJ*st +zhb1am46{eBvHg{DGaRzGUR(a|;t?egww{}}`_g7pu9#Yaf)Ih%S%9*%opFDqQ0+(^ +z0a3j~u{W>TWZt!M4}?^FG#@SppF{5=_c{w;n6+W>6%po4sVk4iYj+g7*)<;G*8%$? +zAlx!&7%{{dOk)PX!nW&RY;kuI%s6^LQCV6FglOpBIS(p!h1c2P)qVXkzVUssa|GEe +z0Cl;>8igT&xLT`SRD;){KZc(N=|<&sV#K`7*2-gI7ol=p1N+Cm_kY2!H8a8uPZ#`e1IG5B&88^h6lSHG(khB}AQ +zalQ_miXN%Dh{V7OUunhw4Idddm}~XmJ6uCAKgT~?$B@Y4Vd*HC2BBc{T6n10{r2=6h3dZ +zLX~`>XMs5bpQ+ndW3HeJ$D$G`PZq8)J~T}AX$FX$Fpa0_Tx-($cUZgV0nrNb`-5^V +zbo&WtZLk;Wcu0K69xH?F$U?K +z0f{|;Xil_Je|+*p@m4>uu@zHXiURfos=vyxTt6j>^mgQ+j0N0^4jzSk5+T*E!_%u~ +zT>^;Q?kgQ$ +zGG4Ts{|rp0ssk%Cmd@MG+KOE~QK#8?WB(bVFusr6I;2{<^bks^PL;(i9&dCY-58QA +zoTY3Fr6KZKq%&P#hV60B|GWeU%J8nB@J6G67YBAO{?;wGsp(YYhiJ1Wy)(_2kll?` +zN)nwzG*f9T234?^yiZ8nr&O|X`t{=>#51UgY=khmrM>lbbQH4BKl3SMT-^@i4%!@r +zwK6FlpN;IVpk@@^=ih|o)=`C-kCddY?77YlvPF7_7w8Bb!`(H*cVjDmOlsZO-qMV< +z<9lrFd_3&@W_!s7dgVO=MhA=j@SKi%{le5|coxR^W=WWH)H@i-0+FHvq6xgG>oj>u +z=6P|dl7Eu~0D|6v>knm%hm_Sw*|85Tom%f^N8%2nUVU3!OSd!h)XSd=>YSSb-vD?l +zp+8MpXfBT^BgYd-diwS_X=sO~5cQb%Qk$t|c|cyH;`1{AzY*a0&<(>x8HDS2{T=zE +z6LcYQ`*vh;)F~DTn|gqbVL;r>df(t_=y~wc*nOEQ4{gv;y>f`FQ(lZ+YN}_`uUsy6bY=t2wO8EKn0j +zKymsw=)ng&M9s*W8$ZtmB7c+Ff>G +zsD$f9jgsuS%6+9KpVC&7RLmybE#78vUg%o?dBqQmst6j{4E|7eVX+4Zrb5}d&5tZ)mof?h`Gz|KC*N9;W%mfoGw~)uBnLT%@xu76$9QZ +z`jO|RXthHQ4v&t~dKMX#52l`2MBj_WORxy|&IW+Rmjsg|2RBoXF#8y$1?LAf`3pJ2_~C)Sl1IfS@P +z+}JvtG3!?XA9LRJZUCpP^kMk7vMIM8Z=IX#Tu}SwOt|97I#>5LKziysS840zc@b!yqg~lLNaMO +ze`Cm_TsC*6DttRy`pd=ts=3OVI0Sg2aCZv8tO2HN*~8<*wjca~i*TJEq8%LUb{|#C +z*`@*VS^g37skFRvD|1~(Y=#c(_@8B%!*J5FiL54id62g}$jOwm&Xlue9%QfDhc_*X +z&(&U66VfQiiqD-)Qt?gMe@U*nXaLbh;wp3bkP;t7_vqDed|3n_*p|H}$$=iRf_-F`MY} +zss~$I08yhwF!L$(;C;ji1buhC?L35FGUiI}_R1A>ZbUJu$mMc+q}ItVuTHRe1Y;_% +zqms3>X=!nSD$f0uK;hjqn8cNKNlzWLN^85Dms-#KW{3y6c-eKDPa*i0rXW+;ctxEL +z<5*ILkA0^E###|*T?shplm$ptXP!S?S#_`>x{?nbh{!tV6Gh=%C$y?+EgT%|D2_Ux +zBJ{mPGKJ|_xe2WK4Fl(leGb;YGD$rK1mD~II#OBF8&&6!{ +zM&R<+{;1oMm!E8iUo+Ln=7W(SYkrw(LoI?YCrGq03c)~qHgR*MF*j*a2(em`g<{S& +zBN@%L%0s$y$Adpc!JU<$jbVp|!bl=pRG0h`BHw)WEb*e>(iC>AmZCUlU85;_GBu~0qwp1N%POf44>xH%a_M9%V2TpT9!5u*=dCup=lmb^k)j?d|i +zY*i`NUssoxjEuJI&40+HB`-H3Xg>K_#0s7@#_?tRqr**>~u>$_=^id5FSgM|vXME1pV*h03yQl(N +ztBKGb_2rKYt#x+uSV^T;C#9wjEE*Pmtg2|+6x#PfUQRnEKM?pW|5Yxyc^_-ht>9Z$ +z>{508ol*YZp-)u>akLD~A58_wt)QAJO1eWf1b7qvzUBlDLJLhBMiRZZnEv;xv6Nd53mv*(Ubae2b +zXyj#wPX=G6ODMo%P%ik0fT@27P;<^jkQ%e{+p$kO=6JVJ`$V{(gx>qB2mj%0%Lg{= +z1iPD85LC0>Dc+!4le~_JWgw=z0d&Vja^1(%lEjO+Tz{?7r0NR|Yw3=TEA48r&4&#~1NxcDV?o^s*4+ +z7@wzuh8?#N2nADL@ +z9eOJud>t6C^;AL;lNlJ~)n72a-pL&{jn2{~L`LNNu0Nk%o~oO^T1_}Sg;j1Gtlef{ +zY;}ZSGv%Oyy1e;`b@sl1WU06`iUeq2k01Y6Hl-1jDy80fu*0+QmsUVqD67VNORKy6 +z?Pf<=@s=th#k{4HmErZ1>OBq8mY_+;y{qqjV&`MJ`nHFO>(MpT307todlH_@KMrJh +zxg<<^hq0$Xj}+iDW%6#b>^4Fck0-4Q*M4~R0ZHek>tsZX@ALL$b!yKk?(FS}n1fiB +zd)V-i>nb@wh2Eba$Z`wcG|{vp>Su(*)#Homd1PFg^x&%>psf<6XiivIM-pJ!BZ|+U@aJ)+{IAwc?#|Te#%gC{CQNL{Q|OpP2ZSH)zyW82*3*}4Qd +z3z7R@o8J;CirSz#DsL@<5PDvpe_bWs?a$|H?>EtLH2W3aMY1I>6e=?Mtrt&jDyL4Q +zDd@~UacglCN4pEuc^tT-tToAEc~`Du_E*jEiF)JnSgs+Z(%v6C2ddbu^en2XXX5pR +z!LEbqJW%6FZMcrcR=w8lfF>vSbj!Xwqjjo@Gj3R08RcM`Y#C#6Gppx{V{ubsB9>%SWrE1M6j-s+IL>MAhYqd^Fzmwz!)%r31>7z}EU&@r8xig?e1d +zu!>FWV;d&)2Dv)(IH2Sz!cMa?t(P^k-$2;QAEwrpMf|?+2v!j*J*_F@-3bFKZS^3%AM-5NU~BgaJoSuEcz&z-(2SB=c?OSRL0)XbcX&O+!>ZH$g`Y^wAI~%c1P$ORBo1O +zALML~$X?1d2~MD*4t_Zg7ZiIz%3|ZwN|vWBy+1$rsTWv2cm%Y3i+-05*m03pv@LA5 +zv9OXySr$qFrJi)3{hmF6Z@fUdhQ=sYf59G +zgVd8<{N&4Qp<`hpyEyPEs-|@BgT*4=q3+v_b+-Y2jBkGZr-9P7S^3(7qpsIIX +z>T+1@2`8)HvgR78gIRYD*UedfAFlgW1=`Xvh461J8bYwPASa6+HWF_NTMgclCUk&MUYIzE_vMCF|k?urFjX +z`WF*TvIp5KUZeFf;-apK^X_iQDlWhN(Pefj)>MQ!R6{rVyfTx!^=?&4y@KV_j$?Cj +zWXKE&Suys}XLrbap4P6bfS5<;r_?_@t&{)<;)7?rdSQ2#CFVKJ6r>Mw`cfJC9J!jr+> +zqY!qE%hpIKnIk3Ldh%xVwUKSSEkRlf`mGCb&s#4YpeXEOu6*I3{ijS*YEb1Z4vO1UBQS +zX=`#c{qg3Vp+4TnmgNi4<&u0q)~ +zKI3Pqz$2)z5Aq(Y+`W;Ox6@<1>1|KY2@F~1)~)WDnxD6AiM*JcQ{CrY7RhzUf +zX_?8WBz$da?2ui!L5JJE^DSj%Abn3P6q+3m8P^v!dZ!V{XUUg5Zr0mgBfU7mq#N)Y +zG3+3&a5*D?w661g`@z2&Cc_BAR$;7a!gnW+=QEk>^kCA-a=#DYU?|zcm$|= +zCKIb%|JS7(;OkCM?jie@=u(+T#N$np570nUU%oQlMOu(x8npa)b(bj|9hg|0{`=x! +zK}#EmXK}XV!qQe;G;S*l(AF*|cMg1`4_L~%8HTu_1FG#}$~B$&Tse?a^0*s7Jxj78`DbE=#zT8dT@gjV-q&d-fJHYg;6dY`J`dyjP +zT2I)vEv!2~enHAEhpyLl$oz+v@IwWV@eIeDTbSnpQVTE{k*60ditZo<59?S6b!XTN +zwx^iMGaa!o4R-@dW}A3RrryIUaPxzqkQqO(#ZPfbrrpkfqT3omQ+pY%xIyI7* +zy6Iken_`iJ=I?IqkGBYI&U>B?-fm~rH3;=}Po!x?b5yk(dW-NGH=jvrJ|n5UXLTF +z!(QQU%91qY%fb-$qut}BS!_ijj)bhHOb7S7)Td#zrZ|SDLHks^Kj-e5uY+vJc`fHs +zLWlWapi=?>%;;2+2PWmPZfz6azz=u*O-{pl-Oy(~D8Ra5g6!!gOElMwVoO7nGwr+N +zc@M@*o&0H9evxw?e&&fON<6!@Cpus4{R_*0D>(0lk +zd7EKX*vyuCW;IP+WcNsn93;3eeYd$$uYUyx9=#-s5M2_+qCG7(`110X86MI?qjvh^ +z(>3v%qzV0$l4jWTZYBf_uAj^~5K{gLz%~@r&5hb@e0$;SW-JxJQ_d!#c9hqnzZU$O +zG!1C3C`{F1nntAiOy`Q<>I~|;GQJ%WO&CqQuldG(WV4eO)zawBeLa@U39xC*8s7Zw +zP(z}VL~%~r*tC7~zDr-BQ}XA56I7Mrk*>x1aZw&vn@gR4bve`fAqv;ooQ&@#bfh$^ +z$(C3&ItcYk6bys><@Knp=XRhITN^|)i^Hm@hc@%bNAin)T(9rz3Di +zmsH|^!$Eb8wbTmUm*`=0gUhf)opA6q3@NAd2Xu2Mq3u=;oTO7 +zpXry?8|n^jBpO!q<6nAOV@T6lhYMyY*Lo*_=B +z2y62RTspGTxoA5W0Uo8M+RdCK7Cj-)^nRSZ`cx5lec9{T5t;$57t90-IG*5w=80+i +zL^-aZW@pR87krBZEZ(2r6cX+fm=?vbpE25PZba`{?q=w`No~9F4eC=Iy;9Z +zmXYfDX9*PQItUeymwD!+TO8Fc71mS_7zcq4mpr1tii5X_pg=ZEER`H4?qoG?*_LAt +zN8UTo^L^OK+YHiq-~bZ)yJrNLg-?Cs8ylm4`5inS*m4r80peIExnC%F28VvuC54ak +zPK&nVyYHPGf-gbM^ZSM6sR7!9wlIxzb>>iSasI3D#|CdEzw$Mce40CG1~qHelNM+L +zGwsHU#(J!JvwMX=fp-Q8U*&2VR;K}}<)u~t4a4xz%st(ehUn5n^lu)V2PN@lToHO2wj*0VGJaOnf%d|*L)NS1H>^() +zy{ndsg9&iYW#%~-rRX;2caxhb%wy+atmdq5$F85-mTz4vvr4sr7x4f5Nxo2S&N>yN)s_`^xK3|q_ +zutInuvh{2Zw^`M*K18U|I1C;%BEoW=q;-j)jG&YiyzS7$@PNX%6k6h)@gODa1hXD* +z=z5wrS%0;yOdPX$li%mdXf9pODLQNDY1dbusXuyix7Qkr8$G(xaCdBq2+5w`J8Rd) +zf3}p0!+7}FR3~z>%4+veDHtu`9fY9tGQ7boKo#Ua3)OB-G**!{yU?1%=ftQ{K}R+>JS&MLcrNG;?J;t87-`&71^>gwd0&aWyQK9X2POxiDX*(C6&iDvru7(}BF>A?17Nag)YY#bkcYh70j*Vo?52uD>d(DrBiZl=+@ynjBH?K|^~&e&BMt&_Od8>^%qZwGgu1M0bo49*%@dvqrhXF*VoPq*|9}8`ID$}<1(yS? +zr<#t|-E!WGDZ?v4GGt&&^a%;^puEz!hKvE8xg)QdPUF7Z*kxblpaz6qxa=S=!~2l> +zPgxnmrl7}b{c~|8xbT#pl0YcsOz+OG?>AEIkMpT#YoCaXE}*vL*39!=a9)D)=Q!=R +zxya+muaYgBvvKMv>$fyv_1|_sZ;#%MRG2;+H|HI2X7|p)mquK!7S)tfBWnM2Kt&-( +zEacNNCPMYh4mU$m%ebKTV9-j{NkHX_&9loJ9dZ}RjrzKcG?OsifpU8tz+Qb(NuSf= +zu0!#a+*Nw`JK+<>(Mb0hTPJZ4qKHQGM2DP#-^5$AI?zBwKT$I}uSs!q>2y-Hg&j`* +zMoPRKV2Rz2yZC9o%m#&*gZMgHA3j>XVErm_q+S@7So(=)0z=|D?P~aD{^_U^NZqC% +z(XVV9Cjdv}58@43dip`{B*^3KOpFgRR`sVIEOkIdoLSr|Yy-PfzJ+I8pqm +znOqlr19Ybu)w_Lv=;SlF*7{r#VZ2o{{9NICP9y9HX2+4&bmVDV5dPv+uKK=_cMnsm +zOZa0`s`L7OZ;*z!#t$pvD#{7)n*oeY~TaQV#2+|gS5nN)W>ac_EQaY49JB0@d;ZR|Vm?R|*_2)J64&`fy(wobc +z&M0pq^@_0#N$Y|z$-tG5ZCRZys5Uvl;2fy$>jvZDfMf +zgS5=Q*f$MhI%@)h@xPP2XG+g-7KcX$d{zqL$G0XOn7;=khhyrbH`6_5o!!-R$fDg~ +zsEfkF`+NYRi$Rm+-Hx|D+^4dq%0yig#p_Nhdk#sweny1E-KUV@toRn|i_~gJYsHkE +zX9h&GrPsZ-ym<-4#01}SVLNjKQJ+guBt2c>Hm}Z`Oz~Jya;;H>5#)0(_Wtb;!mZ4) +z@;A~Ud!(=J^krjaD?2IWegvM}{y +zv*4%K`*_6F*wAnW)eU2f*9}L`)D5Gp7Pm-#EWSS(dHW~SlxGf}+yT@RRe0#=IosC> +zu?P=c*Qt9Rk!RWoC}FXhGK5vJ(r)U^NLGv2*DKfTHx3>R_Yyeo#xnBJ99%DZk)7DR +zc1=3?Wv;2&QByZJ6~a-fIqrMSJU<-Mp3BT&`cA$snlmJhhdJqU6DpBhWEmc+m~Ol7 +zyq>Savz&Ii&j6V`(iDgK(pfjV;d;!or8r~> +z8+hhByV{<5RxsC6)crf8m4dD0V_lgSX)v0ki(N@Q?`8Rk5@?imd!Wcf41ZQ{yXUhmgIaBBe*KPUnagAXIp>N +zd%q-n9g4qv-2DdhnTHrJ!*R^$srQ-Nd+EVu=^&*?H9wod1$}KWETStrvyR{Z#*}jo +zNuKK)lSke#d9%G7Y4MxS*g<>&CA=tsU#rRl)S{*R`(PGcU;QVGGO|tQRztNrNE3eB +znm6fIyboxVE<#>6zG*GSo4sGZ&nn)%&8OyFaosDclhR#~`u%0a*@nlpvuR(yg5&J~ +z`%eMgYOE9@SyKP2`D&tcZ|xh7(*r0s0+Wr(j?Z5m?sK!?zjR$+f;`c5M|Y4&8MuEq +zm!(vRsh*-OLF<^X48!Vo#v`;~%{zLv5(>ypL+c&b2+VEJDyA?UCIe%Dd>CQ8zxRn@ +zuVLrn(lM!jUl~bwW7ZHa#ZUCOBp7cz2uVR)klO%#yJf{?62EO1fuw%#RHK?>J+`y= +zjllwy&l)fFzG<9k{{cs80aJBAw``@}WZ_qf7!^|bKfx#w?j-QdU}IB=!xdZp;V$l# +zU6%9XScZ$K*H29Jx$-hX*7Kx$oB&l-Ts#4+Cj}OwoLS*+Hgx999|c)B8FS7Hu4>NbYpz__L +z@@7KAxl^m-=G@iU-55_jN0>?f{cQmY))?3tl*y_Gza^ShHv7xtE_=Ws3LboSwKczJ +z*8X^ODgLpFkdu6h*X0n4#aK62eViyJVFz&=(_?&JOa?k$8lwO~*hFE==s?I4yW;-n +z$0zY +zH&p47i)kIJa8}^dAaAzC8)DhS46=?rd0p#JwxCwGw9|k7rQ=dvB0hE3O#2Ucf$nHv +z9+tgjPy51~VohF=+YXns2?!bT`QL$^37d0sk&dJ&xxcAFAsH%vVfu=c4F^@R}_>%`)!tH5?pW)lvTj(iG26 +zU&!968=x}sd3MrirUPs&?HyPu$zeJz8X=hdq+j0h +zN>5yF`L&hD&SuF%n6x1yOBj7!`GP3qCwEsTO%Itcw^ZYvL920#4bk$*diC%(mrU%$WLj_3Mr +z$Qe)Cs+rUW(r-(3YV{u-=3fj;9Cp2o0kZH<#eB%q{kSQ}SfF*3zyL@-jkJk4_Wgby +z|E8tNS3~^>(1UBDf$a;8VK==#U3RmKZ{b*AxA&nb#y9Rf%)x*z?Gx!^Y%zANPAD=I +zQ&~!1wt@HUAMu6;;(Qwgx_9QK!gk1&8Ru-FR1oWA}Qg-#}fsONz=>V2Un6PLI +zx-b#m0%@A%)_Lh9he$T`>QoDM`%(b%6PP=Gau(0#HG8AKQ&6sa^atj`5j6Y=eR1RD +zwgeUFAP0j~;HB~%cIZw!ke?v<{1B|BUI27C7iBlT=><+ti>hvlzP!$2u06(_7awkv +z57*kUur{8jU-?p6w75fo0>z;eC|*lj9rz$6SzPpv%Iyhg*Y5nJ#Mf=J4Nk3H=^CJI}0HT>pfN>Qjs@V~IbkIxiVtT +zCJO#dgQMFu=h(Hum-if(!wxT*otySv#iY6;LF)(le(et{lup386VFRNgeV&HU}V$% +zuFI$HE8-pbeUYA1b}76!>$LGPwQ0=92QI_mWM;PM05o>G`_C^+x1}xC<;d|a1mRHb +z3xIz_EMNY)gMaRQb?cE95li&B|PA1n(H9Xh5@+frA+Cy4A0C-1i<}g +znn0tsjX#T8#*!u$`7XvBl4lnA-i41yVggxjCk6$WD!D<3Acx8Db9rauf`9vlV +z{cjKs6w3%t{Z@F<5`s_XuyF>(qg{9K_h@$j#x)&;o;13&eXpW$qG&p4e4gQmTJM3s +z+Hi;e5?DSjIGp;G8YJ-KU-6^SVLNQ8= +ze(>mB?(}hnAI(-oCMtQC)kZ@NUR&LJw5XUAK)DI>s`c3}b>Pw*Z9R!jZ7+o*+iuF@ +z(Od6U+aNkLyzWOm>kk#OX3>WM-mO3b+yABzxB#Ul6{9*~m8&|tSWA@PT}ETSFyiJ| +z>%Q{U7sS)K7HWklx%Fwc%2~6*2BPC +zyZ`88@BRtv+VyG0>fUIGGq5-eX!R8w8 +zfRAMjp7&+kVu54NSzKJN#2z$+>Tk-poxrvY&ZCHbb$B%y(c0ToFa5(f4xJJ=Qy)6p +zfQOy7)3;S`LA=7pkHwv~fGeZE+1silz1u3?Z6mO4e^^x#)uPrz;~h)o4oX*Z6&J|5 +zeI20^Z^R%JW5i$+XVjoNP$h^~T&2qn)jCLmYRP39nSGp?Kn*h(kb?k?rFa4Ce6CtK +zj<&#?h++eutJm{wvV%(wz(oZ6_x(faJOrZM6y*!Qye!gq*9Q6dfUxR%Jgh-1v#%c< +z0aM!qb{=$>R~?tUn(u^gy^w6-ZGZCi4n6b`9bupKufR-4Taq&fGvvDek?-}%;cCaS +zwR0!#zBfOs;L_Muycdnt1!A-n+}3n~!1@FBdk*t*I=pq{u4sWLEH8GfWwmJ;xm{I! +z@}kKbL!e8!@e|k`8on8OU|n^bDMfv})f@Hn9ySFvcyWeZI$9!@*xBn*@bU0y|H$zC +z0TB)E%yPl;f($!*IUO}AV0$@z@@k6xi|CL>AT$-cu2zwUmS=~KIx~olH3Xs@f*2!M +zMEF^>-~B}ySkpSf-@4sT^r%T9&I_{beO008b(RN3)Va21{meN!I1o%+N$dFId?|is +z93@uubu-g^w$N9}7WTf0G1hL%Lwa~Dv;I&Dte1Rgr`o_MQYnY5+(I2`M5WqZ4RhCn +zrXm%6t#|(p6D3{1_nO>zQxO{coHp?>h~D&Cvm8}p$xQ#1i#3wC0g<1C)g~@dS!~cP +z%U^Qgi^H(u7Ts#-j-THmPQ_mo^pl0Z1lo_~O1eSpafV$y#wqGBDiBWY_?_SCv6Xi~ +z&&&1mGNTU?{`r|xayzdq<;N!J@g^89dW%C+ljhs-Kd6&mZ9@iwgnhKW{gZjkLvr7x +z7BO5*$FZ}wvZd~oltU7KdRz#XL*fV@p<)awjvqCR-={d$EoTCCFQ +z5A0yM{D-`j0}BX{Zx)UH!!NL?U`K)#0uYl9fwBvJP2`f65v=fHP77&7NHdmn+x$3* +z9oIqohibM5ps#Z6(&4>#u@6I{BQLaPkxpf^1=>~oU+aE-%)GGTN8;MTa;#wr6*^VH +zmLl|Ht>t4fTC<8p23`$_?8I1}5`(Ko1BhdrVa-8n)5ER7!|ll3McNh8hXR&E3d41z +zeAnaaznJ-_^&+9=;$|CGJ`Q491U3EE12pOZ67=HB^x}J)4YSsLsRy3K`~a=*1(I^! +zhxtMS$_R1vPe%ypUf`cQ~q^nw{>d2C;& +zXH*8&ZZzN`J_Ee0p%PWl +z%2m=E!vQL_ZJ`nhb1a~e9yKmd=`IZ$mAt{t?SoPydaPLeBI;7Dpqe5*R<@h-h~c`_ +zjsaG`_+s{-;Yt0&OUVr{l{7g-bp+DQH;pY1Cc_|_I1aEMKG*hW=@n!a2QL2l0Vvlr +zJr!ydA%S?B@&zV+oi<8@p@C!+iieN5ykS0yl%hMi~!b*&1Ovn9HSZ~#L +ze6Zos|K+16#WF-|G8fwf3E>}i>a2Nu5IpVHZhZ7#4;+cTNTb+RTXGU!z7A}VUl{f= +z>)Abvy#r}xP-U%Z0%s|ZcU_r;|uH +zhT)q@G{MK3GF6e?pd-Lj=XzwhNxeW+@2Is>XAqp`X#ucHGHR>s^t8Z5V6;CQKnE4*y6UDTNMCovy@YR)GN2y7fYyaE_ +zwWS1RtZfSU=+2;MhB&z@hq8bi@LL;ozdBwj1MNxpOpqTil +zD9?yp#YX979z^Agy!vkX$K-ag4|e9wH2#!Tv5zkM?isZGRjIG7$3GCpbw2G2MG2ri +zNQyPQxR|#wlwS0=RoX-Ga0taf@+eBKX65bvCzW!&fWXXIT0NC=^8nAx;?#Okp)shf +z9uT|FvY=Uw8K( +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 +z9N|DKZ&WmumYaPD&&syT=WkM>6+#Wzl8G +z&1sZtL@eDVYPG9nbKE)+z$Mv!Y%Jf~^V6+bFuLXv*K&GXES=Wg+xf8D@+$>(w%&}Q +z*c;sOU?`T)!_SNxm{@uS{&1!I%t!sq0$8cx7oR8Nu;SG&yTKm>0*>OYdI>Ycg>`5? +z_KXW`L;4D;uq6G4_j2q*%4#+?EHp~*^WVKhD`grKkQ}o7FoN|bEwBA!%D1qOau6d~ +z*MYB7q(j8?Hm2{zV%~=(#&9KJ$hiKEIE(iVSUC&^qT^6|d#+3cbD}F#dONK&26w)S +zBlosm$qZI`HBRci8gz$!jR@+&_Ff2z#=eH7tHt_2(N1zdM5@HpPTzsA*l++-p4ZqBYt<@{DUx!*iBU?=EGvfqd+PB*#PbDvA7-C +z0arVBw!2Ad`&!WjG~Lrq=vWK1YthyXVO#B}Zed7sK*xTwyu(%}s*9tXaNZa@$+6#8 +zY3r6|TRr0IhVbZmyDHCjkP@DzeSkrA*FDFng_?1-GtTAsp&>g04kheeBNc>QbQn0| +z%`MpNoJ<60ijVSrGrm?il%}v@#LjuKriYQa7;T7(cQ +zhd4QQCC!Ru=^5Nvx#{UW?K@w366=p0&Mz7w1I65|Ty^E452E}X3(MQTv`}>)?*)q0 +zDQk?0m^@CB5oS)}T>1HIz25fJy}BEnH3k5)oDPmq>*;q7qqj&N*-uTosDg|JS9fF+ +zKni!nk=2(b5jQl%G_{djp;S5A8cZzXkXASYui|m&T>p*OYzLEI9JUK77=S}w^3M-qy(YbWM$4$!BD>UnUnz1k3!ckTU +zFfl=~RZ7vG0y2>!nz5tL!kI4Qch)#H_h*#)H`@Xgrx3R<4PuX&YvkdW6`cWg1!52EXHhgWN(*BQr~0AP39-2?9r-k-wD3dbFz +zOA5Ok`b!FH9s43ljk2c~U-PMlCg@9j-Yvv3tkd`gK7Q=RyBnDJGRVBV5tOmQ=6p6Y7e>NS1BFEn<5v7yB;ceewmAEt3<3L6g~m;RZbfhvF+f*S&{@TZJHhbS_K_qsaxX52iV!K)o{-AKK4d?yQT<7Jyc; +z*LP=%p>`B5324LE+ay#xDS-_pTnw8PBaIy +z^j1fnGPSUsn_47GsKUz5x5{QpwMUg#B?7f%2&)pPg>M$mU$PFgTrf78^Tc0v +z5hgi=-ZKycde@rQVc=Sk66B6z@u2KFg)(<^^dD%R6%)7{r(<}dVr2<_>|jQ`RYnb?kLwJ@a9udz~}XOSv3lXH5t!{D?mq0NEyIjh3jnTdeC`+ +zAuueGg1hSbVn}k1N&@*-H2keVNEhw2(yIMy9Z7BS?m^U}@8Ks`f~rQo!5x3kO2hPhN~|7{>wL{ZXM7s|w+KVr6klQ7X7l)i6<)$hA>Crw^{vXGzL>`vv-j*Rg?TQ7M!~8EZBg +zn^T>hKzCk{V{ +z3I$O`96UW%B>*Zi!97T9mE9Gi!5V(Nky0#RxZ +z;5EzPDOiT;G!#z|Jyg&88^7QIzI%~D(h=BG>eJ-2p6>jOy`?&C_vd{>aoV?ytb(}! +zkvr7h?-8vzO{PeQ$BpCdc12eR9{YbXm>p~DXdEwUJXwG{$T-ec-TB%a|t2PW?` +zCsHSG@`N-qbwu}iN*SiT-uw8*fH4!(+*O%0O>Q;j8hZ$VA54)@&y1(XsD~M1tC;yK +zax(j#4KEuFpNEdcYH$#Ll{6`e*5&oaySG6>r_YC8>O$W7;CWaL3Q9l(B*woVV@-`s +z*h{bY_5k_seR_cG_rVLRnnG$Pqp&s3*hj +ztpTW9OJsJktQe_pIG@o_k$u7%_}}(JA7=ItwL^mZY#eekoE!BKqjFZGz2K!xuRj|- +zIZ%GIdWlgJ0X0fiJit_z^#PYud@C +z{=Yg03Ir9S!yL&g{uhd5Ns0ZiH7wieqzV^Dx~{vAFerdt;g(upJ0W +z{w6M+z%SJ)WZI7CM>&0qKQT}O=}-UDo3-b4O1}#8K_$^9)G3Sb?UK~aX7?+5p99xj +zWaR1K$*%9B+wceWw;(1|VAQ|L@7&&)kMFyN$~@T_a2wyP^EkXy(KrDX{T7vE_RrsV +zqAb7qXr*tigsHzuX=9{)ovCpTbi#WUud)x2HXt&TvryVQgus~%Y{9@ +z;a2S$1MSvfv-fT+_XxQ|h4cMec7b83+MhJr@(r=! +ztxp6ZELDmFS3r~-$NX^Z85t$G`x7A15ch?%R{yrr5M)0+(Xg!;D`yuXg!b{mMXhGq0vQc>ARNn-MI$3n6&BkYSXY+NTxY`wTmirh*S7kS%S%P$WYiH6Ci2*vw2 +zJ7X%6KWp`Gu&7;8G*!PGr!gU1J`m3qO1eJ&h%k$;a$rknTo(0TxDKOmpI4_qx0Vgg +zGC1Gu_@%`DTnLT31T(Hm%(^F>vmE3>;%=I{s=MawHIdcJLoH>vVuvix>f94mF){$u +zsn@cbSUPevzsG94uKrU^EnO2Co&6+d8$a0>Ou7dfK+1@HHM=CYk~2+yM{Tdw0hWw@ +z_x($H>}tChy*GM7(`9YPUqM7d2}}7V=A5qvbWciWgw8bE#I@1GL5V3@B!t{L_-_=EX~FZFYvk#oxPq!Gm5o%St +zay%A0+5L6DVKMG$kv~2{C5Y8yGem1jKE-_ciG2bv=r_XOASt|HNc5LGG{mn=d%wfL +z?ITBQi0@sjdJwhKN(USdnTRYDAYtN6AcJ6pDNHR3;5o^~wMl6s8ES*)coRUs{wuLy +z-i`TC&v0b_n%8Z}f-U#_<6zS78WttCNGw*@F5)vW$SSAFx|v}>E-j}k!UEn<&4+<#ujx8%V2Yh;k7%VxBwJ9I!!;t-gbU}0yIt29O7ruGhX_| +zSWA&O!HxTten|fLa>75u6->bx_0z&pIaXUCk)^{Xh4_RSn&nFwMx|lkB*ZOMJ3HS< +zO%!cf#Ys9t*XRX}mZAhHy^-c1^-jT(WH9MN({z;{Hq +z{H>VD&ibX|tf)7K&I({Rf18`mG>K>L?&eItfwn@(AN95Sa*RNu`_GGf`I?6lW&Ez- +zk{S^=v6Of_s2MFqezyU5*Ihxq6k0i#nLs@o5$>ASE|>zgk8mx))MqID>e^c6Kq9AO +zB{ZqOqL`?)KfWmeNW(f@D`2EtG%RhW6P+!Sc*o^uXWF3l{_6o+4H4dIw=JR`I%S}6 +z#H*p39{W<6Ldo32t?M_am%_EiAzlI3#ZFi2(J8<<(}W+*8he8SQ3y|?GXq5y|DI%d +zdDJf(!KYKh?3g+amM)D8At^fi`gYz>p7!ef#806Fb@k^eqxF@`Elr<>2=3755AwgP +z@j1%FjB81P*vE<$7^Nr($fe$qcFc~>HClQUyxd$|*boy@)@UHLrD}sw8g`uMELN6X{{i^&7 +ztXeEJTZw4j${7CE+UI5F2Q4^pG=Be6CgqZc^iVNxOh8Cy?tzniR!bNAm$K)ilOA9d +z(kd!^rj$}?crJ4x8051O+0QKXovTAFh3W8{TbPtG$uU-Hl2ix%8I8oO1d;Y- +zW6s1D*;ruSJV(s*3XD0Hrk|R>&5T^Llw{?T<}~MGtWC(>VctnXn??8-@|?BNj7{_h +z74R+wF0{1?-TaBP-hBJ$oZhDt#;~D}lUrc*ySGN~+3BNz~4fsR`(YasBp;W}zgtkYzSWjNj^oA>C#*&md|D2qKtX(X7C%{cw +zA(63JwP}3c~(mg#MUHt53G&VuYbKc6< +zqFMBq%)m6%OYqU%OEG|)XP|FFh}%V6c>EqKUd^g|eblUakC=4s5&hL;1`)u%%&2C7 +zlMIo@hIBi-iHh}~c`MrJ8Lzm2>4}tHKPSUHpB`;DR>&obf#`(F7A@BVT)EuNWc=~8 +zj-#5_X9}A^L+(yX3D*APAQehu%d{H(HOBCcJ+^6ZB-*i2;Vf`}E>2=1VZgP&^Ovu8wG^5tc$TA3oqvYcf+ +zGa1ZAd)HjYD{5_pGRVI6YbHdNnwdgKDcFmCMP}TXSeucO;upbwB+3~VU2%T6lEeB~kYZm0Cs$b444D{4jLzu=#o +zvMifZTqbALP{@R;i|E3F+w-AzJZ7mDm1%4&Gz#SX>apoN7;d4)92XGjyNrAAyFv)V +zNk+3sN@?+rvs(9dwim!eUC6^e1FY0qFlHyOHekN%-==22)yBtJtRvap#5i^1&DMB(-_V +z@Z{y;u(2qI7^<#L@U|(mg>>znYBd*pt3-~-7=hn?6Dp)+IPG>F3gE3Ws^B`g?t4+ +z3#2_F+2~m=V_TM^N#pp5spjELD8c%@1Gc^q_;!je9D=Omzv~@_5r>;~HGTlG;ZNzS +z7vU#5PLaNFdo_Sb$DLbKGp|~-tT(@T**14dLh{LT8UJTX0%tW=$yYjBqUgVC__Y`d +zUyj|r=O~klw&oeF=x^T{EKW}ilcY7dVplyfFJ`i@VSE&>)Ni4_%(B5t4xHRm(8BN+qYLaF#}@DGgj2U +zjeG8A)j95mqroneKC3q@MvVjY1fk7h4#vG}NtzyEJXw12m_)mg-vkL0I)m?jsq&l@UL}nKdC~V4 +zJqs6w9{l$D1dof&{+%LQNd`+ZaI<0PW%})pj*Qr-vWmE1NuzfQ+kP?_KRQ6D*%O9r +zn_y*!z5b*o$>LOKv|TUQZj*rk-zS3Nv*1TWwtJJ@ZG2iTEK&z +znQH21f?ph-jXeWAAAIqiJ!s@VMi~;ZRzw#O&XJ8PnF5oj0E}1g(o-rgZ{EsIg!V#; +z2sN2>3TEh4&a7>zaCvh%XKTWjyqH@c0D++bgr8u*+;^=;!+7e6-{O^*;G;K)H@WE$ +zW;TE5;P|R#KU#*MZB?7ue978^3Rpt4g$2*73TXek$^tt+%HUZm0UgLpd#IQ6a8}QA +zow$ef4gztT3LMVOYHB&Vu$Y_tqPANt=>Ni+PtC(YPW6so&5E9$`|N3k;@WleSn(Hq +zDz0S|@vmg&EDW?h*R=O^XSDP~gM12X<)NZlTybZVxV%`Qlz{cup=1)0_kE)19}MhCzNtSg|xP7~3G4?A=odcEcXH^3?& +z%fGbbYCS(l@TR>jZC3EA-CXm^O6Yg?OUVyaFaQnng${3g=l%3Ioplr}KZ?DNh9vk^ +z{K4^jviiD4G$GnJmjkZqGo=yy?gyyq48JL9+QRS51R32hCwHBQZ+dJ%%V!}^lH`4Z +zDPw+2<|v;EQzW3H)(S7HEea>e`9L!bi*?i9=5WFbXc1V&WB=S?=cWM|?bt;=o>y~E +z1iLWA>zN9M1OC%qQZ=DSOxUV**tBo`k6UuclePE#vO9>%Vn5Lgxd9YsWe1Vrr;yF0 +zCxr<-qQ9pxJAKiLf)A8G7btVLzVQ5r8M+7; +z$~D};F!O0k0n{iwCjq<2E6qfl%U8@M*Z+i-18&93%}1~oKJeL~&-9hEQaDyUgxzXf +zDIhyL%LIizII>$VXnx0WuO0J^vtYqX6wZ51eB36hU1y@G!azo_IZ~3CveMeLsNR} +z#CK;8jnuv?M}STN{EZ6Dp_xD;Vmk-j91E7jLh(;IrYbi@hOk~K)98ZF*hacyiQDsQ +zR^edp+V%CU?8%jP<42eKzhDO|Pp2a-chCT`eH +zMThx*C7wqmzSMJj+Yb@5Wr_@Y>~$h?j(SA_Gq7&bL2nX=PC}}Wj8gIvv&8l(wL}ey +zsdKe(#x$yqd4ta!vaLUcE?_T|0zAm{8%`sIjGcQm*-Vh=H5o-q#spA +z5IV%c1r{Iwh70dWSf2e*m$7=X0)D`ZpoG?CQVzP$_JCq%#dJ4@8y+NRdJptSX1taW +zD`~M@Oyn02;qh7d-;+X+!w`G1_pG@e;mB)-#BCs +zV#d#J4N85Ay=l$xc4dmMonV}gDJYX$WS>T(kqLTpI>z7kI;k)oF7TX@WZU~wr?qrr|CowB +zHei|qV@Z!D9Yf=E9-ksOv}%&e=A8`cSa`yRWv$vWDUhRHfS)*kFN@EaCw`6ls`7>8 +zwtkOnH(qqx7@VY&G14V?rM1-k3Pg+SQDSK{gC%h=8pOVy4Eq86RW<|9xKTZDcNcH8 +z_oOKu`%y16S+esXCSrzfg-GW=)V_{#i|y>ukcp3+c550Qv57@*Pl~v{7fegqRiuCg +zwDF*ey~VB3n0+z}26^iTeVL7@#jT5+*x(O{W5mhvL)u-q)6qrR{jlIyBeHhCx0GG; +zZ_{PoLVxz19~P6eyGJLNXD$z{OpvH}`ulH>TcdG51ssyR?<3>>T-9C&`*}ix!@UD>sLuqUDz)vOxJ~!5(v)brKYZt`=wBnxRk-_ddI!#k%eVEdhyQ +zKyg_|oc;3-_5huMx40NBL!*~JxMZaMD7t2%>B%(9KQzWS8eoH9uq)O+vlzCpFMuNva&qu#8ap^tOhi34aLY0()R7b9@ +zLbHJS6+LH;i=7@LQi4|CayN;Z=rD={U*LGIaqaHFM+V|J}3e4^?IdiA@(0#P{w +z1p>9B+@=_p3e_UdSMbi2#9c6)qQ7|HxQ_oA$ozZaIr9XrBzGP3GJ~hFW1ie@h25a@ +zsgDmCv(4yrGUQxxFDX0XwaHkxA2z35{H1KQCF1|MHe8o=n!3n8Wj|u?s&ZOA%r~&< +z{u9K;C-6OAO%P|Yfknu{mmOYy+THre$?6vo_9*5PMdfi +zSqKPUbn_=2rx#7IHu*jtp~>b=cE3)OwS`>6Rm|tO5*hsUsVMC@9Mk@eQzuU +z{;>?w8GLqo{yoCQU5A;+xKC}01aE9PcUa`q%cruG=2cUhZ4)SN*j+l9H}T|%gx>f* +zXE-4oJXjFYG*XmieQV*F4{hDY7W~=%PE$?5wZp_5Pr7T9nQuq}gp5mB!Y-jt71E+s +zgrVc7sm99l;}Q6ZVE`KSCCy~9JnBSES*6MPZqU|~^p|Es9j86(q_9L;>Ks-qY7Gh5 +zqg)c3Z4owE%LhDH-LoBp_Vb$CKgYA8Y>z +zpa1XMkW9LEecEA1bX4adIkT=LB-yBB0g=JW?(e=WQ|>(eJgObn&9w0X>c?(XFj`3 +z{ld0el5f$QY7IxT=+i#Y(SI0&3LV@Ro0NEb%g*tz8veGy-jL( +zyf^9?kQ8PsL2M1os!I&%xpk_qPnB!5H$^kQ!&R%yB~iP|n2t2TE&q}_h$>O-=5*zi +zFz~d~W;1ZC+38OgnmABTX#2bOtgl~kHy5q%8C0nUv@tXdK&FR_ +zbC*B7;n6it?rMA?!&47OJ3qh4A@wJ*LL2`r?+Qe~1wQO?Rf%XeJ%U7fXxpiXX$HI45waM-e?#W<{DnKd4V377ulEY +z3n@}~JGMr`XCN+NOtI3O@qfXS)2`8nZ7S&s6x54!s1Z&5jG@KmKge0%#P +z{dAMX-=^~BCj0&qJ#A05{J{;OKQq$d${*0L(){H$!FJ3!69sLVRQPLtdW{s0R-?jL +zo!38RKiu5@w*BGeyPMmaKl{};qpyEM$U(pTj!*!%BZ_Z$hHp@w84sTEo!d_zzrA_h +ztDio6_xal=zFPlq^Xc~U_cwoD+y6fO_0L~Ee)x`F=l{~{f2|CVf{%uoq;L@+*Y8r% +z6yloRyUzIacRv+B{LkP2?l)r|$fV{^2Yb#};q`u^z$dLcPF%tG+<)dI?yqA}(S85) +z?k8a$e)#y|!~N~&5APn&e2ZRI+oyH;t^UvJ=Igb+p?BA?HD5Ooz0GFl)n%+*m4$%wA28YW{PaJ? +z)p$m%E0&_Zij)2c-N~ueh9Tk{?-u6Nfa71vLnM2N4~$Bh1e +z#0!evMWrU5QC;1c%a6J}Y8%{3IK_^ERf&4jT +zIOg}~cb6XL`Rjebq>ROlYNcH&x^e-7QXp9L;m@5#w_M=S|!GyU192T2mkhx<>TLo4xR<}`iz|335D!q)nkCcCVO +z{KoZ=1jpA#CM2I;w@oLnRasxZVEO?+O%B&W(iw^_<-l0_r(OOgCAwtx;w$4~BC4M` +z?SP=PRie0738`p6hFp_Q^Yin+H5MkCHa1a-{OKPnlCM#3 +zSefgF#2+Ms;J+%k(XG7pqv190`F~^n-(%g{T|8m^mwYMF;S=_Aravxx^QoWX;ifr^ +zzIAiI#ph>>Ms|ob%0K&zw;}ufiA;730jB+t$OCI^?|vKV1^rBFNc_XQ$N%wPZyw+M +zc1%BhyG)TR`YwE7C)=na5+AAb#}^>^vuOB83|*FB|EwSL=l`ESzrtRNZufI5=xdW_ +zfAzcn_OnR;Z2q11;a@cD&xtA|`%_djGP#Xl0U<4TuX1=ny>hgri{_EfW&0l?rVqxUg3#mH%qe|cX@aw@WF9QV3({JK^o^FWI&I6y713r;ILGAPBnyfX%UEK-nH0wFNZ&{|mo<^S7j5 +zO(b5^OT0Fm$qHp-gjvwb<`P6qAUBW+7v35Fw4_%}URrtOcI7*aZT1cZ@0KxP;*Vph +z^^}*vv!42z;QWp!zc(S=3$NV~Dqf9LI@?aC($4Ak9i|AB8cA5xQ1N6{^LKkq9L~Z!>>sW5Y?V2=WND*M6POt +zJkp3MZA~(XDlB!L4F)|Pj{o7;L=R!r6vW9?dy4o7WV868MixK(y3(|M*)$k4n(B{F +z+u3~nKR1PLe+J(R)Hzkey4!D3SrR&i5D)0e1Pb)Xx0JsY4GEp8Y_1PC*ZmVBy<@5^ +zbkU2JG0jokTM+2l>%+%uLL!>x3`Py#&D$a-9%V$qxv|#NlALxGnhkHi?wRgn6TkcW +z|0Uypu#kD3kNcZ0%vRH>;MBi^tfb?}Cp%X*#J_@6~q(&3n+30FY7lnsxIJVms37UmlFR> +zociZ>*Yf>4t<$qqm$RZOR{hvfIgnWE!?i)Rj0A$swTSEbK6)1vjNdkuv*3*7+|{>k +z25pR-cE&R3ZI)rGwG(tom_+HGFvLko@s +z_xFkq;g!BEt}bzkyw=A^bg5-yOV2oEB7E`n_xCFozscboEH;^PXh0m~P`R|Svtv)S +zxL#Cit)ZQf#d_)c5*OD$e*Iybzr~$A(A>i*&4prbk+It!4TbHolu;=3_U@{HG+6BU@jp*=m%#>HG;1wwEZFj55m=@k9$X;Xk7jb*<|t)NRC_O>#kiO@ +zH`7m(q5PxkcY<=X?z;Ui&Tg?O8bNQ8i!ofAB%ch()h@RoUN*~j +zc~qlGZEiD>xPzRXccJqAZg9raJWax)QUv{JeqDsh`<3YlvCv|e9|FmiztW0gFJj%b +zM_ClH^n7?Wo4hBo)^eniIlpEUk2BTl|0DG2lFkgZf +z*zl|}C2g3T-QbT4w1^&n7*8Ui{Q>3EI#B#zul5R^{OrYE&&ZZ7+nh@q!neGW>9DJA +zzdW$iI-bxe=1vQPRtDJLk9uStAbe%;!>F?b_oR==RcCIiReQ_oXWq1o`OQb*lg2%t}z0300xbt;5E>wg@~u +zGXn6Kqpj1K=Xaten&NiC118%c9b4rhhb%JRYpw2U+l2JpPxft8tey-4rk|G2>SJ9J +z@w04s{xlPr=;{@&pmkviYwsz#cs@ZRMf%}pIKhnVLvd&u9N^*%YA=#poJZ$Z=+7ecV_&p;lFE8?C!QZiG4Uy3Yv_dv!D?z{TvAiwG#hp83Q5-XdLcb~D6Kbm8K`um75Wp7`a@u*R}XGNt^xvMbM%i#siq +zYshwvTobS573JEr3xG%DZxP;i`nDzJ)~u3`ia4_^BeZyew0bVAD4G>+Bz8uvaI09v +zr?ZFsG1ez@yHicEMdmUI>~UZ=n&_=ZH-QX`_om6_fK6lDMvK_RK6|PO>$+LlbyT*r`+n3j<5bJ|*(I +z<#S`Lsa)p4^rfz%6;D3IaX;K}VD_j+QPO*20%pM8=9j6YXcJMTr$x9W@+#9*qATYj +zOd3^LeT7t#difwrB89DX%IIu@@4nmF)=$@`Wk4a>oaBi!Z|i+2iegPlDCj1Xs1`R@ +zHm%@B**{H@2rVRTzMNZgt{PpUkm(sAS2QZcfy|x|%`XV7NM20OLBKNkNQhyPDluOw +z9bVK+o{J}lVy26e-pQ&WOm03cuZ0EE4CN0TBKK+r`-2zc39-gglN_MGxDo>G$g|4D +z0kPU;_No?N=5(Fe*@y?m&Z8I!t>ZB_U)q~5=Xf|NBT2r5bq942N2wN$2hrGNbP!!jMt_n=XwaHV*D+RM{|JW1NZLG7I3 +zVnJ>qgt&8p#DXA#l$MXlfR@hWVdQ(6QWhdUGl$u)^PEha&Wl~B=*0p#O^tv57k&I6 +zdUArcOAZiMeeISMKw@W!{Cs=+9hdJ~22k$NoEs(cmg +zEE09nXuWsI)N^wlx}p}sWg*N7a97r)SfDRP%ac4xC+ICIf`#N@-^Bw#cBQ}H#Q{c> +zOe2?Rv8_J4Y;2frkLZrEUs{$ON>MN0Soz`e?T0g%UK1kimf4^pT3?;G^xVQ#(0hq! +z$Hm($pZ|Kh%vB1pKhJa8W6U?Opt2AlkxkN_QJ@Hn&EkwlQIJp^oq+~|f5;SPz*G>g +zmV3QFBa&F-&EiKie6U??#s4$(0d%uFfdq$*Iki`0(9_&kGa>HQtlu +z1D3=K#CbwwND*Vx+Sw~2v_6NJjaruZ&?o-LCck8HpC#fa7vB_dBjQ+{xpauogzUch +z(;3;1HKqkYRP6HoGG}YmNtDZI&L>x@`>YTL-7Fk^ER0ILDnI9UU7^p2RQ6!*#86e9 +z%zba8lB^r;&Rj!|Kp%r?;sjeF`znQ^R#(GU2eB&F^SO|%C%eDlA5V?#vf=daPP|LCGVT6y1c#K__tS84h8+WhVBf0zDV-*1j+QrRpH3gIa{ +z_;>05BK5K6NHR=kNZrdHCVx{^mbVLW>qBXjnQ&?4M;< +zzqMiX_cy=2)@N(H1lmzB;D +zO~U>MrfL2cy>UDquf~yB8>``EM0QR8vMc#N|K{)i@PGgJ|Ms_k^Vffv=DWV`N(MPc +z;&6Qu_4Q8RKLc;xt9}H@CAH$n<+xJ?Lh)P(WnJwi;Pwi~3}79kgZ=alQJaabkc0it +z@im%*aDl%zp#v}e+&qH(p9fBUa#7#E=-0;K71JP?e->o?1;07WgW%|)*Z;^cZ{ipF +zgf)3wjgqm`Q+56E>cjQto12eUH`lkfH($R0G~E_8IavrB>;Q->X>u`K3tWX)Yv8mo&rmcRvlHVP<)@gFAMLLL6zKuZ$U` +z#!iY-jDw#y&UPuS1gQ!llYK$sUIJW@{kFa`JcRedGk!nZ-+MdF`!LOWJI(vSfsdmy +z``j>lt-siZN{y_!$bGLVqnlsqQ&+>!{9+#o2lvZ=p-UwxNI?CuDnopF+}6tOv>8P7HpEpb^w4#>L&&wcXLTggC|zkV)BXpJeKfj0LXS#&lX +znlFUgBKVY?OWv($OaH(4#;5VKKmT(}>3&9N=0TZ18)84+Y(OZGTf#=M>BJ-rOyA(FaMc!aVeHSa +zo=p~T6}MSnjGG5_RYoKZg10@DGT~)IRLJOtjd-(lyN5E3Y}LK#NqDJ;4+Mu1wRu;@ +z75!^Ac*wQ_I|etIj0=PQ?)2+F{$(WMI?9FlPnK$)ioN^I<+_;v^bdZGfAJTahxO-I +zX%PjU`SZ_2S)<5&?L@PE&@L0!6e^Vw*U@m?_t$^?2Gb^@1|UX9tK$6GufB0_ev``9 +zW>{~PNV|l9EKP88=>*R$H?=kIw2b86s-)5IPmD`QCSQ^?z0JgT;$!+Dz7?-nLh|*jy^hbuPkM7Ehcce_a{d(K7`o@$6K0hVzg|FbA#><%PYRqab#4sbpN^TP!r*Z +z@=gnncY0Rg+q%6JP{SpEPp9OVpxaMh7M@i;kznyr=9*zIPI&b|0_g(un%hs&(x*gq +zs+(CO0DHZ;t}{Jt)!_W=qN$?g#j{f~61NWv&v@xs*HjAiZfA#FN+XR?(~|Gb#d?~T +zuD7li?5rMkQ?Qp(h*CGPsP;=YMj}IVg`}G43Wdobir`zbXhPF9$frDWl)FaCDukO& +zQwS=3j0)-EYo^E9-K#~q13sVR`ndemk{l3TGs8?7srCx_`_m^VP95!+;g#Eqq6r`wMcvL=+2y$jv0?gbW3AN!rl_lVgSj|)&9(x@^ixN+fP@F5li!Xa5_7p%_T9} +zcHHhbJl$!VueIx%ZsGAkHS}-+Qt%J~!&jWXwD6EX(p+)1?Wb=FsC5ulES^5!E22X3 +z99_|g6cxvWaxTO*DN(b?6kb5nnO3GQPsBx>O$WwY@r0n-TsB@cwA>~+bCICASs8MKO_dx>)tWUyp9O(r<#*-};U+dN +zYIrY?gIjovXLM*cCd^Dtsq*hOAbz8dXWS% +z5p|Y?iIMm)6Bv3CVJsAk#efmxAF}!(b04$w5d$Bw>@kxbv*igRp0eH{vkmNZ!cYe+ +zbi_30Y;wXFC#-P5{2m9aZphq*>}mGpI+;jvmL%=W)bp9)~peal%F(2TbE} +z$RZwlhVa;v|Hq!#kEb0G@+s+tS1D=4v9K}Zk5%8pz|sSMMzNrOsw%2e`(E6gY?zS$ +zOE$iX1Ao?^L#lR)PKN$jc9n0vCjlk>bvV$r`JBc&4edDli=QhKCB4Gmav)jMN9Blw +z>gVI63tCM-a<2;7VcqDobIGZX1+Fa%ALrxkUzp4NSaOZF2=05Fj_a;e%DO8|`0J>u +z!UK_en@DU%uoHeh(2eOv+Xf4yaQ^qMEwtW$^FL77fmkRJtHdUna0W9`u|%3{TWIuJ +z*b?Hw)u-*t44sx5xgXp#iTBWM%zFFeS*IHN|4RSMQqzYxiN8y}`(A!aihK6`m)lp= +z*uVSm=?gk4gf9n`{j5p(+7Odye!8T+PcEvokcxOuwIilbb)u-#43k{N%_GW`+8>Dq +zckcOB_3-#r7lo)wFsQ5U;c?&LPgN2WibMCnk)FgPAG`orN#h%W&c?qWF9R5U9R%) +z=<;q)Imho`b>cCWDB{~yJ0mIr$F}Ri(aBHEU`aR>Y5bgO88+32OJ7 +zlsok($Q^Oh?deMgWhw@I;-@6i?UOs9V-zt}Jd3}tRNCiBtBAs1HG1@ZwZq^_Kkmh; +zZMDv??ub>TnOj|RmF~g0y6UdmGlcq^J26l^kl-dNs0iU&6?FtA#B&Uhs=OQQyEFZrvH0b#S2WIq0$Q=`*RW)7jN|9jb6Ob +zi*+ZWeTon-(kQGGl+J7FAs>f)y-|-h>hVTB-l&JC9$Xasjbgk}j5mt$Mlmj<7&}@0 +zeEZ?kxlp_}dhtdt-sr^}y&!s#818a%kT9$M^qZP?_C_V%sKgtUc%u?Cslqu--pIon +zd3Yla|DnjkyJ?p5yEiKEMg`uez<(SnFs1>wZ#3YI2E5UL|6nv=TT$TN0#&AVURQXt +zKfV!+H-hmWnP7zewT@(5r4j*DD!oR0F2Ntl?Zd@){QVHm +z-=D|x_iK3megn@(t0p`j{JoR!xA5HWDX;v$lIDHD^Y;The?P(V_bYhr=Zf`kb;G5p +z@I7;QzkuiOM|keX)?vM6`hI}t{l6`q`%$~_W*UBzNti9H)8hI2F`mBTc>aDF +z&)=WL^Y<6w`THe2_un7j`QQMh@tbydK6qC9KOCOFpWylX37)?{gXizh;Q9L{JbypH +z^Y>#se?P|a_ai)iKg9F*BRqdU!1MR#@O-fE&h&T2m2m=|qfAppIGmdJWOao%%zwlD +zH_ZPJf%#XiF0V-6kp2zn-;n-40MbvneN<@?(`525t2U2x#&z-j)9qjU*{{Aqqfncj +zc`hdtC91FAT|YGK&&W>iYFo5=ElcxFQ-0Hw|D9>diw5_1&ffl;H@JU;`+vW1|CGd- +zNxzskjCjL{e`gpmEy?q{^zU>f$MtwV#b0hde$2l8^eOrBoygKxtjF`^^M?=Lb4xMQ +zrFX@6e(WlqK#3pdbmgq%xh!hgC{1|l+nLSZI5Y6^F^t47<9g`MYqT7TvNRVdki*%o +zn;%yN$)zdU$rSHKsWnS)pt;TXoqSL*p@TV(m^-Q=_u8nw))X}XyHsOm=F +zxiVhQn`f&-z+hJ2Kw~n=xoDxKZ>j1KRj70((o)^i{#g}hWUSJw!H3qBW=3b&*v4?s{C_W=v*(nQz{430rSFT8Iw$ +zWj_1TkE|9Idq=;biBBRTVx!S_-+m@B>gLNW(X^6}>ToA18=^yT}T +z&$r)xzJ2wjEEj0xUPae0#g+{ydUtKNdM)qU>+)yfN-4o|Mq4sJSGxK+Kc$U$360%e +zfQWZL7pj#n`N~ZP}z#pn2z5Fq)GeEZ?M*VLA7KY#!I4T%`; +zyDVU|_TQB}8hcW?|MT~+H`jA!8ntqw +zbBWE>q$Mm`ExmMNvpDnfCdS@>Zeo4^bE*#CTzSluww2s#Px$=%;VEBteKGe;|5+C0 +zYs@>lq0}Vp&1+pbH59{v4E|Z$j%nBKu|3AN3EvhRXfiP0)ay +zY=8Lm&oRBZ|MefI$5pE@1;5n1bhV;Q%l5@b@a~6SUngbClw8ow +zz0UILLNux?U-5!ik9qBj4>yDY_yn_Uj#BoorSD!z}BMzVS6n|~H?rca8h +zvSP|JUJjh`S?>=3>1t-qbIm&k8=Pu5lkYt)eeZGbJ!|0NGVfRKu4t-OYDO%QxA1>I +zCO^FUZTG`i-hS3cYIXk$f5B~Ic>V6*wvhdGCR?;zd+C>cOWIGNOfH*0{PhoGi@>wi +zz1^MuS<_Bw7*UjcpP!e{Js@&Fz5A_5|4!Y@!cX<{D|}!oV*b8s +zOiMrfovNkplipm#=EoO*>!+?Qf3{5&{Od12p@m6bdMZ;T=l9S~+Pu--F8}5aRdO{^ +zcjAxoyU$;~eEIhFi~REKr&m;WK7ai3@e8Rt|C5NPYJ)jdq*1W*u{EMEIr3*~PjC5c +zZlytBb&^fq#THHnPN3joaostmbT_2Yo|wu#Pl))`6UWk;$y{z-bY +z?GqPY9jew?R{ic8i@SCYA~Ae+_y{FGjY?4wHEOO(RY4bDwA5K=7APC72)CQ;YMulO +zcP@_W>QsAX@MpiWZ`9z1jQPt3KuZX@sVh-4*}fn8qyBV|@H+oV6q(?En65^cWhvax +zO7lNjanJv)3q?!hN2Fr!R4VWn!!6b^a@K_&qrSoCna-c$aoD@nwk9>AN=YrTZ-rLQ +zq3>w$egf(q3srUZ>cK*OQ}0N@$ALV?jTY%qoVY0tKLnWEe)#kq{b3nNq6^&+lsY(i)Ax01|?vofxfjxxcq)2HljBnt|eRr>gs__VAdAie9U8 +z*JZ0Uy6CvmPupeobNNjSed7vEvCzh+g1F{}*JyjgD1kNVicV5S^{LHW4YTdTh +z@%AW+0u6j^2OijZZbJtyl9!4iRu8V(7;jO7)-<{zrsY}(l_JS$Gkj+7+=Dvt?IH3a +zQIf{d&LrQS>o|q}LAFtl=~BJ#>^Wl(qRD;dGrE+F-Gkw~MDKR41rhFxWJ-dYtZ}EA +z>V#NyWr}c2sVsHU(5WXK#O58*Vb@}7S4Idv*t;HVt!QbF_Mr2K5wj)A@2I{cSOM@R +zhWJw-T^Sh)U0cj8nrLvgD}6uL?E +z&6O;snpStlcV}xmi>Sq^AzikJDx1jZ`XQ-Z-x`WmT*#fwMAEuw6c|a<0Xo=;;3RHk +zRVi~NyT`#km40k=AuYK#jWo5#pGKHEmQ8bNRc&Xv`D}$F{5#`*U{S6Kv7;VHA0pbh +zyMG({0c$p6M1Rz!$&5%-+LT@J@s_R+eYpUrOnY!b%Hy_0A1v2ynfE4}nt3`+PQXIY +zfq{-89VF2|0u=}PUppdYjk~{!q!+r4E@j?FhjlQBb63*ePA*GJ#QbgD(Rb)xnGBUG +z$%QP8IJohmXt6L7?ZWy>MTewIZDcMS?x3%l`6P{Nid&&Sb=P8*5Qur^!>JVRm?if^ +zGY-+*x^&haiEbf$mwqe-;k9xXj?1NGHLZ_bIetXXFPyfj2s;v*?I?xAf>_5%2ieAv +zXDJRUcDwobxh!o*!M(~vL%XtYxRWHO0Gdko19weN2*L?H(VW_&uc~uhmtr5<9^!0I +zbhk7{*jHI#H?@>$>-zzsFIz*jqlemX^{_Tie+GaNb-L3cb`*sud8P#Y5k +z0(-1wbzJbs2sf%hTd`4kt=jBv>@jmXM5?6 +z5kN$^0xH2c0m2V$kw~$lf+P^M=rB*f5*Q}%GN1$PA}489o{rFA9bCx!hQld>k7P#x +zO@alV42gEd>4CUOo4W-anC{@^-R@CBjv%^-#d(Q_xQ_XRl`5T*C|b~}EI^VNwnN`~ +z!ob0?k^}%_OO$w`oT>v@3rSBZZiFKh@VO8c8gLE4a;{^J0@6Nkn83<)!>rVPuZ)GK +z5?$6~Y1x&9P+~};+|$`Gy-q?)K+w60F3mWw>xk75Nd@B$fJn5fl(Y}x&JT`bbPDbLQs54NlTghJ-Yjl1LdHscWHWZxJHLf+S{JUSYcb264`8Y5-5-^E43@!aiW@(VH;k>Lg&Sk7wnw;3_jw}M9>!;@i8h1h)txP +zh!RV}EVa;vGUt}<BuQ=|(Jm5AEQwggg^;Yk(D+oHAo*)%p4{q}covaaFWQqp7dJu3sfl;!%(1x7 +z5^-5pEpUWZrVO|PvPM!mh>f5(l|xn~8;JL2e5Ir(a7;Cc(Xu+A3o}c&1vC|>2U);? +zgB@0f(BSmrcXvwC|F)rSW{^2UZ|l5$ZI&2~0~G=ps9 +zL`e$_M37|_bSuOrk?MJJQ^C4{j>rTSM}7Qc^~wiP#vM@ywt_G)mZTo@UT7C^E+jBa +zxb^I{K{~6IK_KNsXr>!FB@=CHH7kE7H-v7uq~Dt4lsFy`q`oL`5ou)JjH7o7Ou!F7v>`+r{^OqR#5b0v +zi_Az67bFWNp5a55QD5z)5ziAOE33p&y|yFz9tpbGXedHjVJ4B6_Vw{p0W{nq76gud+_8}kuY8peX!3llJ-#(;Rt%l!oCq;L2Bmp9r+X8qH9EsF(kzm~;Wt#63*nne&B&}f|cj6L9CRvG=>tXRB +zcd<~>fQ>rQhhToMQVU_GtB5Vii2e)2W6}$}$GWv!Q)ie2f`!!%PT5>Z6txJ;Ru!#} +zC4KsrN_{(Um>-yh1l1n>t#g=Q2rhzNAR67W-Jcg#rk~xad8sAO5$*4V_>=6J+2Agie}H$W +zl@V+yIBl5fiC|w<1;ZU(pRU~|8hj$iC@o2RY1f_xCJgro3MAWL@JG)yo!!dQcz1A? +zC_4$bYC6Jt(V2Z$Wi8m2OiRibtO5rL7 +zR!o>@EXg7&NfbpUu#-6eC8{loqo|aFGP;ll?clSq?lbJxIVK-T#p+s%jnLNIbrSMM +zPP4a6nO30oF_Ds{?T8XqEcoe^=!~g)S)$SVZr3%PBUsiNAPSNLfGZGO2)k;lMiCfw +z4x}J)kxXZ-KJpW9qnx%lyp1fS}ptWO|@xfh^K(rxMq_d&!S=y2=O?{U>jB=f0gMQ^45lk!Qlm;{?m?<09hMFw6(z|iOejxLO%O*S +zcNAi7?B!S1j2#`c0vE?%`T=^XDE${!?A9Hk9!c!VMF#Ke#^P0~@kno2?~(V|vbSoS4UfC0ziKnKIHlbfK6P8H{(uqIslm#SeXu(ZP}O{H=+xuc9tA-gsYJnYW8 +zib+)NTByTXF=L`j6-jd30j)8ZboO6r_l#52_9Q5Qz!rM`@M8PS{W%_FeW(m +zcn^q_eVi2EgCGnwJu|W5HM~!ZzM3E(24YCyPMsBmuLBu`SPmE?!iV+>A9VK82G+ry +zHCGFm+ZD*P2qB1;v&&94T4ot?ajooJXxd_}yxp5*b(J^>W(#n`f-YUz!D%*#U_8an +zl3EK8WA)%h(+2lMd!z?0PcrmN%0e17$*=Wh)7T?^r#$V%|d +zSc8?O!>@X=7nCp9YZ*FdVT78b1!V@d;MQXZy$qilMAp3XIR=8nYzg!4i3yCQzg1Rr +zPzzM)^aU?}NbBD>sjKYb3A8g@ctMz7G0knPjYruuh3&}ceS6X{s#*sDjFf$%1zj*v +zv0~orcTzM~fI7fj4?jdiKw#A%D1M-3L~FlxS~+qJk(!h+_RleR$tV+qq@)LzBttat +zo73SQNe6QQHx>wh{)V*>?-M@UeznpZ>`tU~lJ4-;uJ#VXZUV+4^4^e_(v`Y+NvEce +z?2<}vJh-Y!nG_aAx=Lp3F7l!f$sdt5Ul`@}yk+wMO_-}9OBL;;h(SgU;@fTR|Fvr3@IsOh@o+^zvIAngma|m*+qjam7VE|Qh4fJ +zfNr0l3o?Ck_aPuocp22m6!IPdXC((_#$MEQlvfkO)!vX1s|OHBr*0xRj|g9H-6`lJ +zveF$QOMrU14TzZ2)iRrc{R%cHLUSz7OBJxP5W6JQbsz5H(d}^bHSs9byXXoDB?8t3 +zV&sT3fXfd02L0+3XrL~paJC0)=0w>o){+97g?9qPaqt3n +z;N*(bm^$bVFt)HjgD5En4-P8{k7ZNpYUrlJX%)`R-{=!`QV4EMuz+)9$uSSXWddJ^ +z_#S+F9?ji>)LG&1jFx7gR<}{AA+rLem;@%0T@BdA(LB~2!ib1=6;OJa@Z8aRR%dUW +zIi1vXD-zp)6r#N<>5Z8ErWx*ha7KD3%A*GmV*W*&Lp`e;AFx#4GI3~V*3sK*6NPSV +z1sE$OipHfivdzdsI|O7nMEAr?AdLh3oixr4Lxgy^P)jebM7eVn9SBe|N9Ph^*@^aU +z+loMiuh~f%9Nz-!pU|%!O9)(dFsAF;M?*gz)1zIIGkNNq#Cu1L)NWUt>MqMnPyRE+ +zK@fc;Angc(AVXM&&0!k4h5?Q^utNb7aKh&zQnGLb!ja3a22FK(4^d~jahQ`_tk}L# +zs4o;lnXv4XbX{nH*&T^AySxLaGi`AOMHedsU!rbB1kZzXa*D1s8%iv}N|hwQf#67s +zDS{(il2nZ$1o7}xlsfZvF>CvSS;*53lHO#jf{055?|}%TpqDJ$(qexArDTzl)eb_U +zE)~%OZ7RCdOB=R{p2gd&xd7o{sl7+}1E;l=Ba +z3IQ}uKjJ{ROddS()%Aee4e`HgVD_UgSU9Oj_ypm?NWqlR(|=M%QkWJTeR+U96a31g +zaU^V^KZREez)LWB6dWx@OWqNDDI!}oY?4s5NC1>}Jg1iQ+N~GzK7F=lT@#6A+W?&G +z_Ox|+@^KPF=>oK`hQQ5;;p6n^|LP8B#xam`A8g|g8X^~Q$;PyZq+$+c1?BXw;~J3q +zhASz=K?&pZeo$)bA?#1piiZ%m2L=eUk97>^oD)vG;9l;MqVwTa@bR{4AG8+8W__3? +z8!CvI5SJerH+H&6+4rEWPH^hV^2E|yHPp5t_LZ#5k+ec$u~P&%6f$`6ov*>&1b_*k +z&q~ve&$A +zq9>_p4${QqeO3V5JWm0dWdyE$yA;yV-VyTS?EmN~Hn +zDPntm0zaO&tXC-kV-yrl8(GW}nhR%TPojrOh@6h2L6PeXE?9f)Os-a!7B0kz!<7iO +zZRjXoVtG!OE+(l7e-@rb0mH1T#A0-#q{c;A0g#gth)KZ7j$lW}8A&`Mplb?B3ubw8RhC2o700H90Qp-4V0jIc +zkLvV5Y@`k54~_?d^@6o&mI8wVoMuv9H!yM+f}|(zJAEvIB5gmF32z%_W3_7duIxdw +zk477m4$I+|sFjzMK`cm^h@kkw_YjpHb^Y0yt_I{|-NEwZ<*OQI0?pMDclwUt)x~Bb +z?$e9+Xbg0UIb_Bizd;N%5?|c&28t21B!tn1P%#e!F5<%r<#1<`jNXT)7;!k9h*j4f +z;0PEO0nz&Y>#p)fJ_}8Jj8@gpR9kz2gatW3M3tJt21wasDcA;4bk3($op#qsfUf}K!tC8y6D1el<3j+`BDz;{o +zkEDV)S-GU8$z<=%0<9+X;3$*|QU~mbF1p{cC2Ko&wq& +zvAIqPE0lnPeb?zA0s|M>m^h5YMuq@vizO^K&LY5Jj%>52LXfJ-CA_~WZIB?$Gu~=1 +z3ENWZg*>pu5NisSuu&j~^&qMpoqYv+l~pWYB6c3Z*xNcn6jg5_BcAO7avQFf2~~0& +zMkx|nNU2C^J@|Q?*a1f(kucgo2vs9}Sl&m7`VTSQbel#TNkMgoJd9B-PY0PRAJqi+ +zDTzOXRo>HM?xx}E_?h@BoWukxB!IHW8!njR9?Z?>4<7~>T9cTk6D^!n71Jjx!dp@L +z$Pj|bAoQqv#Hn~&M^805AlnJbbbt`3$BAV-!nD#A<$CY(Xv>g7@Yu1s)2RVQV3Y#8MrcN(jyrgd-tBw9bJwY +zxG@0^gwXolW1G&{oZ=GhkWHCZE-ZoWIqCgzwT3v@i +z*{tLg6Mt+FuWYSa?TqUKKfDpJdl$NON*GDoP`zvbY1LWxB@#$_Qx?JK$y#*=yWUs& +zh@II;5z9tNMsy+Y9D(FwY3^iqZ;3XYluwr{G$M@+tm2UH69w361Ku25W>Ep9FvL*N +z$|A3{+LJFJ5?56Rhu4Fads(^gx)z`}01Q&vGRGD^e*4*@Bh4PMOX3RlDC?<=5CEvYce1WS=))TF?&Z-xNPAY+ehHw0y+Lt*t5i-8L7=q+4S4Jk{oRQbqm +zmSries&{11N@L5uaKwYT7g&8>MD_7Mg=k2bt9T9z?oEx*+%Jv@GaA +z%wfZMwd<1!5pBt?g;M-M`mBb~kDZq}ab +z;GUgubp1pPoK1_Q>q0v76hwJ?s~r+S@NJ}c6`sYj>$>#GsH~3`(0M(L#FfL!Bu}Ke +zd#Q^wTXqu-)W?{FkDLA>E7g!>MzlT-Nv2TDh|N48(htS7;YUlIXCUsfOcdHCK*c^%l;F5SB$lItM(wrt +z=90$J6A&m%Fh0=QNp%fkIb9D)F1VZF#oT^A5hY~fNS_0JH%(4s08c=$zuHMmdk{I% +zz@^m;JT`;}8K-C?9omqh;>zC92E9qcO6vt@NCm?XUAW>JXQwjush(D1-!+c%lx@*9 +zc65O09VnQSO1d_uTk~*2RH|jGhD=!oZRZr-23ier8c6X;aau04pA_7Wsg+OMjlg9j +zV?^b*h6JOmjS56+TLO6VA+rDP#zwMpR|DiT~roQU$VW^H3x +zo8pucMHnywCffufOua3I*D1(fZ+Eje%5l}C8|0ujuoJ+Jlb%c;W2^HRZw)+2@H^{n +zE?lv8$f+cBf{>02P6_Qr>7&Y87oW9IIrL??A!INP8u3?S&}W?<;lFL!bmwLI1|iR+_z|?ZpNPO#C!)wLF*Kk0U5FE% +zi=%n;sl8O}e_#@7UDdPDWe=akT@4n@fg+aN6ClQ=`*c1m|IswNMk5w7m?xo4 +z_wJGw(c&Zo$Oo?zKrDbzXvbLEOaiYF_tMFbbPQk^wel(>Em7Ji0821h-6grsxVi=Z +z@`WI)b+N!h_TvN32ws|E=%*TXnMH{xf^p+0r`8`+E6{l57UCjmSP}P`3&$L* +zD+~dq6SEJjP&wOkp&p3KwWOIkS8l)$0*TD)tah8CdZ0r&kz#x&+|kjeh)v!5gyme5 +zx<~B0HW1uc7`hV=uos8&Lsp$(1~W+EHz?J?cVKslXc6q2lq>BN2vTXF{Xw5{UZz|e +z5Y#}p7($z@(eks^C^*=F?jsWwyo97Yu`Z`GL`XR3)>#Hd!R1mCHbgt+H$`5M+F5(3 +z%aIYNMN_iTj*}RnzT5bT2`#?Udu#Y2DOEUz*RqR@giY@T(xM(ZXV}@`Sfn$V6aI6S +zOCJ|Ns1wroIcVFNc@Uco+igLlHRTUQMB2PJzt4_iQ=hlAktpwzsz?$u`x9~&oiL;` +zh{>c35iAkGwK{#bKPbWhCYK2jt)e}_+%go8IM9*cBIy|4dij>g{ZZ_DdmE`0J5D}< +zzU4D{;8c`tZwZ)6q2J%!ST>^)RY1jc_2v|9rb|cw1Uez`{$O=yD`@2n9ek0( +zE=BUF6IWpEC)F}lJA@VZ=vW_~0CyApE9w(y?{tjs0Jn_04w3CitgA$bNlf6=s@g%V +zA?GK(WtXbGsyLHfIdhLl7~K4T+Bi_wFTOKfuLrN^E8!iL&7e{eDn?-E692{BcU^7z0gvi8`(^9h^nGN +z08R_?v2Tij +zS3(j*gbIwvKHZf>K4?=e=G1XA6b3IlxRZSlA!wP2Pu4V_jD!{+E&tV#@-j}vz~4@Q +z##vr2W0Ds1a1wAU4+yz4s6-rg30#6Ud5TYL{`IkvHt^8L^UMrF%(-xCY;OlE^d*^; +zwRTx^8t<1aj)q7!2(VZ8kKLVm=sZJ8PjR=iWXQ|G0I!HNmoze+5BdSzpe{qmG*xL@ +zc$I^svLf&d=)B8)?r+!J(ZTk(T{ibP07vr~V_mheKG!Vr6{YYPrFsJ2 +zgVYbTww*KtA#Akpl7b~&*d&54x`f!P2ce73Dijy^?D +z=%WyZnsM=iQ)IcXW8t|=`%DFL#F+r+B_e6r@xsi@(PyHuuBKFxCA6oI*F4Hm8%a{$ +zrV8<<%e9k(SrW_C!-LI@g2hxIm&8fhL?cfIW$h|PG@pl2=|iQgJr4%iLVAslv?CH; +ztx?fo21%$VYq8^lU3{NaDf)09!qbPqv%CmIFXty;;ylL&Ey=EVZ$`NYHV_|$I +z6N8vl$VDhtMTb|yfg)J8BsSEbGoDrH{6wIOKVRq!NZ2h#)-)MC}A`s(*BpjVWhi-e5QXPzu<}AX=EWjjm@p(c~>&ZrWkP{7&XEGhCHIa96ihl_|wv6DfU-Erg=NoX~}Wy;s>V^9-1YPbfR +ztY4B=Q(0>?V2y6bhaSheLddYyTYPj`9|`c?2jfb6d0{HmsBsBK?ffAeD+j-6*M|=8 +zV9&JtoBwQ@rm(72h`2EwEN_`xZ{f_Ryy#5f#1$O)AtOu_B)@ViOsw+6Vi8kkmfB&6 +zO^CCThU~B(hCv1S5y=|LW?tx;pjpAjHboN+@_H;gaYczD +zTWxiiyU*G!7j5!v)0Wg3Fa>Kw5WZ*~1Ogj1(@2{IUm?G-MCA`J)e&`ZOlzDB#c`RE +zP35VTEPG76qur21i|`0XSFH5oGKUCMdt;Wh6~K0ZIA+94*<0y~0_8R6B^YQt<*vZ# +zIsz(ZW!V)r1_2I$GQ_Ib!)9wlU%rzh>WC|@MIr)fM^#T7T?T}y#UP3G$Q;y3gok0w +z*3E}jOLI$<%GbQ}`3+p^gSTZ10C62F<`NY`=jbO>hg^2hKN!VJIVfrx1o9{mo}zT7 +z?%T|aMd1iKx-OkX&EyE6^iWP5A4-}RnTQ!d19fct<^yr7rU#s;FZTt)=?ONH4PhBC +zLQxH_yT#>=?P}n@MexDB-xHb|p}3w(%s}+MZyT09dpnvX!Q888U`6GsStp6wBi;wV +zF_#TIv496+>s?<9&IWnd{5kf?`&2Kcr(QM8NX>>_*hGdauR^_n76zaSNbkY0)tS0SQnIZUHonnR +zJC&07ZcOup2t*h`)h_U98@o%wM2hHID6dXqjb(fE;y4klD%~lMuk4GWBa$vQ6W$5Y +zgt(|6fg!4Mcp=ttskq)AsbeM6`qUSx8aQ@1$<#zdB_e2;A$-s%Xs-pUFGDvx3`LP5 +z8QP*UX?lVL2o54AlqfhHyZB5t8z{_@%!x6AO;*4tD7p% +z?DvRs0R4td1<-LI0m@YjKG{45_SY#>`qQ_CH(+e?1)3A!s8?a-B@s46?YmcI+TKekM0NUE~5zewEl7WFtq$fBidQXwq +zeRM;S(X)1DJF9s8(XIt +z2}E>*QViVqDUyOwfZv&EJ-;U!NkGZP5==fWyv2VF!0`xEYD#>oaT*M}3_g)M!hcnq +z?KyD*lBkoQ3VB~^8j2CIa$j!2UD+MWnZtzLR24~xk|d%Y(xM7qpVbyNqTP@pSXmLn +z9*fxz(+G)K*96s$BIb~G4NyPm-wvHn9u75<>_LKR!Psc?euMQKt%_484oYBL{^6)g?q?IhFG&{JBcfC!{k+xPVv^TU}*d;*Gudgd9o) +zy>xKm|9vbM0-p9N7%1UM&W8}~%I +zxa!Y7ScAlW)SAhBIu92LL?+A-3b|Z^mkIb6Qnct|#wUzAJ$s)!$)Q9(*-_N{QU#!I +zY+Q$RGxn0ZKVdL6!=_L1NW3=Xs@y@PcU3-ILKB~!7n!^-Eyy6Ydg&+-0{*II2RD?{ +ziAe8FQ9*@ZO?&yIGLEbV07ra0JOR=a@-#r`j3^rE1O%J>1!Df3ErPhUB%UvDZZ5f+>)(CC55upse-1Rb^* +z3c8WR7mXsu0r#kL)x=tHfjEM2&wSzz!E>ntfJ|7*17$jZKvE=yw_m3zok?VyouF)F +z$9-n(>rH~pLDp2vG&qTL%>>51Qm}8=o_$mkB6-=&7ggy{?YNIg3Dv++{iH2V#LK-| +zF|h@thY}52S$z@B9JpHvb>}m)<__1ZYKP(rXkk)xI5cMcB%g(f$%&0H^8L<`<4<@M +zz`K#V3Q@Ao=)is(S6Z3vwH=Jhwc52^?9q^JyMjcUoTM$S>5gbv9B5FB)xAZ0Z;vur +z6^W=o1Mi(8>A-Y5r+?aB7|zMXQJ}I#Zd%Wq_auJ};`Z1|P7-<=`(((66oEmYn`wpE +zo4R=1-!`s7c9n4zb8STqTk^mQ;z8{R^zYDPkE++M$2-bWhnKohx +z+Xa|qToJ44qnQL+07qz8Tlu)Y6HS|o5C=&DJtx&mAK(pZB~0Ie%-fO_i2n60arUUf?n)*)e$yd0+GD1( +zKM}e0Y2R(+;o700%o`o!Xd<8M1kt$Rc*ld)KB|E&#`*&g*K=_E?H=+O%C6)b2N8{o +z0%D(^x?%ln?`;}X?WLP3Z1<7cjz|)9h&jxLB((>TYi0w!uo}?X0 +z^;j}SY9$JdhCsE>ARff#l8HjPqWV=|Fbte3RCu%L<`pgiHIn;4U~9<@)i4N6NZBh- +zy*%jsD&B?(QI3n*_)MDoRKir~d=+7j?Lh#2ocRRdi)d)TktRM8_Xrb%Z!5&Lvs|Y& +z(p|QsPr~tmb*Okeu +zRE=aoXOsrsFekHv?_*if>9=0y6op`c#>F1kb5X>Jphpe$LsUd4n0E}s_Js74lNsj1 +zd(BdW(~jr`$&7G<37DfezvXLf!hN +z5bTf_17Q)ig~F;|F7mFfPu4pJ1%6 +zpgvW}b)=#_Ja(Lds|h9Wii-yfm9lO36dM)quN|I$5~XDn$o+j4MVt^uQ!@BQ>%ii+!i^r3+qwH%VaK-6=tFS6@B@TI0R0?84+C=Lh5ki?Rzop+~$ +znG)eHkdohDhcAGR7kv9TJm +zA=Nw-W0$sA6PI^!Sj6E=!nK+sb&kk+a&jG0tel40)H-u+XNX^{{~If!vQ3O7Gk3X; +zwrIp4q9}wXLR`h&H#FjU{GB+i4c-* +zK1Edl=2U&o6qipP1a9V}X26Ny-5CgfNYJLtN9UvwsWm1V36IWT&Tc;T1X|)uJ|NBx&b~?k;LD}y=eO!QYhOM;#RpiA;E1Gj2k1K +z?!;o!7@YlccrJD?riJGcm*JgcTm~IMAwI|08rhR*bb*5~?a1bHh7dgqq7`WBsoz|! +z_popxhamT4fGDLuK4K|H?%wGb2n-HK5+q&qe6&PCky9TwL<|9*ZXeLbx87I8#U0CG +zQK$jwH$x)B(L&Hg9}q|Dc)N2f`{G@vsF67g5S!@^aQzgSJBv#0rlEoFl65^HrY%0IQ>A^?I@FHzJ=KtR;Bv)4xH$&ImIa_M2oi;S +zupcQIsv`NO=+LKP5MjfBhv?%N;mR(b&gL?s+K>#z40qu2AtDBp&bB-ZJP+C$Ax5A# +zHR=NixE@1Mzo>^eSgb*+WJ>H$`i4Sq*2*R%!w{otI>pYW*vay+WDrb|@J*bq=4;Wk +z*#?O+J^+D~Iv9+{rY=AzDUCh>uHxcFC!f>F^%><`KRKpi8_N;s5jAuMQmeWnnwR)9yTIAGjNG=0Eltf8 +z0rX?unf(d5Im8u1q>(GZ1d#{=sOu}znKmm_EpYJ;a_CvYA +z8qL+8L$FOI6hdvF-+DcfU7Ku9@AayjBg#)^Sc}dOD6zUWXyJqe_P+ePFR#%%3v5Ox +zzio@FsKckm+v_u?1lrtCk1`F2#ljHyk0oVHm>OSA^+;L+tGSM0ax7sjg0G-! +z2tsGwM1nMIK82VcnuJ&n#MdD7at@?p??R%rsdfCK8Y)_Eh|EP<5qolSZr?U|R~y&t +zz=sZo1U<(IIOC61-#+XSRWf{$5gmL%=?QqZ{LlLDdI%a5N^GB6-xM>rKNW)MS{=NsCFH1BwQ1wA2B#CsUlTL$&LCUe_@)WAg$4Hfe +zm&cQw5UNZpCUocHnEToHd;esNB@&>XAoh_=AI{VUun(fwOXG9Y=OO4U{;M5VXicy9 +z4sD;qMuy4-=tkPh1TN-TI73c`91g)LBEAMQmpzA==1Ymn!-sF}lTybpG&yEab(uHJ +zaVHXP6x5_6!vtkcnfO=WeN9o +zRm(@jf}juEA^2R}nIl%0wF7&7jXv6zm#J@}jOLaA*R~L@&?Oze;*4}*yGKLcL3u<~ +z`Jw^NgKE0HaLqXs=|EY}R9Jfex8m5#z_j)#AI;`H_?caGIjiLOV?wA47xR&-3IIwR +z7ec7lnW4MWJ-9LtTsEkPEJKWfH$1Qu$6-1`Dh=Hq{qso9!l{{~*af3&kS|Sd#%gSp +zd1QWAqS=7?s6p{eTijQsE?pHV>7p+Pz>7!sUsn^5%Pl?h(kNgr_y;&RHSt0J+}K@m +zin%wcj +ziM8C9Cs&KYX*sq6oufgdodoH?XtC$ubH~kU^C@-5Ni+%8@|K%f+jo(8Y&{FU#~do) +z4r@ur!my*(h7J$P@&@ve_PN9~&2R#TVgyYtU3po^UnffNZ$Xdwz +zCOTLGQC?I^FSs5BYv!S$h}@I3?!45gkq(=R67E8imtF~rZ($4K+4;q~OoeW7Izq+zYt{OB3JZ&FkC +z;VmN8aVQYNfrYm7CdX`++J!h+uU_Sq=RxSrZl4l~Ke=RSA?ekyLeO|b(bKKyw6+~CHH7CO96wn)m +z`&e>!GH8YV+bR1L9RX=Mt_!saVcWHrj{@&1B$)LAny2Nyl2LEni%*$$O^Zosm~_E( +z$~{kxDb{K@*|OHHzWv09!&&<2K>KAuo11HJp@u<*l6OUsUdP2`>@_5=;i2$_^a#L- +zNcr?nFDEr4y}=r$?_4l1yGmu=MBH{k=P>kQah&H)__&vrv~ZRZLfl$-BYoIXP}i&p +zFsVeSBE_u-I62MIqCt!W3CBARemNR9aQ-}UYCD4{P%Ft0z~s&nkaOwLt|ov>oB;!^ +z5h}@Tm^jG~qIrpM4d|%w9rfM32SV3S7J~!Q5LsaofpD8x?I0g;T?32y9ZC=7eY%!S +zRYIFQq%d+Qj#IA=q#^F$)FTvkL0`S&n28;#(S<4knL^AWB9`sdJP^zhgo@DA>gjZHqT$U(2G=b540Y{;vqNs^@70k>rZDj(D! +zfDX$>T?A}CK2(79I~mcAe9nPtvgQPld>~44&P%F706f=m;;`|;H_dXr6((oH)e%wQ +zfg1@qYu4E3&VpUv7C1ZvzyIhG83s94*a-+4gaiQtKi@HJs@pft%wUz=J+RNkYuY4- +zw2P21

      5iGZVJ!Lz-P(-(1q*|j3JK}O=*cZEtOq@UQ%0f*$`vF8vq&{0Ufx3d +zxAJLYWFLI_x402jo&j~YOg+096#f1g=DZqa!=KmL{&jC3)_3Xc^?m&OFa47vE$`wa +zfBD~jI{NDw47+$oo6?Un3E0!I`pf_PkJ*ujBK)3DF0VgAToMefn=ZFIyCTuWXaeIq&% +zb3}~kq} +zLG7#=7><$?>)@Z@r|lso!bWNjOm`7_oqXH<5+AFd^H-A}2c_#m+noGb=szex{_UpP +zrrh)RxSxL6M$XiIM#MMeo2KI#YWZDp56`vE=vs*-^e=C3lKt{S0fY5gJpcZ4%{M0x +zWQ0(rZK*Ac^C{MYsqkt0!k|4Jtb=1gii^QH{a1c#^Zerv|Hpsw$@q2VNJHE|i7Gs= +zs=c{n?`X&R>6s8768heb4pxLRl)>|q$ARCSInlnTl)EFDpuAUvL`oj+1A@)`W!DYo +zW$~-Y@9&2S(~nR45`fGn17TE;VbNa7XF|1HkGTBXqwt%~b7@)+q*6$j9jqAZ{1fFFYaJjbTv^MQzD;G^)@Cd8{A^Gn?JbbAB5JP}&EuIXOv5=V$t) +znbV!47k*~lIx~`Ajf>WrB>EP%-mpY^=1yhJkGJX}&oM4JHu8BxPEX6szlq~M)volm +zfjm3hhf)dzACQdZQLhz~>rg7TMM2wRvN{i6>;v%fZ%7=7)7yFdVf8h9hT$G$kK1SR +zUBkIJokYGf7!>_)i1x7Lc_!Fv%^la?&l_1!_ +zjLX~dwQRVTizo(XuQ`Ws@|FSr36v#Zo~7X2`3SYmey;0QujO@dBDz~EZ{ZbB&Wk_^ +ze4I9R{8y-o9S!YZf^g4|*J(9P6iM{~%oS>hL~->7#%+onRQ#KSyTzQA{LQ45@t4g0 +zf%g}`_jjNxYafON6Oi!%(2sX)0^0(});Tx9pTKDA@01)VU!HslSgyo$j9MO+FSD@{ +zTPJ0P&OdnHQ%OQeQBfzA7N}YZAp`|`+3$chP~o}T2PoFbQU7R+;NuKO^8XVp{wFI +z+z@kr5avcO8;XD%sVMkkd^(f@MWSIwtj>br^3Vlg^Z?xin00{R57(1 +zWBnpU(fsX?wi5pSZQUP;XZgcxm};@(qdWR^%)z@Ud6I1y61*}O2$!~o`?Xstv +zk$4paSn%-0O%=sBj|n;)tZv3R1rW6YMjA|`bO)u0mn+9HWwBdv0-W?HqS}9@zj~Y2 +z6XP?I)@1EYQpp+AhtGl-z!6#sRn+fqekc>m^YhR>{A`viT!04Pc1Ey&v1Ab%_C=lInaOj@Y%9gT^KYk;zY{8^(9 +zb_#BLCpl&LYWXD?T9+Va0zWJm){o^Ejbd0MnAP;vM8s7FiNnwP;S(hMQQp<5&GOH1 +z-`0q1WZV1Kg9Iwe%^?=Z7jv`xSSfm0QBo{fLwb&d>gml +zA7PhNczlSZ=mUO%7hW+Mf*RJn4502%!6=T +z{J<#{Cht~1M33PP;VOODIVYNb{rGXtG}tDz@eXeF7tgt_n+1gQ9N^HvJekIBcrs +zN?_#^1>q%W%Ym<)QBC(bV{y|UxgMNQWnB-9QO?CBNPhj--p$QHxNq@nKq% +zkKh_5Qdu}>#$w$f@s87*axjWq4l%cMD+{#0-MimVxs`mf^G6MInAv&a6N|4wz6Z48 +zSvB&CF}fyN +z(eJk_a(*}0GLb-8FGCzw)!bru$1yeN00D>0Bd@H~=AOD~*eC8gZ(4}oli)HNA&y;s +zI9oPR0~}TeeaIjX%V(>%>O!}WjND9sc;(Mxt$lh9tcOklC;5|SmTUU`AdXL0EXX+v +zS|7_*Ztx1p9;daWUc8hQfIRA{-15JA6hk#TLa2WX~Di{5})z*XaYwHYU#g{FTF%CC`mNi=}%w~0J;u?q0~uHh8U0~V=xW^OFoN-03VaMej*=!Iw6Fj +zoXY@lA96H~iK9%D9T$LAp)q5v;4!O;xYxuWKhuIX`4MZ~6=I +zHQ-@cL*S^JF*az;Kz^P&h;Wb2DK_qOiYy>3lzdgc6UJ-q0w@)({0Xfah*xix-^C9Q +zAnI`f%U@YkL@3(pQeO-R|_mUN(hT_}Gn;&G)4b$1G2f>!Oe7O*G +zw9E&J-^yyAIVkgk3TW)ooI9tN0Fv7Y?i;o7Sz;4Ez&x(sa9)42z*E67Y#AYz0)vVn +z{=O=n0pW@GNK!uF2Ky`sDd)T$mXW&djm^ptx!!HV$5j!NJITdyUTIwc2kJQ3XqJCO +zEJT`eMRO9K0tl)AV{ +zW>fGPv}luOqetj);@ZKM-5PR0i%cS(w=| +z7~g;X=imIgVgO6UqUC_io#}Un2VHZ-rGi$CeH5cxGTuH|3!r6FMZIZx{E9J~cV(Jm +zafd6%7+UG8@Hxf0$&*>ADR(oE1CN4~v#X#P+@!AyEgrXVZ9Kei!f>Cf`0%h*j|gI| +zFsXNvP(lZ>%FSIB)Ps*coLZx~%fOqOy$4YVFkfr0#a +zVCImw{`m1zGE=Cur~@okQD+T_E)m0PgdAux&*Qfqh+;GC>wSZw0{=%*%y*!Idf?Y2 +zAquY@xTQIhZP}*Mw@VzlZfz%Lh#jj@=^UXIvr=;UjD%ed{zD=(d3Yn-K0l +zk_*aA+y=4+>n+NTEsUYWQxe*l=mvM757X>n-p9vP{U8sY@yD +zUw=p&iLl1(5MFXX;J&xS&IrBhXc>w`?qmG?9KP;h`RdFvcxKG7J!+s)wGk_eT2j~b +z{6M*p=a-Aa=-2s^M8HKzG~DsjCZfj;#bm5-ytog{$_B)lc~@bh(N0~#HN_uqkPVc8 +zTYt`ne;9q{u7lqIvBlTzwT$S1*)(&U0BeUZ2e;JT#t56IZdw9eIWN(@wVy9;6!5Q^ +zTEx$j%!#qb&tLzhzm@2H>(>L5!W!Wqi^YwRDpamXqPD3+KqQ+%`9g^i_xG^*sB1#=$|O +z!Wa616hudc??DCCmBn}r&l0tcGU5^rM5C7FMm8Y4d`M8&vh4G74OvF&igQvB$@)(8 +zY7iCy{4`|FH6v;u+KhWYIkEjWWA7bGQ-CabbRCC(i=JTj8C=yu5)V1-JxRAT0iD}I +z?{`nh!V@`S-Q@JoBmK103zjW$hqF1csJ#UB&&eTgp{eAbyANA%o-uf)je(C63aCOJ +zXd@jy{{sOlRHzJTA5Jr2Z5J{Q2ItdqhIzb_V$VtA0_EbVTrlKat)bzlX9O}*mI>6#qE-N08|JsXlg27(A@&ddP4XLG}9!;&L<~H$C5q4-==Kuhj9ejIS$tAGG{w|)>uua*6!=s_;)@Bk3+>+h7^Q*VjTKAY| +z^ao`zChFPl@_Og%ChqLjtXKs3p!<{RVcxCMih14_ckAiaiB#ZgOIfXGwYer$)T|rR +zy-Aap=NLA7!3atl@U|aiY5q^!gB_+8^bFiQ`X>RG9b^$49{t9aIOCi +zl!7<@Gg$4|V3!*D{XH$~_k88aHMB_kQz`@O>j4;DPp}gBSm_<>Ge!gDZO_I}T`A{) +zCV!9d>Uz&&Ui6J{LJ4%bGtswV63&s7_+D3l^3!{_ZcAI`#LzZ8zUnNHnRa4?X+5Sq +z?Un8{TS#rdLi&nI5Gt_J1;dMnO8)g_A^SDDTQ*DSDsGkfFuuX*jRkxZ@k +z?*-arCy;aM%a9MA`neT@YGCB1$`nW%pcn#zn~$}_^}Z9OkaOPgFD1sVtnpT82zmcB +z0_j$tw@)#@A2nqJQa`CIm;u9$(OD(Ejr}ToQF9~!a)~7Nb-zgcmQjXf7kd_wK39hJ +zmp?+l{oHrSqA}h=Ej1B(xPf@_d?FE!TP)&$Nyciy)2p4XES#g&GSz@1C!R>*EY2?q +znyRDW#F7ly|?#rc3|aQER~QcQ5Xb-2%eRnrbSs5vq;7`mD2U^a!);l +zo{Ry49tlaKUgdgLV354g$}CCu<&u>YC~{Thg278^#OnN@^e2asyJ7EYo0W3Mgvb#9 +zNpImZUWBm{Z}_5gTCTE)ZbMO7 +zAt{2^II_dbWVZ5Z=}d+7MPH6%(1~f&1y*n?QGr&M14EZ0-tYn+c^F~pNRINrUo*t6 +zPxfl*>v31DJnT^I_3BWnWu3|-qp6<{Rd?ARc9nqk+2U87Fm6IG^YU2IBqz)C6Q9{U +z>_<=&cVu9A>q~Zx`ql%2-w|~j$*GX}app;v1R(Cr216oeAT9fo6F9^6z;dB_7~K{M +zt?oJ&2*d6F$m#zaq&tv~FYP(HehK!6aM)TlQW#$sORQ#AZ~H8ZOs8T%RAI93Q=G;s +zK|Zz_k?>XQK&fN~i3o)`l)i2%xjC+h8lCY&QkrZP=~nsrc(`(rXUfrAV^B&*jYPjP7XGZS;NR1|*Snurv<|++@&#nARIDC@fEE5D$cblzqfLOF^V^+($cZ0t +z{H%8;)(ZYOCst2uc#CmxvhsX&-f5PbI^4+FUN^kMKRRj +zpi$_QJdfV_%png)WB3*3G%9(ApvtO2hrsg0-=~P)d)x_fdW@-?<-NgvC_2W~2tcHp +z#bd}qsLcw;Q(eFTVFXj-0LnAKK~qn(?gg3|WM`%XG5M}Cgkzt|vH1ttY(Y)iuUQr9 +zw#VRIi{{okJ*f#P5oXh}J9YY2&K|!sj$LAc@x&u%4mP6_bS8T6(h0($k9 +zBx6xLR_6#o3T1^p%uGOsA8;5}>U_#w-@V`~J(J&OS>`HO#zQ?T{= +zPoD>`aLMbY_O4au_JCKooI#@~-n3*@vVfbKWRnG)k~bL*ax)D#bRXDYQHF`OTWJ&4z?i?39=(E@Dh$?YCl|=u2htKm7{RRs6C%J}L}|0R +zOjtkGt3Taxrh9wlG0iHpF%cLQfUem4W@DO_fV|UB%N^-(x~FoGCkY@~dV81h%3{x9 +z!@1+-SlKj=v3C{iPfGR8_q*X=IF$Sm2UGeMm6BLUb2{|UKS>@KUJt)_bS@xGrO<^N +z>F8iYOiLg}z9}cm#`#S%+@1{!p{7T;W^L1qNeQ@86)7v0TE5NtC5?XsrE9UV4?YcP>qm$v-;=j$ih&Nf;wMp+)ui{}@py7U4$Ymoe% +z%fzq%t(g2ADE$fzRzL)$=)q1fBT@?B??0so7VRTAdHYfNAb?LE54<#0$e#4KXRwJCS$>nsT_GQr5dzuGe=Av|9dwJ$iDs +zGI+aMXEnH-Y&J7c+Toc%2#By(LZ4JeF6QU|}5v +zv>rPGq8S8GBm|p4zQFN>q?{|45|?d}?L{rJ_E!>mr#mV+6V$2IxYesp7+1FZD5K(t +zgzGHSjT!87IbdXPV{U>nJec&sQ_Du?iE8EWA0 +z?ZceJ&PsU=7nSJK>ipKOG$mq7tC^Oy5_hCw2#pdnYok0L_18JkpB}H9O(u*NiL0n? +zoqZzxl_^qZS}32tP3{Y#350zAnJ9?4$44aW{XXZ&-`^;=yBWavIsTe?jQZa7&)B5B +z+H5X3bjPBGemQUKgxyKHqAz{$$ttQREQCPTtD`r^*Iknbwuz5>_(!T(`Br-SP2#LZ +zCHdjDRknTbc7ViG4gor!4-Oee)0Foap%?*)S=y0Q)r+E0?^=P(BFG*RR{8m5G1BL1yunu4FbwrZB)ocMGgp< +zw^&ZP?3l`)^2(k&IdOAAAyIoBapmxN@OuBdABJ;?w3bmocKz1>>SmJmL|@PVowt?T +z4#V|wFH`~}0%ML2M|SeQY$I0xB5yUm;`VG^64abBXQ4aS=Nsxqc(ECbfwuFlQ@z35 +zC0^ +zdN!7V6 +zgxU-8HukY7)-ic+m+wxyjHM38KW;|m;75wGD-y+%hC6z73%H2Tc=Yv_U2?M^zCXaViPeBfB +z^|ojyYcaxN<1eV(tGs_U8jxHzeBR)VdSBsEe)+h}Pjflc7BG6ey{aiNEmCG!+OPU$kQ6U4FN +zWo=UEw2}?&*;GtYq6pN)tev%!N`OEzq;@vAY!Cq*l#Tl6RlF2cQUF*Y7q7nz2M%&h +zWq6z_7)^2}4t%+6F@^8Xx#0;f7#F&n8#aX{Re5FpT4{@LRN$ySaNAX3-@s)bbk1#AToJ879IF) +z1NuczZveto49!DUE_py%C@hf%f@iOF%OA3=1w!ZMGVC-PK#5aY>0H^#rB@y|4C5!5 +z&0zfhQ}WgwKDe$);isX6emHe^TTnZcHpkcq8x)W1Rw<`L+NRu}7HQUB?n5!JUGitX +zT?xT)jHpn?o$wG#A<_kB2lNrp0+%$r0Y~As{uFo$D8*>)7o%qS_ze#mMr&~fE3jDS8ASbGJ=1D9oo*hKH%d+d*& +zVNh4hyKifW^THCA&*Ql)-kGv +zFG+y7@n3Ep{By0JWqQ=6RtNXY0ve)o_PjD(ANfHFQD!(`w&u^AFe?yxxNROTgz#)Ww+<)HgZk^+RZ(N7O|MuEHoOdx +zGVR-xflo9uDeA)4ZtEuX6_A&uA`9*Z2c$Nln*ae?1t66?!<0RH>;Ft9-g12%vp5cJ +zXUTt$C{%whDn?vQ=aJ>;NHTspOU%P_s~$`Qu&9I`mcr7iWjehm7#V84u1Zb$3-}g6 +zBm$$&4P0WDY?`&!fz^dU0i+ +z2Fdwkj2zLXK6w(o`oY<9nlUt(0&km%7w`mPk?5hO=!LbS3-e60&~?gMmU?6eC`7mf +z!LG{zW)Sqou6vlHjX6Pi3+d@GVQX>e=1lX$Jy5t5|Gv9;fjT;gO9;wtZ!MOg4`Ufe +zh^x3GwjdDjJ#m~ZDivr6<AovAIDWucY5nc6oD@Y?~^nqW4xzY%UYB+Mb?0DlEe^9 +z7<5KBR5OtsMmCZTmmv3FpL$&@p79-Dk#MLz)&gP%p!+x9+V_OQ9Y^34Y4T#4nJW+F +zj}OotBGgchuX0O-gAP=NP(?$UuhKrTO8;M)vtBALgNK#XMG){Y2km9b8 +z!*x|6R+?^GkyD4sqycA@fg<%cI6Cgd;lJU(X1R*iG`onYosoqC$KC`i1^R$9X3}xSkym} +z#SAlWAjUy#$KQEn5tN{jSf93wO1AloA(GndM%YcJ3|%)nJ^%w-jSVo`#{hMYXLoqI +zn>l^_LglwYO +zeI*~Yg`?z43>zxrfxfm+ct#T=O2SNwz>`@Zg4Ae(-YKlpGPy}gkKWj?z~OKn6y8At +zwd>2iFB)Sz$X}aznJJVHeGQoIp9Wr1RJiMSX@JRs^l7bH>{3j`w +zP@@qby+t-p43;0DLA8a$Dbmu+B}g^F7JI20v9H<^Ya1)SZ(m7f7l&M905 +zH-rB;An8PC9c^n)--$rV{Y8l(&tU0UBouQyi{b{5B!6>F3`b~yki`(Kp&9iP8~g`> +z=~NLp9kbMY_S5XmNeOk2wGuTC{A8{}h;4pmZ%XHe7vWB3d;WxLaGQx+0sF>D5RAPD +zcfvOT{`)@&aLSVZB*05Pcm7F$Qx<;{;DkwV2>;&%c&2I(`F{}Lwp1QI1vjf?ynMB{^HqQ84O|k61&)mf-p&xtv?33YY6IeZC#P%Q35QGaT-O_ +ztSZ&m$g~>*Xg*yNSWh +zdcYsVF|Ap%(&r0CPO%Q}OgVbO%|S2>iHuP>**yfzK>^gvqSg~e?Y8x81njIMb{%hJ +z<2h)>{>Hn^9Q{r5mjdoB`VR#hEQN30comRn%zl%e8}E*Ha+Qs$SgNgxpcY7xK4djh +zWa7Ta$*8Xf<5Da&yGsB$H0r^Ml`mKIXBImn^RI{O)d6(23~j?i^d0WnB3TfRSpW>! +z+4dJC;r*3As8RL$5TPNnV6GjCn-wY#^0J~_JrbD_&A&`nDZ@b)$pcyH_&_+(ipi67Pi58 +zZ2Q$6avHRYOpnCh~Q8sw3HS$8^?V>97fdZsZ0;` +zH|aOl@C2EE>bD989OOdQ=D$Y|P3A<|c_b#1#>BFc^y0B{joWmOeLk1d +zu|xo>W%VU(uX476AC^d*4MIW;i`(h7&CLEVU9B}4;CFu3#yX~sC!p1kE+?iWO?6V4 +zwf>CY4hFcBcOy1*g(1+`f|shq>2pwF;TG=ELB^l!jAlu9K+SaB;niV?HqQX!+4|LT +zTmf3U3R(ZK>w0@>+TffH +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 +zrx#c1j) +zS|h3AkS82^+Z-!ci;{_5^=WGEQ22g2xW{m!&INMJKJ|vOYjQ=4IRhJS5HG5)T}_57 +zn@j43-}8hXf@U2^?=LeKhO`z8Yw!R=$NGORf81h_t6L8UE8B?p*>>Z2jQ+mdEb{MF +z%bqBaB&KY&KmW`LDb){65( +zGH9uMu9E}wY{mM5+2W!@2<=Lp77kKd3T +zLh9N8{-L +z%P~t`s4>|`N+PYms=kIl#1^QgSqa~N@>L!rqJ$DO4u#?EsK=5G%Y&NLk@X{3V^*z42*z}|0)@B9KP`xsBF{Xq%ar;+F +z`dl^eLe`pW0xb71WHeuFc={KWKAlETeny!l2btw8CICdIb>~*w0tRwk}fd~X*5iqv3w;;B@K08X=QM#4?LdW_wEbQn@aB6SZa*;=XmHZ3beI>o7 +zMl#zIIvCKs%)vWcc?>l4p41#H9b#(=;3Ln^D2>QzO>!<>xf3)-mELq6-u*X+0VYX) +zaApUPgdfUH0b;rrVu6D{>YA*TnwO)`3N&^j`R?`MHyfV)7aI;k74&~)!;!w(@Eo>( +zvf*_)r&gxH=ih9&^NHQo2GVtjtwHwAkqJNbZ@Qe8M6x1RR0n)=c5aebW>T+_0^gej +zeW5*snNw$5tem&e=m^t|BoKw5Q@P)91ey@7C(x;y_m@lR&iS-qun0X3X$$j|KG|Lf +z96!UMCO%gPBP_uo^Ezrv+Zg5%@%eY138rmTvkNtP`ID#lHBR}R0C1K$im*RtO(r*I +zrPiuZ)Sbd~IZ@!1e^|%2$7Pz^eMVC(2eVtyi!_xH6ko#O$c`ZJIVi~zGZ54hM_lMd +zy#(Zg_hq~9bCb`@ZuKovt#v&s1Hx|%NW)@Z4(7c|qE6GUC)${EaFx@X6Ba0KJJ5pV0lG(oVkh6&C9NwJ(rK-3IbOu#R>NC9_z`Skk&SmTMd^Dx!aU%_*TQ)zSVG2foPh+ixKDlu7=-ytKnvUso^tG|4_rj{-K5g +zg~j*(ml{s?Kh^M|X~xTcRl}A4R>Ol!<$(TD!@*nsw;EpmZ`5##i2tpIyZx<(PkgK4 +zy^&BD|D}cpeyic6o`0#~72j(3ywBfiI670N?LXCUga4(5---XFhHufR{BJdU@U*-3 +zO1|em)o}iD=t`hDga5l4&cj|z{_oWAd(Wua|5C#%7Q{Y2|5Xi7?c}eM8$Dk9f)o2o +z4If=v`%4X<{8q!M!Q@H*Qw>i&hQLO%<26yt{Z_*@|5XiFCdo7Ve^>w&#IEj`OVjL-eY5ZVTuH;42JQ|dl|i{}FbqUnC*(h@(N26NcR-?l&q@|cQV(N6c0hENhdha_hYXs9OGa(D7OFpbO +zvbKfaKG?bhsml0WHQ!6Rg@v7h7+UgHc;b}~bE9O_IyHy;*VuCqk( +z*Ziiv-^rY_1jA7s5Cf+QkJ%|9ut3tNJTt5oFl?sT5<*+Pk`($|Qtn@xj_zaSO^ +zrwHciJwBRDekgA|M9v7bcoo&R^r8!nZLHsMchKvnar=E9yHcWZVkrk+WYcU4ub4gfXV(rCLI4ANn#Q-h`i-K-=Jo`Ro@R&h$yN|BmoY8Q7!JKN^8 +z9D@4c(cgS3&mIV3kMx5qB;EHz*LksyE$X^p9WEW&jpBuRSjuU(Lx@+0Sf +zq@Z<9(68&}S>zM)r&iF~a)t3QGtR?(SR_8tE7X9gnLX=OC1&6{#AVPe!3F2X-GB?P +zk$w|X-=n4tji{+JU9X2(kVq2qm;6xkQ64^Qyj#9~2gUGnnm-?dgS!LXT1MS44HOLm +zbHN6Jqgo2_%W>+WctVDIA-xihMgb9VcM9?`2}{i#0?_k#U`NK~4egaEB3hKoVJ?pBX2QEme&hPoO)ykU(UeTU~D_Z3u4CHbFiE +z-$M;lTM=_a^0cvA`lCTbKP-|#=9*?uSJB%r(b4m|d3xVz^}nOx8`(T1rvDQSkNFQY +zTvwOr=}k;+6z6rKx8~{GFSY}MgyVh=4g)|=maK0`3~h!nD~Qfgs7SbmM_zfPOyioz +z1{v@&ZAKb2UA^F&OBe +zxnMGlGH@ZvYx?Qja-s_UF`;BsAV~-8Xx1II9_Y5I^K&oLI1UxnOr2VWXb+0_C+e5OYDPBA3eK@YH&H4cVOe+kobO>Wz+NKSX}FoLMtcfAh@-aJ9DoPFVVd`Vg*I*b6s8W0Lm`hV%4Wy@{yo%lS34zPg{l(lr60# +zh~4p|6Zy@N#FG-!n0IYSex9>TDY?!C4`t5RYz;PWs;as{a)i43tL~FCyv-Bet)1$( +zP{8I6E5J3oPMk&2?La@DupPGMME7N$_5+=JmGxZvhj+WFNQ{?JH}x2Apg9vBBoKoa +z*qn6EHpAwkSUUwjVof6sy}5I^1&NlPGT65hT{iNklucn9;vdzfmgi`R=$t-p(_3O5 +zc~oIO=Kj1V7cK@FSvc_3djL>q>2@Q)n?;RPzagSr2Ic|2oi@U``P0c=0-2SdXQU|< +zpA;#OrG&J=jfwv{3#=K +z)u_)H36KZh-^`#Gc!3;TMKqee7-9N)%h=d4-N({~P-1l?+OU4#7v+1AgJ +zRFCpR_BNZ`?N9_lGtn8-UWRiq!RVfMX8UHou*Ilp0*rwLR;wTP=TxXSanka`^4KJY +zm2QjX<&KYcm0#!WyrGY?8K06$MlPbQ?gwk|4@WZ3uABl-)x(S6w~oEWokExtu$k0d +zf(FD=aaI&1G-{xhndFtdI{EG9Gdk2<5Qu|i?fc5)R>Tw?DPY7vrk$pq+$Dw&elgAk +zc)!X87r^U5%Mhz*UMdLTcz+rW!d8K{FemKOENJITls4xvLf5gN4-vMglT=!Ck&}-t +z>OJ28sS{20-w17%VpW$sqY#HR$q<{PlJkMl5JmQ8mg(nUBA>SofnjI|To%W#kfdC3J>`Z9(~52@x8un!{PbR=E(SNZ?&e1WJ&=TpZ)g(jm2JIA>` +zf7z2z&J_z&Go$wafBf~!dRNKtK|z);IY8-WP8G@$0IAt#E&((_JM;qV-)4Bi|1iUQ +z{|{~V*xd)Wwv9fvZQC{*+icp{cGB3k&BnHEtFdi1PMYW63u|5LzSpz&*e~`Mm}AbD +z=N#wpJN_`kRsUs%E7|^KhS#F~PcuAdUpV4_n&Ai2kOiRs%?zh`|DR^~kKzBXW_Z&7 +ze`a{fbWzsI%$|HnKtS0}_(Y9{TxKdA +zG^I~n8L8g=~Ca6NF-VPF2&xSv5tGhL0*V58rRs)Bn*=52q +zCsgc3Js10I2#UPA0tQLkdd(5!H{_icl4!(vl^vy7SYTIZ)7aMrfYZEuq_fL&xG0g)hQ +ziOcab5FLyVbn=v%{Meic-qg!E;AGY1*x4E{-}$hkVI(;|3ThfxE62WVMsy!|nx3}Z +zZVC?TDRImUP(#bi@HF?-IwYNs*nH@k7GxT24wEjtQIJ>w2J#Vj;O{iQ;xH0o@AI#r +zI0&EmvhZPbqp-vBX1qak%OEW>;J_cT}J!f +z+QZt5jq{!>Rl)Ycv`ULQ}78@Ovgl!C9z!s?p53zfLt; +zhbUJsgUBGC42dYuUNKncW-g~vS`nnRPxuXkg0g*iNwKBW7&QD6PzGxhbE%*cV%|q% +z_N%45V+jx}p?8=du%W9Wnmd;jqS(7eH#fu%~ZZA`4 +z!=xQTq;=5AXWtF_vVL3UsEPb4p~MX`v=7?WOgQ8;{ER}NluNP5@b$~rQw;4n${-UD +zpR=`7X(li<3ByQ|kelza5&e8C-FIXxb-NP|cZ`yU;h&Cv_yEJf +z%g;cQZwXC?LUTe6kMOTi2uUEbknPUWwHImj93_)Sk&)~08UQJrDk;XYW%xiWK1+PR +zyR>^*`IzF^-n7T+YiF~d1)e=!4*}lYH>4%Y6bgMSx}g7zm&IAIy~NL6uIfo)Z3S`= +zbU`vp4LTioRrWS)w<1hna^8fk7f{H`KS>4<$`qQ1*E05Vz+*q+QHN#!V`3Yg9c-rD=FWHP~16 +zDUmn1q%0Il`iw8!)^NzpKJ8xz!?cX{q}jOr2AIs84tHvV0tz317itq2wZn7rNiC|I +zE6ipGif`E7FYX#H(1+EutYee*1-F*&w&JZjI^{k&egm11ue8n4wr+m3?Nu%McxBcV +zzX*Wa7(uzXJ|IZB`=R!9JKCRerW+AqefW08tl1mZ!6M+(cRMK2LBpbSg{zk$!TGh1 +zuGD6>89;{jU`DpI#Qs5sKk#}eTJf%8=XZOBnNjip$Z#l002!Y6n+!icJcop!_NU^c!QgS4}c7(Uivo~{^>PafixXJh70|R4Cm4O +zn+!j7{tq(Tzv16x_^>a440rrD8Gcdwn+$j4eOmt~8E*6k84eD~J_IkqTP|j;&ASmC +znN%LN4j{ux|4D|6Y5z%vYjFX{aNOTycpKS<5<S$;_P@#SG=6+K-~UR6Q%C^FaA?Xu$Z*L&$Z%=^8IH4w0IP1s($I6~_L~eJo#`rZ +zYZpn)ZTwA!V_qis{hJIw29V)~zsd02aY_;0-()xifDBLjgADJ#%0O^17eEYEmc+uX +ze;Ag>FfUpK-UuJ01?6=bJyqBGO@@2^lML4gpaAz+|2G+Kb@`p>HyM6prWpDM8D5w0 +zn+zuhkl_jdG93FKWH><%B!CPzpM*k+mZ`!Kp0c5xifDBg!kl}0NDu0sU +zf%!M#05TkA4nT&-0?2U0*|mgKur`SP6WP{~f05zA`s@fltfUc7Zv`2RtMd%AR-rT>!*xBE?opEvwP +zhWpx~Bm+M|yOCdKeINKuhIju>hNA(<@T&~~8D1_3Et<(;`zIORsF!aGAj6pfWccU} +za1DBRXrS$VaNnO~xNQ5NFMtdmNW4jref^6J#|Mz%Qz%3?z^O5=iXgARlJne5y*Wb0 +z|02VWD}R&Wm;f@|9YBVE4+N0m{VFTM05paY9koPTnh;FPedP*>Rk0L6hPV6}l?IUE +zD}RyU!2mM+h3qdf{0kF#Zkts+{IGM6YWla&Z{WAntv;m~Hq@5xl#?!RUq9EecAj5b +znH4|5bAqiA4m2YV2A^(;Bf$K^%8AYsayCmv=3dI~wyK=0i#!HhT6}1HH2YDGFI4X( +zKNI8(Vg|{Iz4Ed7a0X8%o18UIHr~rK7=%EQc@8n?);-1a^JRJAz7&mlhN$2q+aS9O +zLPGXpNV8jVht=n`pfa%A=kp`vuGX(>oFeV>r{ib=e8+1J=~n-aRs9KYwDb0~J}m-x +zEs5@oftz<@iV0(mtTJ~C8*{gAM`Mr+U?9E~`g@~G`i1AW=g}ngtpT*JUxCt`ke(MM +z78pF*ust-C+`)l$*HuL#15&qpdrwV#Re(fjuM2urrCjaO+_D_-RFa#~DSMD(NXp(d +zUdo%9`I!YspJf*>jS@0@-Jj^Nfbr75V~M^0It)>+;S)sM=$|$j4F^Advo-~Lm6+1S +zg#BI<^~=+BY3s2<4C7xm&05 +z_uGD6u}QBCdi(2<7w-+zD9@`1VUnD+4F+bbZ1C6evlL^cwLQk}8r|ov!O?fV?lZ$5 +zg|EM!&9B6hi$2~8Wa))G8wYcImYaQ6fAYXGCAgX{G`{otoODkUeeDQ=td1x8Sdazj +z;k>yPli6kPE8H4>xVFUg_y{>ue5@iGl!&x#l*nWBv_>2s|NI@Ru|+fAwq@ZykgJJbi=* +zU$R!|KHwfNHlP|ao2S2$gv|=s-MZwsJ+CPM1q42b$aY^IMd_^#DZ|B#m%hM~b<2Z~ +zG(Pq>+qZiLeo@}J0c-~&K7oIA8BY3xNCO`4izqv>ghOY-)C84>@G^5+=YeQ(IplN8+&|7N%6 +z3N{6iQ^(gGA5O%!vCk4Nfm)B`k8>-%FZRFg1}tv8o+-6EzuFM3E}J>79eG@+8suV$ +z@;`MXtA#w?Cp6QVAb-2^1-~B1AlKSc`}&zzW68fZWoI4%<$kET-1zH8fAQx-Al3^K +zS>L$mJ?!O)TDAVWiB4t~jctg;4Lgtfi3$ +z!YIT;a|HLBf+?2C3c|qkIka!PNGJy=Gd&4qR>wItH1H!_?m!apm;*S_TPlheD)}d& +zXQTK9>F4?#gk11cj!m%6PTZ&Bs+l)Y$?+Wt;7%;BlcJ10FuoVMu0l`Xv?0)~z=a2M +zoBcFg->xZ5p!G|NK?zJLq=)Qs5NF?jj2x5;*!X5gk>t$JB*=}KLiBvE>%qwhY2P(i +z51f!2QwjXxBH(YCC~3Uoiyh${F~B=zITl70&o!_2Kg94hKB(<^bXbQe|HWa4 +zB;3GHb;IWLrAXDqpXB>Q-}rY9b7ku!PzF8v&)saCmBHfWrt0RjE&*yh*1gCtIv9AT +z8d~MEW*T(|N#N;B_EL!YM~5$rYpkifv7Y>>2BYS`XccJ3h7F6pxKO=#O^B+t7SN$k +zHR&YO-jH18Z$-+AL^kM`QF&DHGPrOx6aj0|@y{+lb464 +z{yF1p=YCEG%sF1PKI<3QDNxTT6SA})+V@~!85WA&+=_h>H>hi7|1-+lonllND(NP; +zpAW~hpU}(K<(i^JxFt2Scb%}Q($#+HFNV=dP +z$?RZLE!b)Si*Wl#r2*#;$3_Nw^2H+{eV^hq?s@e)4jFtMw#Ra2+Wd6xO`gBJ0o~D7o@B%)#7PhQROGnQMj9kbJS6;(ISiLBw@2A&?rzmcerh1%xn`q(AxZo +z +ztu%^DBs?4P}e%!jNg09N@t%-u>>KHGhKPIDdfQU#r4Rh1^I4 +z;&l*PdIe;J#<*=mj0@vE3`HCQD_qyE?bS;5<<;#oHMBLheR<^B(hmrcVdHXi^fLpC +zdq8qCskdCVw7m7Kt)mD%OjCo$EpuM%KHq;?df(0uNW)MA$_Fg%m6oR);eZngw7a+> +z_>S^s+-o*LX;03I#-ve|6g}8{c2VV`vO~a7X9WKCdr%})gsK=9leaeMH0>SA!G%wg55H1q;E2;=lSuR<8yZw +zK1!Puk_^h>TC|K$;53Px0wciwpcH933iYZ-50oH>j$U+dL)&7tnPd<>h+ljm(az~;I=*_c5~eat>VS7)!(nqPlDChSGXzl2|BBX +zhSOEe4nZLJKvfU|qG69rF;6!S4u}9~8|e0}AjotnWWF_sces}cGe#RB3!!$(!h6(R +z4d?KcYyCch5Z{dI`K79f^z-m#mE`U-MxUBTm%h_Ilhzn8`^-14B=FlKzj%?&m%U+y +zQCZ^Ye1sZJF?<%XHc_~0X8YVxzL>3VLSd5))sOJXFmHrGj9Y$yY?e+!AXSIUcJkpw +zopFZr7K8n9TVqxxu}g*cfqkIlgml~qD~b#76JprR{!WzJ@ahRj#ah7u9YYI?J?;oj +zMKcv|6H_pXf|Qx51@5}v7|;*+-~hFwCX^65(?cDms^*T5aTa2YBBJjtKJUcVMm;$7 +zB5tF=ey^J-yre&?3XG{xT4QeR9G}`k4$4_Ox6_#WA4>ehe~4GmSx9|Zx&u8B&(>u? +zVAVZRKmo=ip0yiR$$-M;L`#_Mz1bCDBEv;8J^T_BCC=*%K8ohkAT_)Gt% +zemjCUXe5Si^AbxwsEOf(JxDfwINrLl2QH}7YaOanZZ0MM-*^l|3~ICssS4$#x1?BqBlXztkY^q$IBj2R95{H43|M{Gz)dl=ngNM)of +z^e)IGMU9tTWsw;sFXMI7)9gm?CA3pgy+micv*p5?U`X?^ +zEK89kd8Vw}?_~WCTalfvRB|u1$Ft6vFZAF1H%#rgVWs%?YaWf(=D?h6VDq;4$zc`t +zL!A@u(p7$`(Si(0N?ToS%q|iXkFn4TxnTr>GP8Mnp{lmR0R3X=F8o-}A9LRq_SrDWQ=?E%{_qh}>?iC)|PUE29m!`_4am$TzdfG-z +zELY593H9Qd3~c-&$&QsNIbM2jBRwXQb0_Gx&a0O?qKomUig@NCf-f!z->$2ck(x)k +z%yfTp812m5?nw!E}!G8qdrDJuV0~tuB++t +zrZ*T2{|EsS_RnC2Gi_6GM)^n*2>XtBle}e#k##3ayAiiU$T200aTV_4)mTjTlyY{z +zVrGu5w&%R71_k2!G%G#I6Do$77%f(0Zz*0fT!$vGV)yxIh?n}!YF!_ru}mLX2m!dV +zGSmq2oJBf*vSuKxaISiKMEvC|)w<1x9+AA#Qcqz=ktz0|f&S}Xl&LCku_?J4AM40e +zr*1w+lsB9-l+MR_-TD&?SB#ilOo7wJg0BiCi%8_V +z(d&EFEe-NWZL+g{*rjc&yuE&@=Td#c!F0qI#wt_Hxih@R&LD%4TkU5uu&D9-R}=IK}hR30O7 +z?Jh?s8jOM^>AB8Xd=pZA6;i_Rg14POp*?Af?GbPTUC{$KTAwRhpLwg}reC&Ka^p}h +z^NCSFKCcfKA8+wLAuMavQLnq73@^WbQLO`b;ab1FaF%>u^Z)e1$^P`h5r2E()c^Lv +z(J@Nh{+AbiJMa%LoaR5gaO&S)IKUW=C5biTpQ#YOGdspzHc{0F!A@n4UT((F~~zRsmFX;qBoT~1tm +zenSleKDDt9|HMv05lXqAJ@#v5M7*q?L(3F}RhED)%T}@-F1P0EKq2!7G*(7$*A0jfy)II7AQGFMZS;vjCJ|#kH_YosMJ# +zvwaVk*AvD_QF#4g4nE)4>AhiaRScu_B2EbRLrrl&c+i-MzklLAQdVjlnQCpePPR#b@RBk +z70fS(H#P?uF<33(Nfjcfe2PT|(YIc9P^MH`2T}z-CXY$ik;_ie7FC-1pgu2u3d)pH +zMq7Tv-%@1Kn|e*Bvv7Y6y-k9UY1U0rawMn7w-Aq3KXnHU*?oiOhE@!3&QA)~LypVK +zJlViN|Ap7YjNKNK&W{4R4EM8Hc7#0+-#KEnaJy}pjr4i%=bf6?1NZ*WFTafNUFQkH +zK#6X5;3?%~3!X9+!!iF%K8tB;%LVrH-rn!QIGOO-Xf}#rI_y@&g2XgNGtq)?pK_Y3 +za2*d@fudZEwG;z}9(?OkH&J93>sB~1r%CkV3%xn+NT@N5%KgB`ie=?v>hCO*(MOgo +z39P)e$0lpMK$&`q)K1k(bNxniNA~tA18C9q>cts<79dFKYVl+3$6f3UprTlvEq^|2 +zYIWxKXsb#N5sRCUhg;v?ONG@WcCD%RK;%b_QWHDD)P+%t?r@>PCr2BS*Jo%TJ>$wD +z?z}&uw@tK={3VF;!?fkc!2O`Y}0s5 +z_^k;LPWwL2@r=wAfF2Nr*TnW>ns1VGcFI$ohyhf9!#y7eXmY57b)y?b)Mde_=vhj(7_kzum@)%80kV(8kzEZDYL;b3L$xIP?E|O62$Y#3s +z0#HVxUZwzl@BN-3J%lkH8NT0G&krm)bAeUn9@ZEkj~L9X*yPD^#PY>d7SA9VauYAk +zF!(fB33QZ*c%i}0q971mlNWQsz*w$Zlx)}KsYJGMI;QCzE8TTzmwXQLQkmOQ;omtVry +zMbnpaMe)o=V7i~YCZ^s}xihh`zc=R2O;37;+;~NfC+CtdwaCd306`$xrGmHiY*!{UaeCs9_h1m=;R34Q)nnuEm=B?v*HDUFM8ih +z>wKq)DR)k^oHW0v{H(U1QT;aZ7Hwzg`(D8=&C4y;cOs8Ft&0_(`9_?>IkjSi!`$E5E@1K9j-r5FuB1)Gmife<&tgINU +zg}OXN>699+#Qn=6P2^gzi_J+EbE@tpgjrzr^nRp3Um=J|6c=H>lCphI*Km}$F#$?x +zERC4xe-}u#i2FnJmItWbKX<|GeHpdVCZ**CQfqXH=NpZeJ*Ru8(RVY%l1r=rq&JHp +zOW`QnJ{gPjb-paUbHWoyRfxB#4(} +z;R^ayJwNaxpRISaTY1>uU}lvlyBfiVh6njn1Kbh3;d!>^KfgQr@hti-xNyWsia}ev +ztY{?+LReDwsVyz!`|4P(tt-Gk=)Q-{5{> +zjIA;)oXd!Jpsx=%Ir@n~R_`u`d9M`5gcAAtXU48Th$zwO$mYT}`LuL60rdwCEa*p1 +zJk`{&RP~iJ0$Rc*X88+LFzKA2Y>K_^*y8cI#FEsX$G1yCT_HfoKn~h#jBsO%>#gSU +zYHMBn)UBWTH=;><@K1L9;ZIB!{zkls2z`bAM7(#uTOwVAi8af1G$Cu%xL3|ZGP~$J +zxV=*&*|~g^OvuTEDw)XwrU}3$+c23j`Co)L3)u17ir4v=92Eg?~^;l+{- +zfq`vjYl|RnoiqzQlgL`*Nd#7+=m`_Ys&*q5h{#U#*hEaCe_oL}lVGr#2R=$+d7?%Y +zzH(5sYRlK=UwhpG!I%Bv4|*eCl#?~oKa2IM*oSR;t_%mZ_{LG1v@0&8WO&;-m#ZMF +z2{s{ifLn|_O2Zf}IKB;gnPj9@&C3^c +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 +zRb5s=*=+OK>dT +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 +zQU5T*NXg^COQ +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 +z@bIHtR_hG^tOq4Qdk;Ik)xB1qPg6cc_Kn +zxI}#VxpWv%;tXr!e^ReC5{(PQaOLzt-?C9W5$e?laWRGR?0}1=@8czr_U`n?0T80^ +z&3!BA>YSzCAan(J$y4Pc=obbiz;Mh6+?@I>>*%v%{w6(c#Td*O?sqB2#jHFBSeF<$ +zdgEW6MJFz9Db?*tNhqDf7Of7;%_`m0s)lN2;l}aIKf-Jmb#`v#MdxRIu0N +zjPQ|H+MAbEy9!OP^QG~#ZSq*??gJ-8yjm59uGZe7WZg$;yhE7@XM^q9N|*wUnb@sv +zJMDoupKIG2t7R>>|8#ID4#vO&yD|Lb0TudLjEq8!A|`=zvHi4Oxz*!k@#{ewzu)6( +z!si!d9amuyx5EXv#~qm+cQ(P>(Z_C}TkCe+CSmkEfDD>0Aw$A1u|^b>_=*4)nWV05 +zvY8F$W7-tlpfH1l4SNYh)&!JI3E=Pkw@oHqJRFAC?w@TlQ;o_4CxI(K#^6h6{mO{o +zxz)A1U`s$n=_5C27PK=(^J{WEpetA~hKO3f6I57i6~Y}@mU-F%7Q^o7-{o9S2Y*0$ +zf{GVdBa3H%+QbTsK^W4PSS*)-4R~DEdKR#c=*eL*4-4@w4*Q?xaoP-fDZ)wUZ_RBR +zLQ`;4J@cLZ}W9g +zPxR<=s{PS5s#@K(ZG=tw0e0wbknOKNqgyo&Tk!?c0JYQU +zgM>8Fw8h}*>8rl1>)RAn%?EFb&f(qh`QFn0Nlp9yVVS#w-|6Dr*6v(ze?7ZFuM6=ra~|H|%cgioU0l1I2m#^dFS<1V0iIzPt%XW&4`5gj+xPs*%})_3}^N@q>}eM|q=St54(+y;+S7On3~J{a3T +z-@*=N`*i5qAAjvsIlM};A3uH+m*;Vb;D8Zd082E_?890f2tUcIdqH65deqV-M!U-R +zVsYvGG>X|$ZjA_sRcD0ZHeP@or`Gpz3AA*&5>HTL2YA_jxh-=Y9Zentid3$;jGF;~ +z4;+l>dO9W<+9(v%Dp>$)t$-J|5{MNQ-Yyj;yJeD#Ds{UFjiD=h*}`6(#yw6A_RYM;A>u=4FI8bGG^P +z0#5eADj&}Lxf8|-ust=@S%MzF5u#Kgs)n#wR5aZZ`I<}fc|mmGo|0Uc-uQbMM5`!R +zcX!%zgq5VHNs;tzh9hd`kSPG!p;EHOK)j;UTGk4`=~rMA`hFM!Ot7BlG_k!eV#_&! +zZiBdj`2t=Mwixuqqx_VaHufhIUCzGX%@{bAm~g}ab~fH0sVu%(FTGjOIs^VeS~Jdc +z=qoOh{-Lx#X6Ut}$vidJyw!cpD=qp*AQ;JpFr{6u%2hZ1jh^`(fS(x0gRh;zn^3~7 +zcg9tLb&4KSYWn%)+mm9V3dv*21i8Wt)F>1Zz59l~x5O`&3HU{AeHw!7Q39d?X9jci +z8>%@NMs7Ngq8f-cVJi}-chI&GLSbAeFcAbEWee|UbA(LxQa+DBv +z;za`QIScr;*$rUkTg)*n57KbVmbz;YE(u0692D%0;VFW}Edpe8k%>oM4BJt7jj+^( +zOY%xFehe=`-4`YDtM;8iKT%4*O$GF&_|}k=d-41govqipRwNj}ff8xu%U?mEf=E +zeA4%0e_4itBu60X3UeDn`*}3c{OBw@Q4X2Af|<#WtKTN(G}_Iy(?<2h;B`&_&xExG +zQ`4iSx2Hvzm&tb&JUfAj&84g`1}h*I0~=R*>n=_5uF*>BW)A@N%et~(nZDKEEa2+- +zYWE52I&Pe%|BOThp-Ye8MsU?q7F#m}$~rAqV>!>kWXHCAA&FgKdr-CXw&}) +z+{WP`jJ#&OoCBuq6d>OMcWH_zn@^Cs!)k$mXVnh`+B9Q(^UgauhkPrmM}i3#H6|mk +zH>6e>jNP*e1ozIbn02skfg7BL$QW$mV}P5-Z-sz8Gt`p(OiS(%m8Is>DQP0%RU>U{ +zppfK4t%isuO@n?;ws{P)>K}pID$qgZAA!4l*{A}l8MP;Yy5dg*wy_rCV8b$1xFY2G=h@7b{Vhpi=>uz>up0zrO|U-_PrTbG!u; +z-vak=ofsJj(O-ev!N8CLKkI3!8Ie7Q&~Zr$zYTNw{So!B9n0hwe(K7nv*p#I`ac5q +zE8Rz;A*Jmu*gpby=NTeQwwn;~x4) +z=gt#tM#OQv_#f^#50^flZG5BnoPzYKGIcjC13Py^PO=tynP?Jhgun(C26vy$+6^;P +z-bs8`Ol^1OR3-$=e|D@iM1v7#eJ_{ky19QKUc_Bekjr1w`x;dfJ()eRa*{z*k +zB6fsu6olbNBdg#=;pPScT;S00G%7<6G}W{Q?RKZOYb}YJv0XY}{CR1L>`}v`TuuoF +zAqV%iIP&rx1ut-1V6=C$d(Xq#B}JRHo8RLl7>)ylKm`t-*^5C+cR +zwgsg%&t(zjQgkKE`C9gR&IKJ=U+53`VG~4^Oy`A9cN>3rWq*jN|OWanvr3fW~hQE<=;{h8zW +zez1uQ?sSS;J4lU?`EQ$KICD!?hyd}t=Q~Ze(ZzPLZtlJJF=JXRdoA)V%P{g +zHhYt8v1CQgiSKg-63={vn88cxbOM@hwRUl1y#$~4-A*15D$yyL3{@zE^W~R|O%3wu +zLI%J})wWaXj-`0Cgc;a9W+Z}NvSh)y)_@YY9QsBn}eGQ +z=?vep6H@vRAi&I8vzac$dHjh33g-| +z*E4Su^$>|dem8_~P5S<^*1Cl_bsKs_zhE%*)Ajx&E$~Tl6m@?A&X6`wZ)+l{_ttD! +z<7tB==Bg>39(~eD=CG`#c;{g<`SuU^>{U_id}2$}^xEAKx$2@9vf}d%NJdehRTFQ4 +z%gWq>S!)E+kF>|#;&Q#LW{@3N6*l5@pi(tJ6xd>>*1-CH=!CtrI=xDEz)1%b`HQaE +ztIflk{^uwXTJ^R>RtK<_okENcSD2Il#D}*`{LzNnXHF-0z6?@HavTzz)bucC2+~HxrWCv +z_-ZZYChNxj9^$h#<6M^84w?{eFDtgT{u+0*^XjVH6cOvEEg$`^TkpukH+P?2G(9rgzEaCK*UwqsT!D5scz7LBfzPsZ5Cogu +zoyg5TX&~{g*o(_0*2hnH)s#zZnMRQRMa1TR^4pD~a_pHHfx +zEOh*IlT59H>i3}!#P)jPDsW>b}zgLKhk~E)M0kCB}^H(l#ag~oUw +z>$~8S`Sk8huY|1-Y+OJh@YOeoYE_!;9p3)}+*;fJ +z4RGf_lCn*#l>Y^|L5%+g;Px_e+&I#_$kN|N`WN6Xx&H>Zp+n$2Y@I<7djA64BHsWv +z)%FY-Z5^6u)Ux0gKNbN7cT_@2U`QHHdu(Xw8+EcJf??uKuG8;t!gz?~+s +zkA%uZ-5&~1nV2%X0Sv^j5fyq2DnvyAYo8j>wcI+M@+Im-~Iz|dwm1k +zQ!qg#{{gtk!@mLUK@Yppq;G(m;$MLKsv|Qq&~I~h#gB3NXb!-M3%`d{qNvU;A!?vi +zWEYp5{@@sS1in-QB3PQ`~4pVb}^=jS)TP5&3*PCXTDinI9#;I1~P^yY} +zW&G>U`dE1%?P=({I!gIro_vvqt@7{vIG`L3O9j}F^Mlr$MpJq{f)@{y&V;#lu2|A< +zfZOdq0C&M(fII9jz%8^c(uHXmf?*CUD?hB|s&#H>CcRLrf(O^B{%P%tG9_ODMJf!5 +z&yY}nL_r49l)4ehpT5zGT4N-+B}7T51xucFuy5)RgM0wOk +zeWdJ5*a;@}!x93=gh>Xh5_5P;5uEU1M!jz^TP7YfD7dcj)V0@bL>qv#EtxOh85r<% +z;GD2u08tHz5OQ%TEH%3h{*vaNkS*uV)&SCnWgXSVVp`TcuB4JDGbc4yu2m8*t +z>^kA2f7(xYkGJ!4ylM*&J?L|}1bufE&eIdFfQmpLnF={xUQ{0{W?2JAGaOIT(B$Fw +zDKY{2dNYb-~56=v#&l_;qg-sLVfAn=`74zE8AZL9@pu!D?Q}Q +z!pBmf1%8fsdi$Ic~Xy#XHIdxbrE2n5Z6iqRj# +zs6oL{g1Ol%a03e>-z645_4^)8lon>)xu}U+{9$8-{b}XV1e=RKAbeQ_Kji+)8Fag3 +z@3=ty6R{Q{d>FM_+zpBvU^M;Kx+(hrd~tE{xy3ca{MqeN5x=UU^Q;bE%Smp!0E%DD +z@sQB@C1E^uThS!-a!{Pk-SiLM7+Oy*M@AF_GN|&%ruA4%#2d&YprV;l-1A`RNncfz +zzpQ)t0U#e&2Q%*M_4!@rXsrW>AqP&MX=FJupDvNYxGu5H^msLKBXCUEpD{iJ%|0ct +zOGfpy6$Xqg-_N71_f~^`3DDdFzlm&fyHGA|$Npad?9tvR#7c}NylT+f`ideGX72A1 +zM47G!35NEeKZY`>1Cst!agp3O*wnG +zEth+OIIE=1bBR;r7pfc_RzW%RywzlR3<7w%;Ji=f2>>u0v&&q{YiWyQLf2endo +zzk$-{hira0@_G)PDLLhQhLuxox2-l71|L66-UHd@EMjZ^^~fr^%~V3seJZAoTJG*{U$*14m4Z-bOqwx-dPjP$ +zenB3uqeXOjN}%NoBc73w)0a$EsDMPQBrdPF7FP1eBpYk^T~kAW8<;(|#;L8)U#W-o +zkg`~Z#rDAL)Drj$C1q59Q0cnDm*CV`g=1$;go|8|mikJ;xkF2neyw|F1t3TEFj+@A +zCCTw8pYmg$TtniEDdh_qtG(J~Kw7rNDblkWrZ^7oC8I>~f_npryYQ37cTr!K;VoW7 +za7OuHxpa*(F$n#v@%*F^H-(ZMCryzYUe7?e@9)j|@r&IWeE~Slg1tgh1G+ucLfE=} +zzn7ZK4|t_=^BdsS@c~)q{sy@9@4f+U1=Ca7n2`S);LdRS2DsDBzX9%<)i{8^05|Es +z0C&}2fIIjb;5Oa+UjTQe$zOmQG5jyUO?Sn|XgtYB28<7uJQY5WAZxjZk)R0xBa*d} +zQUZPMN+oFPxm`6quhf~>LUfcNxU28>fjmx0HXu1&;d=>z;@sYW6#tB!?8SMHuu2bg +zx`f_;V8*ZO(TR#rCc~#&wr4oDRNn{qc^L3H1Y}JxMu;Kbo>IfRa%PZCa)p)Q+bo4Z +z{^`C%4Tst_IG`m;A4oNS^p5d95OXw^J$!{W+<&jh@!J%i?nzG=+yo!7^jz``DG8~< +zZ`Zxa2O+c~dF$7)0PUF_IKtJ()BO4<(eMC1R_=`%e`kP$=O?mS96v{~hfd?<@Ebp$ +z=Ml_rZ_}kc^QPO(LzTzY=g3kcn}e&53%XsHjm58<&HAWq4(Sz$>n6Ib&nY@_x*9Y~ +z7QnAazC)eWPzyyvZFZC#x@y%^WI2fg<%mj6&yoAZv74a{!8h^L=lAdT*!LR+vls?1 +zH_c%)jM|1Ig`#=^^mmhc8VAns9X9xognaLLaR^KJG4!Hmu}AEj>@oj8)aO^GE-5li +z1zmK^XRC&T?R$aP?Eu&^xMIIX*VauDO8S8lz1?Y6U{|4BXu2kEvtRY>engPyx0hm{ +z__}|K1tQl|7E0+dLIRH|Dxti1mF*i8SMBZ5Lp5pl6mM{K>Ao7+*^821^4&ZA&-9iP9DFC&vjUswl$>En +zWFQ$UD@Bp3AnyyDPZ3(;53VsW9NPkWSw5o_I3PqR{Y-ccmG&xtm3Yn_q}6(yjCT`; +zUeo2LNEKjqfI%PmNY-q6rnHiZW(lAv_KhRXF^6!I?GH*)ILF}^Ss=TbUQSiaqbGj9 +zGlfAypU5+cRe|=eu@n?O6Zw$seZ9m4TS2;;4&0n5balE>OH+@vYV2T#?x9H=_K#HxoKBOl)}G3e@r}E*dAC8bUU8gB7xCe#{yA=|Qh%1|8k8@LTs#1exq!sW*y +zD7&P3`AMk^10}S>trX8tnfy`>ICv_SMI4ixLbCvz!$M84a8PNS0LkYyw6|89&3O6| +z5c6iRu>dUA8ZeT9ha|Q7n8}tFY2>(A!t2U-WRcc%2^bPZE+YqzOkcIS3IR*Cd(DeJ +zC0pMkY&SrrN}1|`7Z{N*p?+)=9Bo|4ltDW}1ZSST@q=ECaAPQwlvqurp>2Bq;p)Tr +zNh>uTng}BogI!?k_aMY~U7+uh=YE_*1@)J%7v(hGXbfOcj|fRZnZeOWiCt!v?l$MR|$jmMm*8y*AC^=n${HKd2Xh%%Uz-Ko>8 +zaP(Tnf7>R+8P7VjW&L1Oio#3_RJugiTUV0Ap?lGxXl@hc(~7O4fd_*WT&3lsI!yyK +zJ72Zf=Aj!go`Wc3)-%5UrfXOiW>DoB_=s5RnD%q|NFhRbtj!UD6v7G59JKUUI4y7G +zI5b$YU3Gd{BHNq +zq}^Ce)w&0lBp-J!uJnt!jV(r?_X+T|S}uhl4w +zH6_I!BjDw%`pn-k>@2B(%)UTLhdk@xVl^OEdScF-V>tmGu!fEeND!z!DTY$jDZc=# +zteu@Y +zpP79xGAGhNlwVrHW{KYn_#}7pig!a!Uf47|BwaPjzP@82kum*r?}&)h1+DP3^<7`g +z2dWpl#3^1ZuO}qj0Cl|<5yVGU(^2V?qS0t68 +zKvV0PpaT%SUGQ0xwFrnIkWLLb3ORq!B6CLrkyDzMvJGM7$8viK!nlS#xe_`ON?AI_EA=^S?M=Lz +zW3=*OP+g=j9_k_qu@P?{gX8RIRRN|BY%HFjJv1*7WsCm~Ul=Z&A!sWMw^@grQ~LT( +z&Bg$oalFY!ZF`*iKmy-lr5wA#0q+QN0YIHKMv6-sA0Pe_k`S-&jOkZwSJ`4=EzE#x +zg=JEpwjB^(h2o;HdC3m4JJIB?9EIGx;Y){_*jyFZrF5-Yp5H>RD~o%H&RX}It-{|Ec^v)KTL5_V +z;%w--WAJRiUHXUkzGaf)MM1*Tt>R>sC3!KJ8YWA0uH$nWOR}RV|6HHV=;Vc +zXWorb+vTPtL1}yNBv^wR_0(^1{%N}EZPH+Gna7#hY*jw+co>ZxUx#P{%bLSvQ??%(EAxqge9b~ +zm#0>6LccndYpi@q=hh7Dau#5=ko-?g-U`S|EjKVND{gG^5U~tZpn;dmvTm7RzbGi)2PopVbR)lg24DiC+Q{^snU4u< +zKCZJdE6Wu0e$&O6$Ef*|0mdM$JaTWg_m+V6LjBShXT|zC90yQsH~j)BKJ4&3L7M$& +z*-1C0XAK0|w8CLE@1Ao`EYP%LOTacjR-_9fI)n_O`aF9i+U@!tasq+H#Mc9xKavA> +zp7h3T&KpwhFM0Zf(FXo)|LlRO{njNzh5fsP@X`g322$o@91qHN(s1WdEu-t&x~3kM=A*s51WAzEQJp8Xmzrq%@(cpGSE?jN +z%&%Z>nUrE-nj+8CF4}vZqF}$UIRhVkxyHjmX~)xrM_ic^(9?4l9REWx*Hi;BRbo)y +z4n1NnFAl#OfWsbE3OaElq-y0rby@1xUz-gR{Q;ep!B|l@n{{Ppvi=Z%=7ch8_Ju)$ +zFJbJ^wFnnk9Wln*n=!=0HA(6#dNo`PsLvSUkodtT;eq +z7v%6nB=G0tPo7n1dr_mGqvrOnFAaBjMhh%EyaNUs +znVhC-TJZ<9W9&DZcqC +zQ7gnkDX6ft`IU4cKhfZnA^Ww0N6SfPDR{WwljTmyQ_p(6KutYb~Ebjck6)LIhk(C&zkfzz@4@%Gn5O&-P0FNf>}LpA;YAvncMp*TJKN8wy=E +zo-1_OUghat^JW7yMzXS<3)Wfp`sV6*#BjsfuTBnK16<_KP+oyKWXJo6$ZKw9kqDqyJS^BwlH1KiO*VW_QuF2>U0JB`Q3NT`gS>sI(0>jnSJC +zx@1C{xfdLx>*g@Y>4CBPG>W!vC3jO8WIQ|f7hOF%3 +zh0688wcaxMNBKPGR7Lzpr?sOTU>P~!NJrzHVXr}*A7BG)kExixidcG`Iq|n1VIPm> +zD0m|B14X0h4vi76h<#Epeu`cIg-;MPo>>lV +zKgP}%D1~rtRU#c=55Yfin +zn(ZfR6E4GQ0opkj`(d|EJD5~_wDL+XNEfIw_YV;(O4%_pRcy>fYr;PP#;@H=@9oCQ +zBBbF5o=_I9w9Ixu|%uWydR~e>KGhnb@+m# +zHr__Dy_q|-nE^K0s?a_TB>~XN6;I_}qy}c;H`c^#`^Y1*TA=U5K#MV;6pUM{q$<1k +z8U0MlQK<{yR(6p*GK!8qMJ&_?3uKG)S+;V5`q=UU51g&7yWmo#>0?W#*1Hcg>OZcH;*+Hu +z$Aq*YEPARI%x?jTfD`;C4$SOPh9gTGaf9_EGvgvV$tU+pNwq%A)#NDbq+k+?M|NoP +zW^lf@Xie}RTP$l)3*=dS$`uST;7G}gaByH@#14zC9@TwvD)FPxGG!B)EUZtiYJ3qr&fU+*|0Je +z%54Cio5sC4p(VGhwXwK(^X)k?y5JSA?=re=WMVlt2C4(=VWGi9830LXPVN>B}f +z$bpLEZLjw~vNu*O-1zoxw70IO&wVG!zWuZj+MmdFY#;o!_-{%ox^jIhtp`iQ%jeQ} +z4~)V=y&40=%HoV9Y;jaY8%U%nsGpp%Ub7uwtPz2>mcnN%Y+L}ASZTn?2_X5u3Xx+$ +zL_*;NWl3zVVlG8+1lGmm^vK{v)u4FUtB8fQY37Foh*ImzPQ5WS;h*CLH)6bw;$J-y +zX3O4NN2oO`tE17cFIPNC7YB_Xc*oHkIAy+y1-~ooo2RpnFp8Rz2I$xkl|wd98`g2< +zK(J=aE*R>mH}mu)NipcFmNv-qf$SbBzVMjoEqsrBKnkV7JJ^|)v3#9Yw`6I|WX@5# +z`89WXf%Q8{EBVgS-iICX`rQ$16ZFUPM*aXuC3x3@deX`>FzDLK6)XXavY3#FsXO~| +z6W;6%Bbwzg?LrYYkm#$cs}kMdISwa)%g#?Kh4+T;>xJ}7gK61Tg{y}>1zr6g%I>jC +z6sX%0bJ@0S+vX`(ow9A)wr$(CZQHhO<-F;>8R^_k#>j8jU-n*W&u8-cVykR~hc4K5 +zZ^(gk!p7sQHpZ<^5D)t&k=vR_00sYt-rl(F5chldFM69JE{yKK=xwk6qPL#|pXMlQ +zrkzuNhl}{jsE6dTW@TsSJEHzeD)(Sq&rGVKe++w@Y@W?W_n=YwAXWbCJaNfZ|B +zI$Ri|u^>GjS_}@x(tI!<8OBDA0U#tgl=^rqVgTMKa*6h$Tusu}v6OCb$wLI2fjpK1 +zpdQB8)GBfmkE%H-bji4dn~eY&EYcNhh#3T~l&$Hs2e3MDOEH0BJl*15 +zd+J)|n*leF(Nvt$&dj)|(X_ziT-T1m5n13E^k?FeKPjW|oH%D=xWGLRwMP{R#;W5F +z(By$SLcFI0ad7@JyI=|%*7v&a$#FXJ2}m@uT$|&|-K&@lR4WPbpBl@*C)*tufARUf +zXaLQ$Q%^*hmRY8-M+`=j>pVjOoBx|k7|)nGny-U(RS1eBl%wha5(J2pcJ4o1Y1I~#L)2#47aMC +z6p=7C6kVB=J6?;No_7EPZgZoRS3W%?wt&R*e6krL`6mc*5|hT{CvXdXN!4i8dmY@7 +zgBD$)Iz(vhS+tqosDg$9b1T<5k(IPYVxQQm@Z>g$mlDXYz;AIH0ZJSuA1;$2x-Aa?9E&2ig{QZMhy$ftnKktjDAU3{R?XD?fPx%T +zdv&blsY4!)h!KegBW5x2 +zmxg;K3S;ah#qtnGm}!VK(mYvY7^JbLVyxOXeiWe(n<~}_=9Q3S@>9ROS=gToZjW6kRO +z{IhC79scxG5MyrH7Cn5sa7f?$Y-UPx_^&`)0XMCe*K<+1Yi@wy%A|{^Uk!uhwB~as +zAGc)ecnVu**+HYuae(7_Q$31&c+*1e#RKBhUV193SXR>a=qEk*>dqt4{vYc;h9F-SkEIjQyP6KUw +z+NA6O=4*=XX9`;V*4j*3V1E$WF1LcN)W51J#3Dppttz2G2TKf9An*#c-cGo(%xKtX +zHS8#DKy~zoo@hWG5+)tZ|NVOoV7*Eq+ +zNuiF%O32Jd0tv&y@h`?hFs7ff0ZqLu-UMZbn{!Xi_>$eTtB=&uRa73(2Rg>wH+bE5A4%8mJ?(|-H5SX#DHGG +zG7_1JT?LU~YF_m88$gG1+l7oC0;?vG+5fpMI}F&U4ZHxst_hxYm9|uBELXRWe|=9X*kGv6H+yG#$cV=vXs!)r*DY2 +z2;bNDSBGZ~6o*&_22FVxm!k)$0OqG_@^RO3j@b*aG(i-oVVMWBw=Q-bLepUySx3%m +zYau&e2~s9-@2>My#&h^jvsM0!`T_>6gCOK&pYz#Cr=lVJK3AKqo*L5~hdwN?|*+aK3ca;@E6m6FUI&}aH7R;5E*a{hJ(vrDrJ6i +z|08c775oo*o9;jIcJ2R=x82G9r@SrwPu}hd{g1re^B;NJ#CQ1LL&opF)HN)%G)siP2O(Y>|OeA^0vo6dHd$S(g_Wv$#j|>w8vwKFOEmMsnQ7OkL=a-QI~5O#vd2EU=5elMM#PeerJ{}U +z!9CZzmz5jxMEqs0@d}Xhw!6leL0{a#9P{S;;hYmpGhC_+Mg#aGH?L7`jw74 +z36(7RG=Q2bNkS~8oEv`lXFfI*2mMSS&2`bE=Gv2O|L8stcTAbhrclAs8shj^Thkn5 +zzm?O(hp7_OX&qK{(95aF#P3mK0=-~j3D+H~SL`|3x`4>Liu8?w+QvZ>JL0tdWmNdt +z8nql4Ha>HPtSa!RH|=Q}w1ycc2|AhCay0|En2Hr^S!Aw6%C5z9QaRu231lHQ3akOB +z+8OMk`*sk+8KAdmm +zT5rhjpUfj6o=Ohlln4%Nd#xB}a2?l~SYg2(+cQcU>NP^FP{8|`d~9GO3^_}>hICG? +z>q42bo9a+CK9iLQW9`vHtkng?Ijc#${AU$te9g4p#+wq;q_zu4mch!GB85@&SSJIk +z!(<~WQS$PmD9S);lTaK|e-;wS3LHpY;q%cs+q6Q7iPU5~s0?t=qCAxs_DMRo@u^-fob&r7h%Jyb_ +zAG{%l7geE|Udz?kYrc7q%PPuMLQn;{_d8d?E*2Z4bJfRS$ +zwwgAw9W3&(S>(TwS?`ISuvJ>7DneLTW=cPGz9l9Buy3=(XSSL#oWWpj4kIeD6Ro77 +z8*in{s$O{D!O)RRny!ecyo^l#5tc9{YF5x7i__bxFdnC7(QsHTGrA;BWFkrkx +z$S;N!cLb$P&-5Y?e?ThW_<*|=Q=ORVNsiw&->3Q +z`KHd0Bp-&f=w47do2Ghi_bDjMR_hR~$7`X!b(-)jn3({-lod}wZ1vjNzJ@Ysf1=oF +zy(E$>NK*6-Bc%gmY=MXClBO})u%|>d#7e?YWb9-(X@P +zoLIueLC86KiramI{y`{-O$P(}$jd;B;ISn{<-4t||1a=1%0GBJ_8+`mss7*LZS=Lv +z|1G@TGH3l?@b>xp{~q2xVfp`px0OKJ8U8!G&G>)9+vxubynUXqRLuMOA9(xvBvYli +z=6{8^skp4iPyai-txZ@4E%6_CTj3wPO@O0F_`ky2BmWn?E#~sSgSVsp|H0c+B#m}G +zKUJwBS*96>Dc~;Q?;O}%SYsc2iFwR&-DAaNIT;~MYLozWY)-L4A$l|7h5{vzHp4hN +zQ~G&z$r)}5MXiFg&!8ES75V^iWu8(W#*n>K*#h%}K!UYTurB+9$p8|rD9{f%jz|!m +z-zVNH(Z{Q{0#wpy=OlGxNXf?7$(Qi?qY_tTm~R{*eZMD +z_IC2q!dT)eOhTZQh)AB>PB=%!RdBxI~2^k2q4;D`O#EKCYXBe+|cz)7<#BA4Wl +zko{;Fj6bV!tT1;L#j3rQX+s-+hgQJAxY4qFy?*t{QOlUKjwhGFeP5pyRi1g)7C(YJ*#l<} +zEtCvT^VE->{=PB0c{D6CXKxUt09G1IIUL~d@$^<@OWp*HEDRQrQ!Hkm!-15Rs>$d~ +zVk4hQoRv%lJ6tT +zVZ-!R8at_s61*PwvQxV7nD*7puIAJe$Xa>j0u-C9f#yxcG-a$4qhNj68=n!LrU$m5 +z*H1!MLfpKPpF9yW#8`o!Erk=y*TNDjod%IOb|bOdnC3C&3t}AofhmqSfaFi##&`T@nrxJAcaO!-`TEscz>%GHhBUhu58(}*s +zb)*}{Ng`ouvb4vKM=pf5Y`{4N1bvM*n#oo!xL!fHX^9N>xTIyC7;nGAGkjnqvtgVb +z5jLp+O6Be#&$q8;PuO72eS{BKe~ttX2adQ<(V-l?Lbm;5!0#9WF_kRXM_&Q{aJaRJ +zM8Zef&?pMyY`kyJjl(r{2^oyIDVu)=PRD(~z2vs-RFIVp2h>aQV&f>t%+qP?%Lgs# +z2TL_-6@>2{J1fuLQ9XP7f;+etWXs&v~tc}4nE$`fWQQrYHY#4?=Kse +ztk6LZBW*p7zUtO4x9m93Lc*hIq}$@P1t(x_R6dVhC*TWY+n7>Nzj_48dD9ldd^eEM +z#L;vW1o*Z3YSg8JC((=ul6tp5mj{)H6C5wQbq6{u?Y#44uf3}9SOL>2!98Kqt$l0O +ztf=F}uQv?tboJ@&V_Be!}2i7P>L?gwxRCqIl5l)3x_?NS7b}1!F=7udhdT&{oKKg!UCiu644c0cp}$2>__#R}rk@%%Bm)-oaIpLp$E48VWVW +zg*CTjeguC3DFSi@oVP4E@D-^J6fm6b8%63k$dzwPAP0UYrQtVjC_)FQ0Fh$7h!nnI +z@aMXMRyhvY?ca8_pLQZA#c9NV-rg=4gjZHYR%&&=d2lQqDL&tQjARDlytMrue|K23 +z`gEjRwuT-CwbnCmh8ir?Nz#P# +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 +zG^0tnpgQ#s{>X4^-jGhw*FMGcEe%LuaNJ +zAq`$x?fv`#E!(27VXKEnv4WX~`h7gHRrfI~UrBItNlqB=^@-cq`kEU2{p>pV_VIY< +z62G{5Ih#9qIeRd$+xvp~vv0ZDs#*El2D(s}(kq$Tn%bp%@%8f28jG{zbMvc47{k%~ +z1&7?Vxp^s{>+$|>9bRKA#nn{HKWn>N-=({H_wo4g^6~P`*i*gue0{rr{kXWfOMmrw=g&Z) +zL()Kb^(6e`u0|_pP!C!eHEjU$n|h_I`rvbri=Le#j}~rDKeTrnFZP-< +z1=NP(kUql#UtSQl%ubz(jT3(IaA@6qIr=Bly4&efY5kG2$jO^_ab?*iX +z6w-+)dz;E@4oP@0a2$LNeXd7om6kb8o!apQ94G7@gIU#^XRNHt7BAJ1vxaqE=SSQS +z8jHCINQ|Tr5kK&7SOmK7*;_)!Z+AXycR$~xtx1p7KyRw);P1YYj>z0Bv~_Bv3iFX| +z?nBspZtkvt2`sX|!YK!MB?SlO`@&npl=um9_l*Ja`K-;{FpLefFG|bPY=XR +z>p$)mL7@6Fl5p9bWxwkOyL2i!rs|v-=93Z9eZv}Wq;TD-R>DYL+{z93*^?O7e8e1t +zryU^FDNPrfFGDZ(np|$4f-w;NN)RR>yhyL;^^_|H)*tOxv$ +z2NHBBy%iEzk6cli +z+1M_!ehQo;ejk;($5{Ago#fL#B3MJW>feZ)>XvaYGKXoJyGKHe +zFU`?<RNa+df#$xTjKXBK{d_ +zoo@EL<(6g=xhNUe&(-vm)cpwZIMIv|I3uY{v~Z6`zfghU`V|B@ImV&az;Tsh6A{dl +z)4c@g)KJ;zzn}~(9D?LYUcl(YWLr2m#IIJF0Jx%OF=673R~Z)ox|%Bt2}yR>VSqgC +zVuFGTRzH|(r})V;orCA5zucRCo}>B@w+m&}AR?8H_+Vj)vDI;QK!gvGX{}cFPCHSK +zy01%B8+Yl&^^i-*Es-LnFg(aTl@IuXqi_!lg^kky*ioQtGpIlt?~XbY+ga`PilWV1 +z2tiM40OeGUjcx_(BZYb +z&Q`coE&4GQ`h^qeA-&};iU(%Kjnv`Mf_pEvsgZ89(8gMpWTsJRKT$KZIA~>2OMLcR +zE)Swo_liys*T)&G)ERFK1||G_a-UlETFE0|=6`-3t$BZG&xa>BNzh8qN9&e89?F+p +zyuZ<+^gnuUA4kigWAm}q6LEKL>^XI{gIneBc4~ZS=~~hsdq?$9$&kk1`XDb+bMFh} +zMY?VCG;g-w5KYFdBgL-UYXmyB+~0WX0Yk>JTRc&wZEW5Sa~;YpBltZI&9UW_E0r>_yf1VXp(54BpwHu7EpT*hzA~ +z7;oCeOTKbu*U2CXxVdg30MDSC%$O(8y`W7{NZimL$y(d$9vtCifx}(MRpay~iOS=~ +z+@SAwC*q^`z3ldM55)l7LuRy@v#(6@9ye9f9xc+EeY8wISF5`DCHQAZl;uV*=zl-?O~h{^jy-vz)c@X$BAB&q)YxWTtDsw| +zkAM1ZV|gxHw6Da|-_>Vec2xI1H~v(L7>9PemsdJp9=Z#{eXR8Usd!M#mCg1!t9-}Y +zP->LxASHLa6I`CXOw;{5?EGf@nNtX8xAAeGh4qNUE^$(UUTjk9fW^d7#m+n|yq~ew +zcu0IR&g~AC(`1FN#(OqdWy4Cc^9e%l**|_3ZxZb&%=*(m_!ZwBu~oRedA3H-meR%Z +zA@+oG5@z7T5~JqM;Nk@b)axidQf$;uHn +zefsw-U_+gG4cnMxrJuiFZc|%22zC}P?T~1U>%HZZluw2K)HM+w{P;|0GfP_IjD-T_ +z=eT5}Wb5&*E!SsVY;eh2RD|g`v*Zxb;$7PwKDK#=LnEB@iJsmz;rl^2-~U;I=l92Q +znw=cpDCn)&x|}xZk+LuF{np&ma5x7}rK_G`cz7@Chq|}f{p&gP_mKbH=!>f{pYTR^ +z2tG%3Sw}m>waM`NE(;tU64z!FkQxosV%I(Auu|6K#O`5y4{h07t;zBsSss0rnC|z*?Xx0LGoueU5e4aFsA{)9 +zkvyZ_S-{ia{%;@LaearfMp3mkAp)8I!L02*rRJ)TnB`0!b$`i=w;KH*$KCFMc6g#E +zm4yTmf-(~p%Hq)Oif2&W5yL(1Rlkd?^34ADNK3 +zt_2#5JkfJ*V`aaZ%F#Yk=Jruf9I!6hKerDU_6~t@@K??TWPjb_23wj!{xE(Ox@o$n#92wg+u; +z&6Taz1VeDG`AM&R;3ULOOP0e?TuY(W3UhmDRRx3SpJkn2*bSfuPcAyXYTmH;`fZ@= +zhcD?~t9Ep<?^w3?U4L=pY#ma;fmFvbENKyr`*rj$gkd_vY`xtATwmhReF-Zv`~na;zB +zj}CG`k0r1ezi`U+h56vpZP)MjT&X4DL=wDyHA2gAZq++_tupn25x$8Ut!ZNkz3Ey^ +zKMC%9cRvTOKX6aF*MoDCKwx|TNB0pzdcXkgoa7{L$ZeM2*$KqQlZkSGxyflU3ef!z +z#%uxxmqj>p@8Gv~RJau56czQ +z(;MFc{zYG$R<-=>tME~vWe*ufgZ8)#AtgI#zW#lVHfj~YniB`xRBSMBqh=E&7P+5EA)T6rtp26lJ8z^FMY&$Ch>Cyl_GKRx93X@;da<5RpV5-quTufyxA48CJPBI +z_gxb?dUj0)wEir%r*4v8AtO&AyKpJ9K+m14W$}5RW1EmqoE%0Ys-$2lkxZUn%#^^o20gJ{^Iui>5W{dFKU5@xAAfNi%UZ*x4J>k +z-{r8d)v}HR9$RIb>b)}d+JXW0P``bJGOv +zT1)TA-oWyGs%vZkSW-#*^EKJ?Jvp+h?w8($TUc|w`!4nC4R(LP%j1>|@?L6!B+wBa +zO7DTd4oULO*V3uGx%SDgW!~W$O~Gg2RmltGz3kFY4n{TBj;~kv6~;SDu{g@MQr*hQ9O`GjcUVDljPc +zQ#B9n3AEasnAPCb{Dq`dB^Af)kB=60Jo*qR##n`jWAR~OuuBEpyMOw9r;hkTaeJ|3 +z@^0E@dnLWEtrj9Y|uE`#7hsCsZr_7vIY*I(Nun`{4R|a)tpg +z|L_>-x6^%2d55ck7^aoJ-F+ryIrcG^oFnpfl7If<*#UU|L?rW)Z`b1AI=__QqW`qH +zimSRdw@aJBYtD0$+7DxgW*m$DVPj*w9c`)|M%N{-jKW8q_VMC|Z-xmx%{)~d$i@k0 +zw$CJ{8Y@TK#w0UAdSK*%sxyf2^y;A&pMT~YbTf!;j1bDK+45uj*z3%`5sfn@AnDyJt+CVnU=IY%% +z9xnxW-~fZ0eNas<*3r%@`aXqXBkfTyOfxXgisrMPg0%ZVTCZ&`Sw})w-f65q6aNq_ +zREAUwvdYVafQQtY^DddW;+#)`#seAnTyuA%%yw>-2dkY8T1#K2=$)B$j +ztZ(xjf=+=bIT+cPW`!2%mLr~0Ja23R!SS)BLEv+<`qR&$`Y17*-(s(CY6dx6%?tK{ +zcMoZ{BA&kor_FNA^j%K*C=-V$^I(08FCFZ5PBvb|v4?{Qn<}*Yp2}$BN)cKk9uXvR +z-gzcsrbj!TxxL*Y9Av@+^PsNc1Z$Ampj;3fBFqra{WzEHbxCHB&wkf^QRpiNBy}Ca +zzVBhty*?a%Pfh4dIK)$pPqSMIy(75k&;)3R+85RG+RgoZSr;yb#FIp!i+w8QRE3T?rspdj%0Dl>3O*2%6rj{+Z_@KuBG{H-Bb +z!CzeCc!B<-jHqb*1GjJFvur3ri*9qW8u3(Pe1%s(m@SCyKzGw@3*fR#h&^DA#h-N|8%(?izE} +zen8)|>S?J9@5yJ{Gn-8d_~dXwSjNuavE4XD&=Alh*(>)Vk4W7BQJhzQK~`f!{IyNl +z9hQ^Fy|78jv)#ET(*AH<%BU!E%#>NiU3g-d&0-uS1;yrDSfdsiI`Ltg8KNVv{TyJF +zQp!1&c@+dlcs`0mjh+jB-$MLA&NY}#>Ov==ugk@p9-r;4&`oZ^R65C89Bm5oAP`>% +z!N9tiF$(*aTOSklbkK?;q;s5{8BpA7=eBcwpDfRVu+Eus=7K|a7vy49e|!E+b5njF +z146jNpwLQ%U+!8hgKW&S$zGHK7{3O2jox^psSn53!&|lGsKuwbQ?i5690@4y +z%QFbWM;~S;;6cQfZ~))Z%N4~t&T1WG`disuU(R8$)M@?JMZxAk9?daBT}|!Bk1LKb +z{SX@#{O3QbCYZY|D{IZ379S;`feoGGE_wn}##HHN|EgQt673@pro1RC3R$F^2+qP}nwr$&XI-8l<-G6c4 +z`>IYAz}2aXWK$A%2*cDW*yW9L$L@OQhfX)uw!&^ee*GDy+Vz9F@K;U@BIo|QmvSOq +zX_6_qOY3mf(VU${;94b0VjDy`C5d^?gyb6jDi=O?v>)v@x^WIvwb^}qM>EFYfIWs) +z)k@CQLLY)8Ct+^(fVJf>`Mv}T=B0Alg5*YRcA`yR)7tf8lO9K< +zfcx05&)Y6M8_{ERo)IN{YxM1zrR&z<{bGvD&2*}c$1+c$8IdYdQ*rhAi@!a7baU8X +z?D9*3aF37}%ht^j+2J6>kntaz?iN{zA@IReS7qJ2c`2=a@Jz#2h+KTUHh!@x;-W(vRBjFhw8^=TwFsI*lH^!;Ozjp5b( +z<7)4@9f`;8$8(=_ohbX5p@R`IXtGs8nau?P!no<&TLawle*PKA>Wo1**q&Z>?EYu% +zw(DTy*VV(KdDK5{-eVI$?_~lHo>`w<2YdO#yWk!o(E0s6 +zE%|uoV=BDC!lBZ_sJ0;B`7)FCcvuL!KS)c>)SqAKLTFJPds!$+^*zYlSV1BH$gmua +z(_vWJtVCOKFIGRlgHE9fO?Z)bI-?A`1!Qa9psTfULqc$#avn4?{HHDQFWX8Dcfv91 +zY#i|%&$`Wo@>6+3Co8x%*A5lbi$FnU3hW3%jjO>+6Cv%hoG`T27K2_erVxpsm^cMX +zUe{{x9iHqa{w7jed)BhlmUIH&Mvh}z=9KTJH%6#g+Auj5Mooo5Ko!Q|8{(mIAN&V~xS+JYx*MRjCoFWMBtR-J8leaeFx+Y6d|-O41Eha~8x43Icuj?X<@gD($6 +z`lkXfevsL0UYe<#N^TCqC=6kT$;{Bhyn-hsT7gQ#h1~KpvRXM4<0~P;W1ZU76r9oZ +z?<>=Py-U5J%BPHhxv0b(+`XnU!tbOu2-cMwN!X_&)tTpVpMBha;whZ|F<`#Ymqp1^ +zr+8^LuEcEt>60H!wQ!s0_bMrPYy$rcE-85cokrzYML~ieyv)^?Wnj<^(EWB2%PTv) +zPL3PeEhApa58VqLeJCV=x>DCTT +z#7+Mh#&4phnOcyf4yruc`5ee@T+K}<0`I61%H`*F+gtjgiY7$+Z|<#13>XP5Y4b6+ +zF9hU*VfneiMRW%oYlF+o;F_xwPp&h0m$|iJby!cB#D&WD*3K8v;;iLg>}!b$$gahN +zs9&%5`-`uSgol5#dL`tW-WS8`0GHUD7)XjUvpPLAQM`I>H;rF>!~2`|;!c`_mO1xIRVV?Sp1=^y}{Ud%Vo;N=~(?5-7`)hTDAta!aAz1$E> +z(0mS4@`Bon0RSg>ckgdTK`^5tkvQZEF+6i#)s4!HPF)9GSo+2-Y!1X)r8v#r-w`lh +zA@vG#R@P}+4b+D_3MB?-YFhtdwMsTP`P5 +zVJS{z(Qp=yrR;a_NZ&vL{_ScRg);IXkmjH*rS)E{b#WIoqDyI|knzBhM_Bh1K$Mlp +zH0BdNKqIEJ7oCKf^e74qS&?EtO&(0Vq86MUFv=hnY^{H+W23rq6qNA!{O_qleAWlZ +zHu3{M%&z+le`AJ-G}rzC8Mea|#2dAV-_+uC4$B!BSymxhGkgc)+)E4f`4W;AB^jUM +zQ&zCLhmQ1Qfdymk=kgiFwV8vlcs6N5faoFc`!zhSY1*;`{K^%eYM+uO7q>z|3{-_v9 +zKJm^M?2XzR$0Q*Ol-YZT4K*?8u9ql6L-$9aXF>n`rIOLIW=L3hdQ3x-#|~d6tCxTb +zQ1V{0X#s(nkTHp=d$V95caW7-=vARe%n$(E<6jD98|gy6twJV>HhQKhu|bwkkK{OS +z$krO4y^=y#%zL2yEgM~*#)P7bm`jADMqHxVC5LKsM+gsl+md`>QGen9Y(rdS2n{i@ +za4?MFeW>2q;f9OR3^#h-JuNk~<=h%x9MYne;kYL2=ZU3;v3SDLtf?;XaeypK9RGXL +z__+h8&vXM2g~xQ@G`v(hW{VvF*jkfhH{~l6!aH=hXP1k;zpxkDaj^apU^P`Gcpyy! +zPnLyXfDNwaq%rGijhWo)@qHb6!g{zrwik{QAnXwwr|WILnQ46m`S*bo!C?FgKU_e7@mSA5M{D7{+Uf=7HPztKj}N$;ZBj +zvyD5wILd->8kJ=jFb?8#B_ +zWmLG()I(n;k>iy7HoYZ2CUH;(8r=C`&D_PmCHIabRA(k580!CkAuk|~d)}e#-VyRo +z{<_dKKD(m6Qt*Z^V|jB^X=s4m&pSNB!~S{X(UG~cE?tvWzum4!#LoXH1vkZ4K>aD=X8x0rzx%Ju+i +zx0>bAnKjC?4sAjNMg^cN`ng@4ZY?11qGz=y9YOa}3GyNVBx`T?x3ap_Yt(z;bTy7W +zonzusMf;0VecSW%umuh^PsH(*zFD;x7V?~yJ%|qJBW>=X;lsod^7J~A@Lff1xudnya~bGLWI4{HSP-l(W|(!Kk^E77L-C_mo(56;nhfFl=+11HwP_N~hFs37`T- +zDJ2hG-}?rRun33Kio#SNqmmjBY8ovj&pS}IZC-I;=N8{g#@3-&2)t|rS +zKR-XGKZpxL)=NLnzF$B8T8Y|XBD)zX45k|BTVv4Z^V4NW`L_i +zj_t=tio=lqlPea_$lPRfWZ$AWQHRpz;dETh77 +zKtg-HL5Q1ceqZ34{!LMSKG4CS?8&dD4X1L8j5zjRO}K!|@eZD6ziXxadi|IxIshkJ<`^DbeRw +z({_lWWhO&}yb+>dSbvqcs&;+Nq4zmu;)V+QucpmRJcV!&G#3rA*}d=|O&g}-SJTch +z2UxnqUrXZPNCSXR%^_YG~U_`<~aLxbIvSD +zHSKE5eU39jSsx*IiJ$z=UroF1|7+Ue-~JN+)wG%6yQ}}FX^T&vH}mWMYTCo(kj?vu +zvc>?G=JJ2Ax&!{FX)n%YPD8m)at&+ +zhvV+A0Q_iJCAm3P1TAK>=Je7NbG!@j+GVw_=N%|#KY}-FZ+Jx}=xJ;~d@uA{0m=Iy +zCq55kt(@LLWs1*0Re{Wc4D-+#7qU^20|NH1R2FaAr?IELv*+DU`CSuOG~7nsSbZ;W +zHqqdgEHH>mocU+9970a-SL)1d3lFi!6cm~4HANDcno*mI_d08{$kjOth17@YN;Rlf +z*-@bumOotaazY(w0*L{3;RqV%RiSo?noDBVo`ew203cZckemCc~r`5k=68=JEXMeFSd*ekzABycYAUL7pO;2+DrW;JLuI3lk$DF +zumnzr8k#!ZnuGjqzB_z6kG6?m5TSK$(ZXe#WT)B^8+z`s}u@HZe_n>V$A~{uroG3 +zIDnCX9HO1pM~ZJWqC`6-ODNf<8w3f96`@ODH|~(lD1zx#b!8)uc=OI)Mu=Qr-LT4| +z%4=M^hhi; +z0C+;0%FWL|idDDGt-Rym}0xXmCGfW-2yGGN06x +zem7Lb6A!7VGDNM0K+z`#r%ku_-(@dv=*?opYu<>C;);r@mPoOZL-Q`xk&r15?w4jVnHQ7L2&&V^6K8O~JUSvvDnNt|sLwbYk4lxG+hyngmKn +zLI>s=A18E +zJ(z-Q^K8!Bm@3g;%y=#&siGrCo8Pp=8GJ(VVnVNkB+)m{`Ga46AI#2AMBO@(o=mW-$~!V +z;IQ6*UI7yougj*{|6Qy``z%HBmNn(6GMbrXmyJxn-8EUmGeQyGdUm|y5@YCfaZjmD +zc>fk59JinYpw0+1lJP{TPWlE-E%bMd$<(2^qmb{Y`!AzbY)!7``rPM6L3kdSMUZ8T +zi>@zPIO6iT=qK!*H1zv9|IV4I^9!?RSim3Ehk_gK1k1LnvM!;)&FXS20E|{5m5yPO +z`0h+pj661x8IF5h{!K~E6g{t+w#ojW>ThM&_cqx=;`=$MK3wdbZKwE>IF}Hp-;{86_ +z#%yF)87{5Xtf&jmu(z8sSWH2gfg+$px#mD;h#nbhZ|aZV4NrhYccYRNkX@ITNwd@7 +zHs^SEk@{yzDdKttk1R)5vdPOuQa-MGGE0(-lCAMCURN8_@OPA=&O>F=p_bQqsb#$L}6 +zHKwh-wyfC+Z@yPzhlTFz6|nn-A#IC!ypznl3)c&Oj%T^+jEyQSSKkYV8w6rpivwIQ +z=#4}7AV&*ZlKKYH_Y)=LkfSphbVHy(I`(x-!4zq9JQGKl)y8TZWk2FFIyWOhe?)F@ +z#C!Z8Lsa7DBEq*9Cu=(^5aXPAFucq)6m3yvj2-=0ERUj({!~{$7hn=*xqOy?BGZ!V +zhW%wlJ3|AlZ`jwV-7z4c85%yrBi0OUen%Xgfe!#J$Rv(gCdLD>^JMLMljXB+RwuH0E~%khS%q+Liaek2a1Y-ApM{O2bN1rN +z`dj~C%`2hnCkhS?z(GL%-~&N#E&kY;gyMxW*Pw)H{?0?$)@>kO9sfkQu0|m4QL}(u +zJVl~iGJ@Q#+nL1lZ=(d3$Q>NMNFY{OV&&BKPIdj|CuV74{UgRPT5A90PEuVX?iAGB +z1iu)dOc7J7p>lE_(s=HNpq@){`It3grEh5d? +zo^=O}#Xg)eWoif-+-x^u2wvwof5KePzs__UkO!gx2Q2RN1B!D)4!HU6mieM^NbN;3 +zDz}4c9(}PW7p_NKu}Qm$NwUl9GQsPX-Zou+F|#{V^{il`cLptSiw+-b%N*M){VsRh +zqxhG_)II{qWt7jVwZ}Jp`g38TR-lD{qC1|9mX_eGE$hz&4=J@gN>)EWR~HkHk`(NM&Q)5@C$MJaa(x6Rsj@)||p4 +z!rwgt<-5V;X$6P`CMukcA;bTW#rMHw`>R8glR!=mbRvbnV#uX%yA?E*P-5^BgERTr +zGID!5$xI1$k$L^RZ{jb_h$Z=4F8dI!*+AU2sp|*kX(b>$FX8liFi7 +z4=R|@s#V;#kOu)jMPc&{fD(;3wm89s({_QIL)qcwr6q(cHb+`4iO(grq6UhK0!*ca +z3b4|Gzlk@L0i7r~G4_#tp%ml@##Q1)5uxBrJ!BH9#mS9~C^}>l +z+D!|*Gp=J+kU;w>ObR<;`vV%*S~{I0t;}7se +z?=iY{43f%4>HqbEbh@b8k~4V9n{;=b0QEtdb_5DlED4ML_9bK&fKWysiU&5!8>{x)*Otn2aK1;ZnI2{&Lye3lF=3O!v_9pNTgB}= +z+o>1VDNfC8A_+TMZ^cZ6NJ5#Ir*MEt-hw>PQ#^|}Mh+zdRAJ~4?N=ac+9pm&L#EXf +zOhumnVMNLn;c>dn9{T-(n&7y)!M&Fqo|(b9&}($sanP)L$sJ{A{mnTDe(Q1HldJ9; +z9s_{Y#07jAf>TDHyNFKSLZ1gHIROsyq?~Z*K7oRZNzSO5=^G91s0d`kmBPU(LqmKw5$a>B3d230K%#hlF7F)+5jw?RNP_U#(V6Y(P*bC +zo9e71WC&WM&)CQjnRY63i4g41v@uK1;}uBGjD5at?ZaQ)!|7mbzH!FW7|vkJIypkl +z(C2O_!^BbrHfA2SGn9&tHTu$Oo&_t!&mAS+cbGhZpT4Q1fprZ)=0LmCl5J8+&Z=Ap +zbD*XF?T_)SM7a4pz~FOycpTaa-%U*AK61I0vHTYFHdTM+oh$pe3k(jZlVuwc!)^%S +zvKC}91PaPtC-jbR^6rAlPssS1Y?^cvKRVDoEFGOHc%pHd5&Tsc``lth1AA3`ft@%N_#=p8V;+PX6qwo3^Bx +zFDZD-R{Uv2p>p%ZGc5;$EuO7>Gh$y9gGETT1lKX_g;n{s4y4CPkd?H>-HyE_O8)(`HU-LrQw{@JKqrxaqro1*3 +zmaahy{=tW$7sQ#ZiPev^v&PjLepDi9K3EYsJbtg=J}c+TY`xxeh~KqU8~fBbfq+&+ +zx{{cZG|fe&-}XC_I|P7J!JXKs4W2+_2VSZgcfd)7g9kTJs!TtV$ZWuPMrQsEUg^c~hg421XajFIJMP}-lSTnwE4GGXh +z?U}ac8S6?ypUDKY(=?RzY!DJQ$;hGKuvSX}13Y+XSoB72*DQI)gPjk)!=E;$Q~U~# +z1Wromujx)jJ`f(-w#EKoC7EaUCkjrZZVMHVbFhZhPQ~u?x+9#dX`ja +zbg`dgQSv|Kme?}V(*=F#`j@1reftq4;v$+rLkzmL>4QUt2+j&d1~QW)X0=xDCVj1J +zISSwp4EL8&wIALuu7sM9#=e5x-?S-5lci3_I{TOWdOil@6fZoN_*}xb(~dT$ +zz>OUX`iqJ8Fq(MKl?JB%EoC{`5Ww6b<|Dr!xH%By6nxJR?8$jDRSvNqi=JSgcv?bMbbB_8!V0)9=?M^z#I8O?|=b +z;2Mik4%5LF2I`~TgQ(H50?{xp~z +zyo5QbBRXM?4les(Yye}pSy{}8jZ6g{*iVKBajX157|z*nT8LCYi3WjTb$|DQiFskS +zdQawbf=CA3s)i1QATliVEVXWP35IZrRCkfTSZbgv=`#=bV)APe_2HJRGgwm|Numd< +z&31!t`>W5=SEdXk4m|YNO|3aa>%44WxVEv^>L`iSERTy+jH%*c&(6M~np?yNDS$AC-YI(wz82#(!n5Y6yD&vF3 +zMs}JmK*e!23={Js!IEF{8P&T1%QY{aoV03Fwk+dla9a&@$#=v}sF03(EW$SAZm3Ll +zw7b*P5Ti+sb}w(X;N2%3)cM+nDmC=`|b1d^}wGt56{A|uB_sQ +z{~Hy-B-e74dU}sX92UWxm8+3f@$9Opm2pYg6nUR +zeYWZH^>KBz_nP%HZRSgj?A_wPoZB(h?;L@OR=Qcw=Htg1bt`ZW2N$=A)z#&%fIaZ3 +zJFHfPyg`LHU%spM3>s$^@m;gz9*?z3kKF?P8@fsLCzWW=qjpzt{t&X1wJ73!+PV)E +z9(1%~B(E1xxfa*RbOL>NOS}h#pYu+$cQ{}|V-kty(_DqD!z#Y&NH&F{@OIfy7??j9 +z(0Cnl?)JZ8Q7zSp(c=+_A_qYg97G=`>LmXMC#Tl&0z?Ue5qTbdJadW4ny;`px17Js +zT{-ogn7N{{aqKq3BYkCU?Vw}|%It2#DMM^ag-uEtfB-yORUjM7aZ0XGe~^eQ?je&2 +zot6^%8rX=iX$%Zwo3YnT5^?wU*=WHiy4JOt%2Xv%4F}Tc8OvKJi7vCQ2Rbl$a3aM~uJKVE+fj{eal)b1K +zIu6)h9Li#+g=BCK6_PR(&XBz>08l*uvFMtBcq-h(e#UHI3#Xv$aBXw +z^WjA}R=VP@g>N~t8sHNDj@j7J+Gp?QX_sYbbgtl#tCY`|kp{@<1T^w!)j%B=lEwKD +zbH<^XS2M}qdjAS!n;Wktiu>ImmSqOf^m_}XU_@y=~6M`vN)B>Nnc +z1TB>33QEg^t8`tMgH^Am+Q_}gdQ;iMd3!#&=k#*b<99x@qFc2zQX#s^2)6yN=?tog +z(iDsM-lAR;>^c?XwN~{I*^|&5(}hL;9lPxGqZ+8S2ea?bF4cGMp9o{@Z<}VK^}D2i-KC +z;-{zfE&tdEy4djyJuoz?QeSf7t+u7a_?c?GKvcJCzO4;>WxKHP6b`A#>HpDfCX42j +z^(;a*!md41r{I(zNtVXcX5cy^heRP#P&^ht!;}o{0&rrMuxMHk5?F)={Yv=E|Gb +zN(nbD);nsioekrVSli(O{0YyTzftiIxZ~M3>c&MnjnmxRLI1@U51F +zilr{Dojct6!#dTPKT--|j)#YgU)?WHUazo4184`OC+k`;1rW{%liMUHCAk1#N#EMR +zuBM)hiNN>KZe1hOz+dY1u#ah-ehhP}4u1N2%!8&xN{z-~2*2lbI+Y(R$r5wKOpT;( +zR#Zq6whu=!MZrYzO@zzvD$!V(@F&f+5dQ1_`!iM~w}3;0A$k%H8n7-#ugbUp68jy` +zNsb_(E>pErse;Bi5G*2~fK)fgXK*4#V>vE+#KLvAlFtHD|1cYB9I_j&aK^9STie0K +zC?VRy;3XR}c{yivA2L8=T)H|rb2ijEe8)+(TP94^Zkr(dzO*uGTrE8F)u4e`s3CP|&r-H`7eBY)qye#z#Wpkn +zDt8~zKc?g>Y>#-fmH9Q+p6k*kK~cYj +z0^t5OaWpCkr^6<@h1q;SeSpNOH-|$cc5=B;HDKK#R}>$*nLJabux&+SL<}0l6EPL1s;z#U|qk$ +zpN~19kAC2gisP6XDreXHC*pa56FcAyaBky@TjMkJP_n#j;-88cz>Qh;Lr?pb1fH0= +zUGa@1hH%*5r4dzoSdH8#GOdb_GE4I&l;jtT+DNlts_jlu4Nn^ +z6P)lMP#vEp@nQglOyV+vPg^*#k^6RV+O1Gghn5~6c7qd2P*1!;MC5Nqytquo3che +zRi@b)*6I6lZunki_tRM#HVSv>O0e}E=v&l&u{^EfZ2`VDwmp-v#1f&+m>foX>b=@q +z_doilu+d+r*CH$T4PV;;W7+U +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 +zFKGd*atXMxcgr51B#PxtE_MNPOA*>)4z*< +zoH0lO42AEuZ(NFQ55J(4F5cE`!CHE&-l?I-Y`R5}C@`h-$59WK3&KBQE$46?&;0>* +z9&sKBG=hksDpnp|k}9&f|Dz!;1NyYJNlqk8uToW*E}=o(?uCjmR|%|$tv(wE+btXc +z%^w4f@kLpuk+Us#t2lK8!eI~~On)jskMT^^E=p?#?i0}q|NBg81Bvg~My$=32l&(-E+A3+86TZ$x +zVoSIjnN28|9xy&5!AW+~#Uafja>#tAJi48Pc2+*~PN7JF +zjz3dbglSIb#sz#A3YK6Jvt&UfVWs$t#I4z%Wy43Fb`oZh6ov)#2t^F4+7~No{vr}J +z1F31wRj>0r|7}8Nzf=&^`=_-o`>{y8#Y|tFLYe&2b!IpkJ=fNt-WW#phk8}ymc-^v +z`@q00F)HZ{Ao#7T9&J7I;usJu?po4}i%DCqm3&z^R&b1QM}B{ZyMKAwPhC=v*MS0F +z`kwlPU*6tL9N$9vBTfu(zkD!ch#+tAdXJU&`L_)|+eQUh0JWGaNhH*S;5bi4-+Z!J +zU4JF4gM^LmXTelns`8Kf6W_511vTxnUIc9w4oT46NXf;hgoxj-VESN^bx^}S!4wo& +zgBRGO7MX##&{P6-Lm>fwi+vM%=n0iZ +z*9PG+KYqhXF0}--%DR#QC@E;)dU?LsgbJ{k@>xPN>rINTW#T1JzVfXXny2RMq5af6 +z=2aij`G;kiKwUcnhOHrg5+MN85)u^0om@hcLCTxyR=$P;zIEHZpKuMJj%&8X3`?MU +z+2l|Ny4!nHn18X-`{31MT=jVW*o!Hknmqp{1M-*3X^hY?R!N1`@V5&sZIG!=>q$R` +zgYqSB-MX?Cb*yB_6$NC^@FI;DwSukd@LUuy0&%%e|6B7?FfOG;A^hMpF(ao}A9$%Y +zQ96TR)r$I3zaOw*Z@WjeK~+6)E#%(50AmhEta^|Z+-FH4T*fR6EwG8Kh{%cYW%&mU +zR8d9;@H*AMbQ*isREAU5#)T%IMA&bK?ZxZ9tQfc9C}u`Z(jZ|7ei5=b|NI@N} +z606`Wd63c#_DoPt+=;(b^Aq-T=d?bd(g8SH5$o~SWge+RU)xVpBz`~Wb({;0pfWi|7GpcVKb|RE1nQO?Za@eD9dErCkZ)6K1u@24B +zUvT&1-J(^fUpLWGthiq!{{0Z64&qKp#Tr~B@{a@U4h!6*@VVOXs>6ir`7R~R(^t<_ +zeZ*DyThwq!8$zbWd4hgYay`MD#N)u0>R~<-{UNLY-?xJE;DEQd;c<@RSRSEEQy>^b +z^bpbr_iSK)O+x6Q9uI=Y;YqL5>;Pg0_Uux>SOJx<&tS{{WyV +z9dsDMDd5MWuvGh4>MWj6D1K|10JOytCPGZsVm2#d|3+WIg<_WoQx=3|iK_uJcga`b +z*R)P@Hh_rudcrck4C-Fc#Fjb`W>(oaRe~M?x1jhb2R}s-sRgY-Rwj%e%Xyh${O!h1 +zvB-&;=F~E<2Gho7X2GbSp(iGPg!TR$e$M_gj+RP__Q1bNOyjLB4_JpL{!H@H{gz|r +z`~?pMTUK7MbMr0nYIIB){20$Mkugp<)Co#QxyAO{!X6nCfp85n79(6=Z+{kgrRzoW +z$FusoUUkz7DIrAyS6+(g{mF8y6r{x1ld7-3Igb>psvoYa*a-e6Iqh|;e)|9*biQD9 +z4Qvo;3^;wZIREJj;7`2H@uY1z>APU$nj38$37ybup)G^Sm$F{9ff4nfnB=qPC-~=OwV3{RbHUJ&7ZZFcFH(ti+ImC*uI1!;|bAffv6hKE;eSygmL0&|e-M_>baY +z$6;$rsw*z}hN9ba&OpS=xvt<1A_l8~G=8~)_Z5rTb@PD7 +z*?~rH(Vz<@<(M2hdmVpV*3mi6unp16cE?(xS5r&2UZO0;4y9$~)eu613%Z64oOLTf +ztphGRS~D099i@BSi+ME`jwohKbx0mNvXNwI`xq0Np8%^BjaEC}?{78qi=pMd2h_zL +z($GTyi#IVFDAOY~?ZP&(X6wzzT!63L8!IkUXdJ(+;lYtSa@_7@jpj?qy|?qWKq4U> +zXzuYFVqW8>Op7*XuO3bN>T`(yP*iR*UEo)q +z()i*V_^VrDbRPw7J4dH&DgFTDhhtNn;Wh$x2K-t=y4UuvE$Q5LQ#rivJ;mwoB?WjS +znB#7%r*0$-u|%~kO))#pO|aE*F)L;UD=W^-;GAJzHUg&>vku?VWS`vpd!u7p`f`|R +z8@29H#sF5m&b|$Zbvj;;1RnU;RZEyTO*F2m`M;ah@V%IUjU=$vQ5a~N4uW@x-pP2$ +z3L4k9C-k&&WKSDJ?nn631+j^($w?DhQAyl!LrrcOm`S}cGL+?58!;&G!SC3=dktaN +z(!YJz*R7XqInh+`Bh*zm?CZ1N*BRd_SDNXjAmLwSbt1y8Pncn$0cLd^j8IG<+{{T^ +z&I2(b?7He}*g*XTpHVR2d6oqLnG+Xf9i5{DR-2AF54URUhsKDJNa2!XwBJO?eFAHQ +za8SODk~O*bc1UT&z)TRIf|~ZF)B1SJ?-76l`Qz4g5>aQuo(5N?TOO+)6RNNJ_LvrP +z8(fBmV;ka`6MKN!MZa()0^|*7^c&*Hvw4=`1a20mfEH@fAjZt?y5cFx9-FAdz=QV- +zXBPen?nRfQarKbBNWDko%5TU!tE^IW;<$t&P}>o(W6jI21i>Z>=zy{4gNU~GB^3uT +zUPt<}w;u$=bb=D&t)GW)XZ%cP)zuVut+d&ewe?`amwL!BXbqN=x`Xk~^Mo(sJ^>vc +zBM_Kjm{hA!uvmTp01&?H>eX3qt@6P{R|H6r(ahfpCZ?tsBq#`Kgya~ncjbDp?6cl003bMVe>uozuM^o|v`)kk!-A_|E +zj~9=O!RADEC!nD%uZZW;w2(sAA&^Pr)4&u- +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 +zR@76s)dcmG+P`yW##`2oo_ +zFDK`F88dn5qFyB!p9`Kfzy<$$E**5Q(YJ!z4OZUvjaaeSE*sXW(6*(5k1kwKM%0H- +z8Nb$}=*zfrOTzp+i^-q*(JxbU$=-)gwpSGaV{ItC#9u>>aqgh) +zw{1^&1YBzHpWy3_cZBYky>((@4*+cKv|eU-XE1k<+(55~EKDU57-?#0cc4zxUPaVl +z3(nSE7ZqfOE4VX*1S(LhK1m_AQD3NNj?HBSf5US&Wx3pb9Le{fpNhe7#WX(o- +zZjbg0D|me#1Tll=*gplfv8iG~{M~8*=BSlRM&T=~bXF|_z`?<#CM)}h$W+!Yiu5tn +z=A=s8n}t?0Jl0%&@kbBRQ7Ts*v#qU(P?nLlgT?O6b4GF!g-?8tSDDU=HK>kD<3qtC +zB(FY;w^*BMM43?fA{zKx)D$$gXSH1WNC%+>fvoMpU2xyRCFZk743ACrkn7#Sws5E? +znLOF^2I85)&1Wcfhgre15V9+g0q?^aU7p5@Ya +zI&=ltaa~8CEn;fWOXN$*O)ja>rkk%8K5yC!<+{Ts+vHB#loxBLa^t0ZR3Yrv>yH=m +zs9abUUBVk#_?1Q$Y22v~XZPH{ +zJ378~CIF6WBv><&@RYtETVJ6M@*TVvXf`&L?PY$7tY+3jE!!!~;R7C7;` +z6J3w={%*a5A7b{@Q;Kg{z2ndIe3#Dt +z`A$fktM(KdJdU_!2nLMFW%Vjqy!(i`6F^$?U$(o#{Y`kyRXjme?;yH*P_?ePm#OzQ{+xB +z?9Ar7sV4%v3Dd%TAI<(yQ;s(8t@TD5&Ulo8eMf+5;D6=$t-WAFCnG=BEQc;IO*wrpd#jxXUVg;=<&+~90}hPL +z_8~O6;|+{n+}!pr$PKpg56C^INAToK`3Z8L_`t3V(459WBOp|x=ycLucEgwoUi!D4 +z`hH;;6Y98W;8*tE!bf7+6p>n_d;Sp!?l=RN`8&Qj!meaZwxy +zLANZA!$CDX;fm8-XJDpqI*>_L5F$M|%+D0oc8jw^iJik@P~B3~NuYWhxoPL1{o93I +zHfvn*!!{f2AQS5Y@<4&TCv +z;VB**s91f*z#Eqk(AvZ~EMMI?8043;L7|b_=C#ySEoe(CC +z!7;E9wRg(-<$-;E*TYlWI6imNrZRj4kVmIJzl`5Gch%Z^5Vtl;-K&i>MXg6c7oG_C+^gz7pod03J+ZLk5SUYdT8--1!= +z=`w4@qo0Q11G94I>>A`#Xga(vugA;K(_(f*)dP8p5;tM>aa`-r{SlfY8)wdXESCch +zR0fZniz2RIfl)9^tqB<8j9_N$2CD=fv}~{_An8 +zh2qS=&;pB8RVd<=${Oe;lS^^%82{sOfA(_=Zbqalu>A43@raBYAjy!iT{uP15KY5c +ze{DeZkhlUTfU3O*%){;eVjH=bh8qoT#wIyTcWD(*e$QwvG(DO%Rk{P%@r*HvjoV9f +znZ`2TOHS6hYext&?C&~fb2x_%|86~+I^oXC@~qB-Vq|E*&E?yoyqA{n2c`vmNuA1g +zeQkNx`JOHyGRYAk9bOFS5F-P?+;$@sa$0>;!dniX@rSif)e?n~1HOpLxxP+T()+5& +zllts*NO$dbmtelNaM3edIxL0;0GP?)ws;m7wuzdM8@k1K;EPx17UC#_OexG6A?0_9Sk?v-8(U0wg%D-{0_)JoE?ce$j~5 +z@@XMgb|5SL%W>QB$0A3XK0)>h?vkltkZn;^0g;;xH>|lP;j3$DO6%CpQ&OaKr9X#*zlQJI!1hWHD@noeu1P}s{9gzF`RQKP#gxa+S*br(6@dc*} +zpye-08U#Lg90e5ubuwvi-rh;oJt0 +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 +zBi3yQ1f5}JB*w?${-~o9p|7*unrxt7Sw2lG +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 +zBP5CQZqu4wKI(WA;xyK&K#3}bw*pS$b9;b-x +zBh|GGlOg6R%W?-tp0SrC{ClEsAJ}hN%B^yr*a5^&a>{7qFVVbZNe?}Wmcf_WDsTv2 +z?a;wP?sSW=#yDVPx$W@jQl@HUeDN;kHyr2v7Ec2-o_kx}o*K3x+_aWF#M6**UfA(C +zk2OqJzPyO;J0O*dt6PNvkjj3bZ~TC}C$37ZDb)EbM00zT0U`OD-KaXboIJu`1V;yV@h? +zWOBBKgQU&?=U{uq{N2E*owvTK+Oai&F;if~(UfJBdNOJDH?jes=nJZQg!?cuFctXa +zmm~)6T+!>nY3rK%8Vc1jf<_RUP2ed&$S8}Jw#cwBmwqYK(v{@nJlDo?4j50I-K +zrVa_4-}l9Z>&g5^zm;a=M%WkvyM-pGrRqm5g*KG%^F>uPv>=%Ql&{>PO_yVJd{gRH +znzi~GtI)08fF@1xgL2x{0@RIe==mzGAiJ59rr*Wnxi$$Tu3r&kwUN`4fUgNeJbpk7 +z7jWwGIF+})3UDL-LLV)}1mA~f^i;fP>cXPKBz`ORO3o6J{drf)nJqhK=v-+y)f{s= +zMQmqn_+jKZU}T~=-CHNP9lkEa@;r4{r}cozrFZuay^X3g1FgF()jaecdVA+Dy?ymb +zZ+GE+(%a5|=xyY*|4na~ZC$bVs!X(R88f|~h|aEmoHAXsr#D8V9lO3I9V}oD8i+}s +zaiTDu+;n2~R%yvua?jsWDce&!9?eyO +zuxp^j`4$n7d7fGGjt8T$k5+9_d0JwkC+#~0_GAY1J@VBpM!%=3B!a>KcAe`A&+ekr +z0-#(176Wm3aamzOQ~F9s5z;rDudQiy?(V{)GEDhNZ`vGj=)~r?brpFItU?pL| +zVp*mj0w4?>Gf8q0%&YY76NL0LM9`3>i0?CM>)G=hj8K8QadZmS5jI&A2mYnEkKnie +z(Ax;Aux7)5=xw+^^!EEFy&e01(A&I!>224)^mc!{g3EvCZE71bWtr=(M-||^Y=-ri +zBN#cP{B%NYhF?2ZAq%5${`VyTe47%^fnh7IkDT5#-l#H$OH@*`F>HML+j#R6d_M2g +zc!#j}v83SPzmC7$R|3fW`7W+sA8>AO^*T$8p8!@YaioN2PMZ>ix2N~^fo1e~S7lj({&#^I*ZnD)qhxEXZl83pn(@}ik(>1_pU{u(2&bgL +z2v_?-ANva)loxR?+QugSi4t9CfbZ-k?o?jZVx*8jms}(|UjKUwgag|FE|czJJ== +zpikF!X#dmR2Ci9G{xMF`bol?++tvTt+l!y}wmHGW(c=R@q(M|{4H_kIj*y6Dt}G#B +zH`@~vRT3&?_+cOwZ=$$p(k~mTf!H{F1P)sH5c-S4JMEPRtL~v4NZXhb+f_)SwPnQN +zk(T=DFWt6|KySO+Fo!kRVL?xa{4Bs`tqF9(i4=J5vK^v#k=A+Nyvj%($*F7{w6Mbt +zO6~`QbZinUK?P#d$4RN%b~{pT$G|I?a1vk=nJgF5KnpCanSV(TC?{`PO(c~HJ{^Mp +z#BYK(2G=}+o%L7CAJ`-118sLgiH-%hyKX3jvDZ>HxC9XicL_5ZOuSy#)TA0?2 +zbg-8`6({J2nxwK9m?o!oZKfDQvofs|kD2>K9D-xcI8WhY7sW5>4Fj&g?7 +zbsdft5?J4uR8m*H6lI17-NqGCfVid4n%6dFa%@}{OP62Mg0J=*Ekhk?h8zHeH62`7=(Y5Vj%(*C7EcFP6N- +zf%q1-K)?dPk*1PbJ745iXa@UZ`OQX6n?$Nz#INAAL0r*Us+lO++$T5WPVMsitZ=j_ +z)e9pF8f0mD`?FEJkA0N$aI1o-UcIO7UJ?d(k-9%_Q`5bKNohK)?BT&J|U!?bePEh*xR6g?QJc$TwU&c++L?3 +z_(F^=J%NAhZ9_TI{GYG@rvI|H2aq;U1MAG6icC?!um^7ry8~!*iRDK36vZ&5M_yat +zqx=+I;b5kcUVnjIik#%K5+Qe5v4|FVgMQR)k+m;vYc*SLN#!Z$H^5?R86#Q!z$OoD +zvKp^i(x;u4+;@2A*mKwh**)B4@b;@O9|g6#Pf~`?-$Pf~?RDuno3W?9b1#q)bjSat +zsB<^oS3hYYl0rQcb4tR{m^O3aN?u&tWYud9x02i1ZRRGNlOM|WjeY2fX6%h=b>heW +zN7y|DXtJ$cqE6ekZL89@Z5x%gZQHghD_v>Zth6d^<9xN&-raw9U!0q`i|dH@opU@R +zy96B*A-_U8gWrPy&D4DY`te%&IF2b)}5=g~^b| +z1x|UVdP^M@N5o2vX(budUXNW^?kkVo*!{^L*Z}yr*V%B4S;R|bReFH;Nz?+{NEwO1 +z5{f&^UqGS~NhvbI!wY;t@uK01FuSE3d)2q5ec>2#DZf<~BV{|gko7ajX7shBXH|Jg +zLQSNsw4&U-SCs*I64vXYGcTL>`G^(5B~nJ((@@`5K>HIFVdk8uGT;pR)%?dODIaB$ +z7FV*rx-!YMbMAZ^q+8?*7cLLZ=qrD60jomyXlccKR@e_sYM}2NF7d))hVl|7f@OF1 +zLwNd=Mge*+OIJ*C}Gp!lir1QvyZD;u04u7)D6K#~1cq8as` +zmLfWTsPB`Ogy}mIf&kyz%kT!NR}DW>8!O8Qf7(LhWVAXCR3w(`(a7~G35(-qSD=_X +zg<;O*4~8{zxKBB_Wx^d$2{{nY?ue&=Z%Yj>W*UY(-^;}4;x@aRoptP{do +zpew6olXDk-oZez0l|QQ))^*1@? +zrrD6{wchQ|CwAZn0*++qO5cy_p3J3b1(^XJu(R-!1J74g@}wG0B3SU@_nLy1Y>!zV1QY4_$`vmHm?n|?7{vDt<7$z*=L)P;b%rL|VqOF(1cf`} +zVny=n0>Y84C?U@P7jGB5CA@k5ZYAtC)(m>JVUDA6XSN}qlmiYnJ1fEjjAB%qEc`=k +z@Q+xsnYpMrH=78LjkTig!#t_O1Iyv#hF3Dw)(naR;$*eJ6MXoT*)}9R?5oWA7s$Tb +z*P-AMU{}}bhLprdXl}CB{1=hIBWaQy%q8G=$4k3NR0EXFHIlH7CaCrc#N6YDoPJG* +z5yc;1$N0nq<6ZWAN^`o1#yw>3_ReywU3*~3~t9=hg6HE;7F`@ +zky_JK(CFPJbEFfzpw3xB)Oy5qus37})?YeIvc9c&Uh}58&UIS-#at;0<`>_4)sFfz9QXSK#<*vHL)4A0*Ufy+5Hxl(^xpN%Zz$Ez|Rg-t- +z#za@-YQ7jJY)hJ_$71^Jg9=WW4`~3WTV7w#$K>3A!e(E6nhJHO^{7yw0G?t+Cga$+ +zPU3fDB8pm#MD5`@f3r>!NBf4VbZ$SjB{DIW6+Q@v*pwiri_z9%MnSBEtFhjsRX3st +zaym99`j?rhXWpPrP#DB6vbhG^YvUO4T9pN}j172&9?%F}R|iE%TIZZwe^1uw;DC_-{` +z*i#h85Aw8e?kk^PfvSXE^yEM!@#x)PXyl45TF1N-2yd;`*Q$LAJHVbxV69YdJoOe_ +zj~Fl-qjL+E=q(RCZ4Fpf$|y-}h?#@f#Gve)pD!w1OHTGVrzLMeyDq`8Mk1=i;j&di +zTlA(p<{h)Yz@K*}uKsvQ5-_2vDu!$sZ1k_*)f87khjr3dSC~%mkhDp3K?+VD2Fd@& +z-VRbp2%ny5q`WHD2iV&pE&gNf~D7V-x%S@X?0fLQ0 +zmOoUz7uY0rX%B0UT>RN>!>X<9z6aRb(MjY{VN;^+By{C$-4cd^u4#y5)qtDA +zw6Q-PYLivbWAPC(>;Br?Y=7F*U}&_V)E0z}`jz*xP}M-N&zu@A&)M +zb);RVk4DB6ej-016$LdAa-MzjtdKb4j9lf;AzBo7@Cf04aq9+Ns%LCP +zt!UU^J$(hMt_dxpN(g-v4Bk6O3w?8tQjJq^rXKKH8!D^(*?V6PVG}xZi!A~f;H0qL +zU8BvlaY~x^9U_zrbrkJ8(_8%{a=# +zhO(8FYE}bPmNCu4F}@H3OyU{DjAr+aA<~zGu1vl7e*hvofLOn9=VXWofUv`%4SF`&|X$~jmG*rh_4BEf6~dY^&*_2m~5!xxUr(| +zMJsg`3Zy#e9V5xfs5{*x1XQ$_V!_6~F2YR%?<2>5!x4lJk1NTA*r-L(cCme1moME= +zX$}G*V)8Jo1&sjwhs45+-yzU0H713d8yN_A6pqGA_A24^SN1maZ#TpH9Xo_2GgR^j +z$38FHP~=#gaPRRKNqlehY=)Ytpu4ke95mYh*xS|DuCYl9qO=lNL>S7u+r^5tNc;d&Ts-yz@SC9LddkH%E+>>0AO!> +z`mofRFW*5x@)P6+v?1I8?CmlA|Jd6EyDTTe2>yy7iiR=xm791j5nrt+(>m-i8L)+aZ7L?Y+;Nmp8;7ytfP~PqghWWTc=%Wf!T`%#U-Mq0g|WAPiXY +zslJhgooBB~OE9|U^#O5A@&TcKRA?7XW;odUMLgx!20rWBES?9lh-CcB>GCb$JR3Vu +z7a@AYq(5EYS%uhLe!qV}~UZ?Cr{N +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 +zpSkV}4x>tny~d{egN{Q%N&S$d98aq^ +zxB$v{RHOaiX!FdU{jDv;-$<|ssK`v0YM%1Gfp)53aD5?vej?(UQkmC$r)08(LIHt! +z_ZfCldGl>#38rXw&*2}iIZY7h)WFJM2@cw0Bc8yh0-lfZnfh^JBTb!Pfm|xykFphZ +zATNc%6nKT&`L>gG7>Ay2thE6ADo_l)wd^J+Fi~X8wqF6_@hZ8=y~_S;3zJlZ^fa?& +zHK&Qt7FOizz7&B#T9+XzKIJEl*9t; +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 +zL!BrzPs%$W{Spbp*5t;V +z>;yZ*^^#G>6-YN+&0&6;D$maDczyp3TZ*Z^qu7_WC|(TXn=k^x!PLCwn033sWH-+b +zG&qJm=H*uwpUR!cjk9eLRSQb;veaftFIXgHbOtX|VsW`R+0~s2;~D2TR+%_+=FFg7 +z_9BP#*ysk|3jbqucPpKQ@Ht?K3;#izxeNi`SO@K%OPu!fdWipm;VaA|kgGd)g%HDF +zz~bae=&{Y0VtXk+8kPJuS1|p=U*tzPIpcN!-1oI@g4lQAMjq8+|Pr;axuavUA3vr1_(~)aC-JN(Y4$P18RRW_e&J8%$Wh1Rm3!TJKE9woWpQcVWOpbGfZ1qoIttI|kH-uk +zM>gJijac_Is2^TcQw6AS=^RTi``6@c4hbG*#_pxm-)9xRgbJKR1PbU+9r%DP2<{&$r>XlLq0p01lSo27v}d^fQB +zJ`?X&)`Y2Tiv_lGZ=IWKuvqupca +zCRS`N0AV;QtIG}3$Y6=(rwM+m1Mhrzh?mVvw@9Nqx>W5>#LPj4u#EA)=mnh0{Rj6MhyyIp~ +z&OLtVs58w93e6^UMVg=cpK$u?fCV!QN7rb5e#(<{HBVW?J(-PJBVG?qP$UHVuVQ9? +zN9Y8{1Oc1-zMs9W@kuIa^=Sq{ajpnX6xRbWWACbdb3|e6f#Pxoa?d(u&z$dFg!~Ns +zgok=cc4_`$Z;xDp=*Jh$$D%B330YmgDfK@eQGtjGyCeUsd~_ijZfHjBI&v@h25zlL +z0kuEYeKFetid$u9czFkvU4VOfVHq<(`w$L +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 +zq#VNJil97t#rlftKdaK^zZD*X@yLVfO;I&Y +zOTX*$RwNp=6x#UwgC*%CF^fN#8UeI)}fLNnhPC0Zu7s7`3` +z;*u?-SHz7$P0$($J)Bx*mbHN&5fWJ$IkyF^nP^Ha4JgzcR$}&-5anhD<@)p0JIvS9 +zSJL)Z&)ehI+t;iALH&~1R@LmMz*qiXP1_LVoED&I4*@jo5Y%+>G%Ra(tq~tcg3uH% +zSp=4eznV5~elsXQ)81$LSJTFOhTMl&o4&j&5D?6yQn!sNRo#vr#7l8vWNiXy+Ui2C +zBu**Cd&qp&pC;5Z6f;HuP21E$ph%I!=&Dl-uNK<%Fe;B)qu{TmE%%S64Ua#z0MN8! +z>{@W{s4f0#+DSwckzjQTQdppd!a^(;DZvHO`J2VD=A{ja7S3(&OJ;{cjAWJZOFP~+wz6EknN +zf}x--ll}ZGKk$hWzJkNdBtZ6)rCkd~3WHcL9^Z$$&pv~&KKrp@9{r1+1f +z-6=LznXS!lP&UiX?HqE!3zaI +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 +zWI0~qtcZ8XFeZ@ZSpX)wEnGEdqc3>5Z7@% +z3wfXdjyydwu?LzlK8_E1&Qy{^ZKvl0r@~oySBaD$xy?f +zTt7$_y{4tP?()Bw`v;MQ_=(f`#jhp~Xqg*Z(-59hF>iB+R`l+e0wigGZra1p9v9(n +zc}8kQ;{wq`DgJ!jFoTJ@aGSeLpfYOvqskPn)ZuMW2nW^~H+qB%CX3~4=NuAUcn{DN +z)!aiXW$jPbE~Zf3ZEV^;2`FnZACJUi+f^Gy#O +zR)JEtMv7ZN3FsR3AqR1ANX-y4hQ?xl^T0Pbb3RT +z#M>}_0137PoKq~yjAy88mN$vRO(%Nw1p{g6rYdMoXLV>JY0C%k3XVUx +zDb%k}gOX#e5-N7ap+lvUgq8r*Z%=1iB%~1^)t@c8AtH%DbwM0Ca0Uw43Yf{Y1R6&d +zAK|K8EOSz;7+F$wvlPH~+Vl0g0}tIf7AaPG`Kz`Bkv#i0V-kUqLOC%dj-iq}LHtYR +zT(NxO@FburCe|o5>O8iaL=w}Ai$Oh(Aja0OGkox_XYc!oWtZp(SV6lpkZs6;3e!1sfno~-8la?nu0T&Esh!8n +z%#nd2gSGjWbRZ{1;IuX|oYFMu`E=6Kk3oVKqQTL-a1b1kpIQzeVG07y{y9`~e=X +zREEUd9!kz=2Y40d;%(bWwu(YRHOe5q1=b%xQ9mWJT`!#8R~lY^c>B~#vXW=IPOVvu +z8#HH*dGEUQH2)oN5Rk)(6BNV|L#V?hOe4)Gz=0IXXD`pMs|XcEZ&l6ZKEtM3-Xqpo +zo;b=$h84SW5Cmg*gSk@>*hm)G-6W*BTz71B+7_QCRjd$tiD?TJ1-L9uNps2?XPD=X +z4{$iXjrQO$1RhW*#owXL*?C<|Ykw#Ux!sWHEmEc1_Ins#m@<(!soP57PV_WGPNp4l +zi1s#A-(d}Gp{K4Kh@~`%<~v*VppP^R00VB-NH{bbF7xcOn6@7#GYlx+q4454WDfw1 +z=X2d|od#;UhD9I3)ET&Zw6%)+5s8qN9MIJ){i>N%3Aw2r9THX&!tsTO1 +zRW&?Bz+Ds|)_a|5H0LZh@xXn&U@p@(1$w+&f6rM9VzU!w=~MFJ<==`M;A&;>A!$x< +z?BjUocxRbyBkUWQ%Sp5%VX-9wN~-EzeCsvXlfY)m+I7tiRnVvN7$~*kjKyBIqA(8T +zsEbY7pT5s3oppbH9uxyz7I&7|JxLt4_VLWTRXPRqE4tId$5%(vdiNlP_QCR^It*l?%=#YGWy&5^1GB73?Fb$tg70LaaR{V>q0#1S`^(UNMXp +z>}K)tm_Qv=lb8cCa+<6AK3K4=&WRPIiuL?Lc@bq7*^E_AI2BpU2+iQERi-_o3h1)B +zN^w;dTyX8Rm0UHK4hC`Rl{zyjbQEu5JQvoz28A7X&D}=fg!xp~$SQ42cu*Puq8LUB +z*??@+U=9@Yl1;bCaqXaU?}KURAc5rgBF`v-b4>g?-*Wd$U~I`M|8M)Z5TxI)j$y%xaifpe?CqC&B@xSaHUzm1EK*DnQOMVij>K9z)%yi4b5?yGm{Z)3C4Qp+|8Aw{^*I86ZL6u5%NzWAV45N+}lIv8}Ek44aP0A$W{(;hSrJ +zqOsVtXu+(w6?laKv$T-QTV1S6E53yltYNnd;ilJfXHii?-6%`$!X2ElCN?btsNI?k*dY&UPYmG +zA=#rz;Mc_d$H~{c6~3 +z;66RPhpy#O6Efo?lfXcOG0grBx*TRnEvGUKD&~8@5FZ|tqn#-+`Uy>0!{c#?tDb$s +z$!7f5ji|l<+2`DSH*py?)$jT(&#W_$!;YBRbtvT2=YchdVYi;vbX>eF5Du?=Ai!JH +zhbZ>co|9gTqG%*wuz}0hvv;(|SLJ>-8*IdJr?rIEn?MP8B@!? +zm;$2-^3MR$8u{@c!G>W|8B@X-ym#U~;NF4N0FhD&APvym;a$~QR{29x5Q~*ZxwP2a +z^SpYhlu0^A9p4CXymoB0WV>I9Hz$udH7qe0G}bU701d?EIx|8a&|tspDTlx~i!3IV +zNbEUjZE-~9#wr4YIl3CXAHZv*cB|Z=>@at{(;Z|Ht#%;I>XH8mo1EiAgFv`%#g^Ycpj4JwMHS9nmQA}9ePNOW(=AZ%mC@9=f}TKp=S#IjeGs3C8D +zz{EYQpMU=RSv=4gj3Z477FE>|j9&p!27lh=`R_UC>A!$e$&vxtYM%UG*vDvu&AH|Y +zuO~ikj;B)fil#wu_}%NSy<((Vwov;dX^a-Rpo?YTI&|~hsj-J}?cFypEa`ciu$TG; +z)k(DwsKRq|8B6iEd-qQ1MIO#tv@x+A3QWEW`vVIox}2)p|z;Ah(P`}O6 +z{S}kmc^uxtP~wRtHluua$|OGpeT7D;MIU|zms>le&5|&Qwvl=%fOOimeTe~*vy>%! +z^w6qKao6Be#+@lrMBS*whz5Zt0?Dv6x43_)(Uz6+ak(J@X}qE;jtIZ$XR1H>xp~-R +z(SW2dW2m0s478+GSAIZ9JWV?qUau7IMx)UoBwn{-V_-tu+=6o_Djd9GOX3IWQQE1j +z0D$iARsxMRRFs{$hkQs{d_twj9JM5{?9IqVTQRZ6+Kue8(T;HcH!cP#yxCi{s1`|< +zP^ofcH)Gi@$bZcqDu@|xV +z?Rz%iflv@~j1P*$qX*d~~3KfU{i67oy4(k35@S +zqx!}+QIS5@5`2^uH@U41#q(7Am*BK7Vh02+=Yt4aD +zwKf{nB#@{}aJFa5RiS+J0@9EC2C@RJbq4Ca>%x$90IGJRsO;k%NG!91Ykzkw5oo2H +z1_a4cq&zN&vvOE2k4GXGJe%^t{QC0{OUUBLIRkzBKAc9|DNegUPAq6?Ek(yh&OxW# +zY1>2W9_ULkpNH+~B@K<%DVnh6!Vnl;flFVHvG!3!ZgRh$t^MVyT|F2}k9uRG<(p&;*X +z=qW5KxFQ;d0r8HZA_GboPiro+nK@kTqfMypEr(b>X4Z;jU54YDmeLW>Y|9>@^;Qd? +zTA07H?xtsyxatw4!;AK$QO9YI^~BhwE2&kAPEyGrQwCSe4mnB!p-7ZeITCt?($Buz +zFh{d0d)E3?(DaN!PrKjkimPPFw@9#*@fJy{Zb^6K674S(uKo(%z1@`UG&2svQ=osl +zv2^D#{Q}6dBz~ZP)L)5#oes#XibM0!?;#vl=Rn-#tM0L9|A8h{Th;%7F8lrz@4DiG +z2^3LtFB`FzEGkaG?92Kv{%c7_4J>3XPa>N>+a(*&;t~YJm*)fs3lJ3QYt%MNz`KSo +zC%KSifWw%3PZ=R$r6>S37+cz#YwAcy$lv@WJ8Ls6aOr*=cqSVLIfEJYzPTS+rp4sw +zsyPf8#P`1W97udp&HeC-)e898U`VSTm_w>DsyYh4Xh)2Fa*ImjpVr-213!QM{G9bE +zno|_hIPb6!0PFb0N+!BuBR^8^DJ1Z8(`rX$*g`j`rxqw`;zj7!FKn4r4M}O7UH5zS +zXPtZ4cxOOz9wc=Q*q1CbX)z +zct~P=b8#{GDsfX^KCpc9o*{5!Fmwwq)QiWwgP6|H!4xC>E2uj74D?Q2;K`(ul=W{$ +z_J@4Rx=h#bSmL{iuof-<)Qo~)19=`@n9wDZL`6_nSa;8QBdBlVIkU*UzPp6 +zXg$}Cf3`}wJErf>QIDQ=_qsa|eoZ%mj2z>jBxSkSdC6`WEPNrvR?t>b4f)KK>D +zy8a7Xc1`Yd>6VaHMd7R{dFdws#J`UoGg4{jzC~?m(1fvsOR|1FbBZ39t4FOIg~=w` +zGeN}$t{APn%%i54l!qx%a`lRc4hiJ^n80}-8C(J5TfAu`PO&=mK`xBE>Too20Ice+ +zF=o}X_GF`-(2w#SEKI?LL;kjzs({l<93y +zOMQXDk}4ViB=2}vP%J;okJQjHr{>8dT3sO^(`OJNY}r~LTAFX( +zf)+>1|81sxtlLoZ+hwD1%F8Au<$_*EKwG&miuGJ0Tu^idsULTwAH#h +z=m+}-ybO8Lv~SzNQwEL&{P8pI1MIxM(ZDPtTfjS#a@h$d@Yt;WLb`j0Vj|K&s+t)t +zP>GP#pv6&+NhZgmMHGr${dt%sx4AKNlXChz%|=%Wn|0n +zKBX3u6#!jNI$`10c_Y(I4x+)yK}PbF9KUCDiL4mtLSExtt^#y&$q7Qk#iPpq+xowH_@GfLsl +zpz6tf&xC7>a0WDsDeH@K{_y;=b}Z==8p{w@Jw%!DOgAA&KE-hITE0kmxwo*^K_phgjJWikh0+p^sc;apn2P^FWvj7l$+SZ1nj|vHWm0_qI +z$q$Z7y|20OtJ60J%!tzfUq>Km*?6JzGW#qx);Ohx4#e4cuK8_7?Jbh>nkvGZ9rD@S +zYmCIY{`Jz?C{#?t;5?dOtsIUOw008@n$KZO=`rojAG1_ho5pO$Nw71+dshk|m_#9TBWa1Xnggj)jDv-OQff5=Q +zeyq;4S)9o0Fmf*Z2#6y|attTp)>p|?7gx_thX@*yv_t&f7IM*onM9szS +zoU0s#nymU^WP4Fe}raGjw-42FDw9bs$QHX8CvrC3-ryqquDh6U$qu0p`2yTr1%cN}F${A&%_|`o1 +z2eiTD8VU1U%=M@{F;b$6^{BO+-Dh@7(k6GCN~u#g1uY^3C#^$3pr{#Wg)YpS8WXYc +zs7|blIj#3$DB?2XqJqDSEYFj8OVG_AJi_dXMn5(=BwO_?W@)VewF}^wftS*!vJV63 +zHRMew(75HE;OTbRR90oV42nTO17OTp6|vH<0Rsx1|I?c*Hv+_>f68$h(D1$4nR6w*Vh}`8{0^$pdDB3X0JCYg-t5o^>=e!Em=_6_u=6M+EnX +z_W+2wT+oTdeh|05pImSX^3eG?_T+uki}uu0!%os{)P>h-l_N0cd<566Z0Ox#lll@X +zhTHz8h((&Q!?%KJWK^;yUrN?~YyX9zWMvC`f1+)& +zlv4a|EuWJSh$w>gm+Yq%yDPy&3v?}#SIb!IxIH}_7o#<`m)_4Sdr`7P(Xg55PK4!@ +zqxT35sLt|%WMx7MYo(F4zIBqSqOrpv)3p*SQJHRv-yO2of$2-xhDV{O>LrHOqYMsu +z2_Og}mm@I{s`p$!mcL{C+qHvN-9Ajr#Ba#<01D{JffK*aGY#U#F|4i$+@KZ;oCEAP +zYAVkUt&rW_W +z8_xxJ2*4US1eqHMLFcGi9!ycd|DveucTPpDsx^<5*$0VCBc~;EUwPMuT~P95LhdXh +zo5&qo0C%8iHpsIxG?*>NbB_=~Lz*H-`U#GQD?qAN8x-q=5mcXw%9Y##o~C&7eM!|Q +zp9N8#?V&+(%&s?}`t{{@0u^=~TV0=Em9@|m1+vf{Xi%J;qHzB$iOTV5E@jv+yVx|< +z6PW(hV6CuNK4a(rQ0_^)msJaATYbb6&Y+NF0+|BtU_El9WSjuS=$lG|bl=b|o`37K +z9i4jhbRM#5XOvWykM6w_J9MtPbsKqOBvhN6w%VklS=A}`arzZV<1 +zK}jlNFT4|P@uy-tK2b_-#cwT^!LViUThbB!G;!MVTN6-1odzuAC)YGponoe2ut#=d +zoLLU+w*Am#l%yE-JQg)LKdTZOK~ze%JFrrc8a8EfOsbkM-(}lHJaDM$;gJOl%m4n1Mm2(xo +zu2J%dXyph4#6liinR&%Gp5YT_C;@ue(e`JD!Ev5`br^OUJ);T}O+m2nMTr85x|tKv +zfjIw; +z7(6|9pPeL>$cG)nd>{L~=@-RyXq)kj+01Js&ZvU2B?-dH|tpoy#JA(Qvg +zatxyErEfq8^sAN&b%%^qH4H5nRAjFuk58u6%zED7z{jH#5Z56d#ep`dYuTIp266tJ +z76EbSTA-d(0S)Xb4i?hWuUZa)EdX-_3xea5I|3CJ<$*DK)mKn|b32F%9QGE9rrCUx +zXfcor;h|(|kjr{f^~V+AI*7A7h5qJ~S^sRf{+KQxUr4eKh8>GW*Dvu|W=w7rVPyU1h#CLT +zdf98vB(qhFunl0= +zkr8V;(M&-M-c&WHi8!wB`EXt}gy+P8`8@3-VjvoQ2rGIRDw}NpLIfLyb$mB(ClL>YBAam0ItV$M3Fp&3A8I$;vlNGqCmJ`kGRI`NWaXfy-W_7!*# +zoh1u{%hpdPVHiABW_Z(a^9c_E9LXmTSSz`i4MUDef^Oj%4|-q4YnTY-NM_@cG}mK9 +zsnB{A`5w1Npd7rGPXJ$ppaGF4j>LUZ^xR~H$ejg<{B)@#bE%q~1<5;mi6p4E!tp6* +zwg6ws40@Xm{mfoHi|n&YI*B_km!^P~#H;;1$_Eu-*US6t<*C2EIGT&xc6;Q(I&QYNvIfOOB><-KgupF +z;a}wv%i_FFrN0HPZCE`R;Mh94uSLsVjUjk{jV5n`p5L}wQ5xrlo=ji-Wuk{3bA}-> +zpfT)$t_vgskw=yJAs7(``i>%OZzMlC)^Zl!Gs}>Nheiv0HKT_rkl4Pe4!2N2(XyDR +zEc@^cx=yU2TARP6jLcECSy-S$I02~JDGI@cd?+>Nr%N0({W9d;JRjPfGm$$z#YFss +zwl^r4KBILAQ^u3&=;I~}YG<|q6CEKb;HMhNBURnevEv9X#HR5U!vkifY*kNDRJ=cS +zbp9ojj#W1IUsF|aAWS}zK6*$J0CCE9s`k23cd@<1>2$k`bc0Tx75v3D;x-;*Nz_ac +z5X8!Gs*t|CCbefyGxU$4Ib%2B!7Lt>)_>at^Cir>oZIlrb*eRC5%%m)m +zT)v75=+yz84SZ+FhF&7Y8NkK^tbG+2EYI$zcPS?FfSk}kqL%aU7mWIq{34gL13xBN +zBZ`hYDGtFg60x-X#oOs{dC&N7=nT$OuSrh49>=Y5c6ijMP(m65b&0&fu8mEDqI(61|M)<}2f7K9` +zH8DnJ_HfO%Bw!Fh3gJeGEbcC7L_Yp~J;pSaT-7#!jke=Tbbz7fa$~scp&=WVZ3jx& +znozJxo_q^d0eY%)W{UL51#t5!X$G1I-p&C0p@B@9qjTCy(wen;3m&at&bA-KN^`_C +zNJI@Sc?FLGE8s^XH2W+@=L9XZQEXRz#6Ro>j#QNJ_v0S6bA}Yj_5|E2#R+BKPPw@8 +z=F=@KmW;vbpXIvfy{sELmv|W7BqI$vKp{S3tVQ;wdV7EcOuN!~&J5AhElT0gqtL8O +zcT_krLvVF7AePdXPh83qlRL9H5ELAq5=a_*J|s~w)S3I<8Y%bM!}>HN~Tov|lT*>Jq(lDjujN+$47+ +zImhCf9b>KyalBwmY*j-`+Z{TbkRg7irkp}zLS{)88NnLy2SpErJ@v-9PsW{Gg^O3T +zeebF29r%cu8aUdEgYuOuUTu+bAoy78PnM*Gs_dz#>XL%q?9|XB<*I?RD8$uT8xKn_ +zwaImXCaQNni#@I9u|KBdtaadybWJtP9oVcG3^y?#N(%t7X$gfK>?cV^KS_Ku?9izw +z5H{R+Kp)qDE4!pLXPLn^6f>FO1ztWQVqoc1@-X{6WNUITvb~wX4;0XP%%pzRx#Li= +zhN+6JxWDLvLTJ{;B@e@hqgwW!&8FI7c~mlFPf74Co^Ix2NpiCb24x(8AW0nx#_y#r +z>`+M>eE@DEdC}oRJvikW$qWgjw8oqc)*F!cP1So1V@VNQCV+$o$#|wbRuS$w>>H0d +zXg<@s^piOi6_%5&r$V)iD +zAtXWoYPur(x^+W82RwM&Ir6vBF#%Xu5`Py3YbA)vZ9|4NiR{lAY}17vP#fg8o+q-k +zse;=%ueuUZeyk-I-6~s&=~^M-gaP)G{@v*{&Srs5g!0`=uF^kBii^KPCO%Fr1?9SpBp^23b?xnO>cw>WC7;nyv0|-ilNzG_E16 +zo_HO;`#cyzxjTt2YK)v^s&|A(;x!hr+~2maT;s8i^8Y81817)2I}A{tq)8U|&JJw1 +z{4uuqU@;hi|4~y$!?ZY?>Qk}?rn%-Yi6xvv?iK8d?9hLxiR5T_{hcvC@*(1S5WeQ1 +zmot#&-a~}6sWyJWh6?G8&>6}~+>^z*r)=>tZ|95Q4fTD +z64U23RRDW|ULRMVQU50do#B6fAwz5XgU?WP4wsmj3!p}N#sr3W4pzwNFvAfzBH|p( +zq&-KN=2W8b@$*0Wmoe2SG?_D)_Rb4)R3f2J(9*sYCh){_EozR0L)qFsu6-`W+A81A +zdJ}R-IS1Zr)$a!YF}By>71j>P5}w($TzXucN=p_g0PN%}`0p5z(%j~r7ppRyG +z4}E51m(wK2mkCf8lKI4b${SQXE`m_cnUTB8b1<3*(gqEcI>ah>!?Q~<53|dmO33}8 +zpC@q^R&9NTOD?+R_;NkVSc|gEWAa0d<^t!_7vz~r?i*VhSH(zrI0*rG@lgLYPC(Kv +zz0PP9doT9~2u^Jr^iN^;$Psfd%>r+ESM&X2zH0k+SqC84)|k0(PPsLM4lCj#!iwS} +zI9`aFL{_M}?KP +zrchk7Cy%sY&`tl+QjZb~XFP6pypr3<5!&5c$nm;d`cz5C?enkg{W_TH90fkNAa*rr +zIT1~#e7r&2$H?7c&3CTE}3Yt +zBn{tGFfF;~hvOsuPaIB4YrUmkzqvS^(r=6Gmw`6LHAvJ@OelFPO7c3A$>?KfOz2cEXmN#f&`etBWwo2o5sVKXUt|;{4;yC9n=kXrZv~WrZ5VsB8NQW)u +zbWKZu%@i_=6r~3^oTj#@z*tCdeDUpfg>VDs=P^^euRwunBqJNy8Kwbkq`a7tHuIIRx +zjw(SW4Llei7D>nV{`fjxAKL@(!E$#F%tdyUVt1Kn(%tC%H{l&1r4%LM9La1bDe +zWly^5^h>uK2+503k~1%Dp8@dXaUyJdaM3K&R`|9yWJd(U1BHaF +zn)TjuXJB{A0_Q)%-~VBQ48@EU?gR!6K|(-*pU+rsYQHa5X3!+}j?-s&O&xM*_X-13 +zW>8R^CS=({H9%UCubCEoO(_NPETYs%Si;+o+$qTdCh&b?cOTrc+_Bn{$?@2~?lY@@Tjbr+1~N>rWCl{odc= +zbJou)KLLYT&W85V$#l-8%gywlio%o@7C8_encgDpkW~XnM?!Tzn2F!qH_|A +zK&xM6WuYvx8^;bt0|C(7a^`7zZpo`H5 +zKG==k+E&G<4`vHgAY58-SS1{MzQ&3hTnq4Lu8y}*bBQLU-iAsm$kt#Oi{N6Bw5s{0 +znkZL;-NOrDjW`d(_jOb^UQy#KND^(ENYX6OeDqpI7=k%f!#*`A)^m?NR_c`W2BkrR +zJmh1I9H4waA%|R*b``WwiC!@&K7)mq*r$C~ExAJ}1Rd9k2AK?|_2dl$k;Upz- +zjpKb8UOb5k^eFKP4QB74xUJ1Cd}>NQ%IU|lce?A-wZa;}1T7nMVj#^^syMQKLDB&s|8Rq}$jt2T`=-DE&3YapvSB;uR(UHW +z^}83e{Xm3UYbNxJ)s>K+!PO2hga}IA8yYEc3n+*u$ru_teC2T`4n*&jI<9Z +z;YL?)SSvlckILdh*!a|oeVc52aQf4T@*x#{Ou->82|b81ANvn +z5g2t&Q?QDH^O4VuFUxdfO3~}yb@>M-`8H9BH2&#`Iso9$$G)#`db_?|FMw`zFPDr~h!HOlV`nG*# +z`?xI~yuBbtgdi&fGlCw8$D7_|gp$=JNu^bLkZvF?wA)8Lqjj11TV6cLh0>P~G?0@N +z%QrYvW|=sDtkZ!>8_9|R8M~nAWG=jm%!rR6XVI=_l`DH7Z`DltEP41CE0^)(L4s$ +zcY^`8YzOBXU_A_jT1$xDzK38zm`)-M;`glni0!O3Nc*N?$gOYEp;`OdMzB{&7M+8F +zW1DCxWSSdf^0GL2&KCpD=waKyGI||F

      y)8?6w(I-1U=q{+{g^%m +z?S1rdU|F{Rc8~M<>MDHuNqSibmA?2EgSJhmSBx +zdRz2r&vgaZ1!FBP*mwR#E|fja4piEXaE7>VSEAU7NPK@4g3#~3Bh7)VW$>AcMDaoM +zgeeaaU`z;p=jqDMIwF+WMh&+=9%bL8z802v_JB!076eH%1{ll>5czWAEaYUAp9C|Z +zOqBjt{S>h@Hsq?ZZbjTA%jz8N#vWHh_G8~Z$t;$Cqu4%hY{!1};UA-)duHPA=^Sr@ +zEV={au9$(oK#?{BeL=Zkc0uBIv2b#WGmAfu;AD{Kcya}aw=D7s368gr{!*rF%;$p% +z|C%;p$TNEGnn`6h!=2y1!jxCT4EFOf*}v}X!!q=t=rV$E)5s;|ehh?mukHG_$!>MFu9dw1_r0-KEtYN_ +z`2wGdnW6jgw|>_Dl)&szH@|eX?p-=B$Z_BL7s*zB>C>s#Pkl8%L;Gs>N%z(H9DG*w +zb{+C-KY!XE)2B`oOm*|y+ip-@+%TxKSfr-)(yh<% +zboHz^ySBm5gwr#;u@2AgKcX`dk8&sl5A!p76}d;dx542-a4mUx^o?jcObPY;WK6O0 +zVC?uD#A@fz>A5XhGrot#g%x|g{2y=4gr*yw|(4<$Y*N&xrpVt@~qn(#g2Z}GAEIe$0#aZr>lw9QGTg=T}I;ookmZOT25kNf49 +zZA?t@D8x5NN9396j>m>Q88|~2(dL7WAn7taX +zLw~Gpl^JPk7s!N3p!n-Yc*)kakkR@xXiTuL{pgoVKlJ>!cvnK@UJ6{22t@UadWALd +zxAmSNFWHZL2ivgmp}HBrF37@jz#CtezB7;Zg&KSw`hE18jnpIw%`45C0lJjFQx?VO +zx`qsVHuHPD$C1F>j0`VN60dF$_oz~d#wBXscPKCeE9ZiFmtcKEZ%Jz7=MoH?Gv>be +zbaPWzpTB#d^uh`pD%g_RXjGvO@>swIW;Q!cQ+^w!P1*;5I5{I(&(HL+GAA-efs +zAFvvyqh2e<)S*Fai-I1O^!{TfB4E;UG9=FfryZUo+qC~zE +z=o0;Ji1x7LXv**b*57ZJj +z#0F9C8jvm46%WW0Kx~qos4tgK_v|VOi(EIy3yQ3I&at-5-_@@iH>buCciEh__h0wNFYkgnmY>oS!x +zER~A0R6HfnIRXM(hIUi|M;N3{7i97ACC`gj&%se8&)T6HM-s>Uclt@MpP5h +z_p9X`ez5U5N2kK1FHSK}0&d3T@zp8v)Su#k6P4Pm<5M{x} +zAh|-P13-Is)FLG3uWWgeT@GHHk8ylh9978qT5UNAmw6pNIW)FVdW?&}izVC2*FwldtUNrN_damKaF|G@U&wqM%3HZ04fK70Pbq&E|iR<6mJP0x& +zU&a;fiURJh?&=ECj;&dr5}J_Qj}txgg)TjdQ!R0C^mwnJli)dZYHjM01Ft{rY_80!On#TBQo*dfzZnf;1?&ERiM&pqdo|zqymPsk9A{rp+KjILs%$ +zqI3}O>L0tIul0O6JS`}kvC;91B9xgS0X!N~Dr$~pC+Mg@Di!ungBy)Byj_Pe@q|-)h}Y8U#-ay*FVC#EIVEZ*j#&O1i^8zp +zCdF-}U5Xu4csC^Jtu+~RmG|-n__aAfR>XJSFCaae6s`UlW8c${BuAOh*Nfe5DQ@~U +zw_=o)U6iGyvBx_BmIp7FApFqDUXG;+ZfUqO?#v`tgDw(gTTQCQMTP0M?eT5Y`$!u4#uHJ?gm4gjB2&>2iJ*5ZXeK!7 +zxz4M_qmpJY{r8>;&>*ERiseP2Lmr#cFzZ+@SEJTqEI7YshXMbT`pm0ZjYFW2*dtpt +zaq{+q(x^CEcsuDJ7L)j+Sc02v8uoOxj0PXWsJaTrSQiz?Q-RND?)MHHoQSZ+tICkX +zqh&9nsdPnOXP4H}#3PIeERpUsk(xus*A!C3?M<3tDt3eqF5?g7GqOmK2+}1Zt7in) +zS!{J4{YIE*IiLpM`iJpttU3QCwk|3oWM&br#pqZfU$A&j9vPR8T +zpcJbU&$83t%AGn!9r)wpU|b+Dc0Jww+%hevHx*6zsak4`q6k`l6VW1|%%1j3UD__8 +z8DeoJ%m>mLPymTga=C~CGHjT%czRH9W@6kE7ot-f(^Pq<^4%KnTs(+gR$N&7(A@Q^YU2WNVB)jg|Dm +z4+`gEGnG9j4ls5B@)W)LOjI9^tB13M%T|j^b**FvqZtxd?awcq%R>`k%I8MFlkg7L +z)<+}BJ6CbltOk(8 +zc(8WKIRRf)O?}cLI>6-B`B)FVB)sLk0#C!SY$gwi*Uzq)(2*csB6IEEDB0j)i+~ZCPr`9Y&5f4=TF~ +zjRRF^VNY`z$L$?4!4MhCF4*KdK|Qve5SHPmkQJ;VdfSANKFNsQ`}@OI&$IJTQ}Q_9 +z1Yl+Xxnn4}wqt*BfMB#Y@}3Gq0*@LrpW#x3#Gl(|6gid)3CfXOIMo>XCI{sm#|Y;{ +zQbt9-OA8!u98hx8sywjus;!?ITsC_GZf-ka;ykJ6JNlJ4kW?D_N>@brK{DFOnZGF9 +zz;HjjDzJc`(Ahr}%~X!(d%ywM{J6f%c2*vCoNRWce$f5yFH8|E74&M%(7n}44te3Z +zcl|gN1$iLS#kJ&YaE@>lhL>GJpjo|x4WtYiQ+O=%U;HR1iQ|Q5!n$3Yp4LrB7f2As +z)~k=;P!n?sN7FIf;!AYL@Nx2k&otM)#N0=E=7m!421c0&tRjJwcf07NmQGinU`g)Q +z-kmYFEX=}psRBE&38MQgK!3uB=#u}GDP(qg4c2KG-T^T2XvXdf?IX1g)&O=!Jsv|H +zl|QJ6xSHM%=9<^QGqhP(d%BKl5PR@D3wrn=<;ho*WPcnvANi@4w+d6eHsl;Z$ANFV +zyEQrchsRPM19JF!=>5Zj@7BQWLb}5B?=*eSdA>pmLKW2JA~a5)y!Fw$wIThfvv+ZV +zZ33dxD>n*O+?s +z&)r>zfY@}H+A@T6=W;vSDXVKqdUx~El6jOz#O~yGAKj0eF*3sPg4>E`>FbRPOR$wr67xQ_zkg<1G*=v^ozA7K+y}p=jT)8GR +ze-j1;Zj7Q0c|Wke1Fdv=G4Pc~eRA;}7z28v{OHOt?U`U>gHU)D;EfA7_PXXSQ|eGa +zh2K#Zn3osH8t^xpZ&)7$3rdBDJk2=r_MpMH6w$Vmfm&4C3fF<{C-933VQM!Kf~C*o +zza#~0`7$}~6f}2;6^^BG_|tj}Ib6Gqh??Lws(&?FR}6VPkGk9a)}i4>AW9W8Wh^tM +zS`C40NLJoHQdrF`lWd&fe@z7iZeaG@Ahn3PfbL81Eu +zQOZzf70#J887_Q5ROTB4=MF7R{I%}g5HJwg$7n6(nk2`ke8Go#a;=YBrkpQeT=#01 +z0crUwPKS=oJ!NieFF7fm$J7Vt#if@bzK80D))z!XP9@@9AAWVT$=T +zd8!%>{+yM<8WOZ;O_D&1wl2J0#b=d`IrX(X6jJj^0(2u97#vZ@Yd7b><0E0*5&xs# +zST?JdMk+_6o4o`web`@Lb3l9VxVCHKXmrb+>e#Uyz5$f_ucr3%srX5gZ#^?Begy +z$cCLX*;`F$3OXpKla(Hy-h9en77_$9_l=HJVzFF+8kVcT-b8J+Mj*iY&zrcxp$Zl_HK21 +zzxDJOc?UMDRYE@NzSBSb;ZZ8VIO~78_Hxf|$n(>ts8z7oSd}bk)r#?5r#8xS3ZLF0 +zf12dgfqJ12f!{)9Ko_whS4Js!KnUE5>K2wErGG!{lVfO#U)#vSt+pzL5^ +zo9O@aF)=+mQMrE#_R{v0Li6@=2>huxKp&u6(K+c26e__%x1YL{u#s1dw|aXa}@=5rj-!aCx^xECJ9Z33LO)0x%x@5ek{wi^2yr +zuqsh!5GTPsJhcGTZ9cWc#cLi(~pP>t)f0Fg}L1hE1 +z#Avv0&J#hxlMNXwSg56n1De@ogamNdf^AgwSta_e(v?j1F<-BoIVKNG#PmTOO?RSC8*lQ>59#KM975L8l!$C(iyc +zH<*ESI`!UO%*&6Mcez+Xru5SwNKfFh{9HHMs)*w(UN|xN+k`vu609%=2!0?CiGGpo +zT?QHURxP#^A(Tu}lqb(qkqrSar#`Cnhti)MPU(TYtzT07{`Sf0KC5?eS#H8v$aZ`& +z4BF0T*A(+9^Nzk{dOMGz8f{6xa4VMV +z81=6OI=;ng>61)QJNJ-=f-}T6Y;v;vT-#5MOoF|BI_>|Sx +z9irWrN=WHFym}4^cyL%vT_{LtjV04HuXB1+MrT$vAgD0eW-HENy(W?2jY|Y5cB9rX +zhd}*-KAyg5Ex$9ZkEts7Bws3O0FdeV886-@!cbr%o{9WDp)esb&GPB47~^?cU*@$_ +z6z`0A3A{dLq3u;4SBMsMK9x|9OB^|4SC8%p;bv=_mkTWIOYDaokBbbU-X{_YhVi%w +z)jht$*o$MFMmOt(o(RBTY5|`gyiZYUNSW+z*FzOgAbMy_|0&*%rwmIZ$7Af^krl7o +zSjCs3bEh{qr(hFuf$0axQmsHM@dYFFDRqfsi>;N1nCtAGkM7KOIeyxQ7i9%cni;33 +zIkL%+JIU;Fe$pX;gDT9xNpIH`YdEDBu--R%$$c+Hqk>Yb>qVZ#cDtJI)Koy{5@DZ@ +ztzLQpa}pi6jbCF`r;TrUeCk6&>NDvKIX%vp&ivNoFdU=F!QfZ0mcebC}ouI-6hDVLe7nx$7`Q)V!vpUdMh= +zOpxJNeXB+n&d%qS4!KQ)Kk$-Ud}`y(o>$orhVHb=jkfr)0R_D4G-2X +zu$qR8LOcn;z_MQG%@ +zJ`BTRRAPm}5CenEA5M3Cl|OTQopNr|5{L0frvpp*;)~%BXutaG_v8^Od(qaOvTD~I +z@{W)-Xcobp7BEQB@p9657aSP5SF0^?Z&9=*p^A008Wbr5vEVDUoQIZJL(Ku@3^bUN +z#;fU6T7xw(=Es`J1Y)8Li9X-Nw(#B+==$;Yqiwj{FQa& +z-28J~1V#m*6Xx-kB;#s8-f8!IZ#uH>xhmv&B1l%=R!n4dsn>|%{LxYzXFB`%o3hqB +zh1$m3<981)C12$Jl)go^1g1*Sue=}KV#kIW6L-6*<-}RGx=CX79dxLb5f5%XrOb|6++kApDpgfPFdb$7l#b#FaiCf{=R;YIBr6ZN+8za&{{ +zz68j!+E^Nf<9x#W_5 +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 +zD7nbQ +zJRHPd?lu{4_Q2Z_(-7m+x4TVp^}pQhY5UG^cl+c&?)G`)U+%WZx4Ug+@$GI~f4ke5 +znMQxP+ldV&Av2>CspRKwi=$$zJ8Sbl2>x}qlN_GeM@kjA*k+>0VPL~P1JKrM92W5P +z{&Kgy{&u(9mZhuuj{hHbd+2|-+vrV~-|lwK<=eXBCM1WxeGL^>`t-8p(E9VR3*(+` +z1laE-Mg<-C`YoO0{z9^fw0T}dDAgMpgEUA;yJ2{~$DBT+&6Rv&S5}?whSl~Ro9rze +zg(~m4xiG6qoKmdKaRyK4@wn*DB?Ae74j1j<<%n!?VNv7gCvNBicV@h(9v4E#j>7O( +zGYsN2vsUWhFla1p40mHyhz8&#uq-Xc?U<6LtQCu%8rnI}#AB3?o14)nq^x-?5hI$K +z6AS7M(tX=G*62uHn>-d?FhvcKc30wo)`3ewkDyi74UwBaibu7A;P`;Elp}mqa=0Ur +z?}?Iu<-|OI*F1Z2S*A-2`J!S<5DZ_Q6u)=X+8K*JNorux3A5}s=$jmGq1h$Snq}L) +z=EBJJv}fVjloHn*{RlTo-RyVZ><9`vz`V=)LP^ni}aj1cJ;k%>jJovcD48o_$F{ai| +zR}7ssHcoAeQ&6TKrkHjj%m-Li&g}#Cf)fE|LNDx+#gWKcb3zTEvf}^z$Y6^tOtE_? +z)#uOe#b*%9AQAoLr|fwCc#+|~Y`tVaxnE?3p)5Q~M=23D%Ercq1~Dn^e%VOJt;w6l +z#F9&N#akE%3ZR9M*v2$S>SDw$FK*E_Wtw^-#ng$DjFdx1gc`;US!Ic^-u-0vOuNzwKSKkjzU|8%#x7MbY4DTe-aw>99giSkDGHnBG{tpeKO +z^Vp8{UU6AxzG;}d(^L84a +zB&wqMe|V))?>l9EN)yYpI@>{VP1BFMkVopu5moSYEm*d5=AkeZ%&r=SsCV-7=SW!T +zY1RIM7Xj_Pl>g*5)0_XC`hW&q|&Oe1A8fPa9L_@ssx +zCuX8S;7&T7UV;@&D}!!rUjv~jbYZLby(59Yi5hI@mu+7t+NRf}HsvyfKO6i6AgwU?$I(?b+*;aJ;73C +zyoKucT~s-sju7wP{8(5Dj4tSchV?z}+nHJHxur$w8IMh|rB#&kyDAn%xqFOd?-Fb` +zEYY~V0n~s;>nO&bTAWAv)9D4cr;1%KoPBmquaOB<^Z|AfV2OrdTpn59brl$4W;WksHg#`y_U*QRA_9LzF`yw4BFq +zCRmdu2xs3ZAa-&ul)yupRi9^k+7!>?GNT}Ot)2wlOm8bMC%pJ}wf8Fh$ +z|GL|H-|lwZU+(rDyYqkC?YeJwyFI&9YVzCNE^K~Ta{JreMjdp@-}>L~_K9d|3ACVq +zMwhal#e4>twBDR?+6$vM6{nt%dNF3m5y{nDmUp8=N6{GuA|)OuQu?I&AeXI1C@D}LP{J#0aoRgr1q3t;o>>0o@mdEwJE-BRoX>!pFVYdDc;0p7y;Z{q~BTvbpskoaw +z4+&NK=(UcPDtlnF>4qzBJlTgm;BY`5Y#T6;_Jatgb&zvm&`@@I!M8gTcV`p^!n2yn +zj_tH{x4S*(bnNxFyPcW#A9s8Fzq#AH-|n{hOeqpN +zS?g}VkWTBjyM0;~8U2sD{b1*VLj?mA^ejz8|jbQvcK4 +z#z^99R6Hiz9CV{8>H-VJ4*SR5R$CmTu>N_I#{?imABEKbxKh@KRd!6AX_L6ODtNp} +zIyb`)G;t%GBM<(E{^l&I_SO5*g+K$+$XlT613zVduGHZ`d*_Z%*GGSh{E_<%kMsU= +z(!u%&xUu7po?_w+j7AQ0rM`)OOIc1f1TdHI=#XKHVh%(ZnV)D~)D9$Mg6N`UVsol= +zd{f}ILZctJ6PS=u&B`u?fyok}u=Hq*YJY2=xQeLp!Pr9y(lF>1Mf(q_ft+!{*j*@_ +zvxFT6zJOlsBNC(OU0dOF1*#51O>F@*7VJX7YqW!Y)}q02NuPQ%>36%RZDEB|E_ +zcc1#G?G?iwzgT?#9tTw5u1)3n>;2sR}2+S>jA&8FS@iua{=wr +z9r2I5Em1fO!mujYIp)J`#bTF>vnjZITLzhalP<28$B%B}3$6>-Sd?Oz4u*2atrrFl +zKR!E^g!U0sQgrQxwOjFX%dP?a%bC#P%J+ufbxT@HMEc=Pe?ssKX1|W`kR>`e=ar!W +zjQ(t;iw9iHBb((*GKV8X65x6@bSMO& +zL8)h{Rhw(@r$eNgv)uT618qsKS-?A^Uz3OrmqeZZveIx89oSX28+@Cq9&>Mz5|9|M +zkgJ<&bBgk30`j22fjCXI<)ynGw~7RDc3}){6q^obi$=pn?O>)=59*~7AE~)ce^!Pj(IHf*ECewSJX`ii>_M&>;}wExO{eusOw}9 +zomsBLGq8hFYH^!)aP8jGuIemNN>_sm#_b`v)Vkp7&C}D>5U@5M`=3EQdF2iNTS~m~ +z?de}!U)Wp}rlZgN@Z)nkV#7kT|4}&Ar8|2E_GfWV0J)RrQs!>W4s1~`z +z(X#|UgX&?lLT$P^nI92q0^h(wh=F5~9{lhNE}Wj5lr3e79xM*MLrtkkEF@bG_xM=EFFU)~S}46*(;i_~X9xNDL_qervAv)QHiCB(HL|b$qeJ~fVZwy|sC>^PJAC?jO +z8{3MoX!H-_Sh6-ukZ|@7*lNKjxHYz#$yX;(-R?A>fUB9M$Dxo#MRqU-+7JH`TQOL)Y6ead!WRoj@gHCfKcDlYs` +zn{p#um5>cbW*uC@m%$&_pKViiax_X)Roa$tNfq;EN=SVLG<_>M)T+U^v(RF^h*+ag +zO^fJdPu=i_^MGZm@dXXv!T9>$a3wpJ1_TI_?643C#WAmKdQ;>2?OZtFTGv+N;CFXd +zf>ijCghw#<7iV@D)}?G0KSLa8aWrGQGg+WKR>vz*|jGz3yV}WZe;B3o1cuU`?LUqQ0v-G`X?`NX<2vOat +z@x0vsp6$%aT{x&LtB0-AOd8E0<5`4ch*`U@Le3#h94v*dMbEiU2AM=4uW%rCj4r_& +z>N9{Pt?*iP|LtxE{112g_P^ZiTBVv#n7`cZOD4tt=59m%uzV*^?^i`wWmg_Nun-H{_Ad!{cm^MiFO(i0TqvIeyPkl#g8>u +z*7R?8TMbMWJ^x>Kdp*|G3-UX|w;h+vnwfx!YR<@^V}MxZ4Z=akr1F +zN~T^m`8=$j!)aTdQLi+f6UY|Ws0W5o(?K#f!6Nj@Ga0Q|(juD@+OvFR+OygK*g4#z +za`UVy?*KBpgco|uUW8G?>o)A(oUkOlb<7jxHbX0vq`F*#sh!k+kVrBRd5Xi-9NxcS +zH;`M +zKN^8|W)x(M60^q~l7)3(^fVmD0`TF&91NhbDc?@25Mv-RwZ-NQ%nxY@U4qZWYqWGI +zm23^FqJT0L9+TvS#QXHVO^a6$e5#&H0h30PY%@ArVk|wjZ}*rVmrt|e@FXc)?nNm~ +zP7R;GPq?KcmZ;JBF^lh?g^R>?MHmQ4*S(M_vWr})h_~NAS_vmg2;N(9iD9S$Y$?mK +z3JFMl)z^=##kOyoS((pRygut3+)aa=L&P!KY0dZM=PTu$4TF7l4bqgkue-p` +z=NZY|4Q@)gvIp^zZ6uAJxSUtYYzw*+_aN@uP+SpP5yB!VFMH)*uEj}5d)$2GVRO5k +zIgK_$Ttk28?_U35_A<@J6&Y9rRAY*jF-8#koF#6ubN`{v6V5ixG(ru3j(BI!;>7g5 +zz)Qk!n&S~KDeukEsBsESl%n(p +z08joY<$eOuN14OFAQbdf=LGY-KNK1`;gSq>pZkai;qmpzjF>2R8x}7RNZmfw6R1`# +z^iX-ML~ZzK6PcB^{m@?ypS4Fd8>}cKhMifKWY!`e;CCEBe*cOe2P5f=FTCweACilu +zvM26pGe0eiDXzjK1X_uJ=%MY9eZ*9CORz**+A2c-ar6~_$dARsq>wm*vy}myILjh( +zUKSC_kCV>$tvbmHeY14lpaCfFES!|;y~D~VV~n4Pja^I}r*Q8niZ&hvSbNmcHMJ5z +zH;1^_a!xCPox5J7+G~M3wBhUfeipk>bNamb2+dZ(o3_iLRmJ_>SjwzAcW*0wK%&$W +z$rW8Z9-h)~949ZnHnn>&8ZrITEX)O5FqDQe%CN3*q!ZoK2ks({3 +z)tN%OpG8`pNrNuYGMAs1fs`0Hb(UE(6w$>rbNz8fPY{p9=EqlJiJ$YFIXWi6*;fSs +zg4^1Ba$G1NqHBz0A^R9usPJUT^L`341t_@N)Vl;Jr{SV=-1VC;GM-tXydK=y1;@$< +zQ^6CuxU($c*(B7Dg%wk<-siiqkPV7>j*cUd#Eo)<(0|G1Q2dTRik;_>AKIgAG$y;$ +zOK$_!5Zhr)l(?+PDc&1h*j~)qZS`knFhxB0028bV>^M@{?qoLVcQB)Uaznqb0Px}cC<4Hb}&JogOl +z(Pj$Y4e@L?wLuvrbo|=RjK7X7Mbw!Kl(4Mb%8$MLsk1{Q;z=ijcj6n@%*c$L1?smm +z<+?0OG%rLQe#?SGgQqE#7zydc4?0fV^h2ox`B`pM=>{pLx10#PvLAppbiX9}8;}FJPi3N#%MAD_k_X`@drjYzUoF0*T@d})ei +z0g6wNld9)A;io3@O3I@)lW;mIRihy7x&s7v@V;(I0t^#UxksFd=UXA6c2C28v{h{{ +z56J5!ysdz=k$-F|V#M)`45lPHv2RGw=!l^q70F2oqnZ>Xu@@2JpN#%`rrEUMW|eWi +z_3pFl=o@arm)J8jS-`tNRlsJ{KHdWIzCL+!;wJi`7Dhp4a5ZgheC>|{!0lH!=e +z&&N-pH8b|&=M4=WQb7cHP;8nNSxPt6fN<1n4WrtWhQ*D?dpE79#dRGp-dZb>F+^vu +zDIrgSs#3fzQ9VEB6nG*_Bn1shnWl&8MkSPNY?<^Di7FxEadID5FupWwPRvGya=tBL9wb$M(?VgUze?w;G`QozyD#kVUEYc|6;e{zuE1&8u9f!G^o69 +zc01xR?a}o~P|^cKhUScKeY# +z_-}T5Q~K7a(R@8*7IU_n`;6J;={%FOqek6Fh05l0fF0GV<<@b-jeJIsZ*dfVbe|7` +zgH-uWF9HY%E!emxk-|W^+Ouk&N6ZL=ojUz}e2vE{Fo6syz!ZH|=yn;X9ayxy2ZP9Uy{plxcgr(%N&!^_v|0xw`VKu|uewh{Nurx?w8vQ%T0LV4Z_~>Fcz~ZyZ#BC~ +zFK)qx%(SUDNsp)eP@lQCj&xOGjZo-=&RqF@8!!e +zvhxa>H=32kbm!>r2~I)0lUPshe?XJuN&#VC#95@ZOKI+?mkEE-Pf?M&tm#`ZNGU{l +zboGIbxDBP53cklRVJp%b|hbR6gIA}qjSsvWi +z@kJ{@I2eI6{L8tm<=Z76b7!(24{)F@YSRknVtnNH=f<G)3(VX2#M+d?H)Xqwu9JoTMfvRBBUdf+?eRkh6_629cMu9H2@u0ai?Y10Ll*=TwsUGF>Bbk5IRiZOe!-P_ytId+ +z%UD{1<%0fFTT`Mp>>~P2eAyITcesES%jgD>LlC)2H9;M0Rs&9$iPVmO)XmE&+7dq_zMC%yc>4bq{{4z!dk<9OO4OjQjg +z8~j-t>@cjjldp|?uh!ju-uT~@-L6y^+C77&=?v}iVe!m)oG>q;Jhp809I5DZ>XaOH +z_J-@@RZEv-G_(W8YnHqrw@s!(O_Q_attHg*V{l4w^{c-IuQvJ;nI*#_47V@H!{Pq; +z)W0hZ(N#?dqnWkpvt8Uzx`y{aZR1q#Bj&d@%L;aD;05ZjuAy&d8o#%FX+;xwUWyyy +zFz?Gv0mBbEt|m@iVORwe*XKpX;ahfwdE#ZxTgG)ADlupdL98K|aFf>`B26I=Zci!) +zW`qI1<-n7w2)fDOrNPhha7YOi!s`pe2O2j{17*2Ew%pGEjlWVM_BT`E#q}jwk9Vr^nf4&p7~dX{n+Fo=bCjxKd!=3i3Q+Fd!%ZdB`ld +z#$1auBNks-9VRCNUF$9lwg-l6upv!uoukD(CYnEx(zo(Fbt!k(UZA-wF)ylRjE80; +zVAO(e@i4umMQTJn0t1}W6U!6H>VsX4C-a4!R+AxIE*a87Hg&Bj%{-1LqAU9dp}1Dh +z!mDw-LKXim(&Fhe4VIDN;TDFpr8SrQT~hSD4RU +zW*YD95>D!PbnpkcEnyveClmp%jmipmf3HbmezWVuQnQY~seBO_u}q?xHn)*CyJ`3~ +z%h(&`s3>51=3GM7e#B2@ntH0KGqqRE +z?bVR|K7gaeS#N5OM++GKcS|mJM&yqcBVqF_Ob-U{o6<2HkKgFSy?(>J;2kswutGS> +zhoN~wXeXQzbzSlA`(g)lou(=HvhdQV&lV!^>Uj0u%Gfsf0VT%t3hFGom`>Shg3Ua> +zlGy2mR*iLhp>{xOt%@iC*e`MwQ`4z7^Y;^Zt`iPsu2V*r_sB@MNUMEydaqG`&<{(&2qT&(U*!=iYVS%v$pY%-Va+eCML)mQW|D +z_f$q3Ee7F!4KxxB*DM?c6a4|g?4C+aEqzJ$L}8EwaKGmpK)bU?k9kQAB}!)s;T2XX +z8i(tuf|F%PVqhK|UOTaNo{1`%7bqQX)s~z~2{|}VQM^p|9!B}(`1L0~%%$$~71dO(h620Y1L~A82(&uKmj4g>;!#@$NC;FKWNpO;HH*rWaiEOY$EA}kU4@0&l{UC>v +zS4S~4GC`QJk^+T9DnYaf5Z^cs6D8SPnPBWLBq{z1WmS!fG6oEuG4NrnGC0Ue?JF+3 +zzNJAsmHRoZ8Q5;&@Mp?%a*W=g;v6h9A~!CO(_nB;WB3tsY6(k)OLT6H_B3n0-uUeh +z^SBUfi}Nr%FqO6_QL`(Nh+!xVGp-8l%dtmedb@(GfL8qL@=roJ;$KaHR10M&?p=nv +zKfKAX(XTLqRrx_PBXUA&y{omZ?-m=uy$ck06J3Emm%4uhjLv=}3Bk!MDqBmDD-P&J~%7=};v_QIEn!$U3P*91Q1%(3~(Pu%weS}jV*N%s{Z=ri!hg6@Wj +z-3EEY{LWcJk^^jY>h3WnU?A$eLI$}YQ@~DIJ4p`D?6#{Iy?LvO-W2J(Jtc0rw{;T7 +zq7KpBB3yY|uh%`>QRj++QoeFIu@eeC48G+E>IxW)p;7Q-T}KGRgY?+{5St;*)d#Iw +zW_G`>pg+lE& +z&69z+R1(>;Z9_)%oSsDx`C7!uj0OqQ1rq`uAn2|2@5=N`DnOE<7}f-s0B2G;zytn1 +zFB?8(1h(|iNJb=n%jlqRk`_8Ar2%A^`YD;#jxCXKk*#XH+A9|B(SB*-vCS^htviB+ +z37#xK7?S_3nvtv~AG}nXf9)q??^GNVpFq+JSNU?4pn^pA8GAu?=gXD1iTL1 +zi8NEG>OWl+Q4?;7QT6S{Sdr#g1_q&!&B{Kx?#!^Kf^j1EyHYpypHgtpc?A!8;%HLM +zeq1kjr#zTI-Ave+{3Ce_z;4$)v)j?X*lq2f?Dk;@(=)qm|H5w55tXE~f6#r82m5*P +zlQ0IW$uQFlR|oMKcCp$qy{1~}*(~|(k5~yvI5y@5*SYmv9Fp>vo(LP+nk?% +zv)fvN0Cv0haFlOT*nuU@%Xl!#Go%hLpp0X83o)nudQ@OR>2+(SP~es5E}Svxao_r) +z;+vaF5=Ab%UA^>CX4$rne0eS8he#|~!%WDI^aVV2rLtfYO}Y;|dmzLDZQeeh^l&8B6=@cd=67QZP?Kr~pMe$=?9IIv&UmTwg9f9!N-W +zK4BUC1?5W8(wZg|WlYIDLzWg3KPUGgA2RI%xf!ECMlMvC$YY*sU{yYvX@(m&*{0=N +z32FnkjRTXCx|Vdp4)N|&)Cu2xEGwNn+rDqPtifGVUYH*J>Ve`p;UypAF6@tB7)p%= +zThAaWr#hG91|WwVQ)#`V9lgLbJRuxkW+Ism>1D?N^I_6?o|YepPsU-a&~LY4x0|m! +zaB{^9P^-V%210S4X@zTWc6_$7#-AZfG_a08F>Qvb&rSn5soB2<@tLi8X1DR4+3nig +zdmwaBL93`m#|l;mmBcw;-WFC~<%>#ZG~)tIgGL)ehCC_tCtu<{fvxP1CqDT0NuOBT +zI19{MAryBoNg(!R|6sRQf3n-zf3e$@w@#gDZwlPBKtHE56T2qv=y4-#!eLW8hbSKh +znI;f!m1%xqx3m4xy2b2T5LrWM +z`M&&+InoqlGm`H`!;vpuHiDmGC~p +zBbvHi911%rraev)HVZUPt14$)EFma*(RVV&R7I8$f0s)W*>srQp{?bxP(CXSPA5g1tI*;g=D^Jq9`_u$Y@55p +zgm-c3>>Kt~8}W;xk)y}kf{`;@OkI+KHuyf)Co^M4I|ZlpU=_vk1EFS|TN`lOyrReG +z{=Yzb+O=4Dai_|30P^PHKKbr)CyZ&SSpYgWFXk5DIYWQ@vSJnkYQMGd-8W9|L~9Jx3W>O +z)3r?kFcWV;E-IDhwP(T_V9vq>>FFZ9I8B7DDPv| +z6;S@fBsv-<3{)h2%VVjW%_TgRe&aHyge +zcljNN*|hPFRjxPNKI+{e;IA+$EpR +z?uq!}QJ1Y(ZcuGaMsF061Qhk=HexI9>fXW_{H?4G6n`?aIkK3!30_* +zkQ}tzl+dx6Ndp6|R# +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 +zyav-!nfN#@x*f3lEjv;m^JnZlL8}Kkw(!!;p +zAMUP~hlT{~Y|pIt@pr2%fSNx=ts;{usIx17Ggu-zi;PWnfDIdjV|-&r4O88^)QCVa +zE6F=|n+=XWc*s2#(mg}40>XAyf_=L&;M*AFneanNq@_=wk}@6cIM(_U_z_itWhXql +z^0P}4c9~$_5N}N;I+j2sruIq6?(qT|M`|i{qIhOWA|ZUSMJZ!bb^^AOj}PbeM^$(W +zN7*HoLzL@JZ)m$tBUHQ<6F2(Di10 +z7w%e4cVG!ZQ}sQX>&pGr@H;|p^uT!z3bev~O*Cqb93Ru+6eWLOkNVQYBP`h0;w|aw +z<(n)&hKT{{Hm1=pbvyo9-G-(BsM`+!b=&sav%2l0gvvgHi@}AXq3BT(AM0*Rm7A`L9?8DII>AO8rKYEF*IT`O)x{`SVdw2W*jR>k(TeAN +zT%b2ejh865rxQ?fD8_2wM)%R#_R=_7DTj4HF`z+Xi+A1Y83U;#4&v9^ufp`Sb8U*= +zb-&Z*RPVnf9B`k~4JiXY=*NBqu@I3VUob@k*tQBeZvjyw6p35V|7 +z&uRae-DW&1I{yepu*xCVM2BDGUM7#V&%g*^x82l6)mLmUPVLpbZmwfMvV&R{`cv_Z +zM&KsqiXc8E)Opq;I#mxsgst>TrgKnS_(KyMj;C?uCj!MRKpnrXIa4=4;cMeAU9r>Q +zQ(G-u#rzrpA>}L3jmY;GyA6s^*A5t_3}Cl|jdM&q3}fxP3SAfM8Yy@k$m7|EslQOS +z@!|Gh4xLAZ1d2IDR@tWh9QesNXBnGlOPWiYgOwf3akO?Dj=8J1V4 +z<;qcz*k2e5U1Q_~drJF5w`tzrQwP8ri7DyU}MpI(YBz_3DQht2_8I&Y(LGn>rfv5pqZhs2A}79PBNfwu>`^+$if+t|l$7AO_Z@HYH2 +zydC=oyv^_oZwvo|xA8?Y$`4lG@Ee{vd(aYd>ajKAko(LMcDB>j)G~H#7p5lgs}4&! +z*&gkLzXr3i%!50-$gwdvJiD0T`(BIOZ2S05k4}vk$Ec!?5!t_=RbrCO88XC(+00Wt +z`0iBB$7mvb7*xg49G=aH{yRjGp`^n#?jz +z;j*2%6J~h$Fw~Y&gd74+0#5|0gwnKbL$?G>=QyN9I|A$)nm3ieYg8J4|S +z@)&8cer(gOS*rf!kb2pKvZYw^{(~lQ_kBJ`tymr>aw*G(W7!An`8HSOqkUBW`xF@u$44;q#Zg9SxAT@706bw^*$+0rK|e +zN`ipj@;1xg@-}IKx6EJicD3Kcv%DSgEN{oZ$lK=lz0dM?-7k4tmx0|Q;Q}CUqsH(C +zd%c2k<);S7+sB1?(??;P5nk9Xt&*&aLSp3}PZScS&{Bh>2~xe>si@ao9qH7$N!A#% +zAW0VN#hMy0o^k!c)=iroGMnF{g(lG$&yzMJ4<&0IMphp +ziCGZ!C7mGrO=Ye5Pb%obbWfuFb4pQ5hwj6rwI`$c_P-``((drQ3g2fUpRfVY9qJl&he +zGktUb@V31K{n?&+s;&1%8IN-+!}P +zGQIVN?y7YJz}xi_rwjp<*RriYDC}OTuo~@IihLmB&w$Mq=>x#qAV1-4AoIlogz*=6 +z`yK#qM_F@w4SBmG7GQX-Cw&g8%LDrbZ$nc4g10>Y@V4nQyxsi_Z(G@}t9_OE1#iP; +zXJ`I`x3jaAI!DXCKHy(V*E)NZW7|}d$#zc{?v(;wdG>7p`c-fa1}BF}7ixH-6Ild` +zr9%PN#Xb5Da4DY#&D1P8{Sc@ysQUa$Z??*h`!wRy$)&Kd5N~&0JJ5nqlwdHL4|>1) +zW+HdoNTbb+rCFI4CJ9{gj)_~`n!^W93DT17>w|T4RCBt65}u&%6@94pY!~@_X21{g +z!w%yUoKUgq@<*^u2P|RY9=nf=y6!IF86Dpy)re;e?jShUlY@LfM5M(j2Zr^Pl&sI; +zKfLEaf@bdETQP{PGXv-GsMdfK)A +z)75H3t&=vZuo3nWH2-3vufw;nP& +zTEcXDlS$}(hgQzuz>c<>%KH8n-rnQ}z}txA!z=#@Z^wSVrDLBQ>MD#j{}abaFIXJ9T(Z{Niw&KFVbPCOhf +zivoekRf#ol^Iqjn^cdtULGbpQPWtceM-7ao=`f>i7ztpkW>yHjp?kCyMzpE#9lL2N +zNhJ17ndxI31d6f6Gd=q^zq6CJnyCA-G;gn? +zPsR&#A;_}tvm8I=-;OzlH_S%Z{x!1MSTNOcrYipc*CddDCt7&}g9@@bS^$}F{w0`W<0rhG +z4S=`DSg9K>!{jY$>nru72Bkz;Op5^Ub}~nsTQb%&ybZej8{Xz7`t}TO>j2pb1&tAjk0hg50a*1zkY{MEWByExmxOW4ZDw3p9Y5)sK` +zZkz}-he~LAx30~?X?pW>Shbbi(}y)7{*O`v$LN)F=K1Pe0{Q%RzGMc@ykHyqU*Bak +zi~3747(d)_xOzlddq3TY-SV(b-d`eYh0`Wrq4imsdc2CxTwqkXK(@sAgaT`rX?1HQ +zqt`H;#NI`N(8NL113Lwm4IU#PSYW=E>6L%U@!k}hUX{sT$0Wjci!VAS5^yS8Pty^Q +zEWA`_m^DvS?K9S6)xM1NRK+A4BjV$#{un)FT;!1cqHHcC*Z_mK79PM$_O+?RD_NuC_FUv6PBFFN +z83(1GdyH9AF@gXx{i*y1KNbHN|pI7 +zfRuwNrAA@Oc@ZFx6p%mFpjHtKDJK90n!t#Swg`|f7Ld;$dlRVLwEm#K?c_IZ{Bg}u +zy>R*CR`Lrx)%qm +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 +z_VbeembLGoDu2t`sJGv?0kXCQjvi8#X +zS?>c%+QPG}O?PGiw@f~1_fyu^ +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 +z#;gO()*CJR#TV%`{D4pV_2&YH)6+v#_17W&y +z8j_Sq+6Q*Jo(7OIuAQFG1Sj;nlr+=@#Mr^WXOVZGO*f+m!=jWFC>Yh +z^rton#v%2!A(1S?f#MO`+ZnY@%9fDKi%*A6(P7v%zi!mFkEgjshe|+RC6bt;-HX)9 +zdW`3s&S-C}O^wMgd1c@R{oVFW!ZCNAF0gw-7eYkz9W`V51@M%zy&3NvPteAGTu7?t +zRP*au?@XvEl}r3lW@1UV#SQVb=^HpXQzJrD0UU+F=f?QWB$nK?TbMHw^c1{J?Vyb(`vKWNIA* +zMz<6NGGf$8V9LB4bQl?RX%**Kp>nK#t<}qG(cU +z7)K!$vPJTt4~Fv}gim{}Px#Q^hi#*Fv(RzTfVOdZRm6mnS#639@&rQ8+h`ogK-G@I +zVN<|`rMMy8!BK0PC<{emlP^4KJW31zy*>#LmpQ1xbOwh#z6dLR9cv{GQ-v>GP;$i$ +zPd_>+X=3qZ(UaFm>U(Zc|-?q5@s!||PUqpz%M!{{RCVs{$P +z&JxAyO)T&;(il4eYP{n|6{f_C5z0gq3<5Fos56vmYhygUs@ehzOxo50BHFL7Z89Pa +z3rDD}k^ArE;w6i(OKSt^s5^`#f{f@x+o#gJT7`r~hKz|tEf?W)(Rn+GU*W#}fz&P$ +zX={F*vF0_sK=P%|?nXGU<9mB{p}5Y?(Ew^=vhR?~wy{waVf#E4b~p +zIM0t~LK#9OEF(|hN$Ex!Y3c6n?oe8~8>G8I +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 +z^3S!{O+Jq0fsiGDBt?*AR4=>W@u +zMrJEk4k}zN2OmGhV_1Y%^bVN+CaIqyrjXv(Z%a~H_?s#!)YU;{qUFMh6&1Vt)<9T^ +zNREE<%r{6;Tn~RmZ$-LH@ftzq!gM^Ru-9TSCwa>POS#6<6Ov;Q#&Zi9UI^m@RrHMo +z-`ytyJCuxC*>HI?PYK$S+&g`0V^SL!Hj{*durf}wu2h->g5@KoSb5d#dC1~m%GIL3 +z+PZ<6_gLJ3>5BGaBfZB&G#KiQHwlMUKB<)apOm$P(-PlVsDI?iApAJ5p@sw?^#EMjSObW2nEsZ^H7E5Gp5#TA{t6oNEfv7A;^2y5nZS_2}9 +zJ1((2=G!URa87b3@wmVs1=<+?s&(X;d#vvkJh}Hy?F6EMm-@OCw%>}oH>N0Ai@-Et +zT{%0{CER>8&0#kZnez+hdItksUwll7{yynM-E|~)UIB#bu~i&0Q9aen_;4Ogj8>~8 +z-0n1RDSVAde}E2A4>)}vD2^vuHdMpio_0ub83DO`6vj3;3`DLc>06Pf$IV5(v)7S#{3Qf}>3ijtT7ctk-&mZ#$sVwxv +zh7Z?Mtb+MTe26;3kvNvMSAq`j-8c)_XB`ubikpR$$v#8mrqsgI4pO7N=U@VHxc4%@WLE)7qnC>+ +zEs3JO5fe#jZ-|_3E0`mr2L}oUK@OTETnZnAGK<@BE{Yw@p%Hhbx6t$K%Le8b50GfnWjM-r<*?D^{YHx>j0DXc9^?1mk{ +z#N}(${pJhUspTfhbP0w`D#{$PIK3hcaFik*Oslt#cS(<^#+1i6q-}r6w&-=2 +zvSWFD+sKyxSlQ7GHx_Y(`7$JHs(I*^!ax)cX~!q$M*m3C!OtHsQf+~JNE|6J+7cTp +zgh( +zFA55{s5tDpfqi%%TjWIJnMm +zRX&Ey+vT$vvYqoOc`kZ_jkh^3L4=%Pmu5Qk6WEn-O_s(^5h%F6uAb%@(TtY#??v;U +zeo=T@I_gUp*A%;((+i|Q<|*b(qGNzI^xX({hz0MCo@$SVD$`dfTF;&E>S>%=1hCO?MVL?a^4`kt^r +zwxk6yU*T~=rJH|2Un)Y{fNIGu>*i5Ua|?lblVCUjiGVx&#dRB+{jqQA%8$o~sf$uf +z{}{X$a^xE&r2kduBe#cF!sI%;0fGWS6lyKC2i1z=PLZO!<`xhed`@)GAZ-eha^3^> +zR|L{D5@D)rKP+)I;O<6wY61pU$wqoG5l>h6D#uP8v+{6KTcQ-Iqw`|$FTOQ#kIH`b +zF*#Qt)6i7W;)Zf=CYanXirXoL#P*}J7-@oueKN8ERH2~*8Xm%HkEh>F-dFXK4vO+1 +zT}nu2&ML1Tf+u)L@>V{O6Qr*{+7Q06xCWlaxybZR9(1Sx)awo?)RNCB`0Ce)NTNQ?ac4 +z?0Xp-;k!8dwHDRyopcpB}! +zNaAPtvzX!fU$-8BI*P-6A1KdPY}b~gs@pYJrrqCbepqPLo`eF^+-H0-LfL9OrYGX= +zP?2*Dg@Bzy7X7W{ts6X1lhr9+V|~Kt9=$QlkX>Blh-H)^IR~dW!xA(vn{{2@n{wL1 +zITGa|Hc8C`H-><+ba1saQ2e(8G}?jPqUC~turVu^yeS7_frMg))cQr?ee)>$$7dnn +zSxDiUu;?Ge+nZ)c-56?Zct{;>p!HokQh8(2eUe=g(D#l}$~E74n0BAf-9XBo-zPuLnPfV@cERa&5@Y)i2-~p_D~AL2z%30+nhd9b;j)2m +z2S4-LPTLfWy{RUTtkIj2d7My;oPaaoe(Tg6v)GTku&mX8+Nc%qTB84Gvf}7FX9@)F +z7VjqlCl+%KWSK(uW`Qq#{mc4enC45gZXw3}tQ(E(T0sjRc-_ZZ5M7oI;l`E{xIT`n +zFPBF0rubEoz`tQ;pl#R*{6hTjE=*R^uB9ilt)4w?-a7O!(VI1&ReVuin!<%z@{Ch) +zXxG40`hlLkJj2q4L6H}3-*)0Qfz4F!)>v1kPO|AhL&1+wM`5?8$97+PYPlBnvGtt9^f(A}Y~ZQOZINhyh{8Y0sxsG)9E9fgbQ+ +zW^f8UthP<)ND1A*56ITdo +zJp{I|L61TZXrzGd^*M4jti|(ys)0C@17pUM2Pp_UU|)FddKX2bpytHL +zsy`m86><jLg52JL|0)bauenfUBx4bj>e(DTY>bVbHgJ|I8QI? +z@d@0@p0ekpJI$L;(Nqjxfs7@U&jE`eHKLPY*BY304L?WCsL5v75iWbjP#zJlVl0S| +zlaV#eE*bW~9Np~Xit$zwbk{bnix#ii)d23gllN98`M5Bb-sHBT-7S-fzBy~dT1RD~ +zifV|~2J^~49qNW;pko)?)%wB;G{|2wUGICZyz)4=-2f*==MssuXTx_KpsosDJm}me&XKZ(>?^Pv@4YcRIn{ +z?3WE+=f<_F6~b^-NZFTf2pMAX#p_U&6H9$qWaH-6=*E|scj*#v{etwTmu<~aSz}OF +zq(D);t5=wK@irN5+r^s3H5W@zzjau8yZTwcik1fXj?TWe^|b(I{k-W6%aUlSxNlW7 +z=3@yTPzgn+Dp8v93M<5pWsavAXeQ{K{$BpwelInZC%8n8)eDIf@QFx)At(d-Li4#o +zh#uGDO0gXC0bO}4=6)gGnSSs6ED-B{cO?W#z17Jzs;n@g*wc7ZDA@*KNb9Y;iqbVO +zeBMs#UPRTvo=yqLjgY=O&Q@m>v|WV_G_2tjf%lrJn%7ep9&wYATWg!Mg%uiFk!>V2oxVAnW=*S&G^#Cc8dX^(i64zNHG!l%h`!&y +zZ3j%h570ofTjhfe-b`F&aJ##$s%U$Bi@Ew9 +zuT^XF;^yJp%H>gA>w5O1hyVMVg>OUU)9;r+TmYZr`9q0`?k!U{LkDf{nxu +zn$>zA?+c-5o)jP>vr|O}-@~C2Q|a7ie~~hOxC&ssfViV+OTMXse$>%{e+*P|K^EY9 +zRijO(@j0q(c@y~yA77jIG8P#~?uadds)CKvS^lX}a-=l9>+&7%V>`(z8C7&IAFcu< +z(EZKa)kQ(;Vif2!6l`Zo94+TNg~#fiHtiPf(JDLU$po}yuhLH^QaG-!<^xEsok|S( +zI2#xi+(m5!QJkPvY0RcS9R(kKsdG5F^ua;)X+#=^awWmD-cQ7JC})+RDqrw*05!{A +z=H16E5A9t&+mN6`<@3n$hRc85I_|j7t2YC5))td{~uuh(tqn=PzN(BA0N +zcb!59)Ci+X3mm_Y&ih)9b3?FRXGVG6e4Srxm>2s-Gf-n`ov-{VXX%kBd)F%W%dzz8XJS+TH#Si_YEjpj6|R_ +zC>ZhvdKmqRsizgT?kj~!cwZG*F0~PndztBU6cgH1ZFMWS7tgeIxVq&Rb7l_zZgx|L +zO8~7Mn0JXh^^?{%FbB}u<^Woof#r$Tz6Q|R&8+=WKWOa%HUO>N!Qla1Q1}R(5cY^c+Xzf%0tzG|v)*g5}-TXV*nZ6|KGF-xu$ +z%+5BCU^8-F0Idxr0id<>o@i}ydLn=5&#!v9RlTwaowEx|c@Ns0ySNO*S|`AlnH +ze}jY2Y|a$|(AqTzziI6bkI_N}833(K@)xbmL-UK)zWFc@%MIX@qO=~w< +zKGE8T2)qq{(Aw#=Pqa4MdRBkEo~21`y-aE0V$`@@?Kl@Nw)NJZw07AKTD!s@Kx;Fg +zJki>609rff4_X@%_9v|k%^;?Hm0Q{WgVt_H2Q3EB+Tb^Ms_5E3Xzk?VCtBMSKx?}{ +z)7nT!n_%)sG^f94ZD0Mr)7s_#q_qz_1S)>g+Usi+%)e>vl*@KqbcNZ!(b}&8w07Q% +z;DJEp>7TT=&J(R&^EX->Vn&iC`@M@>>|r8)2-=^t_9nv*T00mI&JRFquK;LmXq^9~ +zwOyZRZLeoq8}{2XtqrzLn7wt>t_w~sgvgEP{6uRb9EHNva|J=Wx&dhIxOHCa-?Vnw +z1Ax}PexkKo-5KwnXl<)pcQVw$XIdMmZJ#31_yUO1->-wg!t2m5#<&W1?BnZZ)(W9i +z0If|9ptZ$={-CuRSxl8GhJMr9AUirR1^`;SHUa{i~C6| +z>dXb~n!)s~Vk{$o)~1HqRez$jD-Uh~wD$1jDPAAAHSAdnx7stUJxGC7{X}ci!TV+Yn=Z(ZQ?f#;*1>p{Ci%g_)e$v`(zi4f@30|O~ftx2FaOFao09qS2 +zazK*Xy>he_KxS@rLcTVR4=UswKx><3+1bxx&rJ_V18D8VpR{%efY!z$-5S+% +zdu(X%)RpD0oqwja8=h%xk}P{jB>=6hdM=yu2dym+ptYes@deosN5Fq;3#UPSqP0c5 +zZ~vmTQ;jjlp+A(L0%+|<0Ih9$mzE8nwdW8D7=O^(rb#qhg%SzAjxcbz-R$%5A*Y_{ +zdb?Yd#Rp0p`fCEBle|5`9`Ff2Xl)SF|4D0$O8!A>Z#>c3a=&P8#Z=jupR~4}_oWw5 +z#{Dy`4dd~f*7izvK)U@&Yrj`ha03T_v!pB*mYby8381xulz_yjk@7m?B;HjdJLdyv +z?Sy&&txXvDlhzjC0npl*GBd}Uv1uKy*EHf6>~qivOUsv;IHP+Ec%1?av>dXzlm^MQih~0%&cS;J?w@BFjx7|AW@n +zO_Z1b(Apz>uXv?CKQzD?|3z!>&p*@Jw?AlY@#VpZCtCXj>JzPLyTc|vd;N*lKKUE1jcWfyYv+lA_WYu?5q{Cy>pyAj8}!$n>9GGz +zYZw2G)~1jDlh*d`c&4?5H#Q&v)2+dvpoMr +zYnxq>zMGuydZM+3Eq>G5Yd>ghLqJ#f4_dqL>WS7aKz9A=4Nl+li`Leh_33z~wORUp +z(AqniPqen6G*HZMT6@_lHsKeojbr>wYmWeEZ8EMWTDwwG`~?e#l`Qg9Fq!x-T03DJ +z%$FYb7p>j8*0OOj +z?La%I09yOu7p=WX_>0!YPXk@gK5zR)Yx|x2L2FAs)7r|xKWJ@`OfUN=vfs3}1jqpS +zPg)x_?3va^;JijFzWRgK-uppoOXC4(ZOY0gTKgP8YbTliq_wAy0kn1q-7i{Ov=BgR +z%d5ok{-Cudz02aWe$(2T(3o8&VVfVonxARyz2CI<7XYn24xqL9CjhjzyB&Y$-)LQ*oqJlyH|U$i#&4_ey=$jdPaI$t;>rpt>QlgV~W^^AcV>>8u<2dxc{ny(4r`Alo4 +z=|9ohnP83oNo#|9{*BfKAHo7DTna1uNo%{hIdJ}>wa0$Z+UhpXw06}qt=;bN2dzDC +zv7hivYX{8&Xzkr6S{v($)>Z+~+Ty6swDu0&4_Z52{0FT~@l0#$0%+}E`gY^L(b`Cy +zebK*YZIM4{?fYM}Hjwi>f^z_^ZGf!LlYIY!)()xp8?8O?7p=_;ptZ|hk9GW}wUKfI +z=Ki3yKmAE-V`V}aWgQm11o=~wO`wje|)C3qxf-6 +zu%2n{e)$jlvj0z7yF&&*YoCrJXH7ZEFh=`CW&&t!vG$*|cICEdXCHvpR(qzk2>`Tq +zSfPT(ziDmPpR_i3)E~4q#_(@iJ22%xY3)l%(wrw+yVxlZQrjLtYbyX~Z37L)K>)1{ +zWTYe#51_SSUZuVxP5w!1Czt-DwJFGd)7q%NXl?Z;T3ag<_WGIDmiT7$PqiNGR12ONH0hrb}#Nn)Ajjp>ke<%N4)8!d!K3T8UU?brSqHCCX)P%)=v0~ +z*5>;~Yg++mZGx>|v^G@DGp*eR_e^VR;ryVrb@iWV?IZxL4LtlrYxB?kqP5R0|3Paf +z;}E{6Ry2L0wZR_#PHU(2f@}VZ*0u)F+8kMp9Z?kkTAL_(Yd8(I_gli%`zKmEE)VtU +zBVS%P&g=ghtxbmUzi93KKWT06F92Fw@QKzor~ +z_@elq0JL_y*)LkVABUV^A$#CIY3(TsGSt)aP20cI+TuTH?JB?jq_r<}K$-tWYs>$G +z))xLZt$p^B)}{r}+PNRVdI7Yy*Z-ikVHBTeZK0pEc2)tQ8GzOXw5IgmNd*3+wXdIP +z?W-TOw$Be*d*IVEt*zMhi`F(_Ed(k9(AwGmMQe}g%+o_@1a{Q2S~UV_ZQE+yz~8jC +z?0?eQBR;ud09t$46+mlGpYUVvos8p~ssU(if;*cOXp5#OOM3SBgxH}k@o`DKCzoP_vIeX>A-=0IjXK`%G)6>7-%) +zoz_lzqP4rG0JQd0Eg{nrt&Jl0o7R2{ptWTu|D?6IpJ?p@ynoW#YCmXg_g}O&9v6Vt +zw){_88-wsStvwcQ(b~fRS{qLA7p-meOl#)?XzjBfw073=*#XUJF(SmL9C4K1(8lNo +zt6&7hd_#J?cJo{Jm9JPA|Dd(m|BKdcc&4>SuAgabk-}fJwrXIi_Y=b6?%l89pbH?3U;2o65c+DJcWZLB9++wPsV&7m@s)<0-%!tg(6 +zZS6m3?ZWauXzj4N2p;phTU^X*c>BDy#X0&sd*Mme +z2BrT`SzFrvm#i)E?w_(Y5M{{wZtY{g$=Wo@8y*H~*BiSN<+*$F)Dn+FQyZ +zIDg98_kYORc7Ms*LG7ss?qu@MvNq@yapQ{oOL8yz0{Bv2*v%(dn-KXASzGt4Xkg|a +zvbMwzSsQZuzh!M3fUI3X@xNv5q6L7gEhF%LC{F9e&2L#-03d7E8vPGhTcrRXYj<6y +zRsWK;I~JZ~?er&En-LWtYk&JMS=%)9m#lq5qe%8k)~^30Yx6zH+JJ(#f5_T!SO8gD +zn)gZ8X5uZq5ER(=x(3MF0{HWIvOGUzZKofyw(Fm=Ho6@o-;=C8{X^Cs+xjJI$8GX*?34X}hBgX$NYft?pYft$7 +zl(j4Wl(o^>{w8Y|{3&arjyaW#{*<+;f_}@|9n%0=J2v#EtUU$=R{;4_)@FT@wX^B| +zf6Cg7$G>H5M#}%2tgZMYYZo;CmbLx63JP(*-QX7&tA)QauTd489hEOh>A_fI1Ap9WaPhN;KX$lG37u +zoAC-UAD`ELjbzo$&K1sChjUqY0Cs=BH$eT%d@_i-zOQ;*Krbu>5?6U*vEpat7CB+k +zQmX(9kvNu{qC-K$kGkg>`ivGm>GIm*c6l$2cB|Rh!G^>-Cs@kVUr;fl&=z58UZmjh+YoS1QJjGC4M8%->4h1_avpQdHWhE+`qT|!mCBQb+q%KN3n?Hd +zv&X;wDfAAN+E1g!$wnSh>;B#=M#A#J)zHNY|Gm$Spc{TO1DnyOBWg9Fz^2So%__KDKta +zY!2#DpoWR!MeKJ?t5ae +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 +zt;S9Xjlkd$9=8367N5;#g= +zmVyHf+WWb3@sq`+-Y4zQa-@tZ36*&2E*#2r;xB9MdRc62M%|+*mzLjkVdmXqnjgau +zUV7OJXlxLnWX?rz)sUK9ab{W+FpZzMDz`cd#=R!kj;r_}5OuCW#3i03AtOaa>)hf% +z8u6}r4@=}50)eEjVbO~Z!^l?Qj2g|U_A7+WtBI}TQ+8me)JVNM45)$o!T6lX!{ +zztyTJawvFFiJt-O(AD+nIhQknBVq1LZ;hmhiVLSk)5tk-qmk`b(TNDAMAx}o-YuB7>dnD?< +z=O$O=)NX8?Ea{R=$-KFTRkK&l=n8cuYk>HPUR~6r?JXOc(DF=2&lz_g!HWVKPl3!L +z#Y@$XTgP4{V?m-8kvGPt5a5+mw!XG4$GpsFKm%eoS6SW)cU)J*{nnhOBgq{z*SV7q +zp5`4v`h`Fc3oz(-Q0KH}-_`pz#S*H?Ws{u~;S3;hGr)CY4nt|@?1MvsZ(IXYS|H>< +zC=m+`mQ-&;2jdsUwqvAss6!Q#LJ#dXqXb`Js3&kc=R6b);_#9}GL5}u40E%W85V3N +zzrVg&)SVtti1R#{UO_r!1@q7v71W`QM1@q$XwIh$p{(2JVB7CIzyl`mJ0e2#CwZVh +z74T`hXnwG8;paultvDih$2dbzF^kA3QCQD9tNnnU2c+A8#AnOdc3izDS~DCzXa+ah +zfYI9^r0V)k8aRe|jq^y)G%|Fqo|`{@te*cueqZqU%h)TC~j +zsGY!mz2SK4K9vR>iyVQ%=qsSi{@jRBDiU3L3q8!{B)bEPA?qZ>;KsvU1lWn7!z9Tn +zz~@CAv};Q5VG@`^QuK^1U6&!c?OYI@h3Hp){d!#QI(M(^wGAfsvR*8? +zC_QhxA4j_CaUs3y*cLa}ej0EDV!EMs(I?RmO@8QItV;$+TO0Aub4GCCJrCR7)^^+O +zGcm?y3zNJVAQfZrn#Bd45i?n5)a%`gd7eN*bzo`sYH^sO^0PG7sDapWrU$SP6B9CM +zi)o|#BNT5yl9dUhY%Vqu5I4}kylj+;-eg0N_Gx`nISdo3lI(+{1uk067^#yKC+0P0 +z*K{xlBmtQQx7}>Vq)4IG)tyB##nE>6gLSSPmQXh^l$iglNWI80KIsVgy73*2qT1dT +zxfL{#%cWH>2?(jbU79405a~Og>%^Ky{hRJ}34WEZYK8bIiMMRQB-?(W31eFTWQaz@ +zL}7HvjokJut2l3|mKD+2WTT)UBJO0afiARsmJ=}-L$ht2-8)&}QFMy?Ycaa+tkk5(#%lFDehckd1h(F)~t{a2~<_`D4{wO{%|ETABKg((%|i}ATt7z$__`3&=9 +zkGWS^z^=ACbdIg%`_SHbda&-UesFG`V!*1-6W1_~V1u%=VYR4U7qTJ3GDy%0K7&u8 +z$VXbG{R-zuEkeiB`EE+8D#oOFq+C558_X=i=BcP7Xkdp8(ki&6Nkm^bJM%@hxGT(MBNS?2#Rbq|VxXxXAgV_Oy5 +zPQ|uev2EM7ZQHhO+qP}g%W1s6U$M3Jn9$?$I9QevUfhl@;ag7dnRwAaar8 +zL>L1G5M%e=s^(V+*%jq`1VGpM0CCq&m2;U5yMw?lXa0H88z`rD)&txoG@(;6sYNlf +z5h*@Y*1n@jT_L6HeRZ-6c?~&6%~7>B`m|(o;ekWR5ab8tE_YQcy0SnS6cd}woFGCu +zGWNNh5zuHJTjBj|rbVwN37{EV +zSNI(~fFT(h+YA$~*Qv`I5i{a?UV1;2nH{&Fx%D#VZ{;LYiLX?7@{2Hvykpe3(!RfJ +zRA0mt%%ti!878RU%Ax@()4Gd{NqRuJ+r +zkp^-_qt;-+JOIKF{rv=(VF8#!?s|%4yL5C#=Taq2Gx_C1J791SSkG&qsIKSIO+yRv +zoCH1*%J~(19dQm%9n}p~4*2^$w4_YkjT-oxLVY!FaM%NIL;Jiga?%})dNy>0p0QtZ +zX?7L_FqbgIgu%5!HiRjquV`)L9;92m=(2r6Q;Kw4W58~Hqc6B4n2=%h+CHVe@iw5B +z^k}q7e@h>vs;JTB*i$j`Fz5|s8=}-e_PAioK9u!E{N8Uq|6Z*VQp1^j8)1G0>UIMS +zElYG390TE7^rL>(l|3PYIMSW0X{^-FxwX6R@%l!`R1^XD!cY +z_PFJmb1zM$h^2sY(F=ikQDpw^u&)?5+?b>>`Gq2=Fgkbmr9;t`71}Fk=WZxV^`nUc +zs_@cbkoU=C}Ej#;9D?%#jcgE3q$ +zFQmsrq=5GCCBcKZR=gt&Wv@HTN64c@fxxgty}83hKeJi9C2=@}rT}hML5DyP>6dtv +zShl(Z{c(s;b&}&)s;4XNHTC~w^lcRJ=8~w@TU8uRqzAjna)obo(Pi$fR|FCR261y$ +zX-Zc5jz<~PKN6>{vbc6jX +z(StCp)p<@8)Xfw|LzX0dMrvwi%d`qtB6|%(XTerZ$5Oz`?9W*iNQ+EX}jK85DpB)X75-j+M +z5*spK@)5~PskUUvF^`3G%s`d?jl2uC)^Uxe*n-&$lh2A4b(u0`FwK#81>RRosciKM +zsySHMSD7PD?y7gjygvq)+7x`hdwIDT0@mUaogdVdSK9J}qsAZKo$28E%MH#wKxRv+ +zCX25zm4FTNfgV*$vck3ZG&n-DMPZ&b%LD<}HEqYMp5$<>;+fd1S5W}BjGbU<7f3weVd&hhhc0nH;>!EzVw +z^Snx$j`lt?qXDl)Xi)(#eBQO7UXN1Z-0!E8T!tjDx+Mz8yHLF|qm%P@)#{lc>#auS +zWnpm6^$-_ufk0U^)x2lp@$Z(BExdn-qvP!Q>e3cyA8h6cvt^k;P#Gaf(7GMF#;I-m +z;tHi-Os&#ew|La9j^Yj7iLg#G(ag98x&&9%w +zDH^uA{Qf?wX5#KV+@h>;D1g&FYm(XO;KBNZ_gHH22-#AUw1Q-i3p;i6@drkq?jMUJ?bdyTFhj$# +z^JKPYlrPs&J3qrfH`c0?^==bn8C>4bK+V_#9!%(!U^(sWrX&#r?+oNKGDr=+lr1@? +zNm0>pXg1JdPl9r(tvK)(3&ovPQp))eb^n<9ebSbuJXc%`A1;)0Wo}M-w6-(Leh#tk +z2=N`wU5)|%HaYeN=PGu&@;?Rg(jWuvASNEonyBNVbogIl-uP6r>L$6{A3Txr;JN0a +z;p05peuKX`Q-eF8qxi&*nDE7tIm}P|m8e3F?p=xP`x+?lCTDu!>jJ5xGZ|-FY6i?2 +zv-TUI4+q1Om(?9D53wI5Dx0|nul+Vq9^6*5wdZF|v%;Y$eg*TrKxw*j6t9bNGwb(M +z8oL!+ZK`-VZ7-zsncS>-0e)mvb*Yv`DMeKq!L)yw&7qnqO)`n?FX%VHtkXeW>r@Ss +zJqykLJ~z+3XPupU(g5xDV)W(hR(bc~MHxdg7Kfwp9x2N;_jLmZ`m%V9X%wd&YzSx6 +zFAHrz963^T*>yVkWJ5Xp0_6@e0*w~)VOWFX8`@+vb^;eiKN2q7w5W^&2-Lo6(K +z=rXo|ST0UTJc%gJg!~Kp9oB(KysT+nfqwxSjQh&Fg{nH9WQVZt4~HgkSv$#AoMdCq +zpQU$3*B566%0($r7+JsXtKs>qkw+^0nfO;fygxo9V9q?beUxxhqCF$FnpyaE2{r95 +zz#s5TdF$oh!0neG3Y`}HpvdI;$J#9VG-`^hzzuX41FtnC3e2^!ZCqiN@0KZ+d=Zie +zvt3+de5$^=aykXgYCzj4JXwH($$)SM7+gky-AVZXi@KI}Hq~`x8U#KMF_)E7wY^0j +zcDreo=!Y=It0BkUhOoaD$}5uT^$~VHjwSJ_B${9jDk_k6O$rFAz;xj#mP+R-KJ#%H +zp2fK+<9wt#f9xQg~RPdT%=pJO@j)`}p6-@i~d1>1@8N^4K={*NPCM{);?19d! +zjY(A{Wz2+FhHX12cS%F2*=!Mn-AyHp999fUd%gGGi-!mIM)l3objs0X-^1y12!bm_ +z-jc~V-C~?(wZA8vQBsiX`d`AoB|4>5@6|cqAPuNDerhoOXnu!ok9s00a`9xx_H`w+ +z#YW#=@S^-z9l=4SlHN+lulY}M8F7%g?dcpR{=fvydt}|K`x>1Vdy@Hz2OTh28iq)g +z?pWl(MV8aGYr3@a636!6>__(dK!>M?4Br0DRg=J$&uB_m1xLS>h{v1Eq;|KvSwFSX1X38zwz#a@yyw5BiIxQLaPwpk9EMs4H?4VbtJI8>Yu-%L8u_`{NuCfhR?XONy6W3a| +z$e|pzSh4Q5P`U`$4{)85NS5%&|K2cOrD$D9UX01^23XxKh4(TA{MrQ+T(TEkL0#{V +z^NByjcW4K^0=E9W8-d$|);Q*fE= +zYb?2(ryR4LMwq(`yx9J#w=;L8`=V_uz=p?wFQs)j75sSUx!{QR;FcOL9;!9l&XhEQ +zYu|x1ElA%h*ZNR=lTN?9plCMfkE8 +zTxmiTkmtVz!4UhCi{5AFJs;2-+0?&V((cQw1?Oy1qJ}BxGEx(v-Ejb|j{0LY_=^ZH +zkxU@h4(0JchYskeZfEbfd{6>U+iJ}#TLw@$NEULJXlY9Byp=>{q*!2TOFm}4SUT&i +zl|2?eh8jVr;f9~fi5<);8aYqFKfpR++~yrkH|7+;qCr2OxNm?jJM-pxsfjdtIguRJ +zAjxi5E58M3Jwx;f=lROhF=*w&Viyn6f3B&uyx`ORFxOE8uMu7Fq5!X#rbQ)_UvG|M +zC)$?N{NWXs0?_VDylRw|j`MQv4C6>p +zv!zuHr0JdvP$TU?ar`)l*>tb;f<6A7bJybc9Zhojll5I)1BHVv(a;{=!Eb0AA72))#TZc`qYY&*BRjCHhK&Q2=q +zCM$I^y8+h20(+T0t>hmZ_4d}7(fGMkX6cywQGZxb`?G2D1!oHg-;E*vo~LZ~d0Ky*KbagpZ+sWk4fms@6ommmj)rDW^>|@O+$N +z_tz3IwEeXeB$f`+#TsF7d%bTP4jj(S6Uu<9U5T6{L<$ZfUU|2*l>Dv~c%Cj&R7=|+ +zhW1u{k2WY?JJ=A}7pfwKIj!?e=W*$VVGu&Ydz|_~0Vj0l72!)&XUAYh*_FNRV&xEf7}i7B@m)!k61*h)z<#CM=a(mxvxJFOLY#wwUz +zaZV_^F0C8WB}HvVUfm(^$A<@BRdkX};rJORPIQtv4#rSXt!6|~I>?4B??uQm+R(Kq +zesBi-X$Dxjgf2TO6PWOQ^9LCGUhsws3TjD)Ix9kdLgfT{7kc`T4^H8q^<}2*{Z)B)NdN(1I?T(!hsoQxn%cg1PlU9AseVLVb<{D +zESDOZi;92~e*;*6c}nDr^F-@z#IojTA0&GOmuwg*sLdVyrX&XZ@}&?|aja9zWLx7R +z>HQI+l!Kr|JJMx0Oo0*2Acv$b5^xuR21OzF{NIIAyu*v^p}6pV{%U~RNWS@sSqRes +z4nd;W&Bu#w=>2s@Ev7t$;^L`E-$gT$mE7 +z3|!oNjk(#cT6Q>4B>VUUQ-WnViJLFSV;l`TZ%c5;un=TTTMLonExRH(?;nI7K#25r +zQ#m-_L`_O14HNYkP8Egsf>tCJ8 +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 +zC7GR|<(--{j)i9q+o%mlkqt#x@f0Pgmd6 +zId~T^U1pI?k3tk}y5!D~E*iQoH5|>3-__vSnjAqoGX6C=#RkA1&w&!DBdN8T7ti$0 +zwJAhfFks?oJI)-BK}c#5C5A)Hw)>b7zJfW7ge8{&K!8hpkT#zv+*(v?!!@4!CUqkr +zcdV#rBGa55zMs!mUdGwmwV$&FWa5BPV2w;AJyBwL8Z*(o4HtPHsv;#uWMC*D76`Ct +zDDv!N5#kN^Z-BetAAtK1a0Y65{8!TYKLGbwF7j$IEcgEhxQE&lw4DfgKUE#f+m)J; +z7Mi5yARjKtusR#8GN*uW5RN*MEQ)$gB7gM=?(;`8KV6EsDsn*^PXukpZcYA8d)Rm; +zO8p)>P)11IQT=KZ1WQubO4H6Ngb2GINUyTC+pbrnRHUV-%yz}u_QHk9+sqRBMM64@ +z^uXCqbcY$Cdfh@pz2bUV@cDP_XKEq!80}$^EF>PZyWwDy#>ev9u@)Vs?{6tZfu4G% +z<`aP$@Pej8>LAiI!4uT8u=6S2J|P9Bwhzf5*7r+siE9nIcvXzGx7V +zs41)w$@SR&rh;&5hROnu?Wu113ZrZyLMTvBVX4-c!hN!UXwd!!6nLu{LX?oA^;~A2z>`j>OX(gl!5=u1MZR_j-Q^%n +zz_dE~`5=PP`vu9^D&%JY3oGg{=qKJN?wwkAk@O0x9|9yIX%V$HFIPe{FOxHpP-n>uxmAEl!>#m9{1o`|`=)oL*2+M~&f +zG}?zIsFe$13tPi3;Ky#PV0F9C;`65U|Dzsj^Aw6FMz@X#=gRke>)M1I!vA$kxTp5v(@Ha+tn}h#9TZmJR-4~ +z?SEYA?X*l{Nh!*O670;Kjfgl{?Z_O_C@2n6knnA_Iu+rtq$sjb2dXTN6)P$g>Q!TI +z62=%7@IRPt*#YH%!!8*Kz3K)6Esu+|OpQlpnLJBuHThjVH +z2={*gZu}C-LLe*ne*@gv{{pxLw0{6@u^)hYc~xTErZ7JG=IfIu8*c;W{{Y5;p>!r_Em!Q|+IK-7K30(!cf6cfnI^*sR1s +z-26__KLGcm?!N(U3`=(};FceNn@10sXVp4ecLBi1t|iFinA@Hcx;_?3#(PCN8qY5z +zf)ZnKvjC@HhEvUu7(6`W1rUES+c@mVvj)YWZ{S|;oB>yh%dM$6T{FLB+YvI6!p~AX +zObQuJ<-SSzfGdd1%5;()`9fN%!oVmgJvN|}%#;}pseo6Cqz3mUIAb2b9sSTYVuV_o +z9C-UwlsD8jXn9{@*gDk%gp)B9fn%~Q +zIo!JF%OgYvjtawJN}P|`yW0o*WFVoYa=!w^7=4q%{xY5X%5L5noUAU^B1N3V;Rr2u +zSr?40SIOg{PkSJ_DE}A0UH$`b2NxpaR+Ou04nu*k{0HDRq7ZBqWiQqxsrmu9XYV#J +zNB!ii^Hf;=0l1-bDgFVt?cSZCzDoZGa6=t$my`Yg+~{nCjS%I4F#iI$<^Bh77wEw1 +zn`1SHpFM#>zlxEP8<9uHL#=e4J5f14%~$Gn+D`xa>5E=R&OePd;hj!pJl?tb +zU*^0_gWoy!8FdYC$lQ4g6*^1HPWsvZcX!CE72MRi^4uknYHqix}oi0P4t +z@6oX0BeGp^?;Z5v7QlPfVs$Mynakr%qLGWWF6K6dv%Pvop|ZB30-jiK{?N{t>vlegy8K{|VeK +z{}H(3M?QXYx%~*-aR;cBKLWS!{{(KMo6G+S+$^J`0u$H3K;R1L^EiBxY?S{9+%NwY +zxR1@cbTSH+yIiDcu!`dU{(hzbDAtYh{-)2@Z)1aDcbl``;ou_BfPpmElEj^4lk{6u +zasjMPJwm>k`n3yaD{`4!;vS3wbhD)xJk)G;(BB)L8 +zZl_x@Y;#3cfbi{^)7a*Q4*KKb=6LVvTfG3 +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 +zO#*o1YED;Bur +zE*_&rF8X+*!t>4cN==7#Oq#sMdl9{zk8Z_9Y1|X`{?2_>(OhB(Dk5{CvN(BNLXi4X +zdXE!j7Ea5z#Q$A62i^ga(iNBa+o$Oh>9W!xmeCK-80LKBGXjjE60y?!-8_E}Dqvvm +zhf@tgd{e9`#Lq}9d-%=Ea^^BH?A3M@Jy5`#ERe*$%d&uzx^{S{UmVy0dmb6~enVWebsD*zMHi8!dO-=2I{qtkV?I +zqohW~ke+o*Hw`?m_0L|x475s9*H;7 +zgi}OI3mxYGNMN)U_}>n<*`ytgdZNgVnX;^D(&d%68RY7rm!cfgC-pWz(}aR0qa5p^ +zhA=-Pgs0sHb+oLV71?c$$e*!#5a`@+R>}H78Ep*?t(C~JlC7 +zmLiBtzBtnUNyVnJ4k(r}(-?lFsN{CaQQ&J}!o7j^%jcAENy419Hb5egGZoFvVGt8_+>;HJGG8 +zK&1&B=@&XHn`QZtgznJ-$R35+gkMdjob(HZf!zXr>vfitks4g2oXi@DnD>{5P4PMY +zBC7`rKJw!jGvDsC=&W#}#uyov&mv!N +zS{4}#!w2S}2Onj&5|NK5h3!i0%zX~w1S`8T%W%V%mp%M;UNK?V@glnjmPDwnVtBJg=K^ +zTP2>0{;T7Ve`Z7OQ=Q@wSV`=qox0@t;6+(%0zHzy>>#^p!eyM$-8MaEwni4UA8}$s +zrDME@nj?(JS1fOY6eJEvgyJVnebVKMugP?}V$j_WzFl&K5%~|k&GrwzEdv~Je}``I +zAAB42W;6l>itY#BenoJZvmX8j-_}(^;r+q4v9Q$@{Hc@j{)=xXmTN*142VV&*MM|G +z_F1)jxRN($v;ZYro_Ubp2UYA{GHSyUn~lH&=3(d3-^(h}u6t2cfuF1_qxXl?`2~s! +zda?L8tnuc!hv~}3n>Nqo^x^^-;sgtn#pPep<4X+7VGkyG!odUb6x)6YZGSlmfC#@O +z1Mc!1nqm`;q>6CT0+9RJFg1DCy`J1xBe7SuXaR-mY84q%s|$NOMNuC)rW|#i(haWo +z1{gv58CVZ5=Q0Doxmn_ObF<~F)-F)g`_e0%D}BkJw=aUqVQRi1tFt0hZBzF|sKnx( +zTPNn)tltr8y*s?7j~6LqNiE^rKQYZ@a*U9GVu{YLQVA>{Z(~I0C&aIK9q*D*&fFJ! +z)DVTa-w%b0kPm6P1bz!ut}>D!gPp=$nus{uKh*52C?M%(tJ^Qgv~QRW_P8a$c^$}KSB +zk^5Bs^CrcghNsx8e{#ObUIh}nDPy}+8YPRA@d|is_ciGDrR!JXYp{yMVF?RE`Tjab +zkqx*P_9`~dy$iNM3_@|zd41yNew{QmhS;=i`PHP*cqpT9m#Lzz!smwx$DDqIhX5Uy +zuNjvaSkeoWn@O?byrJf;Yh@L-(#0S(Fyer>VXOA2wdHL)$1n3^Zv)PRG!Ys9WCW7xX3EwPAhRg^2Qi_uq<99{#r04%&zmorhv?b)9w)>1oG-P{{z +z2v$C)^pt6~zBe>JAJdvV=qOh#0BT`~^>k&9Hg`#lvMe#O<$06?vXT +zoH$ER>FMwb<7&4nM;6wwmk$dL*a!(t0%#Wy01khKSKZawi!Do|)s7IR;I8y&_6*^= +z@;IeYrA@CJ_Dj0wZQD02zQ#s^v);(k8j3WVmcViS0X6_SbnMS_sbBIJ1#K)3d?oh% +za!pN6e40R>Fph3>IERUtV;H(N(E(qA8zzrNZrD^KT??!^)F+-W{f;k`xt~@-AUT)I +zZgR0uqfv&$4z1m3{ZdpWfpaBTk$s@dq(IpjBa$=5YlV>M{ViChfte#<@|Cs&_Ake@ +zR#-#WWsO9f3=F}r65>Y2KGCVZSZ#=9X>k)_e)`Vx09)Q9*cYh=0wV9O@+l~Z+`Yf +zF)a}Tt1E8_KTkwri#xZAB7`HbLq9M~XDijQA@KfWV@2(pX$i;e54{ad{4aWYVebY! +zr^RBImCyXHyXzPbhd#qFnh5_2;b=E`{Q_O@VNqH#m+FM1z2*5~C<^GBSt0z@4T+uM +z`StAr?_DEoyTzHEo}>~Hu3mK$-Av#po!A@;3q+_MgQ=TZ(9M;cqrb_)vjzxT^}^uw +zTe4y6mbykdogDj8WLRWV#b<~vc4~qQxM2Kr=0HIkZB_*~f92t_1ri+G3rgpd^A7^f +zuWrzvQX<#^0hj$C$9Sj%8$y(NGS-^!?L7g%)BaO9{{qyN +zRNG@!St*{vg1A*A5I1RC!0DBIlv^6nTxXoZ&sU53sf`1G-D98WjcpQoG*zh>=QLh^g>{4}iKDv>Y2DDT5!Q +z0SG3Xwv==Lf96E3ZsE37F+ET3$!*6!!5kPLxP2!}RhW!D$yNEg2}pkK>QO{~$4W`# +zWJ=Jdceq$X7y2OYxBBQw#UqvJ-Tr4}fL$wJXF`sYye$wb!ZjWNV%qXy5g2_D_c|6}VOm_t#z +ztx?CeZQEM0ZQHhO+sTS;+qP}nD_(JK_I?k(I(2_USM}^3^BMXm5T^KuWmitu2gyj4 +z{vRH#z6hf=DX*lL0y9#6;0S*{|0*9!-jA*0Q{{e@@lOUidc7gPB=C!tNb0rBjJ@+q +zd!0I0`Is#pSghV>UZno*c!?@wv3vdVc}?E{JH7ICx8s7>=ifm_+_&4~{odPa>=V$e +zUJ3c4_rdtIz^mN+LvK6WIeSzm7Wi9JRV!9)Z%CE2I*;PJL90;c96Y#5hCGZ)<%^Eo +z?%NO+8Vsds8z&Ti%iLzpw~n2Ygzj=%uCIG` +zpnm$4n5y9;lM&)??P0FjTl2H0?4IxjD3ao(ze-t++s>ul*}l4*{8<7I(o!ISJQUd$ +z|85ZmZ&yUZfY)dB;jMLp^^L?)`1{moMdH6h8sH9+34T2AWiUW$4;nvE*Md}qQKT4G +zuha@;qxbwX5k>TB99&c=k!HRaeaOnd%FDolrCNd2{yG=CcGMB8n_2K3+eIdhp?zKu +z(%JO}c&dJv`9UfE*5U6JnZ+D1a0E +zi}wekV0z&q5x8Ws5HyS4b=UG04n0RL7{>1_8JvZcb}<{hULs&VMscWt7+5E%RFf@i +zD0Y3e3Rhirw~JHo%6(C*`z1Tv$`eC<)uNl{fxYaqbhs3ny` +z2lB~s3KaQD^1+~`jKeklkUCSNNj>n_wMk0ZV?q>h0JS^#%okzo;7`>?TdEGHJA{$rYI)k@&Pe5mBV0Py>ccmi?WDM}D?SLml6=%Dwhj +zmz-(v4yNxfQ<)sqAOM`emozb|1&%9xm?TY4QUq6~r@@2qk?^#?g^Xl5Q|pz(glW}3G;tNsux4kXXK)lyE~W-OJq8=l%64oHGHN;|;L +zo)>yb+|)1NXX6L!sei@!(m?VBYWsRfqKTr)R?8VQ%Cud-Zo{UAW({Xi5plX5&4MPK +z8+Wf)+S@)co|Ma}GYgtYIT|xPNLdxp=ulY-r_-4}`5?OxzeY^y6g+5&&?N~E6?F!H +z#dVpLq2RQs@e%-$Ro~>XKYEibb-r1Vk&lS2f$=Dpk5oL8$HoE?NU@NR($%>RD~8ph +zjFJ{R%g^WqLH=l=p)!f^`OG)2@lP^pAGfjbP54?Er@Q8!+W1#Bt9nwB0#E{)wA|OXIOC;$KSMh-EAv +zZfFlp&%1etJ9t?9MW60;kPX?_-*sD=M#OA_s0zSbI)%FOTP?R^V^}Deww?~J#T&K= +z)X;bVJ0STQj8(>eZxBu&q|}LyLWam?gaO9rM^;K$N#Sabpm%CKY_1*g(w228uo=|> +z>#(ofbXYe6^DcUl`+ghiU8zA{C4pq=AKId6$-TzDm(A7^r7$@quU4LYP^oWwy&twb +zg64@ho-#D67Q<36=+r^EA-$zP-gmv2SVEp&M-gGFp^qFaRzQgQRHVCBSfRrh1tvgB +z=gTSdbq58Y=ascUex<^(*o{|b)>I +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 +zhWwf{ +zhHLa?wmnkpqOYGkW+y<GO0AfrcoKT>Ux>x~b&WDH5L4 +z%YF<~2?Gn^6Lh{!X5UemKP9~XgdobA$-~>BB~v{Rv5-l0o#deM@Aa4@#xprdJYhK! +zd8vg9b?aS=y=AhGsQLQwQkYNowbJA`IYjtyd7Zs6mr*S!@)0)nY;5e5SXn5G>h!hL{%`<2eVxw)VV>xQF7L(l +z$6xWH@L9A`X5|3|z;;GZ)%QBa2uHO%oEztBXGzyPKn4J2fgAR4rA6)tOIZ*&@sm5( +zz@c^vML8L2CNv6Wro#?(l?@^kgB1E}MYXGJ2&Jy}2n@%0{DyO^ZfA6*JukGC9xB-~ +z&tU+S0{AQdPyI%u9y+HQL1(#P{2tNP-&=CE)c`;S)+JF)omEtff4-%p{3{4TZlMgZ +zppGF~ETAPbc&p=ShHAXXib}Z@7 +zrG`Xmm8vT4N6=2j)tgy6eh%^-u;|j%@nurh-Mx90nES${WJ!Cm1wBY}-nJ!+2LK3= +zMBfQi3kMX5wDM-`K;5v+n8+^jslgml&DYW_1qz2cn8e~)8~Uvk+;oplB7EnKrgg|n +z@^oU9($S}xGXroWbR^Ph^vg)>lo_=|!|DqP +zb9O}NYEZ)y9{ieR>`iRH6t +zgv_QaM|N~}7)2|`U){eYRoU12s{ZI;9rt6=ejQf3 +z01o!LI<`|5!6|D@iihKLV#xOF;{x^g@9AoK@`LLcudBps^0H5#Ogg~>n*GEo;!Gs$ +zb!g(9q>@wAA0`=~#a^)1DB!y*;VVgYuEr~C%-|C$FoH5-t3WQBV!P}Q)rIdvfm{erJD<#Y&oYGN8QQ8vtvjq?K>CETet{_Saaq!jMFqb1ceHu +zk_>cd+hRpP0525Zcq|N-excidRDi&Yn1*0EdwFo1KyJzA2f#- +zVyQ`FvhnUoFh)Rr|1EGU{UdNY2D$$T+;mbu0(U{uF*Oq33{e0+mq0y&q7+i@HY=t7ySftL`;wzpY64=rPUF^1ZkN +z!ST3OMgfE&HJ-O3o$gl#Ht?@ywK;i@L;J!MQSYc +za6Ctiv&m2g>7|g%B^#hhg>8HhL#JXvyBI+Z{n@s8VrLAd)W&Q_ap!#=ekFe=c+`|; +zKAp~V(HIaO4=sjBW0byV4-Df&NB?+|I4XTSQZr!h5xIN^QSn7NYgj7EIOdT&O+d)Y +z9d*I}0h-=%N6=SeYZ}z8@%t5&EM2UM +zTR@WhX?5_F;Xy(bp=1W;G|%kt-YLwdNhvH+hdnog<$s|t+d~e{PYGbDdXZ$irjEgH +z4W#-wSv7v&!MIG{i#oL3fi&3NUO18gZfx7?~dyYtu!a +z%u;3)O-O-T8|=NjHzEALMGbw;d0RTH^EtG>itu!Y}a}9*`s1z#SJ+L<}eb +zX7xaS$1fY%XERQ5A=t@72dRyAdkwLxWH%evPCK>*C##75hWbNr`#1heaH}K%oW?yF +z?En%>-fuH-t9j&}TxF&#lIpC+s{>M|Pgl(lop>yAi5l!hzhRAp*&%?M5%XkD!Iv$o +zk;lTwV0W9bF%C_atYeUZamZC!5QQxRV8YI4z90!7u6?1!G#WsJhbch1cPU~}ICWCX +z72@uxWJR^wkgrok!Yxw-y`ZW4>5G0QkGWoRjMYYWecZm~rx}yZy8pIp#8MlZ#d+9i +zxwQDw+9Sw|UX-3g6NAZz%Vdb*CG8NpHJu)WNCKk!dU&8PjlodRL~mww%xKj_%hTN(Iv613d0Umj_JsB9WT_hn(rR= +z55c|Z&6Y~_55YYiv~$P+0Mmv_oG@?QHq{ts@{WrnQ^Irrv+l(!xRgy>N#|QO; +zP7LJ#65OQ6{F+**3_k?7Fn7}1KLmHs6D8aK5Zpvv(_lXYH`RX#?$mz?ZcMVguKy;u +zeK=%^;^>mI#Q&S%e)yN*ZZF>8I8FMO;3oWs;EsxP|CiuKi2NbA2fE=ak3Z{{HVC=Z +zR0f4Wwln|@yHo0gon``&;kQQNh%;I!=MJ~uv?eqWGP4<^@YB)hzZJItY^c596`TT% +z@JEHnc^<5>4R*)0WeZRtqi7N3eO3M(Xw~-TfUqekHdnfyh45xA@N1x%(L6VpggC^D +zyRbR`OK_)tzIx0dIrndA82%94Ya8rlC)HF``iAq_XuLgI_p6<9{ft&7okaX<>CGqA +zZ#t`?8O9C8({vTO)oSf~+E_L;pvpwmkEM#f!mON`U|QkDrN%H}$f^1w8w=E-^@Fx( +z_;ChH0?Uz{)WoIjZP!7dn-^K?0#xd=vn-ejt_joXMZro5!_jjvGnyn|EEhp^m6zz~ +z9{r%Jx|-uEPUrdvrMem{*deh8GSR04Kg*+yz{BmE6j==Tb66V1Hbi*IVEz=L2{LR1 +z*sSTm&E3X}HjdiI)uuM}A_lo>unaUTFT>bjG`5(!2K?(aDNd_vHj7brr=U{nv_kC{FWc+ODDrKIrEakBaN5Y&XaSG>UW42TlR`xxTp9r +zxX&ei3~sz1gWKuH;LZTf_`e2s)xIy^kjiY&zA^LHrRdVm_Z9JuZ;5IFEI7HDQ*}t+HepXBdCs_5CwMXS1deQ;&Ag|;A77-ur@%n>x<r^^pJuu{BD6z;74iM^tR(UDJQ8oq5*q1Iwny@6 +z!2X&OM?qe(CRdiZ-#_UDxZpGB%3naoI}%|RayL{SJ>1boVujf#Mf&n5TLz`7`E%>? +zq4`0TG1Q=zD*B^1`A2xE_kMld5qsq^kBL=a&{R-i$NPZ_V}5v~o%WXIm41WCl9q#$ +zRC*`|7~mHovXy3#cjdgawR5sosjgq%Ek{C +z2Nt|?u|DT;RP>UKTDDKWPN*A!x>z_kP3(+@bA+uv58Z(lv@!-%l05lebY{@FvWhR7 +zq_=o2MBD5U2p>@spXW4Z58g%N?$AOJ$ +ze++Jq|1r3Q|6_2MJ`Xps{}|k{|1r49t;mo7*nSM|2@FL7@05QG?!5oU;O=n5p?tfG +zKLiSZc(B!+ZT6WZ%i{K(18e^nv0<30hRyHlvYLz`_+UGom78exr|Zl&PmhB`LAD=| +zdKFauok1LPo>taVFOysxR}6yhF)U+iC3MG~`sGeBS$*NMNA9?&5mKD?fu7V;-sch; +z>47huca2<}iARRk +z)RbDOPjH%}irH{Q?*u1PnmRS`@{|xNbh#j}DrW$3RNGrvHKOrZQX+n~Wt?QT9qc)) +zT+F%g%xyCJ3##qb@@!blrplU;!FcvuDx#LB!nQ~dAs4gEWZp~C=C_QMyM`<%KtIAOCSF+xI=RW8Uoo095E37U<5Mh +zhut-mB>j+LmiRV;E_R$l_l%9IG?z>`X>CWb{-#>b5Y?@kFY1FI*)Hrng+nTFd-%Fd +ze#2yyqZF$ChihREYqIHY8QNlV6E)-ceZ9C<&xbSxI;bKv8Uc}m*@d_qz=Jb$G=fC +z)-3`Kt2mhRzVQSf9yo_*dM{U>ulwaeE~`G_&zbDz9_XlPGXxM>-k1=lCW^2kGrTwO +zMt@u0D*{9Ro=6%inROipYia`loL+PS3I>IMdSbQAB;C^)Y<Mo6zZ&XC_ +z$BL%CSte~cB0IACO2}@;MB{MdgX2zu4a(|=@zUFlEm||2a3011gE{cp^@cm*r#$g> +zXB&okS=Se@#7h@~Vy=*f>NOXO_F0IQJi=eyh5+gH{dmcEqRdc2S>*UrhX8Q-GAv2f +zVMx4dbU`UB@49HoF4+=dD=()Zzckc1SF5+iL``+S$T5H8^<zQ +zWbS}P8q8!eTeGD{H6^xZ`N_6twE=K)Sw!dN*-$?KWOj?F43xc!fKt|P+rK;GNcrem +zB+2iDRVb@=yHwLUYao(IF_Cylz|@>PzQY1hS<+E6Y7V+mRNrFaA)c9U#6id^dP_Nd +zL;Rp9WELW$`^cz}i{No3M4bDrt(30Jz~7&5itLMOpZ+MViXY1K?2T$A^MHG!g@QC^ +zOleTElno?8j?Wu+%ovtqUhX#Eu$rAzE*;KNV-*GVsVQBLNdO1CVsV(1T+W+VHWqWi +z^}$j*zC2Emcxjbl)i@#J74>F;k+9l~njR5~GW3+NN(Dz3sED{o;;)PW54=omKqIa0 +zi{e>^4w50x(Onbv%8me47d4Eg^Nr8Oh1v0m_jokY0;7a}o6^G?n)@jA!8+t|i5*R+ +zylBy@bkoj@6)T{_V0RfIG$|kgAFb1MO1h;p5qLa4fOY)}_-}JSZ~Z)>700o3(8;d( +zPbBjKhW5Z4;L^qwx5j7cVdQz+B;QmsfE!jccRU?C?=_SN!{DLmEl9-Dm!=)Bv63C?2; +zMR%NJfedQ>;8g_`A#~xHDCW@E%gJw}P0DgYtRp?#uVow_5?$~hP#Ye-mdnK~&(f71 +zjFGBq<`U15!x37nY2j(7)#wGH3XlCVDe)({j6Yr1&9m+sA|%@LP7&u+XJFbT*Ure`)6{F+FKsFF0cTQBye_G9Co*>iAx({bVjT +zUKVS2E5XrsU}#Yz{4J$Z)fwblXV*6wPbTx;fyZsKr{1T>x4_#sb4d+5h13ArMa-Cz +zZ4VSTeL-*B<3>S71Y1-Qu@962A;CjuF>^Pc+!_y|tj0FX;AQ+7X3dYy+SrdYoUQdc +z2uZeCG`Czg$&X5pb;ouaP#Vb7g8_k)3`csc7 +z<&;zj;FLq!C#B-Do|U6ssM&LoD!A@PXa(GedpWJg*K?HzSY4f)& +zzr9c7{84ikqjQe8ZHH#rN^IDHg)9eLMh*P|8gz?-T;|_e@^Bp4yl=q58WFbxOQJBU +z>szK*cwP&upn0(X;~sH@rPLvCvHYCXt-r$>KMC$Z3vYU2`6la*IfvgiXz!NZibBv| +zS1gMkOu5fUA|5=b`O|QyHaE~_s{51QM;#j55`Vho%JR>a3n>z +zjj{y%;P~4z6fOsOWsNALq3*2xH*DtKlh+`))o5%Z;34)Fj#RfbtIV_p+(8e?bG1AN +zGiSPsFBfyUU9^vU6%~YBlFs!q`IusXg@uiAX(~E&)mTEuL79qx=cRM@QpAxq#!GtO +zB&!NWE`MQv1;sS`NpZ_E`sz!E9IJCd3kg@IiQbC$RxDrj55bLA$KeN(+o)RbFTs7) +z7LB|&kkQD|a3u`*F&npR-pw6fLHt6yU!)S`|-{3lQDw77|fJFydkUw)jcq5G%mjwM|Fc +zM>13U^Dc(CYDwKHxu%#D`S73AdrnB7a3J$tQoiao9Y``u0;_~J%@$3z%|Rgt#-CyN +z$yawhERoa_CM{w{SY1}dGp^77Yzki-iK3`S702Szio9$hgA0d22f7|9WW4lco6re2 +zz2k`19VH@C*U+42BCj9~AP~Tj6A9SB^XJL)b(^JEN6>xwday|PAA_5~pALuZ$KX~X +zu*DfX&zOO|$m`?yF}QOAw;j>|Ce{MsvkmlXXIxPJHMsM~$A44*YjCf^MibHj!QnGx +zPg2Q7oBUz^^{>G_7A`W9?RHbH3ox04{cM_Cnkjv_0>2aVe62xO-%h%_HRmF8-#B2u +zh(8mt*BF&6IpPF{15_poCvX5NILBF01g?Z)-%COCo+5`>X&GZ=@+3f{G;Sf$rM7ct +z0G^EVTb@U%jO>2IG!Iui6ZZZJ2GVr$ZVlT!pHL=&_!FRa5EMYA5<1dl;H6wnxR}Zo +zOh&2dwP(mMc{Y%3)^(MjU806P@BZo96=>N7M@uJHU!_^zWVl`)-&{6Jr@;Q5G-Be; +zgwABGQ^z`E0!sSZvQAZNdM@iSRDr +z%P(E)BQSw-Ft7a-=O{jt&AR|5OIly6dYI7bK)uA++tP@n96MNkNEa%G_+0Kq6gNwx +z8(V+X7I2ib`mn_M$hA!My4d*l2 +zZ_@#Y73U?vnb4qF-hAozt}RT&VPMDC;T?XqDLFtncydUO5Vxt1HPHh#?mG +zYvvlh{CDOq{ym#ag%^*+MgAg91tjwhjsf +z0z`Hv5+;PxT?cJ|U)yiWSw&e8{LrAF8Zb(qt-!1#AKzagZW>2NlTISHM$3|Si!4QBr4PBNl5$qU$nVX({& +zPu#}$yqb{$$?cDzAOX6|3ktqt7%GGEK|CVQnvXBWn$uOKuyEGg9RSl@EMl&CGIyH) +zLAc39_^~=n!^u$vfg2-%LmnS1V}n2}T8n74jM7NXk^Mgick(ZPr)C>}wto@s7JgRcpw*g7&6T3FM?_qO!~j}Y99q;8 +zu;1lXfBHzqS*cO}j`a1^)c7z?3f!+vL8`bi;O4p~4}rj)B-wBerFm)8E8d@R7Z{|l +zM!+9j$>#UIDX-*CugsPM-w7uBFkGp#bofThB564mpAlX1u&4ilx7n~abm@SE(4gk3 +zGc#(Ms9L?Dpquq+y)MQV^4LHo+PE-JR$WY`AP1XpSHIRd_-mUtmO&ys%y>JKEDV0R +zqw!VFg|V_n1k|+7kmmY!k~yS@X&R^E7%_Lb08W_8$}dot`2?~x&F#JAOE(hB(`?KT +zhvi7I9RPknc`b3`2Fcc?s4*wf6#t|>#1k)mu|BEmg!a2yKiFokA=O%aF~S(i@V2Bt +zP-ckHC$7_}f{>dWY|6~y4{T`ud{|vU7-7S@A)xRtpBnUe*j7)$W0xK}1({@({6#Ge +zvsw9SObTn*JytBA93ZbM?qhO+GA5#ZF7RVd_qLKT)3r*^+Yx1^qcHC)QWBUVkVl*{ +zJDjZ;OH#?*@hNIt(D+`uFehN(&Uw;|-gQRwYx2blIYV2YBQI)iy-h}IIw_iZmXKLa +zLKfX{moBSkMw4cYYjA)?BgX>qoPi GVefSW1Cli*7W>$;_*j(&#FMoVn~ieBwqk +z4nN%a5!JC;qTTyohAAS;vul&l5LaR#$rD^AE`w2mT7W5o-|`)bCVVC#q<{IcG>HZ# +zhpN8wyzDg?9MJa&8Kf#@Ybcm-lti%SHX6LU_JCD7*pZ~+jxuACu|V0pJJLCBlSdv^ +zcaq$nPH@Vf0$FUIx6H>jQSfLQh}-u9YFs;#%0%FPMwbZEvfAExLW8z1g(+yGM1;Ok +zZIVRLhItdN +zZN=b8-=FyMtjF})lQnejgEg`XvcY%LQp6$)+mp%XuGIqHa|$!G&ws=oyn{|2P8cuc +zG)!LzrPBLjO!lk}zclq0!jG*14<^Eg0x@^#&DA5yZQ%wfUzs`3}m&_V1j? +zz(M`{gvWWIWPotw9;N!Ul#ZxtO4-tFol0!wx2ipQI@H!X45?C?U77C5w|mZnr>ZEE${@#Mmr$x+vRHqKVlk)g~ak@>w&=?i_>k|nC> +zBqF?9p@2-WbB&V7nKFGUtH{Z4rgCsekwq4m-o?85I{G&1^}B+Q%E~Z$>S{m3CZZ2N +z5Mdw&0dq@dDqQ>H-80%@%A>;O1gM8t75^ +zvcqL-afe?xEH^*F8iTSyoFp}l~S7G-Bofp20ho-pxzip^?Pbn +zH@AEg2@|93a%)t08TJ+VCXs6v0Nwj3b$Qj;+E)7~XGZldk-Mh}VFqOu+i& +z9`6H1y!4IV(*b#VxAFW7=?{cqK!HkOun|K1rJMcM-WTN9bU6-5$bu#%e$z29^MYd{ +zxqWjPcC8}~$W9X0{s1MiBsr?D4_86ruiC=;mSI>L+S^hP$1yU?5twlR{SjQ_w3}0= +z`w|(bFvhPi!OeJOaCwJZ!>l5HO&Us0O^MG|psG3rX|lt>DZ!aVwj^fi+OJ};;6xkPncD(@G~*(Enp@m(s8$$MWN2?{9T*8& +ztTIVq2f_577RU(8gmyyD{67 +zZ|Pf`cf_Wz0|#pJQM)SN4Z@(J@*C+|Sw#ooas6r4Rt`H2DpaafcvZPBxIet`q4GDf +z1yM+crV%H&`w8wbA~b(D(Ne9rpB28oNe~BdrJbVo&yyI&fp*sgu2cEgT)5O>LihZZ +zlIIy{XNun9s{$-)IHe6CPvbp7--&)b!jmSTz}EI6orv)YYr_w$qC7f&&2M>`6IfNm +z=rQCAx)L{qHX!{qcDSL$+?uY0#N}{ifIa<9zSo4Ww2S-<5eh?&5mAn=jL)%J`hvVe +z|Ml<)s3{wE7)>c0fTOrn^H^>trBWz(XA=Uv#S$(`MAd3OBk%A^PxA}KIuU^~49Su} +z2W0L{Fw>u9jpBR&!T9x@bZiCEE5Dg7btuA|s%f?qEgF77@k{A@nleHcTA92|m?*(# +z8+&q3A)aZK8!y75XDA(|gWJ{-Nm)Z%TJeN<=PT|H-+K}%odVlMK%Jc7TT=;??ri+! +z;l;zb-@q*9*I(RqjY~ORp=A#3j3G?`(gkKRhAF2yLD{I+n7%uNQ$4a{&H6FMt&c`yc2)~hxUqK=f4 +zyG~dnuvB>H0%fODW824^7{kDnL7{@Uh6x?}&NmUM_+R@NgU9XExdwh +zku{V(+Ote61uzfkZ}NrheXoz04kbwMY|SwhhB!P~#sFRJ6yI3*1m&qYW-O82X>Y(F +zrK)gmrDa}&caHSaKz1HV51*WRO+KAfzzEh>N$z&C<*Y$))CYwDsKa9RO$e+JMY1m2 +zQgbUdjeqBco4w=0?&Q@|3$L6^gGhc!%=cpr#_Tygm_EE!wj85m23x+05?cAthsHKH +z?!7tc_fC5hP1ZFiRL<>3C$j&JySSg%FG5_8#IQ87X$kH)&tU{cDR8jb9{`1PSL)=a +zFF~U#^@pPqprKb^0C!YiV3so^nwBYWxvcri`ttlXdneBk4C07{TnonvxZZtL;ZaMq +zE0%`aL~*Zps|JS;*wHaT>_X+%iaI@`0-I;kJ&gz|SQaBaElSePYy;SS6K +zpV%!*fZW_}^@=hBa6SAINRH65^X*pPW~X$&ftlY)>xM?u%%zrl!#r>}k)?}LU(<0G +zepKwk?n6e>qI)>Ew~ZrfuD0ri+@?)$l=^vW22_r@p0yRcz7DWHeWS_7X|12=iN4GgRof!vOT$Mm!yb*NB +z;rho5I!wc`k{lcdV4v)mpLb-2c~Y=|7I0IzP|Xgao4eb_c$BYj@pPeyGM@K11;I6Ri=<6CKdx)O@Lg+U%=xB8_J;jPDY&u +zbbHxCwi0G>9;G^QAjTWz6Pf8C|hZ{9_tW;Rds8a!w2DuLr%@(Ku`WTv2yMQ*Up +z$0Dd6Ta^y$DT)T-L{qRNq1iVPzezR%gnr?z?}XRYxKVeYOl8H*`(lpVv#ADuY^0$Q +zWsZgNFO3_@4$?S$cVR@LEy&S`n&zBT0;QTIw_w={SL$3?d?F9X^!-DB$9buikmKJ^ +zVgz;>l$JWN4JgeacReCrE)gfXC;v%w +zcO^))Z3S~hE{8b!soC+KNk(x|@5ohb!zzGIC5v-}f69nWjBh!zW8qJ){tAn9t1_#l +zK^>GD1k8aVpC+H5#BTSh{e$@=P)54atOC +zg*Zy`@hhoov}Z3iuuXhr)pOJ?RnI_U@4dYN+qP}nb~?6g +z+qP}n&X;>X?>T>>#u}??UQ_zSjf?+z#`7f5t$nwCTOXSYv{SOosScFM!N}(&wOzrn>bU&be?wckys*-&-fz;I= +zbgQ;DB)4guJv_fQM4xSWTYM|wL^E}LLLs)VuAEC{yFNdgh5oe=UtO%^l(gKW?$lKH +ze!07QdVhVR?JS?&Kfl~Qzg=wXbi90ceti78+6Q;fqZP3?<=LyVA1hbnBX_#Ky4pOe +zpUO?~PnZrcf8IhVjf721d~Y&;48-`xo|bhz-S5mQUlOlwt3*YAUwq|k9^Y!|h^C?}|~0le*&b)09_I~3LRS|wL- +zE;98F;r))vCUvysJze?lPK!}IgfHfD2HnT+mK--q4hez(oiX@2WQwmDZ*vpWWCG;C~$xRd{XThC+3-TnIU59#RYy-+i8i@ +z_E&LjpDa>MkhnpoqrJ`Zbpoyo)t9q`h;F&T +zSAi=|6bpRiuHZG`w1l4THb+yq$WSs{?rw&^R89~+$=zKg(fAvF43^eOC6oRzCIFxtLJZ)Yv_XPw`)D%OUMA+c9Fa$ +zM3~9}4-_0Jt|tB-h`=E#we8yeX(#$o_jQ?g(H^3>Au<`M6>7K)x*Lg?Y7uWpEcT)P +zut^303mRl)CM8Ja!%63?hvWXR2pFXmIG)@lRU`}P`>333*%$s7OF6qg1uKc +z+N3fQzkEWvI0Rt`Zvi7@C^`mV5o{(*wAWnb7ZNuAhIWF1Ff#7&#N)_`c?Km+Wc?~0 +zq_}T4^+^wLhnssw(0=1*YO;n7Ptz(*%}xNh)X$6eJ6hw-94oM7{nrNf^hrhJ?eo~z +z#uM$@kc#5_3tVNd5Dt0{tA5))2B$E=xi|2pgKbDGow!BDllhD@=qxB9HO->yZ>?X_ +z*AxoUdW=m-sci<~YPg7(H!{%d%TD}0-!j8%r*PqEu6ti<$R9cakemlQVN+~a395pS +zHQd-vQw1FcN-odZLR?6PLi7R1W56&Ec6t;ChI`q7a5*rEp9-G{HFQinW%d>-lLTYu +zYZt?qiTwAv8eAh}$sTzv+}5THpQk?Df^1Ks{+lx_>j13wzyq38-|JkV48HDMO}Y%c +zx(+qgwxP7(98Wt0F(=NpfI$rt_F#}<&9EObK^BvTK0n`Z%)0{!c2{wu`V9SP+Z}z0 +z3jN{tIqBybP45;kNy{4BgO{Jv94rNQMBCSipXUXAomf4*A^91zn>#uK@ituG+%1WYZtHr@tSUp|n;++jOXbKS4bk@A5d)Lc=FjDs_Z+Mw?D6xG +z>gB5F6HxYJ%^!laaanJUqxYhkV^cHPDW0=tj(>qOWjeHi9#<={ABLav;sIrqKJF9H +z7Lk}CPAHM{jVkR=5SXeMX$J-O!&e+7q<0fMo{*}V%#oEiM``u6-o +z*|hF$)rl)Ms}u90kG5HP>Nu9Q)R6o#(;rFG06$5vIy1>#-lTt|cG7gc-pWP2HoZ1j +zGvZ&Rl6g_q$({JGD$&oQ2@oW2a&}9uXh`}^Oktz!;SIaq +zn?HzoRCrHZlX1X@P6f2Hgfz^U$Pm7diq9!_9$s5>eAb5h7rjJ57~V3558x%Aj}?u$ly9mcYKKe`Gt62Tex-shVaQ9{m=cKTjlTD$BGV!|}ltw>7xG-zR?VcAOY|vc}|aUu^rqXDZ5RY5F-=>wMhC14DzrS_b@(BcQ5on5OM_ +zT}|&BW+&=RHDMwI}AxBnG`Slt_LrZ{jl2&jjJlfG`sk4q=1HUa`wnI +zR|G^ZrgF*qvY)$j+kH;oZ11Xr#<-CiiQvP|(VqUA@7qpr3#ioNzQHu>Wptbye_qD@ +zl8r6yF5Z?nSC~&POt+pl%!uUTaOo=PPe4v&-X&BKGtO6NuU5y;Zm|V^E$D07=>$4k +zc-PSqL>RH9-aC1@P?edGN6vj7A=@#F#j>bS{}_w2-<+HkRkM3M^Dq0)G0RsHmd%v% +zVDHs>K}=XW(uyBhq|z5%{p=K2>a%ms2#sa*Vv1kVbS~_~JeX-TB4f?uRy_s~&eAxW +z7;0#Z1+opb94ZeV-jhO)$$gMRy{WW2tbwszTA$il!FlwUc|^NZqDlolS5ZK}qUZi{ +zc-6_aPxRnx;K|sYJcSOe+`_+W#&O%^jJZCY>@y*}$>d5r_TaA%B%IjtJ-1xa#)|mh +zf6(UBIu +za5y1c^m%Wq)@(am8JasWA@5ZE$IV{zT#2{c__n{3H|oN)=ojA1&8ssq&m>P&0^X}k +zhJjGMgmKO>|6JjX#v$(43$Dkd!~du9hmiWj +z55yP9xvEFeq0q_wo;5;Ktz3;yUU40dtbD=; +zT+Lr%OuKqlf%M|Di-9DT5lb5OvM)`&1NSuckT>+|>E!(0zYJhWJJE`bhP!xnabur0 +z&Q<11qRGxtr-ReH=^%DKA?waO)Ku_e(6*JJ^&2lcx|CVzgT+DScI4G=5~Q5}D`>Rs +z@zc1%+Qpb}r=^jlrc1O!%NbVV%F%#^ija>ZwNLE(rQQ`ajz--@CXovK0tuEQ%&Z<0 +z>EMfNVD`GZ>_V|jKbIG5fqCfD3qmG!KDy2)zTf!!wV*1f$5->2b6@@Y_Hsnw@^v@H +zhr4*!I?)T%z3D6NFWIUqVsIT7Mm>xVW5mISHOZtgQ&zfrC5`2e$I1BT8qlq4z54ms +zre*2P+e0E{1j_f +z+x;t#6D)5zJ2_JBLQ59>r7pQ|7IjiT%lpR?IWNmZ1U;@z$w4{!?MiIp)t|P`U6s(D +zg_EB|_?~7+~!krB(xX}@p21%$4)4uQX +zdvowzixTS8Y`3cH5nuXB#8)_nDsiMIa$n&Cj=g-XAT}6%7E49;_nT +z8@y+dKkR{ScQ`nm5&@rzj1T}@g9E12VHqF^KDZlOHP&WdxYdkX?E*-+^xaE1!QHoQ +zThz2QN0c~ZiukWM3uynwroKLtWjSYf*r#mTBJ|&4KM38-MYUkdS8fS-edU%ZtIt#W +z=MzhlgB?CC{*a(3y~PZl3Zdfd;rT9~22%S^Y>UaH^=SA&P%N{LruD)y7T+6w3kRYt +z|M|=8&75Z&tiN;n;PYDg$2ZB9*`nc-akGULc+pOW$1{dV061@K!h8RSmKX37{=6d9 +zXKMztuPM0*4do>kUuufx8*TM=VRBDDz?POr9=4Y=x63LAUuMp!N7&(Ox5PVQ23sPHb6IhKKH_+Su3}STy(i-Zl49nqE$scR* +zaF6{hgEUpg7xNVIUa5{z1igX*J1`c-%B5Q_1=@`uBNZ#EntDkzhZvfl_jis^R4c@F +ztWd7ctz$(9z5MNBY2pB~xk0eI2W6XzngD5-)X^0 +z%Qpm1Xr}1*U~oRSK7a+kwfe9?z)b~iG(_)g6H8Jk8eAY +zpY$lf=)Weg;!f2lEIBh2mYRlacgrzc$zOn@f#dhtIQzYw#QMF;frs?FW$D+_kTXA +zdh@fXI!uh_wdn1goJI^w^@hIZ?nRg>kLT@1YPB3SeUptp%E-jWJXqV{2?x80lZh8{ +zJjaTIjvi>br#Nh1D>11g0DeU-sK_*q_U<4cb#Rlt0G3;eNq|~M+o8*_oPi^>Mxz){zle#1hN&{= +zN|6}pW1Z-^irr_ISSkz>+9MQUPzIU|+HKzOMoC($(gc)je&kkq>|e5*MXv$3YCH(_ +zH-GpEQH41wZ=13+M41ZX%qlU)473UQ%viww +z_NIDQG0PGdk?HuFiXsnth?fDtI53q4HD~_<>ux411IaLGY_q23_Lt2S_?*U<{Rt6& +zDzQ{1v^x>CvV;h-#|KwMN13A@0EElqe7Q)F`HGlA5IO|3?ZqDolH>S;{RwyL^Jqu% +zJrZHw2GX|sANNYEX$6jy#{T`0!0a3YE}0MInQL+GBrFA8t)ugGrV5al4QZ?G;xK8r +z^e4bWtIvL?Pi?PaFTEAS-)1l{Wbe;Yq#3_kAupmfY`Z|~1h*tdotFo`qUZ6D{Xg=y +z&EM@uv9NyWc!cJY3*EO8je#X@Sa5g$s{lA +z5gnqV_d}V0$=wZjyN;Vo>lSCiy$94Qy+rG~c>6TK$n5H8z+Z@0T8ISbxnrH=tAd^7a*Ypdr* +z|Lt6e)XikFmfIp%z6qW(QbS>(@sqDDeq>`vfB524oM4xV=-k%Lf>3`y#DL+QRc8}f +zuny4PWLnmJ&pztt@lhh6 +znDOJu9XT!JX$9Eah5PeHP+%ZhFzq8YdDt}APJl!qrS=^h4m%gN@gO@^m6n`*z6)LV}J`sAB^C@Vm^T1sn>X5L4kOGogjq8i*b5Sj`u!;03lsqQ|6%6Lg7J +zL$=-nwpOf%M3{!k= +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 +zAxzUg@3|^>uP`{+$PWRSU*3NbG +z`pGPDE1bsknm^4VC0Z#{!(Z+hjVSaWp*3QU$S%atYdgB#gK_njDUA-WxN>|3+L8O+fM){Pq}0)wC_ +zIMJO6lptIFl)y37Xm)~{8q-#Fx+x`PUE+@sFmHB5(-6}Z&%g|*s!mPC*TDNN7bU|( +zxTy^NL3`{NVba#i}v>YI!U$S)YlLfo;S*fONbE +za+#(p40)bvWw1uyFN^<%>KshPo}{%f8AR9)>h;Y|9#I{V=&X8*@1=>0{hWn)cW0%l +zXW(O=Sca#KIR~T7ON}t26N};y^nM;{^JxQ&OU;u{vx}vhbHp$|Eyt&+A@vM;GnCr< +z#WmjJr@4ij82{W7MPuZB{uOjbGHVeZt;jCifN +zB=-7YwwI$`#R-QV(XzA)X=ZNRWRzU~VpMRBC~7NsqwZ68n1y47GQ>-WojUDsRUKF}hs)O0S6ht#z~+_nV2RQ8c$>u2wnTqLb5p +zeD32cA3%iE_0(Kv7)cl=M8x7@-ycU2xDn@|)rw#Ya +zSp|+{W7aq0il?PIVECLaRRim&h}{7z{E>r4TMD~&>MqD#_Za?eN%hYtBKf1UDxHZf +zz@l8h=w%ee$$e;sccpyb1BW$lCJF$z*!vrP;DTpY3vjtjrrCJLz^XgZg0HV8u$%BK +zAT%>dEjPT$mdc44hH4)pcK!XqFxD|TlG|f-0Ftrp)d23~($rL1Rj8{B6YUpHJ&u +zb5jBh--{(3_)C=_7p-Xl9qL#laE0v7BJv2V=KVfW<~`?FfagA!_)q}^-_%?@d>s#+ +zpC&Fm+%W%@_J5q{5@<;i;BWaWtxEs2zflW*cI)AI?KygmJ1oE&C!=f4|HP7Gwzct7 +zc(_UdCNSl)Ug?{~M*eAKB5BIE_dms7@#(fg8xYcNmDwVxMPK@oCqhvjzg;E^0=|yI +zG+z{(O>6-r6chQHNDbv@p#dKiyDtGcmUkfO +zHT^(BFco6@8eGmzxMNdVopG^mkqJVRKXy<)q8^V|B0ymTB{7f}QclUGxl(;F3iMxM=_KA*Pl4G7W%9LCEY-~eBOcLGR=SK543P+hpavw<&7N)+6C>m)=hbu)3?u?t +z0<}NvMJF?%)T3HKFvHUJ3W{{7n-niIFcKe|QutX%ZbR!%tGWdGVNSu*|l7TJGlDp90I%jbm`4ocZq-vNMq&-)(y=rr_XUh +zBWI=02b`1?i*i~<)bWry%8npsRLk;%0DD;YXEP-#ou+Z)AfeY7a3|)L`|0^Jbt7Q% +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 +zPmI2;$vxj?oaJs9DOhw2%^a&lASy< +zkbIJy_}oB=3Ha-Z3^|wbS$=O@@+6lL4}sT+fobXmeATo^x@~pGyxn+9EMH!y5fV+! +z0Kw7)jWm$SYPxDghiXpj$o`Y*z-|xd;53iM%fF#=49MacS?(wQ5cyX@zhm$Dj4kE8 +zbDkux6IQt_)8hg|^R%8oD#b|bIRQ;;>g)wGNO4h1#h@|dN{(ZXk&9qD)(gf`LA;k3G4ADd{TtKCMfu$6EG14^c#n$G{frcFuqPIWQNil8nR$Ia +z7s3$YpVybiF%mb8YODtP-$Z4@84zU5R)fZSgyeJ`1&m^$u_a0Z4x+ewL!c9HBRkM2 +z+q>d;wxRu`KWAv}$$O=T0BTFxhLicGS7Rca`1nWMYN-J+g5S+)5e<#~0mY*xD#$ +zmjVakzb8+dV2!Y7qe^RIvvn}Cd>!K7%9+58D{A|mcFiiDSb1IX)#UmJl#h+Y)CU;# +zJZG}aN>B31a;9VFXVi4blEBBHUC-Jx(imP3=)moR#KTN +z8i(+>h+|Zly}S@)@F#6D_L9IIgI<}?*w9AaIluMC#X5%yN_x_Q8kI-@Y?$q$`22Jw +z1q^r#?kxr|oQ`N@R#nPe>I)aSDeZxy2@x0oMCaQHKI;870;F<}wS0S)UqRZhcIJHZ +z*h5jBCz&AqIzKp-L4|OgI7V{0lr{>oyXX^g+>mQX54Y +z3M1vQ4mVQtz59ArH3AI(+SOdazw~ze{^3ifKRa`~jrZ31_4pKe`(>@DVx$rqLAr?= +zP;l;n;AAZ6j=J5*NeN+yDI*SmQotv8Xw7FH6p-8E!YN+h}YyPUA+6Z99$G*vY=r_Q87hdXIhV|1dv{Imb26%hc9BHt~aS{~5Lc +z$vcRa*pyug72v)P622*Ahqas^YlQ1PXX%1!U%72?2ToMoUmnhlOfc@4GY(I;NIM_x +zldeC;+%s0@ +z2!)($rg-}1;>hD=YE7mEqvw=1zeC=(e&d*Ww7b;QE29Nr>TzVe%A}ZaMXeA!V?TD_ +z6!`bniHvWW*FMa7r7pv{lu~n?g&CaTW#E^K_(K(0o5E~XZZ*D9c%}T&wdgaA(hTCI +zqS2v#Y1B>n3PEBpS9s+)Q=SHn<{DmhQMHd~LX^G|AoXfDMx*^FvNPhzIQSs2_ad@f +z7IHWqQdzO2vBMm|oaF}*0VC3Uov%--QJcdCWnBJ;C@)L(O2Dc4##3QLr?PX3>|=x} +zM%XOf;+^SEBEXgPNBHI8LlM><<*qS2-Z*fu0RW--wAmUmpH$rh;;f`!d254Qu3_hI7LCsBAKMYMORzOx!#PqBT2N))X}`D4mif~1i=1(f=K-P +zaX17&8y}g*b-9_@AP_lRXDV>|RBC1yl76Nj+wemUWPRt)EWyScy2*0hUU|;z%oxtt^MJ;} +z4}1l6c`3eGVBzdX8Ny3?ug*!CL#8kv=o!j3FpPBet|N!ENwz>r-SH}_8?+%(&`CAK +zg(`Q66F5l8@^LOpqCVEJe5u&{R7Ho7q-ZL5iZ!l2lIBe^%{5Jx-{S$pwPZ=xOL8aP^xKK5Xq +zl$wNA7%o#GR`t?|=t`SGS8BLTE_XxRkSoK@KYzlFurvs<0aqHPGL+)Oh#wQfVxnG( +zBI^?W3aY!YRuu70mb%p9HEPk29Nxn#&*|%k{F60xc7ktcNzjef#Wc)jl5QTv00w6{ +zd8JX^#}71^`K+^AXM0I>)M|NsL}{k-fjekLw@`2!V^4l$Q3B$Yy>Sig&Xr~59o=fv +z^+@mJKKqBSuS;DnD+Q{o@{El4 +z*bLkNVeNl!M(r49#@*^;8mJUo%^`zn0zGCIf46||0-Y1daW`QH(Qu+E4jhM>&pDHk +zQQZ6;`}&H=9lC2^izN0OIG}}gzen|kr#(Mi81L&rq^jYH8)`NPMD>SeJsV-SmO&Ql +z=ZzE7^{gF~bd8Hqc&&Ld-ghMI&zpD%Jh%^~?jKCBNH#3Ck;uY{z%uj8+!;Rs!$6D_^l+6h$`xBDAPs&IZ^4l3DWD^uif!?eGvn2_#3|{wZStJ@CIUo(3R +zt*i^Hq)Z8W?Z?x*$OzM@6JLU-vnwCmw%l7(THAS51z{1?dm$&-?`JQw)K;#}yF8T7 +zDF+`eNs&dpfiOpUEzt)Z8re?6B6OH@yOtg>xVFYAi#S+J0on_~` +zM_m>;9UPqcER^~lYC*pRXi7QB#lg{>zN&8soB?;GzF8t@5AO6Im2F@|*) +zIPb_0pnTFeuI}ex6J?7*u^UEKm!PQ1N4lp)<75;m-A55s +z(G1#9P+`t#@JMm+fmpt;-#zp=2#ta6xY0DA +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 +zg9NH6W$1cWP8U!9p>e$V9tZ=>-tu!>h +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 +zjWE>I|CJC&t$bCk?(6 +z3%`~r5{{(odiOnYO=(j|2=?CYq)qH^6CulWep;AH1mzU(-n}cLA?5po2SIuQD&90X +zi#s%e`JPV-9V#3&X*x^M5V%a +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 +z&5n#<^7{<})hLS4YWU|^&5TUa(vqbDbev^R +zdNkue8=oE`yGgM48`F9u(YDG^)3%aVe${olE+Pwk0(GQzx2tG+0$AqZxRC}-6JlTr +zi5drY1tlB9W`=s0kaqZN6f9okVS0xc5lck)ib2--(nH95@A@i)MgNCZ=uXOAmSag* +z4_TY_JXm;gB@in8r9>`KKI{6sSl}gHrv-U=N;yqLMc~imG4U)?St;s($onhx@jDOx +z8?r@c%a>@KfdPhMFEu)IH!h(Uv4Fy53AY)|&@iepKZT^0b-rwlHd0Dp@$>llDI{8w +z_lY0dmZgGtL##C6S4El$!hkKG?mybuMUe@w=CM(`>R6`5&Dgnnq9?W8me%-eZMmI&|VV!F$-+mga(K1yBazf{|dtYlupP!eATzK;)f# +zEHn#FbQ|OQ;Y15-KA}p8ggz~yKd6rJxZ9$(EgnBJZmdnV7JR|^PAHIKP}JTr2yBV?_ttxKo_nW;TR`zS3`6g +zxq7<9bZzmGfLjxF{9>5jkr$o=1o1Y4zVlfwWpoY6yXP$t;(@qRd~uO?Fb2gGm`ia+ +z8Dp_)B~aE|Ll7G1_J~^BYxvdxQrYlI&9O$N08SgneJyKma +z$cQCacAdE}4NI_?86it8N&3E*CUZC+s8e-ui>zzj7LBn(PzxSXe59dC2R1!6x6lj3Ad5ScYBNIs0An`0r-8#D0cz7#k_3MP)r=!M0iqhzxn0~0YsR!CWh<7p2fe#^LAS~^%^_~IptpR;Ydr6=PS@#dXVmHdmM>y^ +zNYA`N99OxZRTuS??22h{$L)N224!p*@zeVX`pDj5CFIBlMWz$Qd3v-yFjCZHf%N^S +z1G$FTcD701&>c?7nx-wPLmZ)%(=lPF4~9qK-~|w}QJ=qoeFQyna6lpsnpBfuf|b|W +z#>knl+=N`v@n_>d;9sqH;0j;#d2?kyP^=G_&TJG&N@+xBEuxbD26m-1=*D)(Z-F@LXqD^W-ESG0rFmeIO!9(mb>Oc +z4yA3tq6hbz-Oj2-jjQ+X^?>Q81y>Q6jGGXR5?!Ytwhc`{6w0$8t1G7(64jL7$Rc|h +z5#gX1(_2(ie6CZQlA@CChNL2QV046v>(!&;D*{;Dl;H%49=5|q6Qux)duF&HfB?$g +zO#B&IB~z;yiy(2Y-Yj5h{rC~`NpxGM0zz603gNpa|uBnXRx& +zRzfG(d@e+)AfpCPe-1PnI1;sl`7H=L0O_^@tD8F5(krJBSo;TckF5JB +zgw(|gpb(!>xK*C`zfYcR=TyU*2&d%Vx9Nz%opBhA*A*pJiEs#Z5FX1L_oz +zt}3%Vl|y~+bT+^Qu(-{bAsnmwG6F*gQeVUp02cS=>d~;Ou6`y@Ug@i!>?W6fT!AGb +zT_w1LT=oFJA;9A9)U%I58KHVt--ROW3nXq9ON#R?_P51tl%0PBResrG%yrX3egx4J +zVAsKBY@-uoUtd0zgtxYq_G!oKdL*Xj3aSwTZ9+b8D&alF@u|~~7uaVS?hcv9C(N +zbq+ox%qz74^kF=5`81yHvBi`pMTSmfxuV;aYnM8VFLu@W1CfAd4Qfkj8CJ1;VlNz- +zi(MyFR4?3-Os2Y2K)GhDo+bT0npq%W6u2FoA1bgmIx(N@Df&0z5__$x +z!*F$JL}iO{B|a5}sSWz% +zH)hpK$mKvLp%|4g8gFnR_5rhBYBx&*IPNZa%9VPE?S7+=ictWL8-eR|TAkA|SXwzo +z(gnbATS1pSE@~&F!-L3(6C5DR`v2y*p_2Th0l&j9NzD*WO1SEF+_H##tg=%Syj#(_ +z8Cl-3lC3N@!q2Emefe1ReW>>|mH`PCP9d{y*4Gmr1h@DpEjqteFhUmu-lY8snPJ+| +z&^G%N+)Hk+<=j?> +zMP0H(nEUVptq61hhs+sTf4n&dv*Ch~Ie0gR*hW&9A(rV!DWNepa*}3MZy=1bxOw0Qi%QhSieR4QlZh&_dgJgACj_!0XXHT(KWe_Iubng;ZzVieE1`!IRlg)}J +zBhwy)ILlIXlo*jn{|w$d4|0w5W6)@LJ{#oRq&S3ycqr};Mhjb)t%+~NYO5sK&5kJ^ +zrBT#WC9n{nCnpOM>G?+ISWsARuuxLx6yACHtRj5kJnQMLf0u!h1G0fcUmZPF%1|d`MC{a~6Z*<&w +z#E?5}1C3z4D=|>G4Nc3sK!cd@GTMYL5S7~QPQj97%_c+=ZwSF?9)ZB~%ik1}(7rWd +zkovS38C^cxFZgcPT^}W$qqU^qye#g!tUM+tHw1Mf4Pte`10$OGCt{p#p>MA<-!71a +z(N;NHv6`^@-7X0xcz$f=FzW3&M13(VDk2J?Dqf(J@iZ(&cIn?9M?)*^%9we$^8S~{ +z{j(#b2HU_Ve+q8J(GW_W-WAbj==NQ^$fCRf(d8X$ +z1tLKgUA(Q`TE1YX%A6R+fS5Ord%^I{`Uj +z5u)lh#TKa+MvA0Mfrury@2@`X3e#Pg#rYHjL;b`;0LaDC=H_f4_p+)7Rm +zYnMn{vpxVW3qr>Al%a>#h*@%!0j^QWy)db91!v3*}aX$8FvN;+8^9}v +z^jtlOe66Sv%yJg_`}h_gLR=Ez?Q^g%&p#n5sGl;nw6F>BT>8+0A%t{@$Qr3NBcLWw +zm=-dO<33TuFpN1POE5Ys_EDt^d0w~Ut3h|Ky?NYZc7Hr>cIl{EL>Ri(_1c`tL$ +z7qIJU4s?uYNt5Gx-AGS^+thRRLa?G?Y-)y(1)D1IO*um)$+A4^{4cJUOd~>29KcXW +zp0~PNXO;``lemOBswXS9^<(Y~)N}0z)LaMg~BF&#Bn26fjR|Mfy2`h+XyG9KVH=D +zphZ;hOV~$0x!4p1L&IA+hBTzFyfVjM;})`;cZrHv=izhpzAEa7v_BJAvk}=0xyBIJ +zal|E;lDY1Hzz;+R(piMi4_e}IypUPLfnz#{_JzPn-&$!+hF<+HzDji2QG80&D^uQ7-6c_wH2Jz{G~L2?aKJm#Pt +zp!D1jbT4FDL8C81?^x+-p95DnbQBtF)PPVy*9xZ4ou{T^98amsGP{B)&1RrJsbUS~ +z^PNcvSZlePBpFV;v +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 +z`tYY-P@&@0-8pmDc%#Y~s8>x9725pmAK|6m +z{rPdB^}uh&5U0$juB^hU4*(s`^z=wK?I$N7_X(LLnSda!dbbbU&nZf5Ez2V3&U547 +z&T4(mrJ*(s%t>sAP4P&8ee5%JVrTpo;_@O;o7}6YdL+0|x +zVd0m=UmE5~8TUJC_CFVd)@dLU&9Tc;fy7I6)>1JDIHWY{Md7PXjn!a%O|;XAMCM~8 +zqs0tWgEBku0U+N`!xo +zZ+r@tjOVbF&|k@n4{0_ujBUc!Fe$Xz`GC)YQFL!;F;}2XpvhM}7_l9yw~71A;88|k +z)@5V+>4FaFcGWdvUT+cX++r|?Jj~yNc4%l_s8EEP|Fs`E-mk#`LL5uy)_Q#C@Bv3M +z;;C@MJAB-?r#_s|%?i)r5-p}+IrKyBx(vQLyYSU;6&tusZa5d56T&GvjYSCxfRsuT +z+60CY;Ulg^qmD*iLzrIsrc9WrUirSx5r^{SA?^Yw8RE`XbGpf8nk>p +zot4lHcglx*>0}j>D*>hBoJL4d>Kl4uS6PosXpmz;z1fAfQl4^UvM3AUk5i;FgPUi??(Zf}NYRQg-x)}{+@{7;qp>HQy-`~8M9OLUD=mP<&M#@vEd +zV_5V-phDYnP39c$Seh|6?BIkHHfE8sptiUV0Yf)HN-wtVw}M>E^3Oq<=~md+f?Qdv +z_A{ULoDFn@&6Q4c>ZZE#U-QudEqb)=KvnhWU=rSz>$E`+Qh~2pRW}hlh>g)1NTqME +zFwPgM{)SsH+mCi3A6srB^&t`oLQz|F)D$TCc>D&RSRceT3CK5~1FPs9UpA%B*jHg`TxhJJ#38@H!McW;reN2{2u0T)a3Y^D2}g +ze8y3sOV(J?au_%8)IT`1U-IR0zx3RW2L0u7i@E3Nau=fxIETWKVejY(EcBY?shtMO +zkrn-*@n^2*+gDmNX%AkT<*tCT`gQ9zNddtccl0Y1Qb$lCCvAK%MKLYqxrG)7^x%>T +zt$_Af1#?^WET5GaxyP1;RrV7M&bnW&V|h2$eW5Q^xJ=XmleKw-WcfF%JdD$3mO(?W +z_K)NVlTW9yg8|TyMG2!f5F4#@@a1#bavae~e5#SCi_o=_J@wN&$;{weUge_I(<*4& +z{P9QzjRZmsDMNdflC2tf1qCOKh+kOELTw?_*WvtP$o|6i3A@#PiYyaSdLAVHx7TAv;^eSutwLJZ42BeYiOm`>*qvC((-iy)S}e%H{~akMFx^d+MPrNLO_&!WcHh4U}`;2Xm(f;N;I;aao^+B +zFuzN(`m1cP4AFQl=2$l(dn#@Qg-{-|@7qO{u}e{B5vA0gktivqJ}eIh-mDg-S8Fb` +z=PeWHHpFR>3Lt#iFrUvampL_y$>{-D+s}vbHv0S8$L3qM6^sM5=|J#GILDc<`#%8U +zrjK!BaxU&bnzM~|M>_dG5T`uho>wj4iJ8~z+e)SlK=D*rjJJkX%Dn{9s`x0A{?M%V +z^n{i^nDzG%nD$xnNd(*S9`dJih+u@Bh`JCP_v<@M$0b3v=M~b6LGu`R6=s4qyOXn& +z9Pp@CTA%HqW5hQT5(C!IGedGNE<@))RneM@Lvw=y$b#J{j3Y>!Q^1Tn>Cj{h%jSSV +zXguQKXp<#4`EDq>=_CteP~``w +zDyRsd3(rJhkIq&`ejRR7iWfo?>EV7U<8YJUi3fqIc<;4PCT4k@rgUeFR8@_Tbb=g? +z&}>Z$Pdlk5ClFP5@X7Em%sulr%q6d`snXO +zi_=krgA#*a4j4Ior;m{}7-z6OEUF#R@}?U=+{?=8GUt%3l*i?Clqg>HjBJ6IaHFQT +zx_w%7ph2)6T-u0tLoytS0?dAZVaR!fPUh?o%kmX4Ug`&^_`u +zaM0WxhY+XbV)$)nS~|Fl)iys9sK5ow&Ien;6QZoEEt1tBq?Q@=ols+q508^1WYz*B +zOCQ-erN1t4%XatsT|hMDX0a}`SLp;?Oo=bS9$F!;;)z&tSz~a#H&&D5h`akLW@f|~ +zBE&oUgDR?I;*YhegNZ|g$CHS;p3XjN4(1fb*eOg@C)I@gnV~@+e&6VnN=WzpOjK_6 +z1Q9mX$d={s +zg5fA?waQ50+vLs(B|at?iNw`d0r|?%DB_%KqD5h---yf!ts; +z?CduY&+<3VOi_v^?+GBJcdt27+4>99ABTyF`IhXTNV)<+L`E|=I3qZySS8@T8Ybg* +zW=T^Kwse+pq@5ldvui1Ih-*P7CZ~nZkt<$y$j`uih^)};) +zp!WOXw2mm%1Vb(_3RGf_;xPNty`WiC6N-6f`lQK+$o)!dr)*0Y9dbU-f~_RVnI<}m +z-s^CpRr{)iV)_D~5TRzYQbtvy$c`|MnB@9lECCK_E0B;+OLi3w-X6*-VsScsMnC7N +z_??pEIT;6Vp)yZLo{#Ejf)3RoJsU15dYfFkf)*4!W^H1*HVYGTMf>{*0%&HvHd}&j +z5UZH`-IR@~zY3gc?NTfxPBAcT_1FajSQ5wRlOYDX#c?Q`LY7tL6VR2R&ApG?44C&+ +zHafdh-@tM*>?!>)p>uSj*zwF*R-gj1cjXKLlfoN}r~n$dbZp*+y94>mQ1;B@3%Z>& +zRUp+5O*@i(3rCnIko}^$Lj_m`Nu=&8EiHZlh`<130A~F~bGx(dOO?+5O>=7~tJ-jt>8qJ)ni +z&V&}Z!H5k78{$}%!rTCYmp1LK1j)1Q54mZws;jj}Oj{ag?#0cFA&DyrVa1EyDLXW>KdAFj1iQi0tA{nt{?$3dOhCTJQrGg +z*emR)q{1_QyTPvi`uAzKza6N#n+R*QhiSALW21-!x(0ZS*@aRamI0zDgyVJ23y9%T +zQ{~?uG>20mH?yp+731Lv*A-@HZ-ub-?kS~{;$%$egugy6Km@m`Cq~0`+Z-y%0i=<$ +zUCvaN5?W#z-HIHQvCG=)HIw37h&_T40SS(=4irWT&T~?Z +zhcBie2vl%?U~VJ2EO&`d-UW}4CjChoukZ01b|H^sDhN(1kR?u(N$5`C$~w}(te&>< +z{dJQc7uF)u`h;r)kB+}WGhV(D*;K)Yn=09vIV%Hb`jHf^5C__lXH6z(pR8@upJ};d +z4Kiu9&gT9Dgt{(-sv;@mg}-Fi8Z+cfPD1(n)xS3POwaFPmj*I^$!cRODrTL4aY3J!o7w)R#+qYOL8)rcjy9#Y*6mtp7V(3{ +z;ry-$n<8Hpl=C*xIm1y-W>=?H?4g&PId{G4HDA(Rg7MUX*V4W~)r388wVb3oy-QoY +z=9zm3K%{nbAhQCxU;|Z)?_jGry9XJ(o}@FrR&P*P18{r8`RtR!#X +zC(^Ujq(%gyhPNu>n_#h!Pf!CQulLVzLA6JxLP-NC&+|rUHAcB;?*#zx7i>B4Ker6n +zo03^(05Fd-ey>v&v9-fzTJLV$#f@fKeg&vw&5;X(V5v!o2@n;k!3x1rp=wzD+Do)x +zX~;oi_rEoV{B|~jvl7Y*Yps#_2I}yEgAEvToY9-Bj0O9R`a9O_Moj@+Kqr6`2z20H +zqA(CD8fh@2*8+N6h!a;h6wV@AdC91Eq61?b%1&{m<;<^kCAbkgBK5+)5_&U|S6CG0 +zoP4xA580)Y0 +zOliyNijfyl2DW8HLNdaE-!9q6)rH(;`P1MRH?gEe3*ik!;DgK>wtzZZIjhls!47!t +z9=a^k-N+`XC +z?T6t!AR!Sb0(r_Vv3>t7+JsbeWqg>N3B;hkG}IROeWMk5a_bx;;UU}No}96T_p=kV +ztJ(&eHI+1_l_dn8hwz&&gm;I<1EWb3#sxUQwh>UFcupV4M=~@Z;-HcOfj0ec4zh(; +z3uWO|GC6Z8Oa#=8WepF&Xe`$U~s_tePqPS0n3WrknVT +zamE5=^Ug@;m^E5?a@}$A9!9|x|2X8Z{mrsa+ZRESUqGt9r(dl?B$bK4?W8UdBvg(4 +z_c2O3{w$`Tqhb-G2DNFTv&ty)AhRVE%r2690e1u-(4%x4|Hf>zh}BH;6&q;QaLxtK +z9;h+Jv+0s^Ir3@;uc`VjOIO9wl9~tFqA2>Jls2=`6`i4`nubVLfgCB}K@6$Yv`0V6 +zpS8h$@k$d>cbqvND6NYI_xk>KXUAQpon9=V1OTjE9gu>4YnCDw=h&W1@7E<|gq{M0w^6Uo;JfNC9L4f|C +zYxp(RL8zC1Hh@)r|7vwQisO+P0?HYT+|!YLif}#=rXB5jnjtVpAGAGrm%qWG)IFyo +zeJoe%)gOGqtQp2Ys-Hf^Z|f*zGp(BUgP0XmScMp}D3Y4fHES>gilxi2r$;!wiirv; +z_Hh^v!asOcCVt}mNEsyyCQ)cs3|;|<;QOoWpswmEU2_BGcxsBd}>a|W_4PLQ28MF~~0E|E>tr?`NnWZu!LC?;WGu_5M! +z^q5S-oSF+D4_8kk;BT1G8L1!az&q~#T{Q&z1TK7?QjGBk`vVY2U0KCF`t$T8SSM3( +zZx{!73Nh;|4&e#^t8?=wMMFn0tpI#;N=8gyP`LEuX<-@Y%5>xOWB3_m(4E6zj^KF# +zQMrGVU)Kop3&<2;jiblzT0gmWkwM@5Wz11Cc=An~&c1qz+~_pq(fh2JR4i1JjH3ab +z>)`4ioxAcprk*waXwVhWLAv+bzdCpJm(DHz|JS)O5YPYU+((yVq9liZ>)e_)iT~)_ +z(f{h)8m`-4IydAWojdQ3&K*`VQkX@^{vSH`aWaSW-#T~6KRWl|-#Rx!x*E!t&fUfG +z-#RzjtH02f&h7Iv^a6+MkIvmAnJlRBN9X2#{#WPr)%&fv2%9a%4P%!O509INfX})} +zf^&%^jupe( +zsLVYFkpsV!*1j5Gj +z+9LxOyaCAPr^t^e_$3(sP8?wChwF`mG3XBg$8dyPueXwMD#dIRk}+gC-#$Pl0!xu? +zf=`?lY9_-bUdhB1767ao9=KG?qJ~4YN-Hl$dt7R*N62WJOei)SP@wgiHdV5yhn;vGXoDX%7w +z;~aRe6rX-fkvmYuZG$BDqdCR_SLYCJ^=4ogpDxFe`J>Qma$m)Wf +z#5)6h;!$6sD#as1mvSNRh`|w;g05LWJ8?q4J>p@RXIbu{HdkmT^vi-e%SakfV7W=Hpr- +zUMzJ5oIs~PJa<`nY$r(A2CEmmj`sMGI|gNl35TSJ8LN1GA_{ILqc-H%o3PgKS^dm5 +zOq8eHDz&WI8U(3#Mboy1Q*PxbbH-FRtKCWfXlJQ*HaOpRpgh-08GZn2^1^QjWqK%~@uN+$(RSm$3+!3ZB2We8Bv@{_IS~&uk8z4Vl8twC&IOgvln&ok&B?(`+KIeH=JbN +z76MlmOAbVtlE%*7?ctFP!x>1ybr!EkQ-0Rnc7Dz9)oNaEhR#Qe*>jkg^%Sn6Um6?K +zv8)-MbtJI#j%g|DciZd(e8f(QzF$1|(`aVD!#n4=FQ&PYNl-NGN^n9;0Z9#UMKo{d +zSQ2~?^XVuMI`M&19v(TZoJSB^F(1stxT=Md2GlA205nu5I|p3HxNirmr6zk3NcdW) +z?T`Kx#r9&-9!sbQ*+?vqEJY=)Bm)`}_Dk<)oxJTH0Z*8vOKSN%tkIFcHg(c%LAY6; +z6i_t{KwvCLB_SR%*;m4E_<&3N-y=7FQJ!Uk>UhwEg6&h8hL8c-XVzaK;KyzAw|v0C +z6^wIK7ZpmTiS^SE=d-8iZjcC_&&(&%+UC_XI7l0TYqkrM&ph#8mxw6D2=++I*beyJ_CI#^n}6%fwMLu2>4^(Yl^0{?fpSBs@5;o2B#U +zFfjog)zMr4m%Y8D)z9!{2-WtP!QW@;zy)tG$6zw{b?aVXYRZJ* +z?sfI`$6%l$=YnapO2NdbZ&{Fw=*!CZ`$UqkAf?=~61bW)_#wOG&M$+EQ>az7BTZz$ +z-2r0g-L=jD-)W*Ee?=GKY@ZN29OSJ$d3Rw(5Gy=Z4jyJ5lmVF>C(2^c4S49DoV+AX +z%J@B&JZ0T`#pn3<(wGT(orH6O&mS0i+KU=ULbJ7DTHE>nSNsfY+B87kT(-^8p9Ao7 +zXbCYp?Cok??oTdYV^9Uh~iBm`HGo3X?p +z5$(?8)#cfQVJias%`kF^7OTM>588nc+eJP4?rwZ2jgLlgwFIuxvl@p=kEO5=U)2qxu^EW{?q4P{o`|MdUL=>F>LXYNc*WHQNCuI4|2JmR5m5%LQMHDaJ-0D4Qmm2h-l*WQzvy0R=VMflsw^M5Ov!&6M^ +zl>8mgpM|fXR>cUoRYby~(DjWZcKL@$GLoGz3+i!2y$oo*gG3f8 +z_e8lAWFrFg|;1e%W82Xt7!2*G`3%lo1z&&oXSIe%H=DMuzpsd(44?Z +z27!5quVHb>V=Aw~re9?QDlR`ZxdFG9ZF(H|LTGbGU__7)K&8eUuL#!^Jj5Nh~lUp<`o)%Qmr^&7p6#E7EWkZhk1(~ +zZcf|=45X!w2woPuRKUE78sJpg0rJHp`Ywp_YX=+MwsU&J)4TFa4@x?ms@Ci2GpKB{ +z!eNaW9>pSN8mf}!^2BmEnhb){IuUAJvoOj@8{RH;3qBJ +z+r1h7j-0QnM_c1KLbAYRQb +zSB0l8|FL9Tsd+EAOIK%e`Ay{{{vLT14&pfs-aL9@;zJi56wG|l2{|5ZO`t_mpR#O= +zW$y}{Xq{-u6jYo!AThdg8*hV{>-U{-Gmi(qCfSU9-ITt=)pMZO0Y!+CSt|IQTGbkm +zqaO5pGFtEGTjc^5{f?s`7egy0UNubYb_lO_4(xe*<*h!8Mq7hnITMuffC0lSZ(cC8 +zPNzW?_X#gmR8Z|r8TsqC75Ba0C5(qG!iP^PRp^X$grngBKPy`U(@CXci`_OZeUeGg +z;P~OVUGP1NDzzk5Ct<5fqp6_~f1VcdpqN5fpSld};e@!lbiLKZ#EP{Q2--yLch5RDbZX^aa*dN}^=9 +zmwqnqUeRgim}+ojShS#~`$M-}i{W_EuY{63HCGt(aMm!cdW+f%ez-uY(pW6iTu`qK +zyIgKx086?;u*o^*Kb-)>l8_Hx +zU}rIX`P^Iof1ew@`OD{KxZ|b!^0~YI*XP!tyZQd*a}R&{+~%V%?IB>$!9V9L=sKBH +z|Buft{$D=#bY)k(?f?4RB1&wzUp_av!}MQ1_xkRsn*phs%*BvYJ-9}J1x%$KII#5! +zlq`CWCk9wk%8dIf-WaF>XT-Pgt%eukl!irui_}oUrmoQ_(+ex?UR_cRXE>L5 +zPVU349`G@=A7QgdK?^cmb&nSYfgE3pa0f(ipWMJsWB0fN^RuhEOu}Us*~kdBl-8O& +zLKf4V%v+_1t$z*fmZ7j&1^_!6RCNj!20)GG+hAwBs#|Bg%Q(+XAS%o=Mb&CJ3 +zIzyIvn5IGp(gp^urQ0prodMcPJBZ9AHVq_ZiUY^AG&YIXhx6O5kkf;jGrNtOgeICw +z2e!l<{qS6l8V*`fqkv?>W*6O2H|c`=OUA%~GcZP$X3lp_>(nE?Uh(43SJqD0Rgja+ +zfcuq?1FWOFIT3db$4|!(DcAaiqz@jD3f6e#p)fi1pHJc0eMtB10nTkK{aR@x(~}v^ +zM?RpZpm(%%J8oUXD5t8#62^=R$sx#lHhkGf_T%kRaD59jX7vsLdX +z;5b=JH$FS7dm8rp3|ooM+_H%w^RqggYcWI2bNqy7h2XY6! +zX=wF0zGtQ1B;sm*rSI`Zd-Dx9A-Mk;S3>jKOo>wU*8LoJDC_dM_|ifIuDAL99@CF$ +z-%nG!p({>RhU5jgt8RfXhyH;nL&8in*%n^F14$#-4zXD*9LBreU)Bq +zD{Zh~)LEB15n=AWAIP)`ha)9Q*9_g{HAGA1ORVg&5Y?m`c<)3nUp}`1AC}vf&%MSA +zF0e)!+HMzx7F%QBP&Sx@@4;D$fnDf8;k^I2ibWPJI@=e~6D8ZbHYIta$a892F9J%(-SG(}(^lcMRw?{!;~kq(BP +z#Y;OO+V;FRc~tVQ#5;-?bcX@q$`P{ZGMuDiQ +zFsRqx)*QB*n2}e_l5O1Hkdz +zoS9wZc~_UlpP{Atd7bo7cZuR;EbW$ +z(F0;|Zhz&b()?ea+bmEYIFVMarN%Uqr#r&X{vlxwoLmc2KDS2|Xgxh@JUdoC^X$lH +zV~muKeoBB%YA5FB`KZT<87OoKEcPd2q_v0;dD_g{-8E-naRd=0uYaQ;X#8^3B0;N4 +zb6~w+qA6SERKlaQDCQN(6udW|*G6}MZY3^^4e9m{FaZ8^I0!3nT%nU@pkKi7VmBp+ +zA}0?ARBP3MGmIum3VwqD(oeZD@a&Ik+Y-f~gtP)}716v>N>2ooU6UF>qdX#~RCt7n +z#Mlp2%&K9`@5SJ*M*vki@JSN4-Te=5ZZ01E;r>+h60A6>c*GW`HaBp=xk`76wCh>u +zx3b?ao~jy+&AgWnS7xMcpsT|h`5em^X3x17_v<2p#Eo{8lWnjWK6H +z=&Fvawtgk3Z3G#;;^ab)Lkz%yF(rIYn1q{Zfa*#oJn_7fb05Pud;C +zz2++picbMWTffNTPkHM`_5pWFLD5_lEp-Az&JbZXt|_>a%cT(LQb +z(#7M?U_o&8kIy}?qp^Z|{^fJuGsqeQf`GfR-$MPpIPUlr2M*?mVNHhP>nWlSi{B70P_1xNx{8IMb|#P_Tv25YGA7W(d-6q+vTN* +zOGB$iUzF?Xepu3Gn@9?Wr=j=LXLjU~6C3ZgOXmWm|4^gWuiaZ6t!d-q8u>N7S}SWk +z_O68&O{TpjH}}ED*y3e+>vkTf@(bv`$^5!Ejrj}cw)z6Px8`C$-eGnJz1**aV0UV4XJ8#+2ta$5_fL$G-DwHW!bB-v0)={WNt!=+AJB<+funiC-8$^95k6KyovDGuT`E{OzB-_`Gd{{l;3b +znlyZ29xo;Vva?EzrsFHk_1QeyWxd}{=m`V_-wBKLmhMD<*qBg;4j;_Ff=26!0qw7^ +zefTVI^7he{UE3o|{Q~Rohj+z*=*54i!zLPFhku_^11xzP;3Ki@2}`MUd+`_qaryB{}&4$yqleTh=7Nrnz*W!BVrIML*c#drc$_(IK1 +zevSI@+%6g*ID8vb4 +zrq4X62|LZh(k!E5I@oth^)s082gmo)F%z#XzMXy>!5WI8tBc8>Zmf +zJ7MaATJI2s3>iewuY^Yv4#MyD2|g2NIeu-&&Sa~T&;*VkFstI*9ck5#tlz|h*&f~+ +z#o@;RdmW4ECFabAi!I08^V +zc>H3fk-9ZCqOqafD-2}91M8qJ;u5ig*{Pfl4Dy??rNdDn)5~(m7r*VY!-CLPE^yp9 +znBDq$2WMpf%3heTkx+n-CYLs+9C}h3%8?mxH<_=&>w?*7o74G}Z8Vp=L3^=tjVD3ioPiI@aaJ;tzEyHt=qm&t|qkr=)UK$eTW| +z=pR)e^^m#{)|j+Mx3%_I%6G>~4KNy3iqYRIm97g3{YAIjPIpeBspFDa +zj84HLg?_^mS9Cs`UiF(G@u88}v0P;&kCLOl|47e=={It}Pa0peRa5zACt0F7qSH_u +zV?=%bR*pnM&dU!v_>10O0->!FwAj#c0T;GCdk6R>^+e8|NLME_ZnpvV^JY8KSN&rR +zl3Hl~{$6s3KO4)6JB3Y3d-n;Jc=Zhh%zU>>KB_XiU#}9N3xlWD`l7B(ChzxF%E7Br +zTD>_Cof{{>Bex{SawsY8VxaiXwX>;9k^vINAuq9;ZX^tmw|dsAua;}Rx@J(`;-nr%bJL@4ib{8_MK95nz+Y%LVUXvG53Gzbs +zqD`N{2LwsT)nLeXC~E;I%*JYT+*0t>wX}AJH!+HLF6v@!T4`RYZ28>h1f-&<0P?3I +zGUrKUkir7xa$F{p=k#tTEjbQp1C^W@+KkAc%8NVK5^zzVp|XI<=1QquIBm7+bz?dslC5*5{HT`6fX!F%~Xi*g8%FWr5N$J}AT*OwGLN(E7$pfvdB(PpBHK +z7i09pyKq-HM&_hdeGc`nWOAm(3G0L0aNJOeQ^o$g_Dx-z<~Oa$)Vn)D#G?O?y?gKv +zLreFCA3KfH*lBFrw$-pfW81cEHfn6!HXAm!jhpVhXKVJ%nK|d&^WM*W?_aUjv)1$b +z{vJLy2d0)b2u&FK%eBV(A+meK)0_|xVzpdf7P-OzeD0>pl5FAcf8_$`0NZ*IfgT@& +zYqo_}8S~L4#i_+&#|BEDeTq3FXBnB#Za<(|!?2RQxRf&1s0$la((Rch_LFvP)3w^C +zZH(tK$ujU9g39~u9VyWE@caljD49K)^X_edgI!nDE*MQKcY`<98DmvrJ!rIsW*(Lu +z>It`(TH71S#9KYqkCfA4Jt1GP(jZj4o!WY@YBu}`-=PGI*xHYOgx`6e0nuUq7A|;V +zYXkPKZ)y)#wN7J{?<2gyCVdo>s->K=nc-XVFlJ&bkGTOT{-tOi7Ub)gIX;Bi&4_ci +zQ~UNKO+92I{VZwk^C9k`@WWSpHorhK_=Zz+10%mx`wAE#f?IqKkDGE+RS$M+=nQlQ +zvq+53isn5-ISDh2RB)v4Z9Li7VBFF@#X!>h1)ou5%!v%Y$x8Nt_QyVU_?hvhB`c$# +zVjL@i2avrud#h%Fe0y+QdU{@ub%1>Wll3njHpQ6$tVZ8q1sZwB_Kv!!H3ETIW~BzC +zsY*M?)pSk!BdLxiLwFD_i9gb(NL-#*X-|sD$2n^79bcv{KGaZXLcYSZSV8kozFwlJ +zzI}-Xq;POTA`K4jPLu$EOxEbitW-23EC?7{@W0$9ShHOxe4GO_6Az>{3@9G`vt?#n*6Ay-oXVY`}4#XU@! +z0e*0x*-e6?Mv9lTef~vr`B#6Es@{}IvC*REVia#P9Af49okEF7g>B|hUME9;U^+(E +ze^+&23%9K|b_scXP#l{}T} +zYu*~0Q9=$DzI0LM`v9YtYpED5WW0cYa1CJ40$zp4e5F82f8Q^J;LEBdRxMjXsBh84 +z$g0aZ0KAP=yIquKQz{zLGQ615G!6gt*05=x<(M>&DHiky277V;oX+$^7jDtx?1wa} +z&Y}#zT<;gk+mmaV{E_|f*^WRyVtYM@;eO)%cZ0+L0R&@a5=h`TDIv4V7!72M_M<$q +zno+jly4!|M9?(0;)8Ei3cn3KDKD^1Od+v-N#(x?S5$o +z47z<_w{M7{wYd@Aw#7w(P?NQgvGhiVWYjM{H@HQ2#w9hjObe}DGgIe0R@W*jb1o01 +z5hQjR*1j$0fn;XXcpP?|cLuoKPYDCic7M3$c^!BFF|AZaI%{`gxSm>7EXTO@_ubsT +zQvV_VII7qrQR!exle{{G-Tsm4D(eb0vz!caj0V^L9eQ_QA|^U4Vcph6NF2v!AMG#? +zAqNt=r=3n&`Wk_BqRN|!rvUvx{q~K?20_;0t`~Phqr-jWt82;rGVTu}ysM2J3>6y- +zUZ2U^N8Evu#W`t@6Hkbn`84_(ws(^~6>wpwg`$bV-rM6pFH*6;@hBZm0AKeno!d-k +z6}Ez!PI;Pyf%Y^JgIp`bWLFooB^yA>0OZl;lzmWq6%Uvlrj)aehdu18XwF$AK5AMP +z>mzxFWfm0y#uRmS*o>~*lW@&Y@7jYLQXU7kWHx+0GNj?Mt1V501Ogmb +z4rp~FG*<~UFThwg32w9OK7T`UeR;Xgk@{hjdJNJLI=%r#M6wVPv9VLxWC^m>@LtZ2 +zsg91F`#hU?MGv<1oSUUP&D>lw(4S!w=4CA{(AMj#^_6Dp0}E%F7}?ntc;KkQvZ%)v +z*c_@dy$7x)u&*yj^AwnZPRC>L30ah2C+rJhVw;J-HxF(1rQ%&Fm69vu?Sa_#n^9Qg +zp->YwK>T1TsU0xrn}3PImI#PE7mLQU!vpvUsqj`aqYNXQNzFkh+e>`~9Vc%Ns|SqS +zj|sE+**>aUOInQ_E}QqYKE!jOhh!X_dz+QC)mVdOuGXjoI#tLVB&P^U#<3*&&a&bk!p|V +zZ=HH>CMHro+I}hah&okyJcy#&YflAn+m!Ae^Q#BHzoBZHk)0y;`j9_b3NC^4b<^9OlHT<>79Sri_KEvY)(Rfz*Z)s +zYEx^R$f$o(P!0yGO3@=MNXRsY4Pq8DjT!}PCjo)L;&k(h;+^e6-|U1t@=-Ke2Uyk` +z66U<9$qbcAtj}$4KDroALBERHqH89`BRDmA$UL1Vyv6YjD6528$T_LBHyO0eR2r8^ +ziQIezICvt4I6SkHd;=eW&18lDmS15MAM4v3-m0BqD4M(r!>H9?l?4`l4X8%fN|aDy +zP-$6~CR9fx_H4EzBv1WW85lCoA^8ZWU}v6^BC2ejbHT1YE>-stOvg*=Yh36BFK{$Z +zY)`)iIQG_NEH6z@?z=rLH7>M~=vChGXWRD$Gmw1(AwIwM*B +zlPtqq92Y%wimE9Z59AoE{nc!{njBh(Vw-GiwZ46r{qV5$4`pT*O8B=E1}~B-Pca9G +z8Sx~_rZ>h0k=VHBq5vTdUvKz1!0xF^u7en +z=9ZBFh>RQoCOCS>IkvvKFmY6wqrsAikVt_^+ukf9TS-|>x)Z$gq7Y1DSPPal+y!eN +z15fw^CM>$pR9$@a?fq=DpMB?Rf@Lq88_E`KT7w>uGkZ+JxikD>s9Nv#8t(YIm+drY +zK6unAIDMe3-&qI>m!+EVlAbRlL9VCz#*hNmo1ZHG(WAHyqi4v6FN=ljvoZ{YS}TYC +z{S$Hmgf9NM7!m@&Mc2YoO@7Zt{8Ps;TX|{v*mKnqxB)&G1%QKZ>zq>V3cTVp4Dg^Xm|(D^ue&0Z??>dn_K{@K^I_?@qP@r$pm|C_IE_=~Sy^_#D~`?Ifo^^>n1 +z`@`3Mtg%J#5%|g1KKjMiMjhzc{mIu>|IOD%2L0LBmcg3&&DZ|=_rCVa?|ki-zw@<4 +zO2q%MuMPE4_APJvldoO)M_>Cb?);mtt)KaeuPy$IuRZmXuT5q(@ZaKV`xuMA{GG22 +zBKgDD4*ub5Km72u%YOE?L*IODf7!Ug-+b)}D@VY^Kl|E4zxvvnKYVS`pM354zxmpJ +zPh0(eHh23dkS6w)h`>?JvLi+MpgkeC_Lh;%oc;$=5di +z;cM&t@U;j2;A^iMiTM0`zP7+mzINFUU%MZM@h^Psjh}t(gMZ*_8~p5RYnduw{N!tc +z68_%T=Kr0q9rdfPjsL5!O&5QhYVzi5M+c|8{GG4u_p`5^_mm&<2VdL2@Xgm2hwB6S +z;cLtP&e!(mQjGkauPy(JuWb)`@UyQCB@^;jzIM?ceQmFweQl+meC;b$snVZ)ZFt(h +z`Pv?^h?oTcsekQjSN!B_%l+nS2mQ|1{`{-2J@c!tjs5q&w)Y=>?ZKaYZRbDw+HpU8 +zZN^`G?Y2Mp+IWBTwex=UwJUz|wMBpDYqS64Yn%V-YhVB3Yxn%Y*Czk=ldsM7i?99O +z^3B&K{EvO@XS7d4zxmo^zxmp$|B|l_^*3Mp>1SWNo9Gu`8$#gkd~F<)hhKf|p&!0B +z%D!mm?|tpMH(y)+hp+AN4}9&2pM7mX1=qcQ?rZmmO6~k(Ut8plzIOW$UpwY^zV_L_ +z?rY=!(br}~F6v6V`j>s}+FyNb?l)hX?9JDH`PtY0_E)~PDEXVOJ@~7yz4vEdTdDBh +z@U^r417ADpKlHVeA^U##+PQDOHmK!KzBc8beeJuy^0kY9_O%u1{?gYz|Jm1m4)%BX +z+1FnDgRd?6M_;?^&DYNQ+1IA|$=CjxY^wHWUz_fCzV`kPUz_{yeC@n{}wzVov(fI!`Ghv +z)z^0YdtZCtZ@%{G?|f~@z5l@1o`3VTC4Td@r~l5^zW(8B>;KKyc7F4yBCqUEzBYv4U;Elh|4CmvDs!OH)YhOG5hp+wRcfPj&&%QS7zu;@jCjIAp?ax1a?c%@owL^dP +zwH22Y<^FTNHtO$v?Y#f2uZ{4Jd~KA!@U`~3^P +z_E0OokVUq`zvOGH|Ke*4{$pR;`(O376My*H1V8)Q^#87}jqz{z+64d8zP8K%`Mx&Q +zf1j^C@{_NP$nz&(+wTb_=a0Vj(EpUL4GI3{YkU0B*Dn3l*9P7AZ}PQa|L1(|oHt*) +z@t^tH@;+sW|F*BK@<(4g=AZl8m4D%Di~WVKeevdNU;H2GYYYDqU)$%u=4)&JcN|GKZO|G(GQHu^96+KK<)`r3*AxA@xP|F`dgdVuKsD~J|g?+E1Vpc}nXPho;Yv~>- +zkAtPFBc2IAldli&_o~We&dVsIlXwxBZmZxW26Iv%liVA5!d^{c6o8?Vhhhiv#~lX2 +zY8pTQN4sr-{6Ha~t{F^HiPtr|3u3hf%)PpkTxHPljlYlrFrjID`zm23COe?=LQP@H +zKxuX2f#vi88jQ^s{idx6N35=QYd?ey2Ce6|?H)_iPk!Y2>~jdpS#@WWG8b*2qLE@P +z^2&@|FiOghLPEwz9pg(|Wzl<{dBntFBs)7u@PkpL#vs@pQ +zov(|DZ_bAde~;&`1U0$nyuL*T?XNtC-@5xa2xBf?MupP>eO=qvj{=lX^ZgfDJ}4@? +z;yi#m84@$pDqAe!RuQR>t6kG)Yql~467}IyGk@SAwm6suPmsZ31hIe#;O+vx-lQwV +z%V)5oU4(drDt^Ze+$#Uxjh>9y05C2389%d%dYbrK!j77fYG^{csW4xKH)kZXJzr7Vh{Tyf +zhAS$CK6K{Sd+Q}#?!ctN?husfQ$J=ZP?J#e)=6W0C;7ZQ#MxnJDYs2)@*>NpWybQ2 +z8@pdVQ)P)L?lzlzR@qY13R+XyZ!iXCP#w|tE8DY&e@IBmuz1*91@;h?TYv}%dkO%N +zPb~7<)VHymmg^-1eH!T7GL&fFqVy}M(Bkd=`Ro;FVvmT8q|FXVdpCq6*6QQKZs)z(^ZkEm&&`btgoy=b$Et<*go9x5}G=(-ODV+DC0XEk}BGHRD +z?N%_%jVJsn{Uk0tR%}CX601c@vHS;%D~)_YU_a8SI|r*s$&kS+{e_0>B~i>B#WANbpawG3G)RsohAl+hVZR^RC7rccCP;805P_2YYLNcO6!Zy;Ct +zX_6$zG}ZKTqlV2>kJ`-^&w=)Wou~MJBZu_4vrN@3=#x&b=5l!e((%pZzRCu@@^yt# +z8b;AX9XRGc6U*@x{0>$Fw>O};GdNNCPKLKx>_sUJxCXbf=TyhC^oEt+mDo|Ci%5CT +zSW2UhN#A`6*R1FummGgKW_DUbhddE%1lr}K`6QL`Zs)C~H&`OfSVzl@NBsqfdHe{k +z$m;vn`8-dy+*keJU5G@n6+l#>tHgr=WII$k@8l>@WBE0< +z!^WsRkeDMf!^PV_KZNPCZ3SWs|Cvh^pLcVE7?-yQrNA|*zT8N+tz}4P;>;y)VN~(j +zS7|PJf&R1 +zj?C@pqsXhMyxO(gN%|nTDpuIGlIV{7`@@qg+!D+)`aH4ewlZ)TbXL@}<@%a;6&DZU +zz}0?cfTyC81|&xvpQ<0A_fN4yf<=LgO!OLfiTULtB~ol#ShksnP-o+%=tgkVUhy#} +zgh$OP1g&@Fce4Bx%%dN~^nhd`%LY9t1T=hZ$!e3n0Zv@^Afb9Bv(S&`;bEj<>61oI +zp1TTX4up8G4oKL>R|B|b5O+u@*)OJLsOGA_sdoH}o@2{k`5Xxu?VgVouBdkmM+YaH +zgdL9;__w#;Hosp4KkDRXzAYv7k40B^1%EkXMstmMWZ+t+ECzhkldSrVCBW%ff@6#7 +zKZMw;bSqE5JzWcNB2$^knfShMEOtrC5(}#Sd-g;MQnK&MVeCS$56bNH)APO|K{`^B +zS4V}ZcZO5?z`gi#e+e)MZc{D#elD+;HW8zV#5=!SSrW61r_GWvz}(H6?nDGH^&9QI +z?h(n*A|{ifY|u;x3`-9TC0D4zmYNV!qrhV3L@eN{I!{hJK`8%eTGrMN1C)WEK$};3 +zo_D^ZDYQtnCS1!VVq?fW@%B=E;K=KWJdigABy?sZ-;O#xtD$E`i2n}vV0~2jA#O*s +zUSl|T6#rxzDcAeaZ;{@R@)J%v68TOsQE#??=%d#W8mwCE=|DZXsufY7Mac*A#DI?a +z45~eivS1BqhtIaS%DA655vN-?iN?sS+HxZi$>;qD@3|N_c;I0wGCB9KWVPz~C2*`V +z2L$Awk~IW_%02>l$Wzhc?Jgx)o#WGGtn|pDqLR)(XMbwVP)7qiL8}^DZy}r#sGScd +zg-Si-gGdtGuqQVU5Melt6cKhW>pT;41qBR=dFw-gvYj!FK?_oQ9MCt4YYCC2H;pH5 +z@@5;;Nu-8f_21drE`E(hkZM(bw_PBFvh5gE# +z>%?+(E0GU){vdSKlZOCccC39bx=<_@+hJ^SAI(ypf%kN5_Whj4`dnwy(OBdbGA#rZ9w!1|bZi6$JVO;5!Dilcck05gA)F~9|@FdImeEwCQu>YP5VDlA!;f`t;| +z#nq9FLTO#36i=hfKvaECq(#B+U8*TrU|z!)WdClF@-Q7|2B=%(-HOkIVD$^U#P*CM +z_YQ9#oL0gGK=fFM7SJXl>1v5BhH>EYvXU=(F4QZ2JK)M=ag&psP=zTwFN$OC~rrF;)mM4X0A6TP5d +z8`I_cHlpmbNE%T>>zT`4@K=-tMUVl_qoGAaurqW%tAQPap^Q +zr??>rKL|BP6R8F}0N8z7wzFmN4p-U~v(;b(oiAYcjS)dUE$5s(q4>-(U?IKM3M@rNF%?-@do^s%o9bVD%x7gIyE;x +zrWAke$ZFbzsz(eJt8o5R0Fi?>bg=on@I6Xv&qPx^pA-!sNaa=)F&M$k$>H*a$n?`j +zOxIUx+#RD$7JX*`7`u&c!P>jYu+|%B`tx>{vWTGH0BEZ(4>ZhY`jWBTM#ixmCr$_0EyEZ9A_-;v1gp&TGC0K?DST*BY +z1xqgHiatiY$C*P7&A3hQDAWB;K$&SwJ4$rwDr=zccz{PS&NzAi#2v;WNH75e-)M!&$g)`v0B@(% +zn5xx!)WwU~=3pQvOL8i7pp=LlB!(fuqq{48jyi#E>bopYZ_SN|*Y`QdFna}=eGf+} +zQEMGzq~;ZqU2en&4eYDTm-p_xRmU!{cX +zAW>25)*A*CEmUn`N|3ntHH_v*Ya3f;2*tB%jwx}^td}-)4%J>BzJ(MXPYClKde(|~ +z4`t0MKnCp#$c=%>ZDu%FpzFh;?vC+Q7`Y@PXlFheF%;3AVFU=I-YZ8QbVGq@=0RNC +zdq9uuEZ)%0ubz%00e-JpX<{Z{wxD}>CEK6|m)7Y3wY_UTw{x%QPF#O<_lpT4$aIFe +zv_G28(MDd)Ug=}7x#fT%9d9gCfN&j7li@5DD%V@T +zmrkJRQE3Xl0!b%AhtJAQUNoyK$Bx#p`~fJ($^u-@yL*ZMm@(P%f(lHY;9HymEV;U4 +z2;jXGh>_ym)pnTvTiU#j;cW1NVw`WnjY=+|qXxhPMMBiEA6C4&-Tn1GH8TR+P@cV) +z#1bS+hZI>~p2&yiQLVB)JFBdh-`;lOLUEx@iyXuIUE5W~q}rfW)R`a4KOZF+G;^Chz1Fo88%TuwvPm}B}4$4aYwukQTviR7)Kvdq5Yw|yH9iN6rtMS%TU +zA{GYk>In7xh7>(7Il5=EThR)tfpn0feh8) +zNNxbuklVVqlelZly{6A-r6Q^w0;~S*d%Ejp4jNu_(*4&2O?;{{Gc6HI#B;$_+{c| +zN&Nbtbt73ux${dc#-xhU>8A<~pl6(C-72*N1j|OGF>}k>vI)mQm8wLSSvP|g +z_n6*;kP7c%z*}v4edDN|kkSl7R_7g((Zo-dko!U@+O{Y`#J7kdEyvag`dPuS;#a)HD=ZU{L3q;<|}*r>W`0y)=9q9*fBFuDSDI8{DXla>3p=lvEY +zi*dC%m0szCyQ|r@FLvi&X6SDz*_wwNZtRsOKlIoJ7ovRqWIE?rfi +z*1}VYDVfl+x`H>*3Mi;v0n_KL$46pPMw8+5g8@K`Gj|P#(UN0RDC85Qy=4%syYL}= +zJ_yA$*bEwJ?T +ziS&vd$Cmf4oTK1~*Z2t}neRqE8Za8#$2Dt>o5L2J?xc_5ww&lKl#@VU*lBS9QQSL| +zQc?-jc%fG~M4V!>stQ#w!JwtIRi&ZoGVml0r+&R0baL6?T5B>Mw9ZZt8$0TjzUK&; +z{fsI$ibUd?nNMdajpj~d9j;m +z84*wjgvAdNKc=y{48i#R_8RSbl7jLw7V}aB#UvnDjzsuIOJIPRY65nWt^`3Bl=B7C +z0O(%P*d$pMsnOkNXde1!0w)gOvp^^lgLhL!&|;=@n`BNkK5WY#6SPtY(|8C>L^~(~ +zP$gcL;j+ioXz55bvMhSdL%H{(-0NOKke+L0x*Q^6(PlDU1$GhPx>NP_1;9yrM8azav`}Q=Xa!8)v(F_*xikqDk+|r~C!B{skqARl +zTY&Y*KO7?^+VlgAo4o@84QvL95zc`#K(&mq`)yVuz8@xPikpatUuxe@>ym^ +z%ww^S1zKjRLt0m*nzN3TJIN* +zK1IyUxK6ai;((qy4m(zSfhS2N?yw%ekr+xuU!_gBDjW#cgLs9kFb*>4_vN1-mlV!9 +zCJ-5ztZLrxZbLUZe-Rq;M$<3lQHwzhX(`Crln8OJ))a`0D+ZI!pD3AIYEW}2k}7*A +zU$lBZGFNlb|B{pwJMYau^<|dULx=Da?YAB;QVsydLSkf_kxU}=XQK1b3V|{Lfd#7# +zK);VbwMXL9SjJ%cvazhN98ULsLEc{!w!613qe=(+L~jhiq-1#y>8u}7c0&YuG4hLx +zdY_rfDEth~tMii4tQCh>s}~j3DI>)LO2{DFdZ$O-DCMXfI$Oek;faa_I`0~1{87lo +za>qNRwrJVi>cE>n5+>v8<;+3M@Oc1Jw--5;=~7k#eu0eI;G@qVlTz_Bg?jAEg-IE| +zDg!W(7P{Wn-!FQhg33#20-m9GNv5)5PNdspuAHiA8TRpLK03Va2#Rp(^<$*}@WD?I +zf>%mQU%TF6Z`TXll0sw^6C243Q{v^cM5mNfuE>0#;zJAwySMq$1h9$k)7+a3$gC8| +zv90tTXgHFoAWy@9j81bnE{(R|qpE{rxNnhiqEpsGgH8ECW6bVcMD(e@GCu-4I3h%( +z)2wjA3;(u!*Fo_7 +z#_Vn<{LrkJot)kUC0!dKCt`VJ(6)zKmrX=J_t0ymn_h#Du?3xoyA6rjItNGF%0+*^ +zG-hZg{8MBKJw|@7n9^ws6YVHdpcv%_mVCL6w!Z%h0eMW$#c32E59izg|!UoZpK09N=wR)w*dHbT81;wyBE4^F5O7HVXLy}Bp1GG +zZ+G_t-i^mi9vR%MZ9CSnBz|O4LZM^vO!<0bR&wMuW!4TU-_JxjHo-eEC^@f!4Fbm> +zAfs(av%#i>0CK7Ip$3A&W2j;H5;C=XDAOz6tDAljOAE^9e{?hHyu+i~=J~RomcG}> +zYwsgYgt$20S_y*#N@hFyJz8{ELQ*n&`1=PEzWCl=qG)dZQ_uV7Y96&sWP@xRh)1G) +znOjBcBlIBmkM4@kDn#tvuWf{Krq5$Wg*Jf_u@EqL;x2t40nYD~2aM^45Ln4J6-V@W +zM3Q#Gaz>Ar*RIm(5=a@78Io@1ply+fvb84Uc~Cx_^(au8SU?0;xwHun?{acD(OY9HD0uq30cjLU_5XA})KGAgQ)Q_$Tyq~{d!x0wKRf|BJOooj)A`${Og;DVtA59%S9AC01SRhgy +zW-(DebfohvNe4|#0Ylb>pxh&i>0M1cBXt{uo&_JS +z0sWp@v?Fz?)`hOtimlep3QEtJFNr%U!6(^y3dOh#u~fscwVbbYzCALq3!f+|Hp$7p +z5Yp+?Kxx!f>7KpmNJlg}(r3uV2|8-QT)0^iy;hs7aeg~Qt;a7j9yfNxRCqoX#6ye? +zeA4Pj&BHG6RGsNNq$Q*QC6Ww;w?BD@*vJkV>}Hl`>tO6IjLWp9DcyPCsAQm_x6vd1vCk#g-uJ$@&M}6%Ey75gC=fNM4Lx6Gxt`Q58NW@<5WSK +z;p)Z-*U3PJ0CAhi(7FCgW}{M=tCa8&+7&^52I8zN}JO`k3Hz0DbPmPa_@i{iF)FJUj(enhbEWE*o>d +z;!9kaF=RywKS68`5TMb_45|SdG-L#aw#WND7OOCv+}cMd@Zf3>h*6Oarl{N;N4pRgBR&aje;9LF?M-O-&%S36rulJr! +zgz0`EV!$NrpeSj?7ZsL4cn-#E{ZP!kLo=-D1@AcOXvi8a+E8A~!(8VeE=Q*Wh`0YG +z0z!#tQ;km)WbM&n>}|KtmrgC_EN;ULXDh$sx8+>h|J*9?0{aY7TbUCQ4=0?4qFboGJHkI@JFC%Ov62*Pv8 +z$_x~%jdMAIITWy4xgfo~uwd#B7?xNO(|(3P1cG{U>$8!2w6CQ1{m`g##NBOr5GBz1 +z9xaL9*JqOve;BnGa4N)YlxSaqoIJ_`;frt=Vn)E0v;iu-&nZ&#V^-332uh-!+B6_4 +z?=q%XCT|7yMZ2Qb`sVJG8%< +zZzMZMe!KDcCJITybNHb@vZGrl9?HaGvTpJ*{D>|FxVQTe0A62)p{J@{C8T0q*O}BF +zHCuZ$h464rCz3z4}+{jILN_#+@|pYx4Zr$|`ZO0lpce8VvB@ +z$7C_c^|ow8mQ1~=LDSj#ct<`l%k#{J +zG)=9w>&!7q&MPvRbhhls1xZ6jv +zB5{GWR>6V?YG<{WAmRiwiG_d>q8M;Q&1%F&loY`!Q@HE~yt3(hwH%DD7F476>fQ&` +zjR+}@7Fk5hz%=8!3B~1h>dWhKDtFNKT*|Y0|G-Ju)YU*E?%rtX*140<5pMk$`1w`9 +z@bkMvUZwTfO$s7m8w%xSl(={bA13Lz$#wF{m4!p{1Qfp@y~$bY5G3UoWG!1@MDOZV +zByOA%x`z(%=84EAW!MAXMIe8OL<~h`1kB9L%1y9S(9eu2{ThXhg0b>60w}2Z#wgtooU6ondHcajeQmr +z+u|<1Q(1gCQ+2}c6v31n1a_M9vygAxk2POn<+e-&i7|W>NG3Zq_SugpSvvy-oOLTDIHA$a)6p2+VzAY;<$X2}2?rQ?=K&G6Ev=o-5BniYP +zp; +zGVU1)?fJYYau=JasYPA-w2de_kkVe`K!fYdHM_rkNfUUa{bJ$SD1c?{;R1`)vOK&i +zo9XiKxQ(i*Wnrw%^UBrw)c53~^?bQDJiL22-+yP5NlkManE1V%=G3u#{`TT!d;9s^ +z$$4vb*+@yoZ0~vhBJTLEpj;)9h1pZdN&nfe3Yh<80~m^sp}Kuu$Qv-_`kNq8ufs&? +zl#2L)@ +zrjKs-))VXv^<;b!9eiD#2w2t0+>Q^%#XLW~mpk`ljen2u=7t|OPMZX@+~P-~z22X{ +zQ#Vb52xIRjQx)no9^4(W9JV7eoE%=Q+lTvb&ny?r_;M1&4zNDn-&QVD)r>MI6JCKw +z`E^RLfck)^?yh+_p+HSJ!f?r4=)-yy)e}PCsze<=WZN;hTI85X7;`2qjt>krAZbdV6+SV?s4LyieFE(mP$t0qEy+d6Y{ArSb-FEiI7}JZ5#43v7VG +z+h{-sH#}&n4k{@$pT`{W +zC49yJK3whu(5Um72Ccve;439&Tx|=q;7gJwfZe<;c?sGsVG@1(qAOZzS(T&qxFlSm +zB8Hmo>+>n~GZ|3|rv8PE?Nk~KSlVQFowvaid({vE?FZbbmS@@+j!&NDn9sGtmL1N*}`ZH(y(_1Ur@l1x>b3Fxgg)@uc)sB=_p1CDV}`v +zD#+{{o`7f=M_EYXZQk(+NEYuRqD||BydnsYMSF799Hi2{#;JU=pzg3OURz&?4$+xmNXy`;TYFCW`jD6CUAf#CNm +z3H%&CZc4B*KSk9U%0)|RZ%$n1Idl$o0EzQ`Ep$%;Kp1fuemrfDucc#RGk9S>g9jBs +z=^L#aQ?wNHQRaW1%k^D&z+r*w*w{F0N=zev903i>f +zk*5&&v_oRvC%N8cImTxj&SR%uT{(VCBBK4{Lz@>3#PEW0F-2(-ugaqB{lZ=c=NA+h +z{fBnT>E$e{s5W%f^keNZYi=G*zeK`Yn%#DN5)G;SHGv9sBr*fHE5G>A$OSS|xpGX_ +zL=A=(f3d1>B?hjmDmq%UE1MVYyBsz-X7+V>a}HSyc^=DHBhosXmj&>lZEeDJz>SHW +zA~XbFAV%@~7-hVS@f$Lm4>=F>WH)h`?p~a>j$$AmyY@OOxarMXLpq{&8~zV}gp6i3lUJ#n(^MaNoaYKqJUg +zWz{Tf-}n71A`AZ@QqV~ZsUeGRrZ!J^+)2RVu`A1Bd)f7<3stFmTX^Pcu_as61$o4I +zLHlhtg7&SBQ!j;jY+JfmO&d$(gjgd^caEk6N4t5IM0%++@!G3% +z>5)RHfu;z1=cAtCUei-{|HC|1Cic)l;A*KU<~Wkg-5Y)=HVo&^zWt!dGy3VX>u7|X +zX8K&Gh%yhgz{An4<&EJ}nE6UCg+h> +zDDFDDxIM4vF`K!9R_Nm+R=SSHe-u?sYm%^#%-<$i?8`%vk{Mz=$<_XfvVh~EPzZbHn5Z`Cax~^9 +z8-O#C8`3}>$r4hS5{oV!fad5TlD;^>!KpQ&(yOO}Jww*jTRu-+3%p$+9EtT#vhRq4 +zc@da$2G`ewMY4hjeKRo`*a +zld|V(nlQl{WJ&M~P7c?%izjGNki_Tx$pPr9cb622fwG*V>Dc2YA71=ID7i3~>^?v+ +z)6QSmJ(@5tUZ#?Q8PTx0TG_+{UP9^(dqA0y(Fd}H3$7f=B!x6)6_}M`1}^xU39Off0R`zJiv**+p!Y|XYxn7InlKol4y7zRL +z#FdYEW)u5xr}pG@q{d`JO2i-`DL&wQfLb>g@L=S$j`ski?2UVt@zE}68=qZt93#e; +zu6g5$UOCLhJ>TwlFc5_psrud4`*czHtEi{ES8TP^vt6Uk=%@M%5o_WS4t;^<8L;Wd +z?du_|kG>PkKnt>W%c4A;Jl|I~kVs*!kqCCDE)z@Z=n?>_)~DFpZm_AGX1UPn#y1)( +z!a5Fhun6zhhF3K^+VvONq^itH6y*2t8V0Fl!*0LB2sAI}m&t$z0fL}Q9wX;o5%1}W +zv-CX(grwbXOEn|CJex0C1{vM==i*9Ke)r{gxK8qMl)c~>s6Gx< +zmBU)YHSGHMaat{<|Dft-T&0XCi>kttr1HzjNNd1{OdcM#>H|&5jb-4w7_h0;hoA#z +zZ5rWk@hF;|t?yZs-hGGpKx$>>h*U@Bm4-4gsiU69@maD(kPXHZu@;4-V?Tnj_<8w3 +z#1zRz&kamInQ~N&h|T-tEF&6_m0V&Y_~CKZ(LlS=6Q?QQbT+LAYT{~n4C1Cfu6+zu +zTo?WMpRUPvz=2H*YXeh +zfkqA~hs(SS>%Ov4$<<;5vr^~a_bY>Z#j|Ibl26D^Ca6FZn`%S%r&#az@pCR5;@Lne*fs$Cx +z&(v5p$-VQm`yDQAG1XrKzsl5?VfKoIY1fKmRy(5~z)qAk#vg}z@PSA7uC|#=Ub!U&qJJx!< +z7I=J2coYK#$5M%G-T{556KDI~(&mVR*W{fbU9 +zIDW&OZ!DSQYN&+SeoTYK$37{(VI+S;h9UGl8r_viS-TKCjyf +zj9H;%_UxO2#xkRUG9_hsl?0lNG~Mgd%X8YN3Zc)0*cWGxm`cP6!Q^SoSrB7_v3Nae +zxHf9;C}u&EL_V~rRLBsnWB0C*w|S+F2up~m8-9JYdXpT=cE +zuPU(MG5Z0U(EDs!G6}aN!sg@oBgo(a)|m>20$LbC<);|FgY>~@KF14!sg+~FJkVKK +zEhzTKcMKIkbO}r)0Q0bAr<_#xZszlut#AYnRbio}r&TFLJv~IWCKvm{uN^IV2~LpA +z0l0JE^1UaPPiE8T(_5iDk5EXlK?`|;rK`1uhOSvFAH|$8BhEB?k^@FCbjV2RIWmem +z18 +zR_2~?eRmv|Ha&VRK_ojj4Iikan2459DS^Vy+ks;{Oo3F}SYUW`8+|yIin@7A)F3Gw +zl$(G%7A2Jj0FKO$iFnq1vA9{(G%-Si$AW~XbWK%ohSj@usBI$f>6Kq +z4BUP7K-@TAiKzb?L38Xg#@UEkY%#3^&F*ytlW#Qe;5^d%grgmvsjM6iJ5U4n=;Uw>=xauyj@66e$vqho^4o +z7o8GcPl5mD&>ZPc-)v8zGnn8JxT(d8ImY?@k~hkM6C!8}z&qMA$7b?G!+uBxmmb0+c{&zp3?$n}6QkRU(J=x=TP2tgFS!U +zLhA-1)tlva@dKoXx*8?un|6FiZ~ZxRO{LPQPNwPxxq6ysPMhPDf{h_*>=hwrbL)&f +zu}R76K6Bs_m1p_Vt=CaR-T7igBNSpjc7*;!s@O9n0|sae>~BVM^7qf;XQ6Edl|JVj +zGA*KR$UznX#)q3T8KUFv@AA+d92{hb%iOZD@D#}I1}t9wajGgpr6;kT4t*ydSWk5p +z{`@|yJgc;20SLJFl(0*iYT8Rwh8oNba_s{o7IfnGed^!3`MduvnJ`MIye+)=Ue;Vc +zo~?S2YKhC26G2DIe4zNPr0SW1GT*3x!_L*Ya#{%>xt!p>Q5&BmHt`M2?fQ=W`o;oJ +z0mrZN%&FrdEL(g_1i0(k0V;W+4_%8QIb0e#j#&$ +zT>$}VILv64e?TlmYH~$z5}pDJfO4k%+I467fwi?Ie(a558r~lJ*oMoZ-|F^*Hyxz3 +zr~(k^oR~>n&?GS^_}p37TsiwC->jBn-Xa(^2a`HxqM%CJyDiy4k)XgiU@ncC67P(f +z-t5d6_~g4<9`K{lQ`4~x&pvO9Y%7;Mmd(+B)Tlc0_!5y~A{%joW_}H^9dJaPX8w-Y +z8m2OEmC22n9E0)g$3OngpUZ}>R1{h^*wmO#cev3tN1Q6C)YwNciY4RfgS7xcb}gtY +zEstMuWz(+gaxCuf&M}5o$|@WuyKnMjX6ndY%;UhLAmwZdXaiU4>x~wVTe%({J~(2a +z&y{<)*@{~PnN}FpJ4q;^!&mv@E;72oTR)$g$AEt}90JOuD|GnZ0|0D5?tirK?EJ7h +zw{Ybo7)Ihz%c0XD%vsGZ>8^6ad>#6${_?E>10_G-l(uEd*jyDvJY7QQwC5WJ7Y>tK +z*`o$p_NS;oIv&_Kf9DWkY&%DH;ngN +zzW;KYkSkM*Qry4(v2G;48j?eJ$OeJ?-d1)-=v@cPP$Y66;^$}ox`ySa6SLr%F~jz# +zfkxFvtSo9tP1Ev#av}GZlf$^z`Ikh%SxD4h@zh2l#tp?}OmIB856s5~#F=STVWH7Z +zb>NrcpBG34O2Dmur_J9FK4;g!Z-C6=b$QJLI$$=z97jOeA;!TawbwDi=Bb;OKv(ul +zbZ_nZiwgyuYo-wK<0Nom?D6C0-|259df(dRz;v)iILKmgVWbC@bCRfSY!DF1V$k@q +z4CUdW=m^)&vAqf~V6Bhg_b<(M#k2fq(j?(v7cw^DzWNWmfNWll3~VZ+KaWp&T0mbl +zh+faV-zFR!bSeBs-;jdnnD8~IaJn)V58<98)lo*A!+~hjvfRi9gqIHq>YC?$x-TI~ +zM|IdI8F{R)M6U+nCV-QMY`JDc4LF;y?k5knzcRGmp)}RUtVh>y;5X|DHlM+jEF|%e +z&EAq|OB2wk&NP1ab+zzBwpcSdr8$*fwIYyBqr~dk9Chh&s@$d-2+yo=AckfyGtrd| +z6QE`2U1Zb7`WVa*Fbi5ZM5*cAFYBr)} +zmi@9_P>0c@VfCwE6Ek!KyXT*hbgp5Jsl?KS#I{L^Pu$q^PAPKRW%dB3>d)$y)&g(2 +zK2aUJRG7s~a3J5+>*@^K)1LsK2U!CqeqQlub!8&+;;<-U5XUQN7K(L*%uSaD=Zgn< +zpq!$%Je4!96)BN-Ia||q8e;X{OgH_e9fhQ3vVfhRBRf4lX3a$SBXz&pe6uAu)st*A +z(4Xbrz5dCRIsLgB_%NuTPRwrkxFppfxdgya#F=er-oRc{p?X^bH-)CI`3I^Ca;`C~ +z+ziie!JJ}tJO{n{aR;ENw1F&#ghcjP!un*bi*=H`tFQj#G(n~K>s7Njl)a3T=>~9xD%9sZ4BoNr +z`E(`n+6>{CcFV{2?C^38MtxxR5rN7+*Dgvau?k3^ck2gn+*%o5vL58T^fv(UUSFpQ +zSCU1}-l%-)qXHcZ%I)bb@FIbPOclQDJ|ph~A?=M*vG$uyi>F=7E7djcb@7F$^ltg< +z{`DuhhGuJj`R+OoU_M=w5#Xy&zy9YRS)X7n)@lO&7jLFs+MB9Xn7+9_uyzZoj+U2~CV4bD?koOZ4jos{}hpM*qGNC`rwS{S`K*#u~w9 +z(?7@&&ol%~C}Ki#adwWRqH2>?Xl(PjP?!3808+Q|cfAxz*xB255uTVM|G! +zL~%V(1z?suO42lWUTP6VKL4k%uj~cclVm5b`8$3gBfp&XWwof~=@9uR4VG>%RIwsAFdALV)^2C(tx_r%3Dk{ET1 +z+N9upv1vw9$LaA^RQBGd#{PkeisE(5AB0=Gc>&H+mSQ}LQ(nq~oHS+60c+GX?7_jM +zh7xoQo)m5nh+H&mAvGZ?WRQ(N{6z1UrWsP^IRlN?u`H-TV|_qWOfQKgYgz1@>t>NF +zNm4(Xd6AS0iq${@rClbw$BFqh%L*jxH4ir3E#+p|z5y6u(<8Jy$S5^-OZ)ANq=Y#~?I`)=mZ7xmAo~{e!;igDtCkC$fam*QnkUNOky@#GS +z#)_=;iyws`N4j??9jz#gotj)|N0xCqLwchkxQQzpY*olTbdf((6~CmqglFZ6)0%x+ +z*<;5?JQ9GS-KsrdwINrw^ggVhIS8bTEOG_D!Fen&BbmJe-2gZ=>VmE5(!-SS6}sAq +zlW0*`-L~k;70q(NK(*UkxnXlmw~A=awMb*ZLy9Hg>| +z7z?Lb;@G8Yp#<+7eRJKLI^P(i45^#+sHkiPps}m1feAgQn_UNprvWRY4`$r9v5c;f +ziun<-k&Pk${3$_7>|wVSAt1FGl2S(ptI=4Khg#CI!1*4-hkzoNmfbC6v)xX!c7jfU +z^aEMM;;ahB*lqPb`-}#a;LG^_V`}yk+y40ZcV+q1Q19p8DPnA~%%DhK+uI|61kH}2 +znul1s=*(ak17*u+a~jiS!o(qFdEm_vIVPxX7&MR!5<-nL$MqYn&*?YUp}UYDw3{#n +zmfj#$9iiM;|KK%kBGmjYu4=YiFXBGMC$U{XNuTYMoe9gW +zIW}S=R0%bp(>3Y|#cd1sjHE%a>82BxpQ^0}v9jO~=uHTk6~jta?+#HuKZPYiR!Dr( +zLS# +zQ%g86KNQKdx-b@>Rz)!CQ^mAXUAs^i6O2q)3T>kEr$^aV``SbUB9`Zz#NvvhsA~{$ +zyE_{p@Q|%57LXc1HDdA-^bD-e%|V0|MrSR>EJ$^cTYy5dg(GO+pc8Hc6m|1YX%_y& +zzx?O_?*H|F|9||C|K%_Lex+Cr@NQp}eBgie2MbEwV`c`w!by<7{I~z@*H@@N-vb;W +z!~MU?pa0AMv5ru!|4$BW{c|f7Ovs{ +z`y=>2aCwpg$hAGaMA0rtUjM~$yHBrXx4{qn{Ju3uo{lLmvk>w89eEW>&&7b0{^{33 +z{crzv{?79|MJGXip%?v^Cor&mbBXuA5H&1+{~yTAS3t@jvXm%0Hof^i1c-nB+rOd4 +z6~W6D)tfNx<{Ut{%y4gNZ<&uH(eMBApZ?>2u4PmINAYfd +zIp^wN+}7&f(9rxhwG;nlHu32*@3dd*X-$i@e>CTx|3&`#%gX>*ZhGWupJ%`9Nf;s2 +zU!I$oXDgaM0VMQtgr^BDI#p7jy?B#fJ|*v>q4Mh+q)^9!|HHrh_r?F2_L&9%q?9%B +zRqgUub3+BnQsO3UsQbUkHbOS&{dLk&|Fc8=lY{)}7r|W}m%q+SQ}(rd>97Brem?(_ +zvrF@1*Z1Xbf3sxeum3}{{pTqR2ROC}_1B+}aHktyL3B|<+XBc$6JOv7KmE$TcLcc~jx70;%la!{dru1?-SHRB +z?Z4#LjU6tF{CtS&`%X3ll;4llO6h|4kmpFYk!`g=FrZzJW2<0D;s$ +zeb>U#KYL5B;@`%3|BF+ +z=&-ViV$k#bm2>@x?EQb+v2p)_TK>!b9tZ0uxW&J`Y%YA@KQ9}a2LGKt<{}f4e_5s( +z-93HwT+74PBRxNyHRF5EBW!u<+W_0A*eIhgPH!z~(60gfiRCew2*g*CbHX2ST~1ZKuLSP5vA(a5 +zK_V9j3bMN`PjFd3!u#6bekh}!4PD?=BqBw$ebH}98ur7RfM4RfCGzhdCkx*f<>xS~ +zEel6$<8pYC|2g|V)`>nnxfRyM0H|!O3cp +zPuq#eTEXH?%CTQd!Ie;0IIpMFYB})>GCw3^*N*)czz9HP^xIM3p7;Qb-0Wi_5sRHg +z)j!oGzq(L&k}q$rY%AMi)A5imjuuP605(lLXgyJYP%SF{vSucrn!84>UqJO{+d&V6 +zcty28B#`;auCtF{h*uP~3GC18`v?5XVvm-?wE(}q|4w;d{<~d}+!vQ98~YRy`g#;e +z2lY#Js!%21jyP}ixVCGkYm=|~>h3=bEXPy9s&&dX1MsO}Nh`qzQp9U}>O7 +zJQ$KqJ|f1ysZ;xTG$FySbzawE+sRL1s~Zaeg9qb&ZOq;#**9?}H^t_Em3>!|y=_Ae +zVYAuoukCQD2f8(k0WBq<9@cUDnz6grjr&i6NZI*)+Hd6D*r4lNBpw2B+C4z$vn;#G +z>?KE9>~UOrjA@^!cX_+DHp>^ctn3w73GN9Pel(clT#%;rYFI5yT)G{ +z+ikMQHnVA)N<|NwX^EKpsIGn%vUD8L&>UaJiT(ZCcic&{41gSsV#=V&r?+pcS%P~uZ3 +zlK0am=&wUuvfOLMlE|Wzn+*jIY98wmfWfMg1&ZT@8LG`JWy`Jk;iAJ|J78z5dY&i9 +zU)yIDH_$C4hCz}sib%S%Z{=DGv*1Mr!}^koMU{FL3k*}8(bax|eH{v$r~Wz@yh5}Q +zOaO7tmpFEw +zF7}-WD3{(Z+36LkB=$ZD8)RKNRrwcutgLN_6YOa_s75nqTv_fmhhqyP$)J8AQ2Gqi +zTGw5G_%AryjKtt8#glJM`nk}y&?3gboMQblgR)guE*j2s=ruOjCEcy*tTH%b*kirf +zyYfj>5jwqKB`bVBFam;+2wR{$B}qtZe~@@zEV|}MYpIl3UtsrMARk+sIY%h%Pl08^ +z(?jmdt-k>fh5-v*8FlluUZCzik*meLxEM)^TXuA#m$DIKSq_1Wf%tsgABg-TohKIO +zdVs;X^w3@cI%2`>;-UNAnv46rp}+*w0yDHty*}$gBT9#{QK+@W5Fm-ODb4edN}f<% +zSP%Sardz)#_ECa#RrPi((H8~jsfuGbwy)p*^`mb-dfOOxc^nc2n_!^YDvF5J@rlb&vO-npZx;2-HnvGnI>R +zoE01@r@7B~I4Dfm`CQ{FnQ71%1W^uKF_yRX2T>AC{to*HwBteEg9${tUmo=pDN~wz +zcVaPe`rmMDUlQLc7x0%Z!={ESQW%#7Y2vXD+vpZqsaUw9O23ZS^>70Ifw~OrpYe}R +z(ofg^Alu%wjoslRmg)b{hXzOFs9Ulf^zxN&nx|?7kyA^L9Jv; +z&Kma%%FeRGPs?_vvHLDv|FcC3xSzyCHSI|e8 +zK}bDDduZ1%9Uh38#gP|lSx{RzJbNXz0UR$t%N27*3E;8GZCQ%3CJ*M~&jVGuQBvLw +zlv#uP2ka0{iloqwH@DX=ltV>{K@pL*n^{H5gPwky?sq-Ji$-#Wr2ImHdY1qqmD|$t +zSiz{`UL;lbB$?*(#BRWCMIMVNDv*`hdV!y_cacGB;|WkF5D?uQadXt|l-z +z6(AXCHZ{H2_bSh==d`ahf$K>D@x^lGV#=XB?S9hP6nSdr2)33V=t5FzFKhjNK?w$o +zI3A-x*;%p2Z0ps(+gbBc#m2WqjV{H(fpOVv=X@GG;kmyMvy{y+HRGg$G~(7Uq}pKO +z$daTQ{jWsk_jR%>+#QDtTepseLuGQEiWOr0i>yehd-6j0qu9Ci8R*85#9GBe4P0!q +zXF-!&M+@0L2y&GqW!%m?B{vi}(T+;zYvCd-DB56DvPfkL+nyydlDdB%8w3mptb)~k +zc!SmyeopbOl#f=*(-ejVL|@=cE>J8KBPL2j3^wckvdHA|#n~=m2_}!i7-f@)uim#K +zD`D7MNFZ5*!5^p7w7Qksc)M|Glq~|DmR)vz*w^bmwctPbf_!+K3JXW3Gxl1*BexNL +z&iI=xjOlVl%F7}4+pAJ|6j>FMvgllJVkO0*G#nAI1(-DK4iZv50!!clIRt9 +z`QdN|NX$O5tGhzYJ03A|xfh7?-nrZ;=1v +zxgleOGcFs3c20&VTM5*AYbxJVVhUJS^bOw6p{{+B>Z@O`W9)RcLh|wT&``-18hNIm +zF-SD@VMSjA%aGYFfu&B1Y)^AHtf5ZXzGVSS40w}DSJ+8QKhn9UsCEV&zNAs3#3(eB +zM*;AygxtFH&ML{IW$fY>dk$vEhe=9@#(@9gs0tuj;!10v?roK${xquC3(J7F^{gaI +zRx5WMDg*{l{_6TixgVYr@c<)g=JNCA7`C_xx#(-+JPcaG)xY`~g#sIyVbV0(^vf68hC{P&m*m4fb}hC- +zW!l)Oa0}(31{)a}dJD87CN?*fzeAvAKJ&gsFprr}lJB3ckGH`2LA`&6>@ibL4bN9&Z +zS)|N9XLVIpMgV@XtD0(v#$~3?M8oSrHR66_EQtkTGK1+F1i7z845FeLgtAap(d(rv +zXLq$+9e(R1Zx3>GgBz%4k4IeR*mV$gf*q-QzOW6T&GE#Lpn$rjyC(KBYFQ*($K=hUXQxf}ejAiu&HJm*z +zzn&^gAs_u!a*X^&VXfkosw5eb7uYJK-4Z3175>^8p)?Z@Y!nAS)`-@VZ?^d?iA|XU +zWer1#VTc-sM}h>TsTcf$eOT7K9Py2~rx8b12Ef?}y*-}GTTbiOEZz~>rERswH +zJtG(bVY|pfA&EaKEnjfpOYiHymIvemL4Vcu@+LzKgL3;#^{8!Lo7*A(`yu-SW=ruC +z+4;q2OQ|LDLez*=A^ui}P@aG-X5M0?|Vz9g(Pg2PqTk +z!fom{f!nz4&&q*5a<=HfYLtsLJvze`RAX|tQx1tPya#AH=G;R=b?dWh7t^SbpeJuD +z2uTLpJj6T1JbNB?0t3We)#lPAtfAWpUPHW*!>339udHpvHb9!v +z!iosOhbCIF;M#k-!zRx>gXIw>%qX;fr+x~f2VKtGQOA0UQ&skg6SQ886!(A<&@CK8 +z3gY09njt0(jm7@vfj{NW8NbqRnx*mBj=?6?QCWc9K9LJ1It_I05Kffrd~%lK7Xr>H +z7G=g9>YC-9#o^9g$RLa4bF*|)jtTfXb9HBsF9ALe$P!$=c~2Md2GW1HDb%k}gOY2m +znyPlkp--*ULY4s3Z@aUv64Ho|>T`>3h)5z(T@XhOoPkbo1x!>~0*$MSkFeTk$-SnM^48is;G2n?8YAFWD^4y3 +zLkA!8|2_4C7+ZhN@SAVFc;8PfyF^DA9<(B-7|T#4QcgWVK_-^qBMa` +zOk?NI?e}s3Mg$IbB)v2|pYnT}v+q_;mvmi2Vg;mtp{dD5%>2?yreNTV_A`u6KOj1y +zjr43XKcH4$oj5WyZS>}BVwiX1v|*GO;5@OWE)nxv17tKr@8U}kjpO)RG|q-0ARY$$ +z_IRbbS*z%wY7KUQH*qfBww>gt=!~dF8N|21`eSm`Z;2e&E9v}nEQ253KJ}5TA_ +z)~v=SL}<_D=(;VN{|-0^=;OxeSU{Q@&0!O!F)t{t`D|RO{1cvwqbEjaml`OFPl#u3nJ8;x#Tby1>u|nu2&U>gR%x!VXyv(kB +z{u|)e_<*QG$@TFYmm%ujUmWQ0jWgF~tRo}&*ryY(RN*I&BUpbBPf08MsX +z?YTW2Cs9ThN>MCEf)~Sadh-7*2iA-j$aqh+ak7*c;*!O*N}^(dSz$T-*Rc%&vLdo2 +zLwNLIv%DXcT04Y!RW&?Bz+Ds|wtGF-XwF%1;(_~k1yPe73iNpQ{+_ZH#AX?0>9l#` +z<==`M5N~1cVb+}BJjU@8k!eUDVRAt4x_||K%oxovoO?x>kJ1Xi% +zZ1`KX78We_x)+6UP)T2ndN2Dvt8~_V{yd2$K~!npp%=e0&08OH=B-+);A7R37Jh$q +zRIziPf@{{vaYcZxFl)_Q^}9YJmC5Bun_aAX_89HLz_~vExhTP`rehe0Dt8-!nsbW3f@Z#!hrdAGP +zl@d-x7BfOKIBVrR=s1%IInATRsw}wR*=sAgYAziN;?%2_MpWo1eu?p1*p3>U_7FOA +z8-*L@G%X{mv~k8pX#j{~7&T=AvQdLMP~lq+-7eQve$}ikjwtN&x&wxV2EX`(M__!_ +z9h0{c(Mli-H0tdSu_Rx{(j~7xgs&5Q`GqB?x$9U5IkwHZ{vZ%b8)kK--dL389JD+a +zR>RB!?X!AzA`GyL@?M}ylP8}*O$j`LWeiV9l0IC&9cwR#V$%+SEzl?60nvbn%r#p) +z#q6=j4$9h)9Iu3Ly@{^;9+agw)tfSm3*J?7BbbI`D=$5YD|oGIg3AC20(YI7kR6M^ +z6`1FVs&H)UW`#4@bWn-FW0VWu-1>~hV$-69)WTli6$X%NNqit?E#1U#zNLoUGK8Bx +z&z(g@33a0^xhZ-6ChZ!rX$c??X7s0Lpj@i+)kECc%OAu8p?bk=no(eCfXgTOsG%I$ +zYXV7sYv0Y!AtloKRbBAfFpJf_&Zy`@vPUyRa0BNb93CDklb1Gb6%t?c9;(r=uCLv8 +zEI9di?o|2m_-a9!VBS8)FS#L~a$XIa4cw=P_aEW-eb$7`*z!}f1Qg=-^A(8^vZR(Y +zO$HV7Ghm1h56VfV(DWIavW3Uv6j#0Yfs@1duLn_k|BDgdrPIV^)KtIgcPFvaKn^Ej +zYPUfFQo1YyYY@X>J+0}ydRZWxUimW|8B@X-ym#U~ +z;68xW0JCxlAPtz=;#<{PR{2v>5Q~*Zd9>Kvy)3ZLl}bycsN*OSZ5YRUG#5^qi( +zb81*(Flemdi~uwcn`=?n&<8Zwug9E1VBAF(6H6raGHY#dMCHaR0)#oTW-%p@>UN9h +z{Cs4PIs_Jw%Ub!uwsa3N|mrTAcuAk`>U)ydA&5TK#ABog0H>S$&NGe&hh +zAMxe{v2348_ye&N>-21&-{I@{Yw@dS63baxqlUa`gNb|Ce*E>vAH{|)pdfALU{O^a +zK>;2RW$@33?EjI1p8g9s6|Z$&3C899>T46-@ve>=XJta>Q_`J)k2^O&%pK>|2EjQ$-p|wc~QP(BY(zk5vL60pr>B-iT1r7uCm0vy2<4-x5Ebg`va~OKdiB +z#Kf1ahZC_%5B$u+}jGkK6Dc%|aOL#Lyil`fv +z7||f`L?9WK<})5&YP4mgd|Ymrfi&Jw6-R{M^b6&n{oXumvS>h3m@rgNFg{t*sw+Pr +zB%Y=N4X@W6@5-ww9{^$Xy*L=4j5D`jVhX<%4qmY(@qv1jb}B0Xp!>U(Kx2JFBR}Mv +z&WcZ{6q%!z1eU!SIcOUu_E@`-Q#RTa?*GQaAcZ%3ix$-?$r376j_hVE+XeamEgmX} +z8E@mmmhL9u?$Zw$O*V~?-Zor%;ur|n!d#49v{fz_L$}ioQFC801S4BlI$U(~IDZEf +zBz>v*xy-X2D4yd`pSy>eI>w_YHSJl<1fTlgntkq*W5>}z?$i12feykPQ)bD-gg{%e +zwNTF?1;U^5V^%CHR2I<-S9~gwj4V}sZX8FN{d&lCflQ=%H?8N|xn~njwjboddSE5G +z9-@_}5X#GM?WGZf-zE#4yLh&)M;}IIJ~~iR&}<~O995=xI$57YU6R?dO;n_hwFDn! +z#Z6voNAY~FeS4Ph)MsR=DK(Iru=bMwV$wGixNR{huMOkexp&1{sP!FX?LFIH-2RU@{H +zLHB=JbOl-!GYyjXv{)^J_Dh2MXRGmv?Fd>%u?8xC2L*k%SJ2oq1Nh^QO8?&vMY4rS +zl0%E%aVw}4XdXae{~G=yZITD^tRhD&6>&D=xE$*ayzZ2?LqXo(&{J4ekViHS1L7M) +zRu&wwp4MFDFmt%tN1IUHTTiik%&Zm5x(?@UUQ0(nvn^+Y)>|$7+`|0jx|`ln;;Kie +z5UtviMjfX;w~Vo!Z{%7nI!Ohk>|1cf?2w}*vVw??2abg1Q2N<-JLYIM(rM$*1Whj( +z^tAWgZ+J?Ue2WB2C2)|W>XCFuPR2ypcFf$^LEKgT#3hL6DbT;&S-SI>eg))N55Y +zfZ3PzVf-f_b6sa(Ayau0*>rA~fO!Q_(fIP50AT@wLj5;tn%&>zg#C2PLn?8NDgaL#2-Zx(Y +znNX{xA6~KA06!ZHY1IRB2w=&oa;f~H12J~OI*6-`^LD6=fLz!=ek{6+<`l&=E(a_G +zz&if0l8J6O$d5Vo6lMr_(P~Gf+(tL32Yz%yO}q&G`jsuSsv%3QRp{dP>d&_Hu<=HT +z{M(7W7o*OA!F}HFbi*bG)57cr6Dq4c5B&>5Gm@EFD>vN_ITD@ctooW^dV!o&664Qc +zODA6?ZtBYimNU}_0yhRjpW%gi@t95!(-}ILVuXJKRR{M#-_#YKO-mUsBPk8CKjc%^ +zWx9n2Kn-#i6SPT-mVaqRL9l`BM;E4!WHrB;%gr4S5_Y=hu7jhX-hIPDv?aev8*|lq +zsLjX(&|8nu_}_m+1k3Of-)!;ceAmL4M5)0X-p&>o=ySY09+t8>!)AlINGqAk{pXZR +z#s$dLNn`v3ZCjZK*lg5p2QjTJzo?=xmK$!Lj$^6MD{T_W`%slcV%z=fOmQ1AVuvtU +zk|8-uVsJI5KkkrGRdd;h(Hizs#f5TsM4%(MsSn<_9N*I1Kf^uO+a#^Ha`;50!gb@( +zRHQQ8{%wlg%)tNp@k8BA-}D1gTw|#0k6T&nl!om2Fld_5>9hxMH;O60y2IQW~a2$<-?&IwX+tV*=-WWN-tFZ}p~;IK?Unh630uFHwiH +zkqcl|ca1Ttp0y_%?S!DT_h4ZPt{n2W!&K$c3a5xA>~fH+yR_FaR*ctfak^_&>xN>3 +zc+Ez?A0ou>G#`oZEZMGeuyOX>*VGSq7WMQF +zn94PRc|o83(0h{x-+ab^E^(dbG%zo=A1(h0muGR1RKW8LeKT6*F+V4gS(u#P?IuB&IyA3J4#hIO_ojGwsXYgT3bp#Y>eM4Obj+!FGKp3*H$r +zfffhjc!5-|t+vBKKR7qwWk{2zecKM6GH@*5&p*;Rz{%?y4a^d<1-v73Dm&o@p1ajw +zsDI~BOhg(;RTIMnDiM-;+|r!mGuC%6x!>lEO)<N{utf3TQRbk8Q*Dv@ +zNn!$M32e!JD@A*P_bIiQtN`eG<_rtJEjyWJQV>lVz9I9r|DGq)PhiDB7xEVG@)Y3D +zw*+`?nrktqC)TKyuezsD_CGVWfvWq)+VhV;e%Pf201emrdh;3JWBrr`&UbuVzpxNy +z`+0MXbu7=ERn9DhAA_m$rRuoEur2C`e$mTE~(;KCM +zJB7tkW*lRFI!9E@S4oaT6E`0N(qnXFO~A9ftDwP=BsyAA+FlKjZ@XC3x84)EoLtfP +z95$b5;t|utJS5U8sJ@|*5*k;9|A?D)+x>%Jf&JmZ=YaaURa(l3J3|l2@n?P!F}jio +z_(OF7f#kC-@#0H@JX=ICzdkG)K6S3wa|@He8AH(;Tn>bKDEGP*MP+k4i2;)^yiK*u +z@QTavdU>NSMZ=l*YNCz+7Tdr(ZA8H)$$^@=pPB89l33A87QM2>H?YhL^rb4qcOhnC +zuJ(TwOjF-2hu$<<=ah4nFscsJXOA$rcSE%oSu!6MxREn;$Wga~7!5H3hGf(_V?-l1OclbJ-fLraoOGON|zR#rz`_p0p~BvnD&_ +z5afEE03Fu+#ZhJ%5%AxCY)0|rK~+10>k4Q9?OGh_9$?svqYc*L58<#Y)JV +z?LY;tv*#VGjLL`ZdaQVlMt+(M3xmY5$nLprC&MFJXGZTqiDpO1lO}FeY4{JQgUM=C@`+#!%vuVq`Iv~cVb=4X}u3c5uX`ZGB=UDd=o!s2x<~0VRl8MAe$hP +zqne9aS~EZm19)cOrgT@1VF1mB{1OT^Zn-CTxruViC{?7!zhi7n@ayOyen$ +zbw%d2Dpa`I)s$_cO+su-D27>|^q>|QK1%Esq$cC`Q!JHp-}#&aDL?pHN(4kcD|!jY +zOQL$SEor75_U}*?>Vl`h1M{j0Zc&bH*>YI+77~L18iWQ~S=(-d5%m8iUCNAP%|j+o +z3#0R*#^uK!;;q(vaH>rE1;gnE8$*YvkPnGmgZx{_c+7O6jSCRMm%r2PlzdO~4kC?nxLiDtaBsf|Ym& +zAjq{(Hxr~bR@eRu!^z4T_P(R-Y^kOAU5GIxBqEBT{WbY%#qdfn(E??QB-S$5I_^&o +z%f)C-?X~y&%AS-gQ8bJux)fne_^1?t0o_?{h&C|$po-h`NL$}JSyj>C;jrmeiIu2K +zP}ScKS?s_xrfkQfU{v)IL+e$BINhUH22;5b10j3Q?f3e3j5fe{#Wi@^OdI@$91oy@ +zZX7)E_sr=K4~}7WRr!{1MBp7@zfoJk>3B#0Wz4~+&NHxYXUd9LeI?*P(aDLL8{AP( +z4`#0+7+c&7Xneq=E-O0oT=zb|qlZQuv>qmpjIZ9sr=B4!PiffWD7%|XCi$~Ma?=m;ba3wIr}FVqfQSIFkxP&`f)I3$D)Pw`1w1f{&VJ`s#Hv~o +zSs8wi$TV_W5(k!df7lHrUnX?W6T*ocvIT$#V&{YGouR^PIi5#^Iy%x6xzbN?J=_3R +zwHhG^^}+k>jS#Qs7BDr%ogeF5jq+Jg>)jt3B*)}>1FB$OZYNM_$F^AXPq16 +zYsMgv>|hKwV${=k)Zjd=N^k^04oQBqzC3^@ +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 +zt+)luxX3u&gJgxhKzGqxU^ +zKQRwgJG&P_MYBo{QJB2^HjyT0X(3MJel8u$M~Nhskf_GI`Qbv3nI{xoXQBr(6>HY| +z8#q-|I3PJf)A`G<2^gM!>|8Eg>bFqB=7#XoHM@=-MNw~HpC5$Suf&+@PdL_hyLKsW +zIP>?fe=93ARz}j;V8nywLc9`>513|iTsv6ykb`RG?0xF-2(0atvC+wswa|#8%EMq_eRtRk=a^vX7t9(L4d)-hjR8sXGpXGlmzW1 +zRN|Izl<$QJ6a1UcCv28{2c$@`@^vHQJbHVKc{mYZz^N6*S_qCa4*bc5BL8A1*fYPw +z2JYc3Tp)&X$5;ARyZJrAHqF30aurWExCnY5ABof#`{zaAV0|y{M_3uo_x1Nl&|9in +zSbN;}$*{mLIm_=%u-xT0=n>nl22IE7p_UbjaFrZ2iPSDnMMx@2?_#Bc_La2yc~=We +znQ2Hco!9&LU2oWvQnr5IF`2A|0I2zA&tkT1hkSxT7Rd3zY7IOT5cRLJ2U8nCWc=>y +zOoMAXSci{y<_zR*@?Y?_*ojM`b-7w)v~B~Ong^bO=DnYQl4}fw+E>0Y<*=hGL>=B0 +zhzJ#fm#HWyaEZTO?LE?>Xd-lJcrFfU=C;_31|0sZIg`8$anp=Q9M}c%BiqvT +zgoEbW)NJ5KUR;>GsGa^^%M`p+$@Y22fI5!bhl%_9q+@xX7M$Q}*Nuz)$tPX*;htLW +zAu)r&gI@ozQdmj-EYgxu%0a(Zp{kBG*`V!KK+q}%X~fYY$M`EW8uUcdnxEAbjHUgc +zM5%iN`#YxKyD<*H(6h0{e8Szg?cI?{4aif_aW1n#oyyE#j6xg0@2|Q;9K%|dOETZKM!!`&#C9utv6TM+#6d=8 +zTar3YTI<6hqGXKA#v^o?K%M9R3^7hsa1}OqzQyy5*&{t02cGMS*7aFjotD(#^P7RS +zvNS`U!cXa!F*&sh)uaeHEE1Bt+i$Z$xoG$gk3YmJlq+WwL)^QT-Mv1ZT9-C}ZhBfE +zX&}pD`Y0_}CQ<^0Q99V0SO{5Weyx2BAd2vUlkA@`)t6tSJx?h+fg!63q2>NI!(jXE +zfG=-aoVbsLHPb+?*-iNvj^$<)K;A*asc;b{Hr+a;M^s%dSKE%cl)~ACAHLKCiI2n`}BvckBR5e +zoP@#RuxSVLDcU{qKQkT{P-;kCyzd_z_}(q!)M(`e5W=aN3c5oc<_gGPUaQ3=Sw7`B +z*p8z}{oINzl>gYJLLHrdHpFqh>1|XUw3zkmiA_URQ>0l{O}r<>;A%UyI~RHxLyOD7 +z+=+zarrC5(llw92+YmL#W3xWg0aH|X*o`VA9tn%8^;OopD9*5@5wJudhqaDA;QIKR +zPi{D*bk14EG|j75Y{v+rXsCd+i_~P>M}C8eaysR{gb1w<(E8-tQ9m`c3#f{}i@#a~ +zbpmj`KN5oNjtxr*Dh}D1aT}bGC5T`-Z1(};yG9qYbJN%M5x-ynvSVEPm;*)<`1SoHdU_MC@2#}U6^WT%` +zB{e=(?FMoZjIhKD@g2&KOZar%tMH%^*G@Rm6w@*ga}bFabW8wymx=C!@UB8xqYTA! +z9$W*6^SAVz(k%~w&av9+ +z7vC4w&=QghVv!Y6TqCga3B0<-Bw}OQl4%~=gZC(7bLmv^Ld)003|*+94KW|AhTNtn +zPhbX%6a+_{xWRJu1?Ep?@C18iSf4&djOa9K@B#!5g1@8&qEAL#nOgxw!t(j1M)a@8af4MVYMJQ>|* +zH&f6#U%wDD`|LO63K`UMcac_duH15VQCokC%tN$4_#S9Z-I`>-Bh=oGwIO8FwnN3s +zw+>=GT%CQN3=;cS>06ZcZAJ}&W +zzAx5Pc&P1z>Gjpff!e~QGR=Weaer|6m_`W>X+<20`W#L-CqK0QhZIIFd#i)bV@9W6C4>h!LX +z;*&gQq%Snmj@0(~m4Uq?OeNSY<=Y27rhU!#IIhX1?CCDnn8qv6P?>W~fXP*HCzo+J3a) +z4|%&)kU{pMhZI*SKDFVhl-ngl&rrNyDdXL}5H;PzHzNOjBC#M_@a!IhNI#Jl9>yKH +zUFWeJ%M=OlKtk4pS%9X}C77saXE5XMmwU{+&m<~#j>HbshfG-7=kR8sOU6gX4aqG*cqq&CCJ$2A=Eh1 +z7BP?q@CSO7ddI67z+=IdGNOP6HTT4F&cOLXb(9cZP&)0=hgg*qI&>h^g+2P23hJ4S +z@vXs@F{ij0^3gH6{Q|(*Zfc3){b)YRdp3f%q#;)&zBDZn)b~=q$%;yGH{JdvTgTt7 +zo8@NzA%#FwwXn^_)iDUAD* +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 +zn7HQlE +z5o9Z)Kn1VQ>Y{Bp6*u5QUA+Zof3F)svySTZeHegmopahc`1*qU6DU81HLtBXn=JEW +zgs|5QIYN#dDBW7ljg27&y7vz_Io&CzYM2G!lzF$pIN;nVzh8Gi@==S#e}}0`oI%%S +zG_%Vse5x8EX`en#Em-8$3%oG(FG7cLUwZa$bDWL;5~o+{im(e^2NcF`A9k0=S!1v_ +z07ukh2yR6vo8>P;c1E-6Ce;OWMH8mm<;F?|=FHhM{|Rnfv@67Rq%Czkp}K7_`xQK0 +z&RY2$xb0*gxnah2qi^sPL|qm3CIiH$u +zuH3t{LFdZ%6h-kN#%_I@j^ap!(oZO#dG8<1Y#dTZ$=@Vp=4{k9T$DLMv-ve=#0AAg +zDn&9jLC8dw<@|zyJ@LcjjEQxe4ntHcSi2{|1T}8EaTH>hEd41Dm49Q&J(3%}P)$el +zamsLWkk?c38W|)UP?v_6O@`v^@7w@EVC7NvpC~hjNXbOuSuTlg0!TP4$a3vunJg|n +zZcR1a7hK7=7=&Pv?Q*nS|LG(pzpc=vl{VV{c=h#c|Lr7)^E2ZyGKv(JM^(czp050M +z$8P+(qk5)HUGsD@#lNObO!c4;zZA}m#J7plX~mZ>B0+>w_ipel=rJSTswM4{@@F)d +zJ*JqTP`&*$s6*Bk5YJBiK$3_0G}q^x?BSrw_R2|3JE~tPsvNfDM0y5TMA(prVt18a +z`q(sIIMy34NaZc)Lz?S_MbbWd?Q+l6b1jsaV- +zS~Lfw&L!(Ag_&R5cxV69NNRlt(^d%_j)xgmM+zwCc(wDnu?IJ!!)DOvh4YGSj)MZi +z-PK|SKi7=@Vt$shnSE@nKBaU;o3q2OIK6YT#?zDrIFvFyej^QUcePg7zl`WCCQ-@#^nK}&i5owVvY6KszkgGE9iYP6nRjB3LzxD%81Dm4drn8saFGxii7fCYKK +zRr)#`%sK3F2o@LC=rvP(Dy>LoM_vgu=dBnlu7gE33=-tFpL1OR1SPz3jz;>I +zHGeeG(Rb@2&x&Qao8{eHyOB{cvRywN(_9f-){kYhr4a3X+5)U@bEbI?KV_k~rB3YE +zp#^TV)L7=0H=(lPhr^m$6Ft|Z)v1d=e%^n)?q4o;!MTW?s^ic5Ps~NDlBP*&T89L9 +z+uC%G#*#@(Lr7V3IKTdH8gh-K7QviASsDhtL`dw&PSPQIQf<9s$2)_KwV&R@=rzQE +z51XZ4-@Y-NP1>28y)=h}tYrc(w#R!^dws#qKDfo_!v7l7W;A6Vcfy}-DkQXtlwhS?u=t4NM$LC^Z?)AHS3z%RJaE9n46?y9Sn4Xn{6@qvGqn^dL)jSODXAgUvKMbT5R1|4s##*V6 +zZ;>fdL&wz2Kt0Km3osU0IGZ-#&kdzeX_13m_>8YU{e9K!>aU4Tb)DK&Gn{^i5GQ_U +z7h(5l9H!>?X}7)`z0Kz&nUG0KanPF;vzQs8U5hAY*z}CqMy6kuLh?Q_Ilz)ad`-n_ +z6Ir8-;^>O1=m1sGF%WKWSTTW)z)W>|J^ostK#>a;nXI-!OLo1|ZO?YO_NW$2MMc#W +z+Q%(;10oks8fM%$V1_OXG^YrSIb45Bow}A67grf2Et13@=r7DNo^TcuosiM%DfMLx +z>XF?p+K|TIxYG!=UmnO| +z6D|Xul{83%sG?qFIn-N1uY^*^{53R#W%WZphQ4m{ANw-4qiT(Ga}gs*;^GD#jZkjD +z{{)1NpKJ<@swNSkx~s4AZ9SF6J-)&J?{3Ws^cQE&Hltep +zjUT%{f%d1pK}of+pfA&NTdxfFyVKGTm7v7lM8@k*tE17@3vtzqMJ!}D3Z$YN?Co2; +ztMaqouG$|+CpgKJnuZktDKd;up6$rp2-l5;fO_soMcF4-69i{;P@0=?P=SS$%`2Z{ +zODW~vZy<&1V&pBc>1qK`^s+!NmBfcYyCoW={-TdEenD>qBpgM${=ev>*av;|C75F# +z=rO^>_(dNFZgy)w=;IZV_wo{P;6z@OyAjDH>h5^Ov77e1)07l7pluUy5c?0gL$LCq +ztGt9rLj-XodFf)WM4ANGkk!*m>(E7nxKGMgw3MF^R_aF>4mX1TOo +zj8XAj`1~MS{Ml;g4jSk6@CY@n9a>mg@lBwEuuwrmX!}8-3I+EZN#sG7f +zj!A8X7~M^TU4iaVnl`2bE@tOWa$-PFfQJ562L|=*af{rf-Bn`UDnU@H?df&a4Su24 +zko{7}33#(WeWH+?PnY0@4Bljjo!n&V +zy8Q%crWkCp;^6d%h|HUS(E+Bdv1Z$#d`*lP6rD&;EZ+l$EN#8S_X%y*xb7)sd`5>U +z#v*WhTp`ctUb4lIB{@+6p8oA$zfM^GXlK*#dt% +zG->FL4Gny}a46bSn5=!wO)5xCCQ?m2T!ZuqK$%Uh<^DPNdF56&RbJ()<{sDDbdD+WPl|YuBLIn`8 +zSkqQQabC<(S_W8auj5Q*;hYer;^ohz2}z0WdaR1hyYg&h?qPYiRFYfhB)$YiT2*~~ +zJ8KTl9dEb=;|w}>uv$qN-h$EKeEe(^IS(Ft6`|mRx$V~H6K`+}z$a`HH0-$Wkhzh3 +z53{vksMBKxLLGMUtvkFIYRZaPrlzJK-DNV#iGXMJ(8A3*W;dmg001#)KL{s-A +zA3jbQJQ!U4t}C8=JRKV9uEb~lM_XW%pAta^S@dy7f(oTInz=twyuB+NSVl}cb_P!1 +zVdD+$I{^D@J~bm#v}`XOJ%La+1QnH}1l>u^Y(Ej+>&BO4ejfV@GkA-TA+nn2{iGVu +zh&jl!{^K&&dd4heO!U~y!wb#gC|piumFQcKb5Z9oJ7C&0TN2ozcdq7%&oK>NRv^I- +z$o}m{=~%BzUwfs31fEgAKm~Qe7VlY|RGewtBZeR51js*-KP3*0>R1q_Tp#sk#8{cK +zlYo6|F8~_xJOUnLHZjJe_Gd40cqEu%HOv-srVq|9UpEj@Ln5kPYU>K=q!)@Nn)uEI +zkN&QNGiX|!u5iprF1=mz8t)kB!#Ev(pPd`X2`e_tbjyrHY_~hnsi%22%wC_lZvC7m +zo-599WG+D^$q}~?frS|VViB4*TDLk{DquGkk!evM$|lr~UFAK}b;{{S3zsO~7F(2U +zV%S}p3dd44=daZTqwdK_>};bye^bBCE*l!JN@W}aQs{XD95h78&8apVF|>f30P)4J +zbO9RzUkqWJN|P(8Y%p~ea@TtdS5vK>t|BV<`gr{b6}y5?NNCfX!({Uqi!>)xC7Rx| +zBCt|q_L=M@EKWjC4=xvA!Pa)6_%p6aj>u$*lswr2bAgawnF}j2P3ZIa6x~M7nOB)= +zel0!lpj=}gJmuKar$L(!-guNYQS32<9oqAYH+KBujj%fed2l*a^kyDsyb|I@@(Ox7 +zXNEa&uVwV`r<{93tEw0>)`q0aFKD{U@r7JpZ$zH-ucftk;M2Y}CL17-GI{k1=Xy2j +zOefW4ie0Ut1yb41nZ(EzjgPr=ZupKCFd#G&X7>l3sfgv~)qekiK@2)+lbA!xCl_%- +zD(}>87;bq&^7Cf^mIE8>Udim7;k` +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 +zOF7r|FT6OT`5$z|yVp +z#b3(wg&$)Q9ckv56i_8%czV+~dNx>m-Y$>3E*k<-DPkF}ML?#IgiiktTld%=2$!zw +zI<{@www+XL+qP}nMuinSsn|)ywrv|b)o*w2IoDc$VSF6NbKU0~2T&M@xrC3;p#j2M +z6FDYg$%Ti%M%0$FJN<7HjAg5&?~s!UErjg!iZGBl^z^wY>3qP1U)|xmj$rO$`p +z9;*K{;dL9~OsJA(%Wpa0=$UM3LfXVUPjAP!6<7oFthx7EYbo+k +zTR|s5A26+tG0Q|vRRUKFTW=v>SB_5(_F7)p2qP`L7p|HFO$m5S0)I5-q@hp4# +zUA08Muy(&eQlXy|cOhss#kp`qJR_Dt5}(dwW>zB6D5j2;!e3UueB`f8XNKfdPZX`g +z;#J+Y2I)thd3-9<*VrZrj@Y&TQaZGttYffd5(d(`1buqA%sVd_12$*&+Q9#XB_5;6 +zNF8*e%^M~;J#pmarVPO-W|=P1-E|HgOSLsHToOnc@bp_e7nn;gO2i@pCXhh64i}VZ +zpapMZ`^ry7x5DEkJ1D9|KNl^G1h$tzL)`(zMSRi&{)yO&R{CQ7Xia~{ziG|U1b2pP +ztS6|SwnZ%3&-$c~@HWMNWUbz(6mU>bAkK#8(&26B(gc812BcbF%22timdfXr85X<0 +z3brTdH9G+mBU}6E16WPk{MC6Y+U(>i=w2n2SqRm#-N<&4RgHL6BBHxP{G&D>#@y)W +zflgPWjk*@816f2vI|D5pHQC?4-}P5OP!HAn$8z$sYYj*$=0 +z%s_nKZ;E>GD~3)P2~nA70!5axDJf1>DW-%~!VdfvbXR%!00+iEAaENG~@V61^T$}Ux11N!?K|Wmf@6Rh%b&>|benu3VegxMVs&2}y^2mO;r00w@ +z?Jc}ZH*EsqzhC@AxH# +z(KZwZRy0s#l?q%e_;VUxQ`y2L5y{buT-FoAvvf{k12I~RnwAm`L3c{uA06UT`U-ZT +z>jA~elB)SLv*f>@Iz%1nvX1ZzUbxvoNRhG*UTAd|>Z+GsbS%9LU}EBh(aEH>Mk|tu +z$yYZP^2r?MNY!p;UdRNr#V1XWJOkrW8e&N3eymwq;NTvoQ$7yO!HHG#eaoCw2(V-M +zGp$N%Louvp;?jEP?Qo>qp5bf+Y8c6#ZFkeg+6jo5K%!Plh|wKu{Yr--ztpce|3K=E +zTtQnG;L7tQl90Iaa|qUxDqOw(d8Q`K(o$%$n#fK{>T@MTBtN~v006L&C7%}VehDpE +z4ZbW)f(lPaZWR^!O;zcFVx$2thv(+d +z1684CzOe_!#=6Dsz&&Etz#1sB%vFQ3HOW+DQiKCihN6N}kXlkUBT+?dRa$aH>=95w +z$-7-*DDUfIWmpb-8Jx~%1*u2I29=O}7fHt3izgJ;0gzaZ)9g$GHAr4%h(rRV0?OIH +z;$8rrgXLY*@0>X@W6C$l&$Jr=&PYVY&I1bgxU23O1R-9!S6_VjFde;ADP=@aS1FJY +z#(YA0HgVq!Yg`SQ>%JzfKI1q@Qlg&A&TY-YhAOUQIk^2u^?@>sp9}VjfE&>?t?qrP?ww=g@hArTEGd%o4|)-1=$a7!^wdFf0~ +zv}_{6!5%7|?~0-N<4-JStO3cFz2KY_)#DspyQu1F5#Sos*KT$VZ?*tYR)z48AoXeG +zL(I7+HRbPqaT=rOsQgpN^xx*=rx)VDwfLkpkqEPy+YXzbEP=zmHYB$c`_>BL2yVKD +zl6lY>mh$C8DBE`fBgG*}FFc(SL#0mZA>i^+L8>t?YTcLjMY{Kb#h^`z(qljGzM|n9 +zOq6n{&{OuF?vbK_%L@31yFu344d**+=HMx$;WZBeW-^tw13n8@*r~Y76mW+=nmuRZ +z^-+@1T3)MW$%rEzFRR!sicm(TaVfBKepm8ZoAC+e0S>TdSxkmq;FZh)Gd6JCrd8pT +z@n+|C#!?{m-%u@zn7u@9I-nTA<|)?r%%bCy)P5wRrXe%D!@6qOy$~k?l?JzU!m;N` +z7Th#&wqaFBm`u-I&E37!6ra@VMS?s~0*V}RJnY?w-RD+#B}zN-<1PrJo{Z1ve390rgz(Ao7dxdUwGOI}e%Xdr?{_X$hx5(V&48o|_@z?!VkP5YQ^3dE|Dl8V +z1Mf^o*+lL}B*oxQOV(EBvWZ$FN+I^9cG$&|qgm`!vdPefEnp~ayq-0JYnaLfr-W0w +zBB?9?8vB;Y0jd>E2<(DrouqBVGu7NnPFU3N3Eq@P#TpshsO>@5h^0Py&#o{JhehFjfBqWoTW1jVq%N8I7UTvN6-Mt +zap+`+OXOB$4wZs9L#$H(5qumPwh6gEDCSK+t{zLySLx|NbKVXa67*NA6-P-REh +zOW4?7B-4C%>kL9C6r{@b2n}il)bEsQD{j8ooA}*WNgXH+%-_94!7&<+TQM8toD|Ar +zKSg_IJtAw~EmIsnw+px^Dxr0+xvTOGtX`|_wSVOWvcyJe^2`KO6 +z9QG;Hkv`THR?41vJx>1Z+npmF)lst~wMCQ;Ub+Z~IN7ljY69@Fw0hlRtn1CXsx}dd +z1Hk*WLfOQ$3BELzLpX!r&So5KKjdO;j!w%p%)jd +z%*U!+AH)_Ogu~DQ;$BGz3<;b)UI7h?XVB=sb1fZpSrb1DgI#r +z10NMb%Czc8`T{AcCovNxT2Ij8w=kR)&CI7KIfNtJ%vU6$G!BO3Lz=GRIYs=1teaC; +zqYa8;e-DR40i(4ZtbOnGkABJj01XAYc`h=`@>s2nVMR(T$#*_?lEc83snS6%UjeWK +z9{>;CXc`~w_*Tl+8>}K&+KD!R$jPNHU?aSW;uNRHkx;j7Omss*5m?VWbB(n@uB&Gz +zNz^W~L@?q*YltwInB0NFDyzn_h2EK&*6i{Y8oAkYluz5ZR~xe1M8>_Nv&9 +z#ob#8Py^#^^2b`eAa&c6=Nqe3e1ZKJR>?g*<=aYepORAV@K(eLi%>Zx75}0p%bDpP +zRwypt!ZlR?8i+NCm!>zhEsd&2VC&xYA^0z=(%P`hF-Jj5SovASTvI2vb*V?p;o2z1 +zocHB$QrGT01K5IA>5Ht<*?BjinVZFV?e~pHF5^UfIWR^LmB)=?FzMXX2^Wy}-a94U +zU#Bt>M+WbjIHW!AWP;GM)=)~WbB# +zv&}kyJu*86ay_;xW=%sfq)!3WaxL-ljnHkNgf@nffaXwp&gB7q<-rzQaRhT;u|kL +zZzLZ@x%+>~lV#s0LqChN9HkjxQhspM&CJ3Zs;KK(f{o|u?Lil+cq +zxX}!3UO!nUQ8zoh)kqq?zY>R;1aZJAA#Wb>mz?}bUh)POUkRDDVjjdpK$L4Ml@+~fs-FT=4j +zX%>mOqIjFU!B~5C@@2ukNS3+ig=%0oYEM_aOxVJ0+mj1lLK2a^)?GMd{J*TpfRM-? +zuhWYc))r8W_Fl7D;AgUmRyEqv7w=RFyr?R$j-l^MqIhBs12O}5zJn(gv#qLZx|8E7iS*Zrv~^&UV{Bhg+q{2k}7D5g0%)-x&OZX44SfOA7fvB&jrb2&_w3VlCbv(YwKfpOIx1~grc%p71WJ_;De%5Cv)5TF6F`s%| +z^G@}ndMcbOmIFpk0;g7ZQ>igb7;>t<@ail) +zT`MIw2xOMaUqv!h7I38g7qV3P#CD|$*7gCx +zSNn^#vkIE_^?6f@HftIjm;;fv~m4;@H!rG}bI1Dtbclkw#=$dw;TUR1Y$YI?d@?5;H!qtDBA6_7ox(RC;p75%Y31><@I69YO +zeVo3oV%kCFa;tRlbZN?yrMJZ0{IDG<%~tC-1%5i&;Z>KK%#6oWivs||V%GX=L@N9k +z?6H^vigpD{Bn!BNTFpQzGBY1T!;4cI#HD$Mf9u8*x%i+T-WTQLm64r~Y%JbFhnK(@ +z*%6VxV51O_N(*6fU$9q~v*N1JMT00+<3rf48mbWeMk1B)R(&1`>=tW0dA-EF_BDNr +zCviZE0Nl>{2>a3M@w~B^XO+`3wi%_Eq=~W>f$p9>3-reK%i5m_@u!5dsJHXdb +zyseJTu>Da`KDYq2tTYbfBn4?y@eXE)SgOtuO(o%T3$B#r13U{0-WF&rE|&ifBa)D# +znSqA0w647X-n>>Xjx(gkSW$Y(!_&C_woZR}7N_ +zZ2iaV>-AJ!t#A|K)h!TY1=)-Jdxih29ERP>1T9ZkEm`wov;yvwcn2vgSfd>2`{>yG +z)WzM_GwWbYp(KsjAgA6O81hr?$MabneTd +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 +z3;4GJ1>%A|`Q`=cLLr!I* +z!4>!FWU5x=R@H$M5(?tN^k?RKW1u^GB0sokU26NHgP*51otTwnP3M*xTd{FOVF1fa +z34|4pL@@-+^`xV4qA^pdmLb;a>*7j9BpiIHOpD(b2{qzF4^PSYaFO9ZEMsaiy##pK5+fPm+es0?78re +z1TbB$%Yk93vNJ%#lLLTN$jvNm?ZtU{(>ufUogL(@<`Cg&}j;arWfXOU&TYcRH*fP3(8wA?FwxKqlD +z2rQ3~N{|Rba19&XqbpN=Z5Dd#aH6%Og|9}}^{sl84Qw>{X^}Ox^9+ZiddZYqF +zxYP?7f0T8Sa2C?f8)eRIla>(bmc^y%%nK16{R?Frv1fq6a1*D+dF}w`uoxd>QUx)Q +zK1viMu^uA%m&(ZBJ?Q*bWvp@WgO@RYz!uF8aRa0KEa!-w(slW{=pxHCWbj6M0`X-m +zM0&L$0O^7?onSU=K_a$0mgDwsl(FqE%DDX(W%O1~wIk|BbS5NuSwIj@Gx?o%7ra}E +z&beTUXcz9vuKkhhx8?#QhclAsOen)R0p_oSi3_D&1={9|S-)*Obh_SGePY(_kcco? +ztvrASDf)5@9vLTW?Obb!&R9ooim(Z$SjUdQ9ZxWn(&Sp96vs%3H1?6s%~s>8qmB)A +zwAAfF#ip(U5!N^7*weSfD#eFbg<~+H4yhGW_#|_V+@CDajdT3fu(0hf=f@?@8ujqtQ3s3X9)@uplZ^1}cuu)s0`N74U5FLpKl8viGA&eTIZBLXqw +z0VRoD&@jk5wuFEXVu!W?!sEJ6cw&0t&-RY>VLsef6+paIyYYnIH4NFSLs;g|v|Y`l +zylzq_F_-;hS*@OUOdd+Kg9K7Wuc6@rdzPJr_$HhQ`<=99%KMcQczM!U84u1qfXU)N +z2yBIUqM$db;(3LCglsX0MP_eMaBB7Bp{@MbJ#iI>J-JX*2kM3y06#<1agI<_3?iy{ykchmNS8d7?aiuCfiGo-xyFM6R87S!%&ZFtR#R0ik +z!ZLvzhnCM{{kh-}gcP^M@B48QXN1p8S+JYMUdW?f%#cK-@V>GX`2mZXLaXY0%Z6~r +z(%Pj;-h%BGVdf;(#l|S`5nqqv@gO5pwHhD +zWXOu=V`lb3uh>vqDeAaHO==_t@XFv^_D36=~g2N+PA~s1A3tTaVm}yTO_oT +zYS6(5=ce3%!3{9oSNv*4W4TQ-tYHhN;~#@DoOSQeWtr|q +z_S;}A`nSO-WDQNgiRIJ!kHJ_dSNku6asD5JG5_0Oy!vY}f`#{!3j74Q&#sP(y%%dj +zD!wv4OvwUb&|exVplfv?&+O)8Ah}?lJC!rE_4)LwdDmWJjc#$Nu474o=Otv(h4l6| +ze`G{$!ngnj*uG=;Ee-Cj1o`UvOzog^iRpFPBEraNvbD!nZWa0g|OuiKR`hzkk#mMnk%SV`DK>i*-~jkG6=R%wh6B`pnm@Kj`D3T!iq+Y?u^+% +zkuRh**_`j5W|XCi<6?JxF!`-_4g^niby!5q^-o4D8f +z6JwWA5L9AFk}EEcmmSdDQmF&<81?lF$5k;=L;m`UK>xqLnDk$Narpn~FA9JAizI^I +z{$eFoR_uTLMQ`D+^jzl5Z+|i9ufK@@kG~lB?JqX`+g~jCufN#-?Jw%D0(k!8FZ$c_ +z2yUqbjQ!hRL?AH&fz*>#`s*(u#r)S_Oq^v?U_z>E{8(5!vG;JyQ)Qwf88Zf+rjZde +zUYx8yy_l602(wV<@?-cNWzcPg!2;0<2cmlWFs-f$oSEwG-DrK3gzEV`rmT)v^i|8QT%W_1L +zgY2}KO_o#WfF)6(laffZJpRQFtDu2wWNeyc)ocQWfq0H!8!T~jIVMJO$lvUgJ)GFM +zN>(@Hx*iTUB2}=8LFZ*o=dLZTnpg%Ian^IDhT5;RuRw>8%`VA2EpqJ&wha$^KZa8> +zr<%BEy`Xh%4(inWVf;{n!l>}8{+nH-_b%Iyp)$O8e=;UXLjNba +z82n#!@w=>MgIfL%x+wk^U1a@>E}s8SbP=HGU+5yuztP2_f6ztiF6IBAi%3EqMoOYa +zL(Bp`eHTJl-}BFs4S@kPd4%=N$P0kZ+NB;pX7FtmQKn>PeXDvZe%#NNyXR-xC(Xy~ +z3q(b^MVGS;a0WS;{%W5-BI9o+^erjD5jPYvl|(D=#kv6(g%9R^7?PA93i=uHORe$a +zy!;(EJR$>&V>Jr-E`>(dCc%*aO5;o}^=C-Md3o7;V&T^L;xut_MZg^8z=S3?{15u3 +zQPR5I)4eRc!HmVX<-ED`dl!NPX9rdog5_xp7MF|=If4s%6|KTmdetU}*|HE6XRC{OE+P0=M +z8u?$~qVPZ9V(UNPVnBjXP}v<)?TxGBzFCnGP;IR-06o;=7)r`&D2$bID|diR`!uj+ +z(EH+@NHd#;?3Bks%=E1jwd4sKr!&nN3GSG?XEdOS7V-^J)R(m}5!o=lxwk}rrRp{!aPJ6)*d +z$^fT-aF}>**u0-S7=mwIk#y$Md4FVILBtJMRT{Q+;~IDj-C-PjF%@AnC8oh8&1dkA +z0&NWj~}X+^1ks6+`Mklu31QR}Q)-ra6{3 +zxSgGM+$oSENQxAJvxZ0;BrZ6nedkWL`hvx*bbQ-7Dk*Q`z$jS~xBcel?RP1+=q|!p +zM&8F4aWa=lmDuTD7ncS9>kBz*^18b_v7+f?8?Rz}2Maj_&{)z*T0i|rKO`HjA19!J +zNOnm2(<#_uk`fEw?_KU=lw;{zkY`ShorHEuCMhtSUhP69tKBO{YZB=zu(rW(;Y%^J +zNx5p<3|?2b40zIfcmouOzMypvX%emv_IXp^wbK_Q7cNK|Ew*w*5X2y5WuIH!qtfR4vEO)sFN?7p7Z? +zUdI>mL^3m2Xf|stDYS~DZ_ysoOtHlyCa`2t5cy23sBh +z9Q}PiHbXI~dkT+`y~=T%2X&RuaHyLJx_MiD_-52*@#eY#MzGwRE@5APnJE~CdV^>n +zdV`qFEFwcBsp5mj%5nZU=yklS*)=pLK}qvRfr_g^Ffr%nv3^#6&bHH?>7U16O$R7h +z!Im$wDpnsl(gap!y@Q7WAzF!2O9nEJK%5Z~ +z>|vSyFS@b|jw~^GMQebuC@-Z14LH8w;pam$slN!Gevv-4Z!pHBUpL&EBzn*udnWeL +zTO1K!<$9&!Z|wZmoJilHEyz6^KoQa}kg`W=;G6_=n6BR3A9VukY}?dgyeXBD3F9a+ +z&1<#fP?D%wnIyKsxS#HBoG*guhm6a@so7_941r@uckHZQ@~tM>e-vDP^u?C;jg`vt +zLio*P#fd0W>fG78Jv_2uI1MSZPU{tED&V@?E}$8{T5ZdhzWK&tkqXSxav*Dw{LAZM +zWuiovMzWusQ~Jl{%g%H7m&oDI_rhuBb^?i_F(e|$Q`S!uHsfd*{E +z*=G%YQ0mMf=`)9jkc+|s$(EPXQZb+*;plxlZ{%*p}0|H|~D*ePmF8x5rjPti55Es3o_~VH#sD>F;0N56xQ4j&JUUFFz4liM!ul5B1 +zK0_O4by9|Of6MSkf+Dt94Sp1%#{6^?m3>;x7H4ibAeC+g(wUbb>N{><>=?-9=5YzG +zrJ_lgDL(ma<3vu`JtN80^|W{9{jrJvjC)QTB@;_sKW8yLBq(bA0*A2{71E1pq;qy}t+nB<%@|ujn90Cal>V4hFqkOMRGeaCKQNR;055Ez2pj6f(I$j?2Ow@yMgN^o%(x +z%lC@@hI1{B>cYR523^?eB%BL;{=mf3Ud%uWItm9oOKYq5v|7IkemQu{nq98e!oRz9 +ztuNOjZv8Tl=4Wt{o(;_n@wI(JB(tu+(`&g}h15dJN +z?2*f4w5HMzw3+X9Mv$=tf!v=WMUY|CFPfzexqV5lEQi@a4|F99b@ftGBZBiVnmOPR +zGkGO(OR@0%G8O>5Fph15MyhtkfLr0>{K@;iJkU-hS)gNYRX}afRG)_`q_n>hXMxgg +z)R!aTOP3x%I3lE&F>4p0%(YdGdCyZ?Z>Er5wFw8WCVB{Ma-)h>o4dK0UF4*%0Equ +z^9MqR^=2H%+{>W4_kRUOtxtQxae;uC2*F(>0eOTbc;oPF=&TSuMh-)|II+h3IHWzvHCNTDO`PPCY+$VonZ_y|k)^7D< +zU4F??Fq}EIsSV;E+Dwebbi=o%JPhac1Gzt=om3fvFI_NuTO*$J;$c>_E`qgj4h2G +z5>b4Xk00EeQujKrr`Tb}ueYed&4x(9fFQQq>6XAMH%j+yG^V6{$<$4&Zw&0gtfcDc +zs!)mRuxLw&oO_f*+tBh|-<95I?B$ao7H(cO>*CjR>wGtlWBPM(7ed)^75bDXN5qH{ +zH^_`(XfdTPLT%K*~2)jcMQIC>ydbt0}_jP +zwk9u9KZcRFf5(sg-|-`&0?**V +zcm23hW~H+nxvWFxsx9Bp%aZwdKGi*xpl}Y_z>Kl9;FSJz!+KL~GT&V+ +zIt5E?riT74s0fPlrmoyX^7|7g;kX!c8d8hI(#bI#TCm)Z8|r7c9dCR8)>kHs%H1ue +z75XEP^dFxA!kdD0=)^EoaRs;i>?eEv`lUXUDW5J_%f8N!RH_Sfkvs}$c(CqdKcXT2 +zX6KXmH%I+j6Rl>u;Cyr(ko)zaJ-mrcUvL_Oeo1(*Y36FEhFNlcpXYR28-T9)quBY$ +zV-oHwe03wCxzab&=pTOgB=xh~Pe49pC$XHGGU{{yss1ct_!o;sx#^T3`@=a4-Ee>FSuH +zqoH@849gRE#|9fY7ki$a9GaN$W`02D_l%5!<@5prSd6~lT@{iAN#}R-;&pBVQ0rA(Z +zjm6sp=YdYw&1pgj|k#Z;9Nrop|gN-LDN+4QqjHb0Sy$~a&iy|uqdLdOp_R)l+-9mgv{S=&oPko*zpFbgk$ +zA_!5q9I>Opb;I7~MnFHIq-^Fal2F#2VE*ha&{$`pvp^v@vBX?RgA1MBAs6E`9e&-> +z&+3g>r9W#&wqivE-l#0r-SkZEnmr@_CX8apVE$CfzJD +zt1V*}zU)yvCe=f6Z@eG94(rOt(#YPIC +zkxQzKHO3NeQosgOG@U`%ZeAGhPk=VH>~ZMXYdE&srd13T-o@f}Net3L$9gMN)0I!4sHE))Vg7lUW^DE@x< +zE+rkWWIZBfJ~KXmmZK3_I}a#f^52H~kOhR8NP}<&5>S% +zW*ovA8VtjRU%nWd^kBo}VfUKd-4+(8M*<25`S6iz-J2|AXvwrCL**ya@yXN4%Y59k +zY6abEDLP4+93%nLS~-3k``DB6Mv`&nn*{~F*sPP`Y`6K746$b3O`AQ!H?@8{J$zDT +z-`8yP5BVrFlZw9Sb&+_?jEgO!5BT0)s||@(aK9|zWByam*`)DZ06kIB%aO7W1Q?@e +z*qox4+7}w0wb{=EZ9IxeM(Lk|)P~BgpB86i +zb-_URfDRNj4AF#A#qRWAT*ja4aeC^=a9}cyHQeUajDbe9T(~Sh_3bcq#z+QT1$u=46H}gk +z$CM#pVVZiYZ6T_z{~u-dz+P9wwre|f^OqMI`!n3g<_4Bv55> +zIV8Tw-kJB!r*hG^W5jdWo=LSke4O4KUHCLPDMvpbg)EtF`z9lNAhfqTRszO5w_+ui +z2Y5up+95bvFfYYQe@tHlr4(8*D6%+2>XUZZB1p?4s3li+0)drRoyHDpY781^sPu +zS?wzb47&#;JZcDytsw0Sj{_bA&CY4=3wSVyl@Fr@mS@FCzKytJ!hRnwng?zEt-`Up +z9;tjK&<#S_@3JxmP*yG)^sT-C*S0?sKmWkNrOs<3h>mC-qRSdiD^??Pt?GnA6VgYiUPurh1q)P|VDfHyWjC3`x*2|L4SkC{h}$`+u; +zN!dKxEUd0Y8Hc$ZY}=5L{- +z0vwcZ9GHXP2`ARrx1*3>njgvk&7rZ@yoRx<`)sse3G+N +zQ^_t_Y7}tZ)QL3Zx?1a(ussj?HOJ<^LDS%7yA@u*vuvnx6S)&jrJ1h1dyp)h?;hmI +zy9YVw!26d6Ir$F{GLBE3fu*`eBY4RD-GfB!e)k{?k&(c09K>6=^Wt$s27Vz)9l1A_PJCUWYuNBh_ +z;s-!o38T9xRbR!YgDLox8VTVq5fWd%0f?FcGHuV$uxryF9}rlIT#<+?5U91r5P46# +zsEKGWEkTt%aS#;rpQ!3%fK{KD3c5G!f~QyEfoT7V)(CqF`ox!fb|WYvOs`?>do~yF +z46<5(OWv$KY-J)9y+1gM3NPmdXe`tIy|LtEJ<|TUl?1sDYWHKhv9n`DzAtYb@k{I& +z#LT$R&nKZrNOiFrl$Garj)!6}Eq2Ilr4gacRIa?=G9*&oZy6H)Zy8dZ?hz!@)qfOE +zy}$o!Q`s8v7D@V`#`FDVFnt+%u>G8MSJn;;!(Po4MQEXE2)KEI&hONc*z}*NrOvDr +zD*^*TpfxxA^s731FSlh3ta@nic1L?52hl%bOXj~~OZ?oZz#?N8kzW^^#QyS?TqP=V_In$y167>}|yz8T&=*BmFe433Uqkx@K?G4O*sa@tz +zNvDBWPdT)^GEFJAl9=D2niWLx+xJHCcII6^%FCs+8{MPpv9Uo +z(DXBFr?*+R8ycKrons!ntm_02#GvE=u=YHDC&j|J!?VS;yf94J*4} +z2(`Yb3`|zH?=H2?Sfj|`CD+OG?XU@7ifx&vFNt^dw9}Gf!>nH9qdRpI)-~4DMO_>d +zy8-!sX)Z7RYA)S>H +z%Tn*eS@4$<$&u(;D_YBT+w3E?-=eD^otyZ!d$7VA*`xo+uT_tg`{RK#Yi!0vi}e?8 +z6?rHskX%3FX^jj+0P<>`Wr?@JZzghd;oq1@i7ITDaHMQxVw6+aDmMDOA%pu^BsG_ny;um7lO*L8 +zAMtm0S**8W-vKf~bTm$fnNq=qX)rszEr0s0Bu{qImS_0&A@%D6A!$k@F!PE_X@*Ah5g#i=%S&vz_x{T++!d&eSA$pgAHJNCaoGO0!|Gzg`s +zsq_hft&0E~wl6tFA7+7*;kCr7<8SHOG3Go65* +zG{TWX+a#~QsLY_6i3l1@bS!zsm%b_9cb}Fh +zIe)F3)p&Zo>t3zr!V@uk!sI6N9#40T9``KTr;*ca@p2Io_%%@MK{kX2+}2ykVz+Sh +z5@o&{)~7yBONra2*1D}-z?uR=84p+-0!bo9UN9CqSQV_~Au(dlssY2EP0?kDQijwc +zu&BT6gY4OwrU7#Q>{3z**~OoYLM5Jzw8b@q)o$;IQITX%S(k>C(W622>A2Ir#&=`< +z3qkxC_(yI}8xpmNqCkNxD7A$8PA-Kpz*^LDjAjApn}a=eFm{SLiAGU06RRXBKWbk= +zG!p2!c~0$4;WF)#iqAqNO$_<@T^ndfFa%!`E685OWm-pem}+nB5^|Dk>`w+NrmlfU +zq3@h1TfGC&%=ze+$#L#e*rqNdx#j6j)3@5{ADCc?pZs$=ry~Rfw*p0q5eji1Q7_%I +z?YL=1@cd*YxuBZ(?IQffS+ux=rx5k>5d5JCIL|$I#_@Hr4?A#1DU0{}+a+zm=Is9z +zn26j8WJ0dl8F8E_F+2VI%E3ljY*bl2#ZQz4&rR1jF8^vq3fX*-VbJN=)l%=l`aFhc +z`@%hHQ(Q=Q%uxHCF9P~Jxp$2B_4zJS_r`=2QrF|;IH~~-)#Y5@YplKYdxWX=^8<$Yxc$nM8nGx%BWMYa6vHZ} +zI2L#tmARQ@R8BsHmK(P$nrF>5-}x^O#Kxy@IEf#h@0l?js1$#E{m%-s?tfO8b-yc2 +ztlds-&p3{MgCl$Y3mmD;H6I}|^O3616UDDV)Q4NV#$Z`_Fp2&zI1*^-Hyla+>O%N$ +zaHP5R{|g*xZ)@P@_{hLD@&C;}){B=HgbmMee>l>Nn|ILr2`~UVMLweu+NJJ5U +zABjx(Z+>L_9IUo&@yL)AyC#MtckN6*T|J!^A=i2KYW{Jb9k9!l0c(Pc@S1pMl-WOn +zOv`dWkm(3<@V^F`W`6~lJR6yzGU#Zh>M#ERNN$7w4M^Hwq-oJ-Tt@!C2AQR;{hYG~ +z&Y`J4?LM+Hct)ZxtO{r?wKNk88c?qpIC|g63yiyAe`<1OgLch6m5^bLj@x9__SnUM +zT6XMJX*I9V{+d=;#eP$32qoI|)w$*P(BUUMO81N6om09Qmpu1SKCdeRi%XQ4g5_#` +z8Z_@i56i3eL2N99WA3Ccf-~YF#*_*kDcEX46*zrHtAxKOGgS&2W#n-%6>qY*Xi7OR +zTMW^J56^xZx5>o>fM|01_*;=A&_<{fUV3LFAO4e(e4(ejoAF21Hzle)C}kW#*%d)| +zkuV)&Rfy+ZMD|KTV;fE_aN}L-;*pZ4Wv5{&f^bAx#7p?9q_91@lgC}UuHm_eO0J>> +zU?e3m{$?bLh~F8>C|bd$jJx)6rSe{nJ?-uGm#kn;)s9A4C|oS!TY85MO0 +zQqgn<*FWT*)YCwT4|NRW9^3&oR +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 +zZ;Jn&Z$5qjUgH6rZkE{Pp +zL9OS+O&rLivZrK{u{7k6_2rc683IODc6NO`#>0c&^GA2uF1|J+xb#U~2Gf+wRXvx7 +zdB4D!!R_$(Q{1&w;1ESb?=D_veDXji|%alQW|E8S=%j +zSA$#Ak{P-Zn>u5UG_YMwc9{mFte=s1LX|+} +z7o1wsW;)mhmV=1D3r?zU1N!d;XE~tYbT=@^c`rC`Y5o+PBt?r0j2KNHd?Yw~`O-~C +zJc;B5vmvDS)9tXr<69g{v}>6|9ueX^_J8kLqo#a>XoE!VPa8(RxDGRo7UF$3CtpyafH^rhsdeh3OD_h!J?6j2*A5r+a9`5bJ$H&UUk`09ziJSt^%bVC%!b-GB=Y-e%J@1(5nC|= +zw&m`r`|$pc2Gl_Ez!Pi?5T1&M2-Tzm;e@9qeTDdXR!=WR8`H%(U`SEC4ZoHTH`KJw +z&4R!mHc)*6*?ncBlWgJv(_F=p4QJ>dOqfSkan0`|r~`NKpy_M~;5=Ht0L +zafQL)Orpb-jCdtlGsGe6H%zZ=(QrH=btv`|V730zHIpBcetY#TS#z4zc +zwi2({gCN06{RcWJ^^Q(bR4N8ZBrpH?gH9HpQ)Reev;T!o`a%2)Itfn|Vi0^>*mtVh +zBwnSXG{qya3jhJ`$`F8#HMxLv%^|7{nyV@$To!0J%_JZmncW&#)9{Ro +z>%1Y!CBClYwXi`vy1HCch|nesnaWl=`rWYaDIycGW5_?=pz2+k42Vh;j)jG&sFKZg +z>|Dy`|GGb^^kvoIE2e_NFy(;k^B4JYminE#mXs}mu@29%P}TX3afLjkBK +zn`rg8$A$my?W~?oJ3KWkGBHts%_Lj=k(30Y@^$U1UHDcYD;8&R2gGK6!m&Qr*A(A! +zybzYQFtBK@!?`-UE~z&a{U>#jP?(r8M_pZ-Zh@N23$V8dM!+8|HKUOnPR8_#gq9gR +zK*mX$A#&Faks8sQSD`$K_QWq(rbcHrv10sa$(XF;H_lmSD1$lkH#}+dnuBnp3VNUXs6;8?#_#SuWmltlAjj9SKjruVNEvg~|AUW0Xcv7>Ufu#9#uf+Mh`hecNToW0^5o +za?4QH#Aft0s*Wf`A=)SskAqA@ftzYKSfqj+$gAI(CoXUlC>wM|JcfP%yKB?s0`)>E +zfELK$M86i^wo1Up^TE2qm&EWHT@0Z!4bxV=qfqvE^3Wo&DQUq)9!6Hi-=@?pL7u&zz|y%fBL2H*#P<%X{kqhGw8he|* +z!yX{9r5SIU)kjOX#NI2D%olLbK-Hwd&U~^t-#3*Z302>xG$uHI;OHF$XC03l;o&c% +zZ-|vppx$CgO>7CdSy~(jSLr6=pu%6kyE0~kFvYF)R6?iZC6d%-RZ=>?L+Fq#%2zFH +zDM}tvuTfJ^6J!Cc)4&SVP<)Eej|WM}@WFhs)sVfIBH&OGRv>w0&7`*SXCoqY@aa+8@m;bI6Yk|5pz>B+>k`v!IZy|9Q$P +zQwi3~&~_F>*7YuiBPcXs89niA)A!i(FSqXLVX$V{CPA2RXlMGSis%w}dcolLCw|iq +zgG|Iibn&|&_IuEWT`<%st*<9K5#ieSn0Vs*j#xl}3g6<5_A|Jy_o%JF688$$_8Ua9 +zD=(@yWkbgjUmFsv32I5OKbu;>z}J6HQL#&v1>uD2oqZ0R*MWQGA2 +zP!qLbGb4GytPvOGQ{PK|fQnH`e)nt*<(Y~H(35^TMg0F8J*k)vpeLOM|Dq@J063mA +zXJ^BFxAvzNzXjka(OZbIZ%L +zNSul~rVO}n4Ju>rhV`)5t7I3oC1b52@+m3F5;73f6Gv9+M}H42fb7lj*n1<}6X@z) +zpj!2LRDOof>X-h2b1`7>EQwy-B+h~8SNT9DH7ls{sI2TR;cxfZ>Ns9;p*tOQ*R(1+ +zv?z6TKSAB$VPv9uSNhERe9GeUA?LMN+gB`81Z!QmkW383B8WIUC}bFpZMlRfp8&-R +z;Hn4^gT6pWFvkzWbrbU^+)NmuhJ?%=y<=p;aManOc%-?Z)-trBb!@Qg0U(;O;mg&d +zWbkNKX_Qd)pv9GdYRN`>j$b<8OIM3JRx%`u0=jEpj%GbYL-+GQO%y01ahXuh_s;oX +z6iSIN2t6{y^qk%`kj>ge=>{=chH{X1AHv>>Pdh_uCy~5J{emG!+=`hskuE9Dv8OoA +zdFR^S5;@S&QWL+BEl$G}X0(CMQ2k7&v1d(X*kY}nZSWcP?^=JCCwc$KlOKM|lf^WS +z*3+*4CQt5f0pv-EKk}sIf0ZXy0P^IgKk_8OUJ${fH1HMbyF96s|7Js?4v;4&0PS=3%~py@+2wB7i)k#8ODi1_AXDh +z{HHt_^}|CA?Vi0q~N-P0tz0rKRD +z@ZMhRuQEQ&BdlOjCy2QjcY_#9VpQ1wzw%@U5G)8ylh|qNat3I{*g1c*U3M;|=So`~ +zBN(lN_7efdN)fg1RM~wV%(|) +zK3b#}BkJ&|=1mewI>nV`>(iLbTJsqzP*2l9zi%SR5*%k`SS%D( +zMC^7LfhDp;(dk{OfL=4*rqIWwTb7(bF$0a5y6N-}3FpKjkZU-XV7ZxWT1|RYG$qT# +z%44oDnrByr-_^NbzcN9huP4a0!DC}L!r;=Dx+gxH+op!ih#FHFmPU83AfLKG*Yu{FDnJG(nC00$cbBj#(hPxtiVWeyiW6_ElBd_c@4SAsnT8 +zIc=6K3gsp1qj*+0k7GT}Qw7JJpdpzUHAn1L!O%?DR^25lJ~d>=S2%0WZy$=e#p0)U +z!gR75v%-p%+BWg8jP`9Aj=?@$rtpX`;d43YY*Pu_sIh$_zVgOm90Sf+b2MWbUFdu{ +zH$|aMDcs3KE+%<;v-j%v-E~m3JoEnf92was@uO+j2h&_hKhXHYKu|(+0dX}^ew3|{ +zQ9)?W$o;-wWc)3Xd~D)kbB6%zTrR|+Nd@!fV#F-$-G^XZZXC0X1K!Oq8R)VUz`IRf +zuup1=lD=9%*Q5&?CKS8@LC(*kqhY{8$5i{g*&^C)!|@zi#(p4|k2c=#Uav&9C;D+* +zJM3>&=?Cl{M4=cF9_Rx#A=b?j_ocu!39U0SuOez-+HbwTa#|S3R_RHtA99~{y297b +z=Qw4k(ODT<(H+Bx7aO4o1-H-}SD +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 +zDm$%womKP$62(J02 +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 +zMTb!&VeTE#giNE@TUjSgBooilu$9?Z +zVhGMb&WI{VNa)DMi|RsM6^X$*uDM%Le;O`4G4hWVj}EbzwM+-telqj3DFaT{XRyhp +zU0UUvJ~VdXmc52WNGO^aYGBP3LfUptfUft9n4Ka%b#?vqUAJAM!M4daSrUS9vW;D| +z`w-DndwE`W^nR)_;3zLRahj}3g|$(OoNbv~;a7HdUlI_C;6cmwhZ(gT9)CzC;{2^? +z`QAv7gl^fBCpVK4y(zBXPOFkpUs1Sh|irtNOzhW0;!5MgU1fjoNPmf60=^5Nfa^) +zfH=3ReJqu6h1$Yie1o)W*Dg&_8Alz3Hsi|5dFZRRq1nr+PXL4|g)@;AP +zDFZc6CR&ZK6{n%d6owgXGlD)?4jf1G$PnpR6sBsW04nvFqBM_3WMZitbmiVN)KGV) +zS%AP;Vv-*#rSPhj3-b0F@9*yIM3Ru5BXbS(!@4+)WhZUgQRW1bZ1z#ahSovBCE6&5 +zc4VkDV3gr$znh^1b0B(SXo6$NFb5z>WWgBKk%q<&ls%E+LpAnt_Y6K!nm}hb4uE|3 +z^Ms_-z+Meui1G?lEYT&=DynH9!-s(bG_{`$+&6iQ1e-EHLyD~Y!I5HA3<-$2RRG@J +zB=Wyo$z%gXlu`X1s{#pMzVKPn{zd(V*+dQTRz*ZxxT1XNkgwZ>&ml?PtL!NZD}5rD +z`7|Kz@qw0g8i0A3^NA?}tS@bXcdwt6E!oqBRMU6EMo!v3s0Mn}+~`Ea=NOQ-Fjt)dJH`&|y7M}HkCbOJ +z{7UDoF%q!N1dx8((0u84WhNRIm3j24y)8NZz#>#a)n}>8etrT=8VwF0+(#gErNDb= +zkh4$Y!}=eiQ-U64c2B~Zp2H;rvc&sd^ +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 +z+<7?&4;2(s6+E?BNK_E7TTLP5> +zOwww?=y-u*$E(}>H@-Rgm`0!#7rPO2ge8)2k_50neJ#mflQ73ckC>hVL{En0>s>`P +zGKF^~WOU>*tVlf}MMv1qdeBY!EW4f~rW(CT+mbQkOym6Kla9!z%XI=2MkEi6=`aPd +zDyzIpJI`rMlC6BAsU>4z2z5w(hGIgtRNOjWiEPab&b``jxL3wL>1ZK&-OS^xi~vBM +z(^LXLH~>+GdZNADyA?CRl#VqT_Og0h%^lWmW6B3#taToP1+jC6P$0c$#GvukPx@H^ +zQO+dkNJG*VW&gCU!u0O#7KBPxoemtzQM6_D*N$*5cjY#)*3pV4B^erRHZAF$W4xdU +zo>hNE`yN=)5V+)J-~(2q9k_9;_NUNeXxxhvL+yZawRvyell~Q@^0Aj3{5OG+^OPf3 +z2y!!TkdD(;SNpqOL9?5Jfz6deTu>0aBEF={Vj5@TN#a%MiaB#>dtiL2Q%Q3zP*5g~ +z=htZb5IGaSJ +z?O9&=cvTSOlL13qNR1?gp6l$b&-sS860Ywc<^`n!3BjHvhsnVeMN#*g5#`c;Wvc&) +z#I3Ic9}+*Wbs5@S-=-Lv#FsxoHSReD@*vhn6Zv8!9)MJzgYIvS(9eLxvg6clh+4bM(jr-^&}sG-Xmg+ +z%t~O7hTOFg+(=H!%S>ezXTO;-#IREZ&^M_-Z}1@in>^{Anj7bp0j^|6^fij&i!hwIeO*&_s2^0P +zG}aC8WODOkY8x8;!Rwr+GOW;OI)aQ#NjnkjsMtOPNJ7PXN2IoAWS>kfE|2$?r3v*! +zwJN@1(Ss<6WM7h+2a}MN7#CT_q4^9^C-$LgPRuaG#Rh!CW+3$!175Ak_2S(QnSP48-WQgq?k!HNo9cQTkvZ`iisbr6c +z9arVHv?TBoO%V*>*+QryiSqulBN>2HX`2Lb|JWo6*ND+0d5^AIQh>Pdw@Jn{lkH+S +z(WX<3O``!&yEW{=*YXVP1`LPbY^C@bP6{??7SPucdFGLa&g$qC@PrqRCUU?)WMmA| +zv{nCOFj9KnjLU_&4L3pyz>2<7F-e0&%@>{lX&n-_k@9JRpeIeSL$2clAio5lmUHye +zM=2VH2AQ)3IgvTkgF&e87;Dp9=UqVx9qM9v^9RN|3HJS*5DjRr5sDSP9&Af}rF`WrQrx+eUlWD*E$6+l +z8c^9XQ=1lQGvB8a#?d|&VfHdV?Y8OT98t9-JC4IP@fFF{usxaP0iWFpeiI|U=qloj +zCZp_gWX_Q|&n6{N5j_oX)t;J?nXuXZccP-QPmDD){kSSyTBIccC&CLM26p!xM-0(F +zx~XpK7`|F-vJrN4oEb21w^pA@+QercF&>`3U$Nej6p*_BTA +zjo#ps7fJoS+M8i6D}}M$AeEK*3TfUp!MU;6(^V}di$VRL@wiA|+K86pHF)})m +zLVVe=IN7sg@d2aE?Lo(y;>yj%#SoQXHm)L}rwCpkQ%2g5sn +zh-=fjp#8DTYV1^y*)JYg*%H0$ly;z$(@jD&l1p1WjYl1PLtJrCw;ZaDNV*v*TQh!| +zEG|r9gG`Mq1_{e(KZs%=98=Fc97;Vhd|~fB+J5c{5gs6l*);IkUR*n$(BP%2DI3m5 +z7XOnPX(owdDni60d2qUFct;9e0}rfVorX3JYFms|BsA}vH?f!2V%s1 +z84=ziZp^^~DH7#h3*Jh3h*2+oFaZm>&6(4VL64GC!q##k9n#J`kNd6j5orIk<5IVC +z-bK8n!Az$zGrf0`iAV$^R%La8^%j{@23cRaA!8?Y)q2l^Af(=rc9EhAEugHtg<0&JR6=wjQXjLFwhPNZsCz1>30vegTjQHV#v0mKAMJ +zs^`v3!rRU%|A9{(3^jYY6L1kAo4#|}BY-nJ?noPALHUGrJ##|g_f2N!JwV*)*f`su +zqJSl-m8kSgd&^`;iR8B>KEX|tXc(f@McoV~U4H?-Gt-ODsf40PCkE)cpe$f?Y`AnG +z2qOD*XK3n}F%e%IyTm!8DUmpzNHG48YVyyta2}~>>7bgEN=OqK-DuT}>!u072=j6KKw}QAbXJvJS&lBOaESkNbU=NjHOL +zEWBfm$w`L~ALe-ms+S_eMXD(^=EqRn^4dsqt? +zOZaY^&R!uG1k`MY5OdKnN3Jeg2lDy)_9!fvx#v{|-zBE&P#ML(q~R~QNZkmbH0&K9 +zCYFuI5zq*#8}~-}I!dyEig{CE>jAqJ=U#?QYY#+ecJCq1tblW3|KjI^j)*#4l@BRvbF=8k3?oUTE?bh8_) +z7vOmmgNV@VvH6q{o~Gda+FUDGQKfEXi~w#t2!RzQkP(DjI|<+Ru0jTzvjGlgW?<9QVafQgkfL}5R~*785lE{Z#uR9FL+4}Y +zw6#3elfqM|l_Q{ZDuc*63EF{c&7PCbbvNtWeXhevG6~-Df%&cFx2Q#y$bzSx11N3` +zFP$34fm%r&j*xnT_{erw7L|^$R!C4Qn6nzxc6(~0ghB*vRbAM@0Jpj4?M2nXZsyfN +z6G-v`JiTIw3bxDx$B5mNwyx3jG6xJ_xv3{fhag3cbYkaIO@M(yzZt#!B}n7@>4uiYMXi6MWMUPhKzho~om`2`joXv1yE?nl4jd)}IQPH!=3 +zn+D7fPAn8MPR`k^TTOA0s9xiZ=P31NyU$6)Pg*~1Y#oAqv{hp>1qqved6*5AO!||! +zdIW1Y5Ik7Ni_+{q);`%YjSkQD!?jWPyq%Llb7Fo`4;rk&YcrxJ(@wU`uE$Gc$4B +zA5`-i=^C(65j&a*z9Xe8*2NHjbR1sIOH~5b1Z1Q&vU9#;ro6m9 +zXx@}4&{ai?n|91(0UNM_Al(SueLY3uOgMMVHB)xr~8x9;5R5CYP)$dH)Wz +zrl#2kuTcRMHm`+9l>h@a`GjD^0O7dbc}G69Eo5S09}(6b&>GPG%-{n)eor5&M&!gO +zrdH`_WI;AED(ntQ1CgLP1ZNR!+^HRpHV+O@jT-C?o72>iJx2&gyz|x%k!uGDK7_T! +zsr>;UpW2}s=G6nK$tN#AOQd0F9FKnSlgpq58r?BN75(TJ_Cyl8;LM&^|MbPbn7%NN +zum1U;pPtx%(wq`E-GQH2vZywxFdMX)7_L}s9Ym-Y{;knlM26TX%&-I_z^qTKKe}8zcZ=oE1=9f=T +zTw;{pZDenEQ4EH3B=&DQs+eY_? +zzaVN%PG)J^qHN~Eg_`}Zui}@luHC&_G$vflr{?zgOP~4Go98dxFE3r4w-?jvGdFGc +zrlIX#t`@y +zCw5(bB6aAKoWMk5bZpw;ezP;ACRcPK+wja7fqL4@x@c+%Sr!u$M`a?QF} +zbx*3KV$&2i%aZ_ZnaZOaJ`J!``3)N4cq+`$!D${6+nhdl5`%zL_*d~;bl^FeNop(r +zg8Ay~-MEiFAz#HPUAzI#k!LR=DL|y#?=5rE?p|>!AObc=Pv|CTfB|Hvo?@dY-FY+t +zQkWQNHFUtSzeDWDS5iwL&pY~i>Sm}C635g8WdC2jiG7qPkqhcVexZ>xh2mz>k~}hI +zz>Mk|HxPNCA+Dw962~$)n%Mt7dwVfGxn(pBHJRRbTh61*yF(h5>cL=}i0D&4H-IcH +zfiu}t_Z)qQ|0d!1FaFE_C6o4Ow4K+0hZ{+;cmSa@Z_~>;t0-@5H0<`W=lk3MI&m$( +zamydYckoY^Px(tkYpbztxONE!L^?Dg9IL*_K)H@e!}nzV8+vN+vs2W{Lss(Lhmoy$FJp*#*&}*ecRmo +zYj+yodO9jG@6#TR7-da+Vu(pM_5Sv^ALQopkjfuNLDZq2%OrR@?o(~w(Cp-oPE2+D +z{(hh7UA^2@PoaUwUaWI!;1BYwucK^~CzED(@8x>Y&JFU(E^=kpHh272mbzQHo1Y=h +z1bx!pX$yDa@Oe5u?5c3@?Tub+Z{NttG`p7$a26cqa8dT+l%e(`fpaL;5%qLT1;ys+ +zn2BBcbaY+#68HM-!93`w4LWM+plz!pg!=AfOTOg#RWx8C!EK5E}8 +z@dG@uO%{eneh6EuX<@{)f|!L5v(=7qf{OPvP@DTgo@^wEhBknbZ&|c!2K1=LG}YRq +zr~TGyYn;(33xXm}bWA0wEZHLC`pY??NRZcE(e%jrWsVvX= +zAq$^_$vH^53*6F+O +z)9m=>jsN3ASQ+=>x+~l9k>jRwtMZ*J*=|?qvOZ4QOnfAG_H<2K$-w~kp&vy|Wtx>o +zCC7LgJ0Yvoo-nt_?9qM_ctlNse#)BFtSjec@v9lZ)GsRJcOQc!2AnDBr;HIiGIk?F +zcRV#D@}>2(Q~c|1{>v-QOypN|5{<)l$*|;~NNc%xHHBi=e`2NP4=sHs-fFU(7C7J< +z1i?t;YmkW%4T){s=MWR_vydoxnlKBpy3RwbKP$B+iKSUf44f`uKK%M9oN(9+hrHN-Kx*^ +z-Dct9BLT^0;5!pRb00w>r*F%VV>8zFXbj +zt&X>={_a-C^|bnSnV4@Ic#Uk&00TcVvDU-9ZenJ{5s;J`=q00-?Sh~GxvxGuXV%|p +z{cZBS_8qmxi8wcY)wIKZ*bQ}c^##(3{^P6FY@lEKvCLn8{8GG5wDY(x|Aftl!}70c +zy0hH~cB6X7a_jaO0^Xzk&2kuq4Dh@(YP7L4td|QMPgMj;*|ZjJGD(3UDH}Fa`nv`a +zIR24_YjHOG+;x9U;E<690_n(JYzy`3yS5kr +zxFWvsu1OBJ8@Ti8j&@@11{ZTO9zXZ!8&s|L&Bt5+G}D3SDrM#FReYfSQ;8XzU7-!# +znx?jgei+sl|A?%Hq=p}%%>Q)xYVNNV0P-oj&R_n8`Y6`t(U#kbXA^ZFTl&lzBj`v! +z0sz^yGsew90ejk(qJ>xXajcX*gI!CR$yLkb+NByrJ#vDn&ok5cbS$yn-wYt9>+-LU +zJNHgr#%dD#YJ;bBVNOc{0+S817UmE}N5U7K@m~K8eJ-w3-J_aGKBgwYW$7w_=0rh6m3xm~%L>?G{+rs7I!v>Lb07^_+{iKoHl4Ubke%@9 +zVdc(XY-Rz&@eW~#7wCxU2=4?6j5NQzF{pmaeYA(qdpADIGbi=0%6#?7X7lXnR4tV-1wkJ-XV#xIH{A>e|wzh%42?hY0 +zbl1i_-d&px2wMyH&iNym#|ue0oZz!KTwjL5937fraY$M&l3j&mh*a7KgQ;B|o^o3i +z<)#{*f*+ZukF7K<`>E`?Kx-7+77~&(wn@6VJqaEuUGR^g=OI?fh+2%_3EkMWS%v^N +zqwkZ%Z573fS*d64qq)ht7m>EZQPBi1Uk$1`Y6#&+Wx}X=)J&`ejKP>y*Gt*gfc;j1Wu6( +z5ygMcgF&yBqT*^P8?Kg;<7z2(;>dFMxsbHXtXE#PT>X5ZAXYF@Y1Y50?ABx<0QGJD +zn`f@DeefF&8+@Cuu1S=ZP7n3TpWAZ9vc~Fv@AKqzH3eXRgcXWzt67Syiv=~zgH)51 +z$gw6;(eLl>zuur$>gM)l(=lpai=-g@5WdtNIN{U$L=u&?F-$7gb>%~a#GnV;IQ)0F +z0Xrr`%p3x=n*d=$m1Lmxl>iK|mTznl_1+d=da*hQ|R9ef3Yj!UZ@I +zhjwq9kH6&(MyDZZ-y=2UE>GX*@9*B^@9F9=b@rp)LWf+$^l{FiNJ)v^Gj|}V*4KRX +z8WI3>dfBGib>9>pZ|{CNe7t@8?#&zOpS<=9)8zio-;<8^g+POTfq)?fa!&I=K2BEc +zzyFF+Q?5`rb#-}jihg6V_z5Oo9NEQDwK%F5M{aR6ERIg`QEC=Pi#Mdj;%K`#Di=o& +zi=)Nc)5Y75`S0}Rl`b57v +zQReFt)%rxUIzd|F^2FY*Ppsckxz&l)J*_{(X*KGr>-EMIXJ@u&XUelP{n?pueJ0J%&g{<4G-qepvomM!TFrHwIjzrR +zXHU+~o}8VvIXioDe)cPyot-%wF*~f!6c6h&+q2Qwo{jVN>^Zyr`pm=GH+?v3^Zx8z +z`}M@wRO#87v(c!}-c_Hquzox{bM~CZoSiuv!{%%>nr?mOd_H$)Pwwp5nX`9wXXDeI +zjdOQ454*E|{c!g7{%nr9vwPgx$h)%^y6WuAVSQ#en`6V-Dj3dsF`UhW@vMd8Sx*mV +zt6(jz=*;r%%l0l-Y`*wyzUW83_!9Zzi|31{*u_)qLarB!*;Fi^QY^+~yXgIP@yzYw +zyKEQVWV?9gb}?7C%Qq}WbGf2-i!s|Rez#k!wcTQ7m5X+ki?) +zc|Vrce@;odJkQ?(f2YH??^7>sJsxN6biYB8Pa#b#44T3s(%RxjRAFFs+t +z82oxMQ1#;N_44hDCDhpE(Q2TUlCD`apjixXv-tYWq5<9Fcip1l-J;>$Vi5bq8~Vka +zOIg(~I^`DY-7UK47Shu#KB!v^w_D6hw`jFnw9GB~?iPI*79V?9jOVZzmtpa~r8FEC +z?;93x7#HJmSiIq|7^S0&a`D&o2Cl5Ps5cNp<;5sj9=#YP^NAOuBszRCN|t9{jFR}w +zi%}Avc`-_&GcQKTi&64ol=!0;qa-@|M>I;JGq1n0m92MW{$hr_m?8eeiy5*w@nVL= +zXI{*Z=*){5vN-c%hQw!H%n&(xF+-xG7c;~ky_g}<(LbUYvQF;Ls{L2U-s@gWkrz`$ +zPrR5SixV%VNPOnS6p7Bfm?DcaFQ!O*=EW3|qZd;oI(jih{Lzak5*@vmBExl_*DvPC +zEbL#*5k2u@jx0{Rm?QC-7jq;!^J0!H&b*i-@tGHMM2=p}k?82f9Pvjl=16q(VvdM8 +z!d3b&Hc629FE)vuc(F+qCthrl_{@t<5}kRmNfu{bY?AoQi%lX&FE&YZ^kS3vqZgYb +zI{HVmNmeLZT(<76yIp?WJ<^_DeDz|DERSBSk@>`nH4+`ZSR>0bFV;wW=EWL`&%9V8 +z(U})(Ylh;LlUAgP(n_vIS$KQYVUvGcujVgZw +zKjoRbZ_e*tkJ2B^uv-q$*B?H-eP0x}_Urc_Z2G?VIU$_CzP-Dp0s5b2*S3n-d|ft4 +zVQn4;tJ+LuExqXup7@|HU3Tqidu`J0`WPFR6Q0Fg`zb$7FaMM=*=)NBXRf<%zWw#5 +z|NDRb>wo@uy!58$ZcZ;hJFjUfZYEbpKcX{%06>Ofv-}aLnwF=pKTXx}@%8^f|BN4B +zZ+eoAj2yQN{{3|iOU)2w;!k*hwas7g>oTVwnLJrt**v%e{Mx2YqV7L;%lgXY +z)8=dd{<85~JS;B{anJws#sB#QPGyyG?)Aqnr3JrkAHUm~yggp{u^Xn!(w!i%T#t(< +zT>$s?;{4GRw%1oKuYiW=V3UaU?QB#!+hjt-?QF*U3X99q?{D)<&%Jz>*|r8-N7r;3 +zQNKPvmNZ$N#t*KK1bu$}P`Ex{(k6QBMJa{KuWPkd-(37$PN +z8~cO(`5yWG>%ZAUf3D64G4`WRT|Mj4&p+4GOFzFj2fjbsc|PBb=nKlDuDkwPXk^d# +zFt=+v5GQPw@?clDc|yC|t8L$oom*a=wn?4RRPNj3k6ou}`#PTOv{Rb&-&a++yMOa; +zR#lX>j&&5;%VsrWN8hZw&TV1FYPi0=zxn#+7T)i!*?yDlKHgnc2Rg~&DM6*!m@3vJ +zuHDCHX65Gap6&bLJ*seg{PJ66T(aOD0~_kUi+Jlk-rnE6{c!t>PX4_p;ud}Uj`oB- +ziL2j{N|KPC|7!UqS(LY|6)t7Wb#}NmmSl?=^O6<;{=B`rdAxtS6mYZAMq-N9x8=j- +zQ!t0stHxxzzRY$Y>-&*)myxbUqx{@2@acr)lOFrD*cvr@xscyy8URS(CYmVo40%oa +z=s@GM62(91mogJKc^jBsqaQq!V6e@i9~|yjQvk7=zU%^58$ZH4$&(Q0!e1a8!h^{!G~?%cH9cS6=1h~P?W68m{s`Q|U&TCr(I4l- +zuKxxTfQ-iYI_oklkN(X%+Q&&PUtj($Ps0D^wf6PpZ}Zhr6=AbH!kmJC48oYiyR#RoIrr{?xI +zk-5F;2HV38{E$H_S#W5?6nZT&HRtcA-wS88g$S<{r2H{LEm`k +zmI+TZ`6qei(&MxKq|7Oojc#b`qO3@1tx7knY2^ZsTy2_>l-fWW_g65|wP^`w@H517 +zzs4LHc4Sj*cVGOj$u`SLcbC4gU%!3-{{6eV_xAm}`=4>ry?yik&3o$6f2YM$4w!6T +zNLy)yzaKl&sXq?=X#IyONLq2oyMD?V_S8K&X#Pyy$!xPfjOB?GHxYkXHXf}3At@gp +z+vCofoc~V8(+OTuKA=0C5pHNanU3VIA4ZUo;;#=|vz2F*`*PPF`S13Wntn^|!VxkB +zdP@?@wcL<>`9S}J)CLJ=Z*n7z*o{TewMtJ-(xRx$R+`U`tR4{pDSERdHE0M7%Y947 +zb#0U3z)$b8EqF@#;?!_|kwrrD$!$kkFWTQ$UPHaEhMn-%Y9DgFG!z4L_{<>&m>OH< +zW1~H7`@FY>?V)P$nX07G?S#6K+K{%*p`A$akU{JX=`$0xw4mW@d+84vM9VZk(o)qP +zk2Kxo;`hI|G~JE4_*C1$xLz2+aeHBYpswS0osLM8%9szO?Q65wLFQZLuSor&Hx@(H +zZas7QVD_U7lQrAXwgr8$Zl_aLt4RpJ(T)L7HVhWr+iLbUpi<)By1iN*-C +zkV|2x|1>jTOk@)Nrq|g`Q#KEVDWB)AVI&^^B%N#P4W?nv$qG|ZQO +zyOP@HH$-Cm!mq{9JiibN{PU|eHB+*$ESz&EThe8+%Fl0GY!ny9%kLbQMnt!g^GoB! +zspWT^^DE4l&UQAt5H8Hh$!{>{*J7Ue3qw2aZWlUV)|Mt%PICV84b;PCYcD={y;Yvy +z5$&Dl7sF# +z%HgH4-90BYBQ^4JqupoZ*ILoMGU8d)eB!Q(p@j@h-I^d&gGt& +zIkC2TVOd1#?}e^K`tawc&BdXOH0BFhNLvhTQ$91777F%-uYIm@Usy8>75w5Bv3*{b +zh&A@l>W>$9)3l|1i}vICx!x~y{!7zRjerYZJXi&nRJ&j%TpBdB8!oNu$dI`3rGsU0 +zp`~XS-eC|*uU1c(k +zcfMNK5F8-koRC*u0Yn`8!Iem_Nv3(GNC`c7plt^9`Mt@~^j&uU_CuEcjQ-*GZ{OS_DDiFXzDTDpxBJE@vFGwSIdrHtvh}db^I#s_*K;Lt7XTpe8;b% +zj$bW0es$jQtEl5wzT;QRjw60w=C40~`Fqpv?eNESAo6VKn7StQ(j{z>brs~`WWX@~z1-~S(9c``xoMib +zZ)HrMIy;m@F%I4*dUSX9?@`C+OlsH`K`CWUI#o8brs_-;oY#HVq3D#_lGk=?hkD@$reTT`bDEvXj>8r1DS8u*9-o1PC;k~)JF>liJ=S!zD1tb;f67DdKJySgbv2*5R0P%; +znzoB~HFh|*{rb7&!QfrqmkQ-F&#Yd2?61E9}pi;(2>}_x0>e(YK3Z52d}EjL&cw +z+=EYHV9yr&pW~XSx=pg3sXOl^`17{hnhh6S|Fp;6{bi56+};NVf%4#frgp}U`zzX~ +zPr@AX$pzP@=%r#{IDDivnsy&=U;h%;9ewoA&e%WGzoZP58Es5?26HMnWd2;ZwxXv4 +z>*MEc-QC}H>)!lbx9J|>p~|njF(r$82SalU^?g~$^;4(zmh5zk2lr!ikWPR3 +zq<^MmU2kb(Z$6*M_&1o)%Wjg2JdC|q!#}-e7gnU3Lx6wdMoYR!?lxnenkL~8G`E2U +z`S!zyw{LFl?yhxoAKYi}e)InQ{oU=&HDB{L(;6vC(+mlU*|)txu7cZat2Q;&#<^-! +z7&lass+wlIKe*(kyJ`QQPv5<{`LBm8H}AeXWxv^F*V}IRWSabwH07EfiwXJv0uYrW +IHe(MT0B -@@ -949,7 +953,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -952,7 +956,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -169752,7 +173705,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -2611,6 +2615,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -2570,6 +2574,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -169765,7 +173718,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b void RenderFrameHostImpl::ExecuteJavaScript(const std::u16string& javascript, JavaScriptResultCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); -@@ -10500,7 +10510,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( +@@ -10614,7 +10624,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( GetProcess()->CreateURLLoaderFactory(std::move(default_factory_receiver), std::move(params)); @@ -169787,7 +173740,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -428,6 +432,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -432,6 +436,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -169812,7 +173765,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -567,6 +571,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, +@@ -505,6 +509,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -169861,7 +173814,7 @@ diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_ #include "content/public/test/fake_local_frame.h" -@@ -101,6 +105,9 @@ void FakeLocalFrame::MediaPlayerActionAt( +@@ -91,6 +95,9 @@ void FakeLocalFrame::MediaPlayerActionAt( void FakeLocalFrame::PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) {} @@ -169885,7 +173838,7 @@ diff --git a/content/public/test/fake_local_frame.h b/content/public/test/fake_l #ifndef CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ #define CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ -@@ -76,6 +80,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { +@@ -72,6 +76,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { blink::mojom::MediaPlayerActionPtr action) override; void PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) override; @@ -169929,70 +173882,16 @@ diff --git a/extensions/browser/extension_event_histogram_value.h b/extensions/b #ifndef EXTENSIONS_BROWSER_EXTENSION_EVENT_HISTOGRAM_VALUE_H_ #define EXTENSIONS_BROWSER_EXTENSION_EVENT_HISTOGRAM_VALUE_H_ -@@ -524,6 +528,15 @@ enum HistogramValue { - SMART_CARD_PROVIDER_PRIVATE_ON_LIST_READERS_REQUESTED = 502, - SMART_CARD_PROVIDER_PRIVATE_ON_GET_STATUS_CHANGE_REQUESTED = 503, - PDF_VIEWER_PRIVATE_ON_PDF_OCR_PREF_CHANGED = 504, -+ -+ // Adblock's below: -+ ADBLOCK_PRIVATE_AD_BLOCKED = 995, -+ ADBLOCK_PRIVATE_AD_ALLOWED = 996, -+ ADBLOCK_PRIVATE_SUBSCRIPTION_UPDATED = 997, -+ ADBLOCK_PRIVATE_PAGE_ALLOWED = 998, -+ ADBLOCK_PRIVATE_POPUP_BLOCKED = 999, -+ ADBLOCK_PRIVATE_POPUP_ALLOWED = 1000, -+ - // Last entry: Add new entries above, then run: - // tools/metrics/histograms/update_extension_histograms.py - ENUM_BOUNDARY -diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h ---- a/extensions/browser/extension_function_histogram_value.h -+++ b/extensions/browser/extension_function_histogram_value.h -@@ -1,6 +1,10 @@ - // Copyright 2014 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #ifndef EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_ - #define EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_ -@@ -1827,6 +1831,33 @@ enum HistogramValue { - BOOKMARKMANAGERPRIVATE_IMPORT = 1764, - BOOKMARKMANAGERPRIVATE_EXPORT = 1765, - PASSWORDSPRIVATE_SHOWEXPORTEDFILEINSHELL = 1766, -+ -+ // Adblock's below: -+ ADBLOCKPRIVATE_SETENABLED = 5000, -+ ADBLOCKPRIVATE_ISENABLED = 5001, -+ DELETED_ADBLOCKPRIVATE_SETUPDATECONSENT = 5002, -+ DELETED_ADBLOCKPRIVATE_GETUPDATECONSENT = 5003, -+ ADBLOCKPRIVATE_SETACCEPTABLEADSENABLED = 5004, -+ ADBLOCKPRIVATE_ISACCEPTABLEADSENABLED = 5005, -+ ADBLOCKPRIVATE_ADDCUSTOMSUBSCRIPTION = 5006, -+ ADBLOCKPRIVATE_REMOVECUSTOMSUBSCRIPTION = 5007, -+ ADBLOCKPRIVATE_GETCUSTOMSUBSCRIPTIONS = 5008, -+ ADBLOCKPRIVATE_GETBUILTINSUBSCRIPTIONS = 5009, -+ ADBLOCKPRIVATE_SELECTBUILTINSUBSCRIPTION = 5010, -+ ADBLOCKPRIVATE_UNSELECTBUILTINSUBSCRIPTION = 5011, -+ ADBLOCKPRIVATE_GETSELECTEDBUILTINSUBSCRIPTIONS = 5012, -+ ADBLOCKPRIVATE_ADDALLOWEDDOMAIN = 5013, -+ ADBLOCKPRIVATE_REMOVEALLOWEDDOMAIN = 5014, -+ ADBLOCKPRIVATE_GETALLOWEDDOMAINS = 5015, -+ ADBLOCKPRIVATE_ADDCUSTOMFILTER = 5016, -+ ADBLOCKPRIVATE_REMOVECUSTOMFILTER = 5017, -+ ADBLOCKPRIVATE_GETSESSIONALLOWEDADSCOUNT = 5018, -+ ADBLOCKPRIVATE_GETSESSIONBLOCKEDADSCOUNT = 5019, -+ ADBLOCKPRIVATE_GETCUSTOMFILTERS = 5020, -+ ADBLOCKPRIVATE_INSTALLSUBSCRIPTION = 5021, -+ ADBLOCKPRIVATE_UNINSTALLSUBSCRIPTION = 5022, -+ ADBLOCKPRIVATE_GETINSTALLEDSUBSCRIPTIONS = 5023, -+ - // Last entry: Add new entries above, then run: - // tools/metrics/histograms/update_extension_histograms.py - ENUM_BOUNDARY +@@ -40,7 +44,8 @@ enum HistogramValue { + APP_WINDOW_ON_MAXIMIZED = 19, + APP_WINDOW_ON_MINIMIZED = 20, + APP_WINDOW_ON_RESTORED = 21, +- DELETED_AUDIO_MODEM_ON_RECEIVED = 22, ++ EYEO_EVENT = 22, // Reusing a DELETED_AUDIO_MODEM_ON_RECEIVED to avoid merge ++ // conflicts. + DELETED_AUDIO_MODEM_ON_TRANSMIT_FAIL = 23, + DELETED_AUDIO_ON_DEVICE_CHANGED = 24, + AUDIO_ON_DEVICES_CHANGED = 25, diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common/mojom/api_permission_id.mojom --- a/extensions/common/mojom/api_permission_id.mojom +++ b/extensions/common/mojom/api_permission_id.mojom @@ -170007,11 +173906,12 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common module extensions.mojom; -@@ -272,6 +276,7 @@ enum APIPermissionID { +@@ -272,6 +276,8 @@ enum APIPermissionID { kPdfViewerPrivate = 245, kSystemLog = 246, kSmartCardProviderPrivate = 247, + kAdblockPrivate = 999, ++ kEyeoFilteringPrivate = 1000, // Add new entries at the end of the enum and be sure to update the // "ExtensionPermission3" enum in tools/metrics/histograms/enums.xml @@ -170186,7 +174086,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -817,6 +821,10 @@ interface LocalFrame { +@@ -798,6 +802,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -170211,7 +174111,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -129,6 +133,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -135,6 +139,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -170240,7 +174140,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa #include "third_party/blink/public/web/web_document.h" #include "base/memory/scoped_refptr.h" -@@ -246,6 +250,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -250,6 +254,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -170309,7 +174209,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b #include "third_party/blink/renderer/core/frame/local_frame_mojo_handler.h" -@@ -355,6 +359,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) +@@ -360,6 +364,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) WrapWeakPersistent(this))); } @@ -170338,7 +174238,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ -@@ -106,6 +110,7 @@ class LocalFrameMojoHandler +@@ -108,6 +112,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const WTF::String& message, bool discard_duplicates) final; @@ -170464,77 +174364,25 @@ new file mode 100755 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -2,6 +2,9 @@ - Copyright 2017 The Chromium Authors - Use of this source code is governed by a BSD-style license that can be - found in the LICENSE file. +@@ -17,6 +17,9 @@ https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histogra + Please pretty-print and validate your edits by running the pretty_print.py + and validate_format.py scripts in the same directory as this file before + uploading your change for review. These are checked by presubmit scripts. + +This source code is a part of eyeo Chromium SDK. +Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. --> - - - -+ -+ -+ -+ -+ -+ - - - -@@ -36149,6 +36158,30 @@ Called by update_extension_histograms.py.--> - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -36786,6 +36819,7 @@ Called by update_extension_permission.py.--> - - - -+ - - - -@@ -102464,6 +102498,8 @@ Full version information for the fingerprint enum values: - - - -+ -+ - - - + +@@ -34013,7 +34016,7 @@ Called by update_extension_histograms.py.--> + + + +- ++ + + + diff --git a/tools/perf/benchmarks/eyeo.py b/tools/perf/benchmarks/eyeo.py new file mode 100644 --- /dev/null @@ -172193,5 +176041,434 @@ new file mode 100644 + cloud_storage_bucket=None) + + self.AddStory(Load_fishki_netStory2021(self, take_memory_measurement, is_desktop)) +diff --git a/tools/typescript/definitions/adblock_private.d.ts b/tools/typescript/definitions/adblock_private.d.ts +new file mode 100644 +--- /dev/null ++++ b/tools/typescript/definitions/adblock_private.d.ts +@@ -0,0 +1,191 @@ ++// This file is part of eyeo Chromium SDK, ++// Copyright (C) 2006-present eyeo GmbH ++// ++// eyeo Chromium SDK is free software: you can redistribute it and/or modify ++// it under the terms of the GNU General Public License version 3 as ++// published by the Free Software Foundation. ++// ++// eyeo Chromium SDK is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License ++// along with eyeo Chromium SDK. If not, see . ++ ++/** @fileoverview Type definitions for chrome.adblockPrivate API. */ ++ ++import {ChromeEvent} from './chrome_event.js'; ++ ++declare global { ++ export namespace chrome { ++ export namespace adblockPrivate { ++ ++ export interface BuiltInSubscription { ++ url: string; ++ title: string; ++ languages: string[]; ++ } ++ ++ export interface Subscription { ++ url: string; ++ installation_state: string; ++ title: string; ++ current_version: string; ++ last_installation_time: string; ++ } ++ ++ export interface SessionStatsEntry { ++ url: string; ++ count: number; ++ } ++ ++ export interface AdInfo { ++ url: string; ++ parent_frame_urls: string[]; ++ subscription: string; ++ content_type: string; ++ tab_id: number; ++ window_id: number; ++ } ++ ++ export const onAdAllowed: ChromeEvent<( ++ info: AdInfo, ++ ) => void>; ++ ++ export const onAdBlocked: ChromeEvent<( ++ info: AdInfo, ++ ) => void>; ++ ++ export const onPageAllowed: ChromeEvent<( ++ info: AdInfo, ++ ) => void>; ++ ++ export const onPopupBlocked: ChromeEvent<( ++ info: AdInfo, ++ ) => void>; ++ ++ export const onPopupAllowed: ChromeEvent<( ++ info: AdInfo, ++ ) => void>; ++ ++ export const onSubscriptionUpdated: ChromeEvent<( ++ subscription_url: string, ++ ) => void>; ++ ++ export function setEnabled( ++ enabled: boolean, ++ ): void; ++ ++ export function isEnabled( ++ callback: ( ++ result: boolean, ++ ) => void, ++ ): void; ++ ++ export function setAcceptableAdsEnabled( ++ enabled: boolean, ++ ): void; ++ ++ export function isAcceptableAdsEnabled( ++ callback: ( ++ result: boolean, ++ ) => void, ++ ): void; ++ ++ export function getBuiltInSubscriptions( ++ callback: ( ++ result: BuiltInSubscription[], ++ ) => void, ++ ): void; ++ ++ export function getSelectedBuiltInSubscriptions( ++ callback: ( ++ result: Subscription[], ++ ) => void, ++ ): void; ++ ++ export function selectBuiltInSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ ++ export function unselectBuiltInSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ ++ export function getCustomSubscriptions( ++ callback: ( ++ result: Subscription[], ++ ) => void, ++ ): void; ++ ++ export function addCustomSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ ++ export function removeCustomSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ ++ export function addAllowedDomain( ++ domain: string, ++ ): void; ++ ++ export function removeAllowedDomain( ++ domain: string, ++ ): void; ++ ++ export function getAllowedDomains( ++ callback: ( ++ result: string[], ++ ) => void, ++ ): void; ++ ++ export function addCustomFilter( ++ filter: string, ++ ): void; ++ ++ export function removeCustomFilter( ++ filter: string, ++ ): void; ++ ++ export function getCustomFilters( ++ callback: ( ++ result: string[], ++ ) => void, ++ ): void; ++ ++ export function getSessionAllowedAdsCount( ++ callback: ( ++ result: SessionStatsEntry[], ++ ) => void, ++ ): void; ++ ++ export function getSessionBlockedAdsCount( ++ callback: ( ++ result: SessionStatsEntry[], ++ ) => void, ++ ): void; ++ ++ export function getInstalledSubscriptions( ++ callback: ( ++ result: Subscription[], ++ ) => void, ++ ): void; ++ ++ export function installSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ ++ export function uninstallSubscription( ++ url: string, ++ feedback?: () => void, ++ ): void; ++ } ++ } ++} +diff --git a/tools/typescript/definitions/eyeo_filtering_private.d.ts b/tools/typescript/definitions/eyeo_filtering_private.d.ts +new file mode 100644 +--- /dev/null ++++ b/tools/typescript/definitions/eyeo_filtering_private.d.ts +@@ -0,0 +1,228 @@ ++// This file is part of eyeo Chromium SDK, ++// Copyright (C) 2006-present eyeo GmbH ++// ++// eyeo Chromium SDK is free software: you can redistribute it and/or modify ++// it under the terms of the GNU General Public License version 3 as ++// published by the Free Software Foundation. ++// ++// eyeo Chromium SDK is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License ++// along with eyeo Chromium SDK. If not, see . ++ ++/** @fileoverview Type definitions for chrome.eyeoFilteringPrivate API. */ ++ ++import {ChromeEvent} from './chrome_event.js'; ++ ++declare global { ++ export namespace chrome { ++ export namespace eyeoFilteringPrivate { ++ ++ export interface Subscription { ++ url: string; ++ installation_state: string; ++ title: string; ++ current_version: string; ++ last_installation_time: string; ++ } ++ ++ export interface SessionStatsEntry { ++ url: string; ++ count: number; ++ } ++ ++ export interface RequestInfo { ++ url: string; ++ parent_frame_urls: string[]; ++ subscription: string; ++ content_type: string; ++ tab_id: number; ++ window_id: number; ++ } ++ ++ export const onRequestAllowed: ChromeEvent<( ++ info: RequestInfo, ++ ) => void>; ++ ++ export const onRequestBlocked: ChromeEvent<( ++ info: RequestInfo, ++ ) => void>; ++ ++ export const onPageAllowed: ChromeEvent<( ++ info: RequestInfo, ++ ) => void>; ++ ++ export const onPopupBlocked: ChromeEvent<( ++ info: RequestInfo, ++ ) => void>; ++ ++ export const onPopupAllowed: ChromeEvent<( ++ info: RequestInfo, ++ ) => void>; ++ ++ export const onSubscriptionUpdated: ChromeEvent<( ++ subscription_url: string, ++ ) => void>; ++ ++ export function createConfiguration( ++ config_name: string, ++ ): void; ++ ++ export function getConfigurations(): Promise; ++ ++ export function getConfigurations( ++ callback?: ( ++ result: string[], ++ ) => void, ++ ): void; ++ ++ export function setEnabled( ++ configuration: string, ++ enabled: boolean, ++ ): Promise; ++ ++ export function setEnabled( ++ configuration: string, ++ enabled: boolean, ++ status?: () => void, ++ ): void; ++ ++ export function isEnabled( ++ configuration: string, ++ ): Promise; ++ ++ export function isEnabled( ++ configuration: string, ++ callback?: ( ++ result: boolean, ++ ) => void, ++ ): void; ++ ++ export function addAllowedDomain( ++ configuration: string, ++ domain: string, ++ ): Promise; ++ ++ export function addAllowedDomain( ++ configuration: string, ++ domain: string, ++ status?: () => void, ++ ): void; ++ ++ export function removeAllowedDomain( ++ configuration: string, ++ domain: string, ++ ): Promise; ++ ++ export function removeAllowedDomain( ++ configuration: string, ++ domain: string, ++ status?: () => void, ++ ): void; ++ ++ export function getAllowedDomains( ++ configuration: string, ++ ): Promise; ++ ++ export function getAllowedDomains( ++ configuration: string, ++ callback?: ( ++ result: string[], ++ ) => void, ++ ): void; ++ ++ export function addCustomFilter( ++ configuration: string, ++ filter: string, ++ ): Promise; ++ ++ export function addCustomFilter( ++ configuration: string, ++ filter: string, ++ status?: () => void, ++ ): void; ++ ++ export function removeCustomFilter( ++ configuration: string, ++ filter: string, ++ ): Promise; ++ ++ export function removeCustomFilter( ++ configuration: string, ++ filter: string, ++ status?: () => void, ++ ): void; ++ ++ export function getCustomFilters( ++ configuration: string, ++ ): Promise; ++ ++ export function getCustomFilters( ++ configuration: string, ++ callback?: ( ++ result: string[], ++ ) => void, ++ ): void; ++ ++ export function getFilterLists( ++ configuration: string, ++ ): Promise; ++ ++ export function getFilterLists( ++ configuration: string, ++ callback?: ( ++ result: Subscription[], ++ ) => void, ++ ): void; ++ ++ export function subscribeToFilterList( ++ configuration: string, ++ url: string, ++ ): Promise; ++ ++ export function subscribeToFilterList( ++ configuration: string, ++ url: string, ++ status?: () => void, ++ ): void; ++ ++ export function unsubscribeFromFilterList( ++ configuration: string, ++ url: string, ++ ): Promise; ++ ++ export function unsubscribeFromFilterList( ++ configuration: string, ++ url: string, ++ status?: () => void, ++ ): void; ++ ++ export function getSessionAllowedRequestsCount(): Promise; ++ ++ export function getSessionAllowedRequestsCount( ++ callback?: ( ++ result: SessionStatsEntry[], ++ ) => void, ++ ): void; ++ ++ export function getSessionBlockedRequestsCount(): Promise; ++ ++ export function getSessionBlockedRequestsCount( ++ callback?: ( ++ result: SessionStatsEntry[], ++ ) => void, ++ ): void; ++ ++ export function getAcceptableAdsUrl(): Promise; ++ ++ export function getAcceptableAdsUrl( ++ callback?: ( ++ result: string, ++ ) => void, ++ ): void; ++ } ++ } ++} -- 2.25.1 diff --git a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch index b347c364..6c33366c 100644 --- a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch +++ b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch @@ -7,7 +7,7 @@ Subject: Eyeo Adblock Remove chrome/browser/BUILD.gn | 2 - .../adblock/adblock_content_browser_client.cc | 17 - .../adblock/adblock_controller_factory.cc | 3 +- - .../adblock_telemetry_service_factory.cc | 138 - + .../adblock_telemetry_service_factory.cc | 127 - .../adblock_telemetry_service_factory.h | 56 - .../adblock/subscription_service_factory.cc | 2 +- ...hrome_browser_main_extra_parts_profiles.cc | 2 - @@ -53,7 +53,7 @@ Subject: Eyeo Adblock Remove .../blink/renderer/core/css/style_engine.cc | 8 + .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 13 +- - 50 files changed, 3290 insertions(+), 1158 deletions(-) + 50 files changed, 3290 insertions(+), 1147 deletions(-) delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (100%) @@ -133,9 +133,9 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b diff --git a/chrome/browser/adblock/adblock_controller_factory.cc b/chrome/browser/adblock/adblock_controller_factory.cc --- a/chrome/browser/adblock/adblock_controller_factory.cc +++ b/chrome/browser/adblock/adblock_controller_factory.cc -@@ -63,8 +63,7 @@ KeyedService* AdblockControllerFactory::BuildServiceInstanceFor( - auto adblock_filtering_configuration = - std::make_unique(prefs, "adblock"); +@@ -65,8 +65,7 @@ KeyedService* AdblockControllerFactory::BuildServiceInstanceFor( + std::make_unique( + prefs, kAdblockFilteringConfigurationName); - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - adblock::switches::kDisableAcceptableAds)) { @@ -147,7 +147,7 @@ diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.cc b/chrom deleted file mode 100644 --- a/chrome/browser/adblock/adblock_telemetry_service_factory.cc +++ /dev/null -@@ -1,138 +0,0 @@ +@@ -1,127 +0,0 @@ -/* - * This file is part of eyeo Chromium SDK, - * Copyright (C) 2006-present eyeo GmbH @@ -186,7 +186,6 @@ deleted file mode 100644 -namespace { -std::optional g_check_interval_for_testing; -std::optional g_initial_delay_for_testing; --constexpr base::StringPiece kAdblockFilteringConfigurationName = "adblock"; - -base::TimeDelta GetInitialDelay() { - static base::TimeDelta kInitialDelay = @@ -202,17 +201,6 @@ deleted file mode 100644 - return kCheckInterval; -} - --FilteringConfiguration* GetAdblockFilteringConfiguration( -- content::BrowserContext* context) { -- auto filtering_configurations = -- SubscriptionServiceFactory::GetForBrowserContext(context) -- ->GetInstalledFilteringConfigurations(); -- const auto it = base::ranges::find(filtering_configurations, -- kAdblockFilteringConfigurationName, -- &FilteringConfiguration::GetName); -- DCHECK(it != filtering_configurations.end()); -- return *it; --} -} // namespace - -// static @@ -249,8 +237,9 @@ deleted file mode 100644 - ->GetURLLoaderFactoryForBrowserProcess(); - auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); - auto service = std::make_unique( -- GetAdblockFilteringConfiguration(context), url_loader_factory, -- GetInitialDelay(), GetCheckInterval()); +- SubscriptionServiceFactory::GetForBrowserContext(context) +- ->GetAdblockFilteringConfiguration(), +- url_loader_factory, GetInitialDelay(), GetCheckInterval()); - service->AddTopicProvider(std::make_unique( - utils::GetAppInfo(), prefs, - AdblockControllerFactory::GetForBrowserContext(context), @@ -362,26 +351,26 @@ diff --git a/chrome/browser/adblock/subscription_service_factory.cc b/chrome/bro diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -16,7 +16,6 @@ +@@ -17,7 +17,6 @@ #include "chrome/browser/accessibility/accessibility_labels_service_factory.h" #include "chrome/browser/accessibility/page_colors_factory.h" #include "chrome/browser/adblock/adblock_controller_factory.h" -#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" + #include "chrome/browser/adblock/content_security_policy_injector_factory.h" + #include "chrome/browser/adblock/element_hider_factory.h" #include "chrome/browser/adblock/resource_classification_runner_factory.h" - #include "chrome/browser/adblock/session_stats_factory.h" - #include "chrome/browser/adblock/sitekey_storage_factory.h" -@@ -584,7 +583,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -637,7 +636,6 @@ void ChromeBrowserMainExtraPartsProfiles:: ExitTypeServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); - adblock::AdblockTelemetryServiceFactory::GetInstance(); + adblock::ContentSecurityPolicyInjectorFactory::GetInstance(); + adblock::ElementHiderFactory::GetInstance(); adblock::ResourceClassificationRunnerFactory::GetInstance(); - adblock::SessionStatsFactory::GetInstance(); - adblock::SitekeyStorageFactory::GetInstance(); diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -325,6 +325,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -326,6 +326,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } #endif @@ -393,14 +382,14 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -26,7 +26,6 @@ import("//chrome/test/base/js2gtest.gni") +@@ -27,7 +27,6 @@ import("//chrome/test/base/js2gtest.gni") import("//chrome/test/include_js_tests.gni") import("//chrome/version.gni") import("//chromeos/ash/components/assistant/assistant.gni") -import("//components/adblock/features.gni") import("//components/captive_portal/core/features.gni") import("//components/feed/features.gni") - import("//components/gwp_asan/buildflags/buildflags.gni") + import("//components/lens/features.gni") diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BUILD.gn --- a/components/adblock/android/BUILD.gn +++ b/components/adblock/android/BUILD.gn @@ -1340,7 +1329,7 @@ diff --git a/components/adblock/core/common/adblock_constants.cc b/components/ad - const char kAllowlistEverythingFilter[] = "@@*$document"; - const char kBlankHtml[] = + const char kAdblockFilteringConfigurationName[] = "adblock"; diff --git a/components/adblock/core/common/adblock_constants.h b/components/adblock/core/common/adblock_constants.h --- a/components/adblock/core/common/adblock_constants.h +++ b/components/adblock/core/common/adblock_constants.h @@ -1350,8 +1339,8 @@ diff --git a/components/adblock/core/common/adblock_constants.h b/components/adb -extern const char kSiteKeyHeaderKey[]; extern const char kAllowlistEverythingFilter[]; + extern const char kAdblockFilteringConfigurationName[]; - const std::string& CurrentSchemaVersion(); diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adblock/core/common/adblock_prefs.cc --- a/components/adblock/core/common/adblock_prefs.cc +++ b/components/adblock/core/common/adblock_prefs.cc @@ -1589,16 +1578,16 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i policy_exception_justification: "Not implemented." })"); -@@ -64,7 +77,7 @@ OngoingSubscriptionRequestImpl::OngoingSubscriptionRequestImpl( +@@ -66,7 +79,7 @@ OngoingSubscriptionRequestImpl::OngoingSubscriptionRequestImpl( OngoingSubscriptionRequestImpl::~OngoingSubscriptionRequestImpl() { - if (!url_.is_empty()) + if (!url_.is_empty()) { - VLOG(1) << "[eyeo] Cancelling download of " << url_; + LOG(INFO) << "[eyeo] Cancelling download of " << url_; + } + net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); } - - void OngoingSubscriptionRequestImpl::Start(GURL url, -@@ -86,7 +99,7 @@ void OngoingSubscriptionRequestImpl::Retry() { +@@ -92,7 +105,7 @@ void OngoingSubscriptionRequestImpl::Retry() { return; } backoff_entry_->InformOfRequest(false); @@ -1607,7 +1596,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i << backoff_entry_->GetTimeUntilRelease(); retry_timer_->Start( FROM_HERE, backoff_entry_->GetTimeUntilRelease(), -@@ -100,7 +113,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { +@@ -106,7 +119,7 @@ void OngoingSubscriptionRequestImpl::Redirect(GURL redirect_url) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!url_.is_empty()) << "Redirect() called before Start()"; DCHECK(url_ != redirect_url) << "Invalid redirect. Same URL"; @@ -1616,7 +1605,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i ++number_of_redirects_; url_ = std::move(redirect_url); StartInternal(); -@@ -120,10 +133,14 @@ void OngoingSubscriptionRequestImpl::StartInternal() { +@@ -126,10 +139,14 @@ void OngoingSubscriptionRequestImpl::StartInternal() { // indefinitely. return; } @@ -1766,7 +1755,7 @@ diff --git a/components/adblock/core/subscription/subscription_persistent_storag diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b/components/adblock/core/subscription/subscription_service_impl.cc --- a/components/adblock/core/subscription/subscription_service_impl.cc +++ b/components/adblock/core/subscription/subscription_service_impl.cc -@@ -113,7 +113,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( +@@ -158,7 +158,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( }); DCHECK(it != maintainers_.end()) << "Received OnEnabledStateChanged from " "unregistered FilteringConfiguration"; @@ -1874,7 +1863,7 @@ deleted file mode 100644 diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn -@@ -75,7 +75,6 @@ grit("components_resources") { +@@ -79,7 +79,6 @@ grit("components_resources") { deps += [ "//components/resources/adblocking:copy_snippets_lib", @@ -5149,7 +5138,7 @@ new file mode 100755 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -539,6 +539,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( +@@ -540,6 +540,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( } } @@ -5178,7 +5167,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/bl diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -270,6 +270,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -274,6 +274,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( Document* document = Unwrap(); DCHECK(document); @@ -5195,7 +5184,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa auto* parsed_sheet = MakeGarbageCollected( MakeGarbageCollected(*document)); parsed_sheet->ParseString(source_code); -@@ -291,9 +301,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -295,9 +305,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( {SchedulingPolicy::DisableBackForwardCache()}); } diff --git a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch index 68da5198..b027a4a4 100644 --- a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch +++ b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch @@ -6,10 +6,10 @@ Subject: WIN ADDTO Disable safe browsing chrome/browser/BUILD.gn | 16 +- .../chrome_browsing_data_remover_delegate.cc | 2 - chrome/browser/chrome_browser_main_win.cc | 6 - - .../bubble/download_bubble_controller.cc | 2 + + .../bubble/download_bubble_ui_controller.cc | 2 + .../chrome_download_manager_delegate.cc | 16 +- - .../browser/download/download_item_model.cc | 93 +--------- - .../analysis/content_analysis_delegate.cc | 164 +----------------- + .../browser/download/download_item_model.cc | 94 +--------- + .../analysis/content_analysis_delegate.cc | 162 +----------------- .../analysis/content_analysis_delegate.h | 7 - .../analysis/request_handler_base.cc | 20 --- .../reporting/realtime_reporting_client.cc | 3 +- @@ -43,10 +43,10 @@ Subject: WIN ADDTO Disable safe browsing .../ui/views/download/download_item_view.cc | 23 +-- .../webui/downloads/downloads_dom_handler.cc | 21 +-- .../ui/webui/downloads/downloads_ui.cc | 5 +- - chrome/browser/ui/webui/intro/intro_ui.cc | 33 +--- + chrome/browser/ui/webui/intro/intro_ui.cc | 29 +--- chrome/browser/webshare/share_service_impl.cc | 4 + chrome/chrome_paks.gni | 2 - - .../public/cpp/sandboxed_rar_analyzer.cc | 16 +- + .../public/cpp/sandboxed_rar_analyzer.cc | 19 +- .../public/cpp/sandboxed_rar_analyzer.h | 2 - .../public/cpp/sandboxed_zip_analyzer.h | 2 - chrome/test/BUILD.gn | 4 - @@ -54,12 +54,12 @@ Subject: WIN ADDTO Disable safe browsing .../core/common/safe_browsing_prefs.cc | 2 +- printing/buildflags/buildflags.gni | 2 +- .../tracked_persistent_pref_store_factory.cc | 10 +- - 51 files changed, 74 insertions(+), 827 deletions(-) + 51 files changed, 72 insertions(+), 827 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1932,10 +1932,6 @@ static_library("browser") { +@@ -1887,10 +1887,6 @@ static_library("browser") { "//chrome/browser/ui", "//chrome/browser/storage_access_api:permissions", "//chrome/browser/top_level_storage_access_api:permissions", @@ -70,7 +70,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn # TODO(crbug.com/1030821): Eliminate usages of browser.h from Media Router. "//chrome/browser/media/router", -@@ -2038,10 +2034,7 @@ static_library("browser") { +@@ -1994,10 +1990,7 @@ static_library("browser") { "//chrome/browser/push_messaging:budget_proto", "//chrome/browser/resource_coordinator:mojo_bindings", "//chrome/browser/resource_coordinator:tab_manager_features", @@ -82,7 +82,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/sharing/proto", -@@ -3657,18 +3650,12 @@ static_library("browser") { +@@ -3622,18 +3615,12 @@ static_library("browser") { "enterprise/connectors/analysis/analysis_service_settings.h", "enterprise/connectors/analysis/analysis_settings.cc", "enterprise/connectors/analysis/analysis_settings.h", @@ -101,7 +101,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "enterprise/connectors/analysis/request_handler_base.cc", "enterprise/connectors/analysis/request_handler_base.h", "enterprise/connectors/common.cc", -@@ -7920,7 +7907,6 @@ static_library("test_support") { +@@ -7909,7 +7896,6 @@ static_library("test_support") { ":browser", "//chrome/browser/autofill:test_support", "//chrome/browser/profiles:profile", @@ -112,7 +112,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -653,8 +653,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -644,8 +644,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::BindOnce( &ChromeBrowsingDataRemoverDelegate::CreateTaskCompletionClosure, base::Unretained(this), TracingDataType::kCookies)); @@ -124,7 +124,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc -@@ -395,12 +395,6 @@ void ShowCloseBrowserFirstMessageBox() { +@@ -333,12 +333,6 @@ void ShowCloseBrowserFirstMessageBox() { } void MaybePostSettingsResetPrompt() { @@ -137,24 +137,25 @@ diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_b } // Updates all Progressive Web App launchers in |profile_dir| to the latest -diff --git a/chrome/browser/download/bubble/download_bubble_controller.cc b/chrome/browser/download/bubble/download_bubble_controller.cc ---- a/chrome/browser/download/bubble/download_bubble_controller.cc -+++ b/chrome/browser/download/bubble/download_bubble_controller.cc -@@ -458,8 +458,10 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( +diff --git a/chrome/browser/download/bubble/download_bubble_ui_controller.cc b/chrome/browser/download/bubble/download_bubble_ui_controller.cc +--- a/chrome/browser/download/bubble/download_bubble_ui_controller.cc ++++ b/chrome/browser/download/bubble/download_bubble_ui_controller.cc +@@ -204,9 +204,11 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( commands.ExecuteCommand(command); break; case DownloadCommands::REVIEW: +#if BUILDFLAG(FULL_SAFE_BROWSING) model->ReviewScanningVerdict( browser_->tab_strip_model()->GetActiveWebContents()); -+#endif break; ++#endif case DownloadCommands::RETRY: RetryDownload(model, command); + break; diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -880,21 +880,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { +@@ -884,21 +884,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { content::DownloadItemUtils::GetWebContents(download); Browser* browser = web_contents ? chrome::FindBrowserWithWebContents(web_contents) : nullptr; @@ -176,7 +177,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom browser->OpenURL(params); #endif // BUILDFLAG(IS_ANDROID) } -@@ -942,7 +932,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( +@@ -946,7 +936,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( std::string ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { @@ -185,7 +186,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -1706,8 +1696,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( +@@ -1715,8 +1705,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( DCHECK(download_item); DCHECK(download_item->IsSavePackageDownload()); @@ -199,7 +200,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc --- a/chrome/browser/download/download_item_model.cc +++ b/chrome/browser/download/download_item_model.cc -@@ -900,6 +900,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, +@@ -901,6 +901,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, DownloadUIModel::ExecuteCommand(download_commands, command); break; case DownloadCommands::DEEP_SCAN: @@ -207,7 +208,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow safe_browsing::SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); if (!sb_service) -@@ -932,107 +933,17 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, +@@ -933,108 +934,17 @@ void DownloadItemModel::ExecuteCommand(DownloadCommands* download_commands, safe_browsing::DeepScanningRequest::DeepScanTrigger:: TRIGGER_APP_PROMPT, safe_browsing::DownloadCheckResult::UNKNOWN, std::move(settings)); @@ -230,7 +231,8 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow - l10n_util::GetStringUTF16( - IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_SUSPICIOUS_ARCHIVE)) - .AddIconAndColor(vector_icons::kNotSecureWarningIcon, -- ui::kColorAlertMediumSeverity) +- ui::kColorAlertMediumSeverityIcon) +- .AddSecondaryTextColor(ui::kColorAlertMediumSeverityText) - .AddPrimaryButton(DownloadCommands::Command::DISCARD) - .AddSubpageButton(l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_DELETE), - DownloadCommands::Command::DISCARD, @@ -350,8 +352,8 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - access_point_, content_size, text_response_, user_justification); } - if (!warned_file_indices_.empty()) { -@@ -147,12 +132,6 @@ void ContentAnalysisDelegate::BypassWarnings( + // Mark the full image as complying and report a warning bypass. +@@ -158,12 +143,6 @@ void ContentAnalysisDelegate::BypassWarnings( // Mark the printed page as complying and report a warning bypass. if (page_warning_) { result_.page_result = true; @@ -364,7 +366,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } RunCallback(); -@@ -162,15 +141,6 @@ void ContentAnalysisDelegate::Cancel(bool warning) { +@@ -173,15 +152,6 @@ void ContentAnalysisDelegate::Cancel(bool warning) { if (callback_.is_null()) return; @@ -380,7 +382,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele // Ask the binary upload service to cancel requests if it can. auto cancel = std::make_unique( data_.settings.cloud_or_local_settings); -@@ -334,8 +304,7 @@ ContentAnalysisDelegate::ContentAnalysisDelegate( +@@ -345,8 +315,7 @@ ContentAnalysisDelegate::ContentAnalysisDelegate( CompletionCallback callback, safe_browsing::DeepScanAccessPoint access_point) : data_(std::move(data)), @@ -390,7 +392,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele DCHECK(web_contents); profile_ = Profile::FromBrowserContext(web_contents->GetBrowserContext()); url_ = web_contents->GetLastCommittedURL(); -@@ -355,14 +324,6 @@ void ContentAnalysisDelegate::StringRequestCallback( +@@ -367,14 +336,6 @@ void ContentAnalysisDelegate::StringRequestCallback( if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) final_actions_[response.request_token()] = GetAckFinalAction(response); @@ -404,8 +406,8 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - text_request_complete_ = true; - RequestHandlerResult request_handler_result = -@@ -375,12 +336,6 @@ void ContentAnalysisDelegate::StringRequestCallback( + string_request_result_ = +@@ -387,12 +348,6 @@ void ContentAnalysisDelegate::StringRequestCallback( std::fill(result_.text_results.begin(), result_.text_results.end(), text_complies); @@ -415,10 +417,10 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - access_point_, content_size, result, response, - CalculateEventResult(data_.settings, text_complies, should_warn)); - - UpdateFinalResult(request_handler_result.final_result, - request_handler_result.tag); + UpdateFinalResult(string_request_result_.final_result, + string_request_result_.tag); -@@ -440,11 +395,6 @@ void ContentAnalysisDelegate::PageRequestCallback( +@@ -494,11 +449,6 @@ void ContentAnalysisDelegate::PageRequestCallback( if (result == safe_browsing::BinaryUploadService::Result::SUCCESS) final_actions_[response.request_token()] = GetAckFinalAction(response); @@ -430,7 +432,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele page_request_complete_ = true; RequestHandlerResult request_handler_result = -@@ -454,13 +404,6 @@ void ContentAnalysisDelegate::PageRequestCallback( +@@ -508,13 +458,6 @@ void ContentAnalysisDelegate::PageRequestCallback( bool should_warn = request_handler_result.final_result == FinalContentAnalysisResult::WARNING; @@ -444,8 +446,8 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele UpdateFinalResult(request_handler_result.final_result, request_handler_result.tag); -@@ -479,19 +422,7 @@ bool ContentAnalysisDelegate::UploadData() { - PrepareTextRequest(); +@@ -535,19 +478,7 @@ bool ContentAnalysisDelegate::UploadData() { + PrepareImageRequest(); PreparePageRequest(); - if (!data_.paths.empty()) { @@ -465,7 +467,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele data_uploaded_ = true; // Do not add code under this comment. The above line should be the last thing // this function does before the return statement. -@@ -501,52 +432,9 @@ bool ContentAnalysisDelegate::UploadData() { +@@ -557,34 +488,6 @@ bool ContentAnalysisDelegate::UploadData() { } void ContentAnalysisDelegate::PrepareTextRequest() { @@ -499,6 +501,10 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - } } + void ContentAnalysisDelegate::PrepareImageRequest() { +@@ -615,21 +518,6 @@ void ContentAnalysisDelegate::PrepareImageRequest() { + } + void ContentAnalysisDelegate::PreparePageRequest() { - // The request is considered complete if the mapped region is invalid since it - // prevents scanning. @@ -518,7 +524,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } // This method only prepares requests for print and paste events. File events -@@ -555,31 +443,6 @@ void ContentAnalysisDelegate::PreparePageRequest() { +@@ -638,29 +526,6 @@ void ContentAnalysisDelegate::PreparePageRequest() { void ContentAnalysisDelegate::PrepareRequest( enterprise_connectors::AnalysisConnector connector, BinaryUploadService::Request* request) { @@ -530,12 +536,10 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - // Include tab page title, user action id, and count of requests per user - // action in local content analysis requests. - if (data_.settings.cloud_or_local_settings.is_local_analysis()) { +- // Increment the total number of user action requests by 1. +- total_requests_count_++; - request->set_tab_title(title_); - request->set_user_action_id(user_action_id_); -- // Set request count to 1 for print/paste event. Request count for file -- // events are set in -- // chrome/browser/enterprise/connectors/analysis/request_handler_base.cc -- request->set_user_action_requests_count(1); - } - - request->set_analysis_connector(connector); @@ -550,7 +554,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } void ContentAnalysisDelegate::FillAllResultsWith(bool status) { -@@ -589,8 +452,7 @@ void ContentAnalysisDelegate::FillAllResultsWith(bool status) { +@@ -671,8 +536,7 @@ void ContentAnalysisDelegate::FillAllResultsWith(bool status) { } BinaryUploadService* ContentAnalysisDelegate::GetBinaryUploadService() { @@ -560,7 +564,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele } void ContentAnalysisDelegate::UploadTextForDeepScanning( -@@ -664,26 +526,6 @@ void ContentAnalysisDelegate::UpdateFinalResult( +@@ -773,26 +637,6 @@ void ContentAnalysisDelegate::UpdateFinalResult( } void ContentAnalysisDelegate::AckAllRequests() { @@ -590,7 +594,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h --- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h +++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h -@@ -343,10 +343,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { +@@ -370,10 +370,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { bool page_warning_ = false; enterprise_connectors::ContentAnalysisResponse page_response_; @@ -598,10 +602,10 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dele - // TODO(crbug.com/1324892): Move to PageRequestHandler. - int64_t page_size_bytes_ = 0; - - // Set to true once the scan of text has completed. If the scan request has - // no text requiring deep scanning, this is set to true immediately. - bool text_request_complete_ = false; -@@ -366,9 +362,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { + // Stores the total number of requests associated with one user action. + int64_t total_requests_count_ = 0; + +@@ -400,9 +396,6 @@ class ContentAnalysisDelegate : public ContentAnalysisDelegateBase { // Pointer to UI when enabled. raw_ptr dialog_ = nullptr; @@ -644,7 +648,7 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base. diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc --- a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc +++ b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc -@@ -338,6 +338,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( +@@ -344,6 +344,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( const enterprise_connectors::ReportingSettings& settings, base::Value::Dict event, const base::Time& time) { @@ -652,7 +656,7 @@ diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_c if (rejected_dm_token_timers_.contains(settings.dm_token)) { return; } -@@ -406,7 +407,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( +@@ -414,7 +415,7 @@ void RealtimeReportingClient::ReportEventWithTimestamp( } std::string RealtimeReportingClient::GetProfileUserName() const { @@ -660,11 +664,11 @@ diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_c + return ""; } - #if BUILDFLAG(IS_CHROMEOS_ASH) + std::string RealtimeReportingClient::GetProfileIdentifier() const { diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -747,9 +747,6 @@ static_library("extensions") { +@@ -756,9 +756,6 @@ static_library("extensions") { # TODO(crbug.com/1065748): Remove this circular dependency. "//chrome/browser/web_applications/extensions", @@ -674,7 +678,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL ] # Since browser and browser_extensions actually depend on each other, -@@ -801,8 +798,6 @@ static_library("extensions") { +@@ -811,8 +808,6 @@ static_library("extensions") { "//chrome/browser/profiles:profile", "//chrome/browser/resource_coordinator:intervention_policy_database_proto", "//chrome/browser/resource_coordinator:mojo_bindings", @@ -727,10 +731,10 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/brows - extension_id(), parsed_args_->details.domain.value_or(std::string()), - parsed_args_->details.name.value_or(std::string()), - parsed_args_->details.path.value_or(std::string()), -- parsed_args_->details.secure.value_or(false), +- parsed_args_->details.secure, - parsed_args_->details.store_id.value_or(std::string()), - parsed_args_->details.url.value_or(std::string()), -- parsed_args_->details.session.value_or(false)); +- parsed_args_->details.session); - telemetry_service->AddSignal(std::move(cookies_get_all_signal)); } @@ -738,7 +742,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/brows diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc --- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc +++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc -@@ -55,8 +55,7 @@ SafeBrowsingPrivateGetReferrerChainFunction::Run() { +@@ -54,8 +54,7 @@ SafeBrowsingPrivateGetReferrerChainFunction::Run() { } Profile* profile = Profile::FromBrowserContext(browser_context()); @@ -882,7 +886,7 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -721,18 +721,6 @@ void WebstorePrivateBeginInstallWithManifest3Function::OnFrictionPromptDone( +@@ -719,18 +719,6 @@ void WebstorePrivateBeginInstallWithManifest3Function::OnFrictionPromptDone( void WebstorePrivateBeginInstallWithManifest3Function:: ReportFrictionAcceptedEvent() { @@ -901,7 +905,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone( -@@ -1219,8 +1207,7 @@ WebstorePrivateGetReferrerChainFunction:: +@@ -1227,8 +1215,7 @@ WebstorePrivateGetReferrerChainFunction:: ExtensionFunction::ResponseAction WebstorePrivateGetReferrerChainFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); @@ -1017,7 +1021,7 @@ diff --git a/chrome/browser/extensions/extension_allowlist.cc b/chrome/browser/e diff --git a/chrome/browser/media/webrtc/display_media_access_handler.cc b/chrome/browser/media/webrtc/display_media_access_handler.cc --- a/chrome/browser/media/webrtc/display_media_access_handler.cc +++ b/chrome/browser/media/webrtc/display_media_access_handler.cc -@@ -122,7 +122,6 @@ void DisplayMediaAccessHandler::HandleRequest( +@@ -136,7 +136,6 @@ void DisplayMediaAccessHandler::HandleRequest( blink::mojom::StreamDevicesSet(), blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED, /*ui=*/nullptr); @@ -1098,7 +1102,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b // Retrieves and formats the saved passwords domains from signon_realms. std::vector GetMatchingDomains( const std::vector& -@@ -906,7 +906,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( +@@ -901,7 +901,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( bool password_field_exists, uint64_t reused_password_hash, const std::string& domain) { @@ -1107,7 +1111,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b // If the webpage is not an extension page, do nothing. if (!GURL(domain).SchemeIs(kExtensionScheme)) { return; -@@ -946,7 +946,18 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( +@@ -941,7 +941,18 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() { } @@ -1130,7 +1134,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -1986,13 +1986,6 @@ std::unique_ptr BuildHandlerList( +@@ -2026,13 +2026,6 @@ std::unique_ptr BuildHandlerList( prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckMode, prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckScope, chrome_schema)); @@ -1147,7 +1151,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1634,8 +1634,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1697,8 +1697,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, component_updater::RegisterProfilePrefsForSwReporter(registry); FontPrewarmerTabHelper::RegisterProfilePrefs(registry); NetworkProfileBubble::RegisterProfilePrefs(registry); @@ -1218,7 +1222,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin if (false) { sources = [ "chrome_controller_client.cc", -@@ -443,7 +443,7 @@ static_library("safe_browsing") { +@@ -445,7 +445,7 @@ static_library("safe_browsing") { } } @@ -1227,7 +1231,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin sources = [ "verdict_cache_manager_factory.cc", "verdict_cache_manager_factory.h", -@@ -466,7 +466,7 @@ source_set("verdict_cache_manager_factory") { +@@ -468,7 +468,7 @@ source_set("verdict_cache_manager_factory") { ] } @@ -1236,7 +1240,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin sources = [ "advanced_protection_status_manager.cc", "advanced_protection_status_manager.h", -@@ -488,7 +488,7 @@ static_library("advanced_protection") { +@@ -490,7 +490,7 @@ static_library("advanced_protection") { ] } @@ -1318,7 +1322,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc --- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -@@ -143,15 +143,6 @@ CreateSettingsPageHelper() { +@@ -145,15 +145,6 @@ CreateSettingsPageHelper() { CreateChromeSettingsPageHelper(); } @@ -1334,7 +1338,7 @@ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrom } // namespace std::unique_ptr -@@ -175,10 +166,6 @@ ChromeSecurityBlockingPageFactory::CreateSSLPage( +@@ -177,10 +168,6 @@ ChromeSecurityBlockingPageFactory::CreateSSLPage( Profile::FromBrowserContext(web_contents->GetBrowserContext())); state->DidDisplayErrorPage(cert_error); @@ -1345,7 +1349,7 @@ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrom auto controller_client = std::make_unique( web_contents, ssl_info, cert_error, request_url, std::move(metrics_helper), CreateSettingsPageHelper()); -@@ -248,10 +235,6 @@ ChromeSecurityBlockingPageFactory::CreateMITMSoftwareBlockingPage( +@@ -250,10 +237,6 @@ ChromeSecurityBlockingPageFactory::CreateMITMSoftwareBlockingPage( std::unique_ptr ssl_cert_reporter, const net::SSLInfo& ssl_info, const std::string& mitm_software_name) { @@ -1356,7 +1360,7 @@ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrom auto page = std::make_unique( web_contents, cert_error, request_url, std::move(ssl_cert_reporter), /*can_show_enhanced_protection_message=*/true, ssl_info, -@@ -273,10 +256,6 @@ ChromeSecurityBlockingPageFactory::CreateBlockedInterceptionBlockingPage( +@@ -275,10 +258,6 @@ ChromeSecurityBlockingPageFactory::CreateBlockedInterceptionBlockingPage( const GURL& request_url, std::unique_ptr ssl_cert_reporter, const net::SSLInfo& ssl_info) { @@ -1370,7 +1374,7 @@ diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrom diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -424,7 +424,6 @@ static_library("ui") { +@@ -426,7 +426,6 @@ static_library("ui") { "//chrome/browser/resources/net_internals:resources", "//chrome/browser/resources/omnibox:resources", "//chrome/browser/resources/usb_internals:resources", @@ -1378,7 +1382,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/share", "//chrome/browser/ui/webui:configs", "//chrome/browser/ui/webui/omnibox:mojo_bindings", -@@ -680,7 +679,6 @@ static_library("ui") { +@@ -682,7 +681,6 @@ static_library("ui") { # TODO(crbug.com/1158905): Remove this circular dependency. "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -1386,7 +1390,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/profiling_host", "//chrome/browser/ui/webui:configs", ] -@@ -1793,8 +1791,6 @@ static_library("ui") { +@@ -1808,8 +1806,6 @@ static_library("ui") { "//chrome/browser/resources/identity_internals:resources", "//chrome/browser/resources/support_tool:resources", "//chrome/browser/resources/web_app_internals:resources", @@ -1395,7 +1399,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/support_tool:support_tool_proto", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", -@@ -3654,8 +3650,6 @@ static_library("ui") { +@@ -3698,8 +3694,6 @@ static_library("ui") { "views/profiles/profile_picker_force_signin_dialog_host.h", "views/profiles/profile_picker_signed_in_flow_controller.cc", "views/profiles/profile_picker_signed_in_flow_controller.h", @@ -1602,7 +1606,7 @@ diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc --- a/chrome/browser/ui/views/download/download_item_view.cc +++ b/chrome/browser/ui/views/download/download_item_view.cc -@@ -812,21 +812,7 @@ void DownloadItemView::UpdateLabels() { +@@ -815,21 +815,7 @@ void DownloadItemView::UpdateLabels() { warning_label_->SizeToFit(GetLabelWidth(*warning_label_)); } @@ -1625,7 +1629,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro } void DownloadItemView::UpdateButtons() { -@@ -1015,11 +1001,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { +@@ -1018,11 +1004,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { switch (danger_type) { case download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT: @@ -1638,7 +1642,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST: -@@ -1270,7 +1252,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, +@@ -1273,7 +1255,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, } void DownloadItemView::OpenDownloadDuringAsyncScanning() { @@ -1709,17 +1713,17 @@ diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc --- a/chrome/browser/ui/webui/intro/intro_ui.cc +++ b/chrome/browser/ui/webui/intro/intro_ui.cc -@@ -24,8 +24,6 @@ +@@ -18,8 +18,6 @@ #include "chrome/grit/chrome_unscaled_resources.h" #include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" -#include "chrome/grit/intro_resources.h" -#include "chrome/grit/intro_resources_map.h" #include "chrome/grit/signin_resources.h" - #include "components/signin/public/base/consent_level.h" #include "components/signin/public/base/signin_buildflags.h" -@@ -37,6 +35,13 @@ - #include "third_party/skia/include/core/SkBitmap.h" + #include "components/strings/grit/components_chromium_strings.h" +@@ -27,6 +25,13 @@ + #include "content/public/browser/web_ui_data_source.h" #include "ui/base/l10n/l10n_util.h" +#if BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -1729,27 +1733,12 @@ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui +#include "chrome/grit/generated_resources.h" +#endif + - namespace { - #if BUILDFLAG(IS_CHROMEOS_LACROS) - std::string GetPictureUrl(content::WebUI& web_ui, -@@ -95,12 +100,11 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { + IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { DCHECK(base::FeatureList::IsEnabled(kForYouFre)); auto* profile = Profile::FromWebUI(web_ui); - -- content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd( -- profile, chrome::kChromeUIIntroHost); -- -+#if BUILDFLAG(ENABLE_DICE_SUPPORT) - webui::SetupWebUIDataSource( - source, base::make_span(kIntroResources, kIntroResourcesSize), - IDR_INTRO_INTRO_HTML); -+#endif - - #if BUILDFLAG(ENABLE_DICE_SUPPORT) - int title_id = 0; -@@ -126,25 +130,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - } - #endif +@@ -70,26 +75,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { + // ends up being the URL) when we try to get it on startup for a11y purposes. + web_ui->OverrideTitle(l10n_util::GetStringUTF16(title_id)); - webui::LocalizedString localized_strings[] = { -#if BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -1763,6 +1752,7 @@ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui - {"backupCardDescription", IDS_FRE_BACKUP_CARD_DESCRIPTION}, - {"declineSignInButtonTitle", IDS_FRE_DECLINE_SIGN_IN_BUTTON_TITLE}, - {"acceptSignInButtonTitle", IDS_FRE_ACCEPT_SIGN_IN_BUTTON_TITLE}, +- {"productLogoAltText", IDS_SHORT_PRODUCT_LOGO_ALT_TEXT}, -#endif -#if BUILDFLAG(IS_CHROMEOS_LACROS) - {"proceedLabel", IDS_PRIMARY_PROFILE_FIRST_RUN_NEXT_BUTTON_LABEL}, @@ -1770,9 +1760,9 @@ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui - }; - source->AddLocalizedStrings(localized_strings); - - // TODO(crbug.com/1409028): Replace this function by a call to - // chrome::GetDeviceManagerIdentity() - const bool is_device_managed = chrome::ShouldDisplayManagedUi(profile); + const bool is_device_managed = + policy::ManagementServiceFactory::GetForPlatform()->IsManaged(); + #if BUILDFLAG(ENABLE_DICE_SUPPORT) diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webshare/share_service_impl.cc --- a/chrome/browser/webshare/share_service_impl.cc +++ b/chrome/browser/webshare/share_service_impl.cc @@ -1806,7 +1796,7 @@ diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webs diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -420,12 +420,10 @@ template("chrome_extra_paks") { +@@ -430,12 +430,10 @@ template("chrome_extra_paks") { } if (!is_android && !is_chromeos_ash) { sources += [ @@ -1822,7 +1812,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc --- a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc +++ b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc -@@ -95,11 +95,6 @@ SandboxedRarAnalyzer::SandboxedRarAnalyzer( +@@ -76,11 +76,6 @@ SandboxedRarAnalyzer::SandboxedRarAnalyzer( service_(std::move(service)) { DCHECK(callback_); DCHECK(!file_path_.value().empty()); @@ -1834,13 +1824,16 @@ diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc b/ch } void SandboxedRarAnalyzer::Start() { -@@ -121,19 +116,12 @@ SandboxedRarAnalyzer::~SandboxedRarAnalyzer() = default; - void SandboxedRarAnalyzer::AnalyzeFile(base::File file, base::File temp_file) { +@@ -102,22 +97,12 @@ SandboxedRarAnalyzer::~SandboxedRarAnalyzer() = default; + void SandboxedRarAnalyzer::AnalyzeFile(base::File file) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK(!file_path_.value().empty()); - if (remote_analyzer_) { +- mojo::PendingRemote +- temp_file_getter_remote = +- temp_file_getter_.GetRemoteTemporaryFileGetter(); - remote_analyzer_->AnalyzeRarFile( -- std::move(file), std::move(temp_file), +- std::move(file), std::move(temp_file_getter_remote), - base::BindOnce(&SandboxedRarAnalyzer::AnalyzeFileDone, GetWeakPtr())); - } else { AnalyzeFileDone(safe_browsing::ArchiveAnalyzerResults()); @@ -1854,7 +1847,7 @@ diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc b/ch if (callback_) { std::move(callback_).Run(results); } -@@ -150,9 +138,7 @@ void SandboxedRarAnalyzer::ReportFileFailure( +@@ -134,9 +119,7 @@ void SandboxedRarAnalyzer::ReportFileFailure( } std::string SandboxedRarAnalyzer::DebugString() const { @@ -1868,45 +1861,45 @@ diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.cc b/ch diff --git a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h --- a/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h +++ b/chrome/services/file_util/public/cpp/sandboxed_rar_analyzer.h -@@ -11,7 +11,6 @@ - #include "base/memory/weak_ptr.h" +@@ -12,7 +12,6 @@ #include "base/task/sequenced_task_runner.h" + #include "chrome/services/file_util/public/cpp/temporary_file_getter.h" #include "chrome/services/file_util/public/mojom/file_util_service.mojom.h" -#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" -@@ -73,7 +72,6 @@ class SandboxedRarAnalyzer { +@@ -74,7 +73,6 @@ class SandboxedRarAnalyzer { // Remote interfaces to the file util service. Only used from the UI thread. mojo::Remote service_; - mojo::Remote remote_analyzer_; + TemporaryFileGetter temp_file_getter_; base::WeakPtrFactory weak_ptr_factory_{this}; - }; diff --git a/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h b/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h --- a/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h +++ b/chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h -@@ -10,7 +10,6 @@ - #include "base/functional/callback.h" +@@ -11,7 +11,6 @@ #include "base/memory/ref_counted_delete_on_sequence.h" + #include "chrome/services/file_util/public/cpp/temporary_file_getter.h" #include "chrome/services/file_util/public/mojom/file_util_service.mojom.h" -#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" -@@ -68,7 +67,6 @@ class SandboxedZipAnalyzer { +@@ -69,7 +68,6 @@ class SandboxedZipAnalyzer { // Remote interfaces to the file util service. Only used from the UI thread. mojo::Remote service_; - mojo::Remote remote_analyzer_; + TemporaryFileGetter temp_file_getter_; base::WeakPtrFactory weak_ptr_factory_{this}; - }; diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -297,7 +297,6 @@ static_library("test_support") { +@@ -298,7 +298,6 @@ static_library("test_support") { "//chrome:strings", "//chrome/browser:browser_process", "//chrome/browser:test_support", @@ -1914,7 +1907,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/browser/sharing/proto", "//chrome/child", "//chrome/common:non_code_constants", -@@ -5933,9 +5932,6 @@ test("unit_tests") { +@@ -6021,9 +6020,6 @@ test("unit_tests") { "//chrome/browser/profile_resetter:profile_reset_report_proto", "//chrome/browser/profiling_host", "//chrome/browser/push_messaging:budget_proto", @@ -1927,18 +1920,18 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc --- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc +++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc -@@ -121,6 +121,7 @@ void MojoSafeBrowsingImpl::MaybeCreate( - return; +@@ -127,6 +127,7 @@ void MojoSafeBrowsingImpl::MaybeCreate( + user_data = resource_context.get(); } + NOTREACHED(); std::unique_ptr impl(new MojoSafeBrowsingImpl( - std::move(delegate), render_process_id, resource_context)); + std::move(delegate), render_process_id, user_data)); impl->Clone(std::move(receiver)); diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -221,7 +221,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -237,7 +237,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterIntegerPref(prefs::kPasswordProtectionWarningTrigger, PASSWORD_PROTECTION_OFF); registry->RegisterInt64Pref(prefs::kAdvancedProtectionLastRefreshInUs, 0); diff --git a/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch b/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch index 15a8cafc..67a5f2f9 100644 --- a/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch +++ b/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch @@ -9,12 +9,12 @@ Subject: WIN ADDTO Eyeo Adblock diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -2428,10 +2428,6 @@ if (!is_android) { +@@ -2465,10 +2465,6 @@ if (!is_android) { sources += [ "../browser/chrome_for_testing/chrome_for_testing_info_bar_browsertest.cc" ] } - if (eyeo_intercept_debug_url) { -- sources += [ "../browser/adblock/adblock_debug_url_browsertest.cc" ] +- sources += [ "../browser/adblock/test/adblock_debug_url_browsertest.cc" ] - } - if (enable_reporting) { diff --git a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch index 92bc5d7b..8c6030cc 100644 --- a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch +++ b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch @@ -14,19 +14,19 @@ Subject: WIN ADDTO Remove signin and sync integrations ...rofile_picker_signed_in_flow_controller.cc | 37 -- ...profile_picker_signed_in_flow_controller.h | 2 - .../signin/profile_customization_handler.cc | 2 + - .../webui/signin/profile_customization_ui.cc | 3 +- + .../webui/signin/profile_customization_ui.cc | 2 + .../ui/webui/signin/profile_picker_handler.cc | 5 +- components/signin/public/android/BUILD.gn | 1 - .../identitymanager/IdentityManager.java | 21 +- .../identity_manager/identity_manager.cc | 463 ++---------------- .../identity_manager/identity_manager.h | 47 +- .../identity_manager_builder.cc | 3 + - 18 files changed, 45 insertions(+), 604 deletions(-) + 18 files changed, 45 insertions(+), 603 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4165,8 +4165,6 @@ static_library("browser") { +@@ -4134,8 +4134,6 @@ static_library("browser") { "sharing_hub/sharing_hub_service_factory.h", "signin/signin_promo.cc", "signin/signin_promo.h", @@ -35,7 +35,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "signin/signin_ui_util.cc", "signin/signin_ui_util.h", "speech/chrome_speech_recognition_service.cc", -@@ -6712,12 +6710,6 @@ static_library("browser") { +@@ -6695,12 +6693,6 @@ static_library("browser") { "signin/signin_ui_delegate_impl_dice.cc", "signin/signin_ui_delegate_impl_dice.h", ] @@ -59,7 +59,7 @@ diff --git a/chrome/browser/signin/identity_manager_factory.cc b/chrome/browser/ #endif void IdentityManagerFactory::RegisterProfilePrefs( -@@ -155,12 +154,6 @@ KeyedService* IdentityManagerFactory::BuildServiceInstanceFor( +@@ -162,12 +161,6 @@ KeyedService* IdentityManagerFactory::BuildServiceInstanceFor( params.is_regular_profile = is_regular_profile; #endif @@ -181,7 +181,7 @@ diff --git a/chrome/browser/signin/signin_ui_util.cc b/chrome/browser/signin/sig diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -3691,12 +3691,6 @@ static_library("ui") { +@@ -3735,12 +3735,6 @@ static_library("ui") { "webui/signin/signin_ui_error.h", "webui/signin/signin_utils_desktop.cc", "webui/signin/signin_utils_desktop.h", @@ -197,20 +197,20 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -413,8 +413,7 @@ StartupBrowserCreatorImpl::DetermineURLsAndLaunch( - if (AccountConsistencyModeManager::IsMirrorEnabledForProfile(profile_)) - welcome_enabled = false; - #elif !BUILDFLAG(IS_CHROMEOS_ASH) +@@ -411,8 +411,7 @@ StartupBrowserCreatorImpl::DetermineURLsAndLaunch( + + bool welcome_enabled = false; + #if BUILDFLAG(ENABLE_DICE_SUPPORT) - welcome_enabled = - welcome::IsEnabled(profile_) && welcome::HasModulesToShow(profile_); + welcome_enabled = false; - #endif // !BUILDFLAG(IS_CHROMEOS_ASH) + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) const bool whats_new_enabled = diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc -@@ -185,11 +185,6 @@ StartupTabs StartupTabProviderImpl::GetWelcomeBackTabs( +@@ -186,11 +186,6 @@ StartupTabs StartupTabProviderImpl::GetWelcomeBackTabs( !browser_creator) { return tabs; } @@ -236,18 +236,19 @@ diff --git a/chrome/browser/ui/views/profiles/profile_customization_bubble_view. diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc --- a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.cc -@@ -10,10 +10,8 @@ +@@ -10,11 +10,9 @@ #include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service_factory.h" #include "chrome/browser/ui/views/profiles/profile_management_utils.h" -#include "chrome/browser/ui/views/profiles/profile_picker_turn_sync_on_delegate.h" #include "chrome/browser/ui/webui/signin/signin_url_utils.h" + #include "chrome/browser/ui/webui/signin/signin_utils.h" #include "chrome/browser/ui/webui/signin/sync_confirmation_ui.h" -#include "chrome/browser/ui/webui/signin/turn_sync_on_helper.h" #include "chrome/common/webui_url_constants.h" #include "components/signin/public/base/signin_metrics.h" #include "components/signin/public/identity_manager/account_info.h" -@@ -30,7 +28,6 @@ ProfilePickerSignedInFlowController::ProfilePickerSignedInFlowController( +@@ -31,7 +29,6 @@ ProfilePickerSignedInFlowController::ProfilePickerSignedInFlowController( : host_(host), profile_(profile), contents_(std::move(contents)), @@ -255,7 +256,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_cont profile_color_(profile_color) { DCHECK(profile_); DCHECK(contents_); -@@ -49,27 +46,6 @@ void ProfilePickerSignedInFlowController::Init() { +@@ -50,27 +47,6 @@ void ProfilePickerSignedInFlowController::Init() { DCHECK(!IsInitialized()); contents()->SetDelegate(this); @@ -283,7 +284,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_cont } void ProfilePickerSignedInFlowController::Cancel() {} -@@ -161,19 +137,6 @@ void ProfilePickerSignedInFlowController:: +@@ -169,19 +145,6 @@ void ProfilePickerSignedInFlowController:: signin::SigninChoiceCallback proceed_callback) { DCHECK(IsInitialized()); // Initialize the WebUI page once we know it's committed. @@ -306,7 +307,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_cont diff --git a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h --- a/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h +++ b/chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h -@@ -129,8 +129,6 @@ class ProfilePickerSignedInFlowController +@@ -136,8 +136,6 @@ class ProfilePickerSignedInFlowController // sign-in flow. std::unique_ptr contents_; @@ -337,7 +338,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_customization_handler.cc b/c diff --git a/chrome/browser/ui/webui/signin/profile_customization_ui.cc b/chrome/browser/ui/webui/signin/profile_customization_ui.cc --- a/chrome/browser/ui/webui/signin/profile_customization_ui.cc +++ b/chrome/browser/ui/webui/signin/profile_customization_ui.cc -@@ -102,10 +102,11 @@ ProfileCustomizationUI::ProfileCustomizationUI(content::WebUI* web_ui) +@@ -103,9 +103,11 @@ ProfileCustomizationUI::ProfileCustomizationUI(content::WebUI* web_ui) "profileCustomizationInDialogDesign", base::FeatureList::IsEnabled(kSyncPromoAfterSigninIntercept)); const GURL& url = web_ui->GetWebContents()->GetVisibleURL(); @@ -345,15 +346,14 @@ diff --git a/chrome/browser/ui/webui/signin/profile_customization_ui.cc b/chrome source->AddBoolean("isLocalProfileCreation", GetProfileCustomizationStyle(url) == ProfileCustomizationStyle::kLocalProfileCreation); -- +#endif - if (url.query() == "debug") { - // Not intended to be hooked to anything. The bubble will not initialize it - // so we force it here. + source->AddString( + "chromeRefresh2023Attribute", + features::IsChromeRefresh2023() ? "chrome-refresh-2023" : ""); diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/browser/ui/webui/signin/profile_picker_handler.cc --- a/chrome/browser/ui/webui/signin/profile_picker_handler.cc +++ b/chrome/browser/ui/webui/signin/profile_picker_handler.cc -@@ -962,6 +962,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( +@@ -953,6 +953,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( const base::Value::List& args) { AllowJavascript(); CHECK_EQ(1U, args.size()); @@ -361,7 +361,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/b absl::optional profile_color = args[0].GetIfInt(); #if BUILDFLAG(IS_CHROMEOS_LACROS) SelectAccountLacrosInternal("", profile_color); -@@ -977,6 +978,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( +@@ -968,6 +969,7 @@ void ProfilePickerHandler::HandleSelectNewAccount( #else NOTERACHED(); #endif @@ -369,7 +369,7 @@ diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/b } #if BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -1068,9 +1070,6 @@ void ProfilePickerHandler::OnSwitchToProfileCompleteOpenCustomization( +@@ -1059,9 +1061,6 @@ void ProfilePickerHandler::OnSwitchToProfileCompleteOpenCustomization( BeginFirstWebContentsProfiling(browser, profile_picked_time_on_startup_); } diff --git a/build/patches/00WIN-Add-adblock-plus-setting-page.patch b/build/patches/00WIN-Add-adblock-plus-setting-page.patch index 86c7bea7..34ddd16b 100644 --- a/build/patches/00WIN-Add-adblock-plus-setting-page.patch +++ b/build/patches/00WIN-Add-adblock-plus-setting-page.patch @@ -22,7 +22,7 @@ Subject: WIN Add adblock plus setting page diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -71,6 +71,7 @@ build_webui("build") { +@@ -72,6 +72,7 @@ build_webui("build") { "a11y_page/a11y_page.ts", "a11y_page/live_caption_section.ts", "about_page/about_page.ts", @@ -30,7 +30,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page.ts", "appearance_page/home_url_input.ts", -@@ -392,6 +393,7 @@ build_webui("build") { +@@ -390,6 +391,7 @@ build_webui("build") { ts_composite = true ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", @@ -463,7 +463,7 @@ diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js'; +import '../adblock_page/adblock_page.js'; import '../appearance_page/appearance_page.js'; - import '../privacy_page/privacy_guide_promo.js'; + import '../privacy_page/privacy_guide/privacy_guide_promo.js'; import '../privacy_page/privacy_page.js'; diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts --- a/chrome/browser/resources/settings/page_visibility.ts diff --git a/build/patches/00add-browser-policy.patch b/build/patches/00add-browser-policy.patch index ce0f7e23..2e4b85f4 100644 --- a/build/patches/00add-browser-policy.patch +++ b/build/patches/00add-browser-policy.patch @@ -13,7 +13,6 @@ Subject: Add browser policy .../ui/webui/policy/policy_ui_handler.h | 2 + .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + - components/policy/core/common/features.cc | 4 +- .../core/common/policy_loader_command_line.cc | 120 +++++++++++++++--- .../policy/core/common/policy_pref_names.cc | 3 + .../policy/core/common/policy_pref_names.h | 1 + @@ -27,14 +26,14 @@ Subject: Add browser policy components/signin/features.gni | 6 +- .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + - 24 files changed, 295 insertions(+), 35 deletions(-) + 23 files changed, 293 insertions(+), 33 deletions(-) diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc -@@ -61,6 +61,11 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( - } - +@@ -55,6 +55,11 @@ static jboolean + JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( + JNIEnv* env) { const PrefService* local_state = g_browser_process->local_state(); + // this point (policy with 'future') gave me false, false + // LOG(INFO) << "---IsMetricsReportingDisabledByPolicy " @@ -88,7 +87,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -1883,9 +1883,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -1923,9 +1923,9 @@ bool AreFuturePoliciesEnabledByDefault() { // Enable future policies for branded browser tests. if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) return true; @@ -104,7 +103,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc -@@ -31,7 +31,14 @@ +@@ -34,7 +34,14 @@ #error "Dice and Mirror cannot be both enabled." #endif @@ -120,7 +119,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ // #error "Either Dice or Mirror should be enabled." // #endif -@@ -189,7 +196,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -198,7 +205,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( #endif #if BUILDFLAG(ENABLE_MIRROR) @@ -130,7 +129,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ #endif #if BUILDFLAG(ENABLE_DICE_SUPPORT) -@@ -199,8 +207,12 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -208,8 +216,12 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( return AccountConsistencyMethod::kDisabled; } @@ -163,7 +162,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign @@ -239,6 +241,8 @@ void ChromeSigninClient::OnConnectionChanged( #endif - void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { + bool ChromeSigninClient::AreNetworkCallsDelayed() { + // Make ChromeSigninClient compliant to SigninAllowed policy + if (!AreSigninCookiesAllowed()) return; #if BUILDFLAG(IS_CHROMEOS_ASH) @@ -194,7 +193,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/remote_commands/remote_commands_service.h" -@@ -168,6 +171,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -160,6 +163,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -205,7 +204,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -331,8 +338,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -323,8 +330,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -348,20 +347,6 @@ diff --git a/components/policy/core/common/command_line_policy_provider.cc b/com #if BUILDFLAG(IS_ANDROID) if (channel == version_info::Channel::STABLE || channel == version_info::Channel::BETA) { -diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc ---- a/components/policy/core/common/features.cc -+++ b/components/policy/core/common/features.cc -@@ -27,8 +27,8 @@ BASE_FEATURE(kEnableUserCloudSigninRestrictionPolicyFetcher, - base::FEATURE_ENABLED_BY_DEFAULT); - - BASE_FEATURE(kActivateMetricsReportingEnabledPolicyAndroid, -- "ActivateMetricsReportingEnabledPolicyAndroid", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "ActivateMetricsReportingEnabledPolicyAndroid", // guard this -+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kDmTokenDeletion, - "DmTokenDeletion", diff --git a/components/policy/core/common/policy_loader_command_line.cc b/components/policy/core/common/policy_loader_command_line.cc --- a/components/policy/core/common/policy_loader_command_line.cc +++ b/components/policy/core/common/policy_loader_command_line.cc @@ -505,7 +490,7 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo diff --git a/components/policy/core/common/policy_pref_names.cc b/components/policy/core/common/policy_pref_names.cc --- a/components/policy/core/common/policy_pref_names.cc +++ b/components/policy/core/common/policy_pref_names.cc -@@ -95,6 +95,9 @@ const char kBackForwardCacheEnabled[] = "policy.back_forward_cache_enabled"; +@@ -90,6 +90,9 @@ const char kBackForwardCacheEnabled[] = "policy.back_forward_cache_enabled"; const char kUserAgentClientHintsGREASEUpdateEnabled[] = "policy.user_agent_client_hints_grease_update_enabled"; @@ -518,18 +503,18 @@ diff --git a/components/policy/core/common/policy_pref_names.cc b/components/pol diff --git a/components/policy/core/common/policy_pref_names.h b/components/policy/core/common/policy_pref_names.h --- a/components/policy/core/common/policy_pref_names.h +++ b/components/policy/core/common/policy_pref_names.h -@@ -33,6 +33,7 @@ POLICY_EXPORT extern const char kUrlAllowlist[]; - POLICY_EXPORT extern const char kUserPolicyRefreshRate[]; - POLICY_EXPORT extern const char kIntensiveWakeUpThrottlingEnabled[]; - POLICY_EXPORT extern const char kUserAgentClientHintsGREASEUpdateEnabled[]; -+POLICY_EXPORT extern const char kDisabledDefaultPoliciesList[]; - POLICY_EXPORT extern const char kUnthrottledNestedTimeoutEnabled[]; +@@ -33,6 +33,7 @@ extern const char kUrlAllowlist[]; + extern const char kUserPolicyRefreshRate[]; + extern const char kIntensiveWakeUpThrottlingEnabled[]; + extern const char kUserAgentClientHintsGREASEUpdateEnabled[]; ++extern const char kDisabledDefaultPoliciesList[]; #if BUILDFLAG(IS_ANDROID) - POLICY_EXPORT extern const char kBackForwardCacheEnabled[]; + extern const char kBackForwardCacheEnabled[]; + #endif // BUILDFLAG(IS_ANDROID) diff --git a/components/policy/core/common/policy_service_impl.cc b/components/policy/core/common/policy_service_impl.cc --- a/components/policy/core/common/policy_service_impl.cc +++ b/components/policy/core/common/policy_service_impl.cc -@@ -66,6 +66,9 @@ void IgnoreUserCloudPrecedencePolicies(PolicyMap* policies) { +@@ -64,6 +64,9 @@ void IgnoreUserCloudPrecedencePolicies(PolicyMap* policies) { // Metrics should not be enforced so if this policy is set as mandatory // downgrade it to a recommended level policy. void DowngradeMetricsReportingToRecommendedPolicy(PolicyMap* policies) { @@ -554,13 +539,13 @@ diff --git a/components/policy/core/common/policy_switches.cc b/components/polic diff --git a/components/policy/core/common/policy_switches.h b/components/policy/core/common/policy_switches.h --- a/components/policy/core/common/policy_switches.h +++ b/components/policy/core/common/policy_switches.h -@@ -18,6 +18,7 @@ POLICY_EXPORT extern const char kRealtimeReportingUrl[]; - POLICY_EXPORT extern const char kEncryptedReportingUrl[]; - POLICY_EXPORT extern const char kChromePolicy[]; - POLICY_EXPORT extern const char kSecureConnectApiUrl[]; -+POLICY_EXPORT extern const char kForceDisabledPolicies[]; +@@ -18,6 +18,7 @@ extern const char kRealtimeReportingUrl[]; + extern const char kEncryptedReportingUrl[]; + extern const char kChromePolicy[]; + extern const char kSecureConnectApiUrl[]; ++extern const char kForceDisabledPolicies[]; #if BUILDFLAG(IS_CHROMEOS_ASH) - POLICY_EXPORT extern const char kDisablePolicyKeyVerification[]; + extern const char kDisablePolicyKeyVerification[]; #endif // BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml --- a/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml @@ -638,7 +623,7 @@ diff --git a/components/policy/resources/webui/policy_row.js b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -588,8 +588,8 @@ Additional details: +@@ -591,8 +591,8 @@ Additional details: Default diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 79a84ee6..347f9377 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -59,7 +59,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/history/history_tab_helper.h | 10 +- .../android/offline_page_bridge.cc | 11 +- .../android/offline_page_model_factory.cc | 20 ++- - .../android/request_coordinator_factory.cc | 27 ++- + .../android/request_coordinator_factory.cc | 34 +++- .../offline_page_model_factory.h | 1 + .../offline_pages/recent_tab_helper.cc | 19 ++- .../browser/offline_pages/recent_tab_helper.h | 3 + @@ -84,7 +84,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../omnibox/browser/base_search_provider.cc | 2 +- components/omnibox/browser/search_provider.cc | 4 +- .../host_content_settings_map_factory.cc | 1 + - 65 files changed, 737 insertions(+), 82 deletions(-) + 65 files changed, 737 insertions(+), 89 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -93,7 +93,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -640,6 +640,7 @@ chrome_java_resources = [ +@@ -638,6 +638,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", @@ -112,7 +112,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -894,6 +895,7 @@ chrome_java_sources = [ +@@ -895,6 +896,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -238,7 +238,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -58,6 +58,10 @@ import org.chromium.base.task.PostTask; +@@ -56,6 +56,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; -@@ -571,9 +575,14 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1787,6 +1788,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -303,7 +303,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -36,6 +36,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -38,6 +38,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -311,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.banners.AppMenuVerbiage; import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -96,6 +97,10 @@ import java.util.ArrayList; +@@ -102,6 +103,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -322,7 +322,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -554,6 +559,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -560,6 +565,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -336,7 +336,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -629,7 +641,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -635,7 +647,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -353,7 +353,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App } if (item.getItemId() == R.id.menu_group_tabs) { item.setVisible(isMenuGroupTabsVisible); -@@ -847,7 +867,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -853,7 +873,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate // is not persisted when adding to the homescreen. // * If creating shortcuts it not supported by the current home screen. return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme @@ -367,16 +367,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -30,6 +30,7 @@ import org.chromium.base.ContextUtils; - import org.chromium.base.metrics.RecordHistogram; +@@ -29,6 +29,7 @@ import org.chromium.base.Callback; + import org.chromium.base.ContextUtils; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -355,6 +356,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - boolean hasSaveImage = false; +@@ -236,6 +237,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; + boolean always_incognito = @@ -385,7 +385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -373,6 +377,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -254,6 +258,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); } } @@ -393,7 +393,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); } -@@ -397,7 +402,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -278,7 +283,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -461,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -55,6 +55,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -57,6 +57,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.version_info.VersionInfo; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -471,7 +471,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1171,7 +1174,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1175,7 +1178,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -648,7 +648,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -231,7 +232,8 @@ public class NativePageFactory { +@@ -223,7 +224,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito) { NativePage page; @@ -661,7 +661,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -21,6 +21,15 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper; +@@ -22,6 +22,15 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper; import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; import org.chromium.url.GURL; @@ -677,7 +677,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -78,7 +87,8 @@ public class RecentTabsManager { +@@ -79,7 +88,8 @@ public class RecentTabsManager { */ public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile, Context context, Runnable showHistoryManager) { @@ -687,7 +687,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -210,6 +220,22 @@ public class RecentTabsManager { +@@ -211,6 +221,22 @@ public class RecentTabsManager { */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -878,7 +878,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -61,6 +61,7 @@ import org.chromium.chrome.browser.profiles.Profile; +@@ -62,6 +62,7 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; @@ -886,16 +886,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; -@@ -316,6 +317,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -306,6 +307,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } + if (fragment instanceof INeedSnackbarManager) { + ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); + } + initBackPressHandler(); } - @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java @@ -1008,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -123,6 +123,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto +@@ -119,6 +119,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1017,15 +1017,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -508,7 +510,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler(); - mEmptyBackgroundViewWrapper = - new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(), -- mTabCreatorManagerSupplier.get().getTabCreator(false), mActivity, -+ mTabCreatorManagerSupplier.get().getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()), mActivity, - appMenuHandler, mSnackbarManagerSupplier.get(), mLayoutManagerSupplier); - mEmptyBackgroundViewWrapper.initialize(); - } +@@ -767,7 +769,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + mAppMenuCoordinator.getAppMenuHandler(), mActivityTabProvider, + mToolbarManager.getMenuButtonView(), () -> { + mTabCreatorManagerSupplier.get() +- .getTabCreator(/*incognito=*/false) ++ .getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) + .launchUrl(NewTabPageUtils.encodeNtpUrl( + NewTabPageLaunchOrigin.WEB_FEED), + TabLaunchType.FROM_CHROME_UI); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java @@ -1071,8 +1071,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -56,6 +56,8 @@ import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.content_public.browser.UiThreadTaskTraits; +@@ -55,6 +55,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities; + import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.url.GURL; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; @@ -1080,7 +1080,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -740,6 +742,13 @@ public class TabPersistentStore { +@@ -738,6 +740,13 @@ public class TabPersistentStore { } } } @@ -1105,7 +1105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -499,7 +500,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -496,7 +497,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return ret; } }, @@ -1163,7 +1163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4465,6 +4465,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4706,6 +4706,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -1237,7 +1237,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -330,6 +330,13 @@ ChromeAutocompleteProviderClient::GetAutocompleteScoringModelService() const { +@@ -332,6 +332,13 @@ ChromeAutocompleteProviderClient::GetAutocompleteScoringModelService() const { #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) } @@ -1311,7 +1311,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3852,6 +3852,12 @@ const char kOfflinePagesLivePageSharingDescription[] = +@@ -3891,6 +3891,12 @@ const char kOfflinePagesLivePageSharingDescription[] = "Enables to share current loaded page as offline page by saving as MHTML " "first."; @@ -1327,7 +1327,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2206,6 +2206,9 @@ extern const char kNotificationPermissionRationaleBottomSheetDescription[]; +@@ -2238,6 +2238,9 @@ extern const char kNotificationPermissionRationaleBottomSheetDescription[]; extern const char kOfflinePagesLivePageSharingName[]; extern const char kOfflinePagesLivePageSharingDescription[]; @@ -1340,7 +1340,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -541,8 +541,8 @@ BASE_FEATURE(kCCTFeatureUsage, +@@ -556,8 +556,8 @@ BASE_FEATURE(kCCTFeatureUsage, BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, @@ -1534,17 +1534,24 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc namespace network { class NetworkQualityTracker; } -@@ -61,7 +67,8 @@ class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { +@@ -61,14 +67,8 @@ class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { }; RequestCoordinatorFactory::RequestCoordinatorFactory() -- : ProfileKeyedServiceFactory("OfflineRequestCoordinator") { +- : ProfileKeyedServiceFactory( +- "OfflineRequestCoordinator", +- ProfileSelections::Builder() +- .WithRegular(ProfileSelection::kOriginalOnly) +- // TODO(crbug.com/1418376): Check if this service is needed in +- // Guest mode. +- .WithGuest(ProfileSelection::kOriginalOnly) +- .Build()) { + : BrowserContextKeyedServiceFactory("OfflineRequestCoordinator", + BrowserContextDependencyManager::GetInstance()) { // Depends on OfflinePageModelFactory in SimpleDependencyManager. } -@@ -79,6 +86,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext( +@@ -86,6 +86,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext( KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { @@ -1557,7 +1564,7 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc std::unique_ptr policy(new OfflinerPolicy()); std::unique_ptr offliner; OfflinePageModel* model = -@@ -111,4 +124,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( +@@ -118,4 +124,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( return request_coordinator; } @@ -1665,7 +1672,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -234,6 +234,7 @@ +@@ -237,6 +237,7 @@ #include "components/feed/core/shared_prefs/pref_names.h" #if BUILDFLAG(IS_ANDROID) @@ -1673,7 +1680,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/explore_sites/history_statistics_reporter.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" -@@ -1468,6 +1469,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1528,6 +1529,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); video_tutorials::RegisterPrefs(registry); @@ -1682,8 +1689,8 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse + /*default_value=*/false); + HistoryTabHelper::RegisterProfilePrefs(registry); #else // BUILDFLAG(IS_ANDROID) + bookmarks_webui::RegisterProfilePrefs(registry); browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry); - BrowserFeaturePromoSnoozeService::RegisterProfilePrefs(registry); diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn @@ -1747,7 +1754,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1291,6 +1291,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1294,6 +1294,37 @@ Your Google account may have other forms of browsing history like searches and a Clears history from all synced devices. @@ -1869,7 +1876,7 @@ new file mode 100644 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -3438,6 +3438,12 @@ const char kLacrosLaunchSwitch[] = "lacros_launch_switch"; +@@ -3373,6 +3373,12 @@ const char kLacrosLaunchSwitch[] = "lacros_launch_switch"; const char kLacrosSelection[] = "lacros_selection"; #endif @@ -1885,7 +1892,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1226,6 +1226,8 @@ extern const char kDiscountConsentShowInterestIn[]; +@@ -1208,6 +1208,8 @@ extern const char kDiscountConsentShowInterestIn[]; #if BUILDFLAG(IS_ANDROID) extern const char kWebXRImmersiveArEnabled[]; @@ -1894,7 +1901,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h #endif #if !BUILDFLAG(IS_ANDROID) -@@ -1264,6 +1266,10 @@ extern const char kPrivacyGuideViewed[]; +@@ -1247,6 +1249,10 @@ extern const char kPrivacyGuideViewed[]; extern const char kCorsNonWildcardRequestHeadersSupport[]; @@ -2053,7 +2060,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -323,7 +323,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( +@@ -295,7 +295,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( } // Don't make a suggest request if in incognito mode. @@ -2065,7 +2072,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -786,7 +786,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { +@@ -788,7 +788,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { // keyword input to a keyword suggest server, if any.) const TemplateURL* default_url = providers_.GetDefaultProviderURL(); const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index db575a64..cb0f2cf9 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -11,14 +11,14 @@ Requires patch: Adds-support-for-writing-URIs.patch License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/AndroidManifest.xml | 1 - - .../res/menu/bookmark_action_bar_menu.xml | 14 + + .../java/res/menu/bookmark_toolbar_menu.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- .../app/bookmarks/BookmarkActivity.java | 31 ++ - .../browser/bookmarks/BookmarkActionBar.java | 12 + .../browser/bookmarks/BookmarkBridge.java | 278 +++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + - .../browser/bookmarks/BookmarkManager.java | 22 ++ + .../bookmarks/BookmarkManagerMediator.java | 23 ++ .../browser/bookmarks/BookmarkPage.java | 8 +- + .../browser/bookmarks/BookmarkToolbar.java | 12 + .../native_page/NativePageFactory.java | 11 +- chrome/browser/BUILD.gn | 11 +- chrome/browser/about_flags.cc | 6 + @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + ui/shell_dialogs/select_file_dialog_android.h | 2 + - 35 files changed, 848 insertions(+), 29 deletions(-) + 35 files changed, 849 insertions(+), 29 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -58,9 +58,9 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml ---- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml -+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml +diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml +--- a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml ++++ b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml @@ -23,6 +23,20 @@ found in the LICENSE file. android:visible="false" app:showAsAction="ifRoom" @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; -@@ -48,7 +49,7 @@ import java.util.function.BooleanSupplier; +@@ -47,7 +48,7 @@ import java.util.function.BooleanSupplier; * {@link ChromeTabbedActivity}. */ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -75,7 +76,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -73,7 +74,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private NativePageFactory mNativePageFactory; @@ -114,8 +114,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java -@@ -19,6 +19,11 @@ import org.chromium.chrome.browser.bookmarks.BookmarkManager; - import org.chromium.chrome.browser.bookmarks.BookmarkPage; +@@ -18,6 +18,11 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPage; + import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.embedder_support.util.UrlConstants; +import org.chromium.ui.base.ActivityWindowAndroid; @@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B +import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; /** - * The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager} + * The activity that displays the bookmark UI on the phone. It keeps a {@link @@ -30,6 +35,8 @@ public class BookmarkActivity extends SnackbarActivity { public static final int EDIT_BOOKMARK_REQUEST_CODE = 14; public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId"; @@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B super.onCreate(savedInstanceState); @@ -49,8 +56,23 @@ public class BookmarkActivity extends SnackbarActivity { BackPressHelper.create( - this, getOnBackPressedDispatcher(), mBookmarkManager::onBackPressed); + this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator::onBackPressed); } + + final boolean listenToActivityState = true; @@ -180,51 +180,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B + } + /** - * @return The {@link BookmarkManager} for testing purposes. + * @return The {@link BookmarkManagerCoordinator} for testing purposes. */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -@@ -84,6 +84,12 @@ public class BookmarkActionBar extends SelectableListToolbar - } else if (menuItem.getItemId() == R.id.search_menu_id) { - mDelegate.openSearchUI(); - return true; -+ } else if (menuItem.getItemId() == R.id.import_menu_id) { -+ mDelegate.importBookmarks(); -+ return true; -+ } else if (menuItem.getItemId() == R.id.export_menu_id) { -+ mDelegate.exportBookmarks(); -+ return true; - } - - SelectionDelegate selectionDelegate = mDelegate.getSelectionDelegate(); -@@ -147,6 +153,8 @@ public class BookmarkActionBar extends SelectableListToolbar - void showLoadingUi() { - setTitle(null); - setNavigationButton(NAVIGATION_BUTTON_NONE); -+ getMenu().findItem(R.id.import_menu_id).setVisible(false); -+ getMenu().findItem(R.id.export_menu_id).setVisible(false); - getMenu().findItem(R.id.search_menu_id).setVisible(false); - getMenu().findItem(R.id.edit_menu_id).setVisible(false); - } -@@ -156,6 +164,8 @@ public class BookmarkActionBar extends SelectableListToolbar - super.showNormalView(); - - if (mDelegate == null) { -+ getMenu().findItem(R.id.import_menu_id).setVisible(false); -+ getMenu().findItem(R.id.export_menu_id).setVisible(false); - getMenu().findItem(R.id.search_menu_id).setVisible(false); - getMenu().findItem(R.id.edit_menu_id).setVisible(false); - } -@@ -185,6 +195,8 @@ public class BookmarkActionBar extends SelectableListToolbar - @Override - public void onFolderStateSet(BookmarkId folder) { - mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); -+ getMenu().findItem(R.id.import_menu_id).setVisible(true); -+ getMenu().findItem(R.id.export_menu_id).setVisible(true); - getMenu().findItem(R.id.search_menu_id).setVisible(true); - getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable()); - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java @@ -249,8 +206,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import android.text.TextUtils; import android.util.Pair; -@@ -45,6 +58,32 @@ import java.util.ArrayList; - import java.util.HashSet; +@@ -36,6 +49,32 @@ import org.chromium.url.GURL; + import java.util.ArrayList; import java.util.List; +import org.chromium.base.ContentUriUtils; @@ -282,7 +239,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the * bookmark model stored in native. -@@ -425,6 +464,209 @@ class BookmarkBridge { +@@ -415,6 +454,209 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } @@ -492,7 +449,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. -@@ -909,6 +1151,39 @@ class BookmarkBridge { +@@ -899,6 +1141,39 @@ class BookmarkBridge { depthList.add(depth); } @@ -530,9 +487,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + } + private static List> createPairsList(int[] left, int[] right) { - List> pairList = new ArrayList>(); + List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -942,6 +1217,9 @@ class BookmarkBridge { +@@ -932,6 +1207,9 @@ class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, List bookmarksList); @@ -545,9 +502,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -75,6 +75,16 @@ public interface BookmarkDelegate { +@@ -65,6 +65,16 @@ public interface BookmarkDelegate { */ - void openSearchUI(); + void openSearchUi(); + /** + * Imports bookmarks from user-selected file. @@ -562,28 +519,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Dismisses the search UI. */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -38,6 +38,8 @@ import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; - import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +@@ -37,6 +37,8 @@ import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; - import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate; + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver; +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.modaldialog.ModalDialogManager; - import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.components.favicon.LargeIconBridge; - import org.chromium.url.GURL; -@@ -61,6 +63,8 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate, - private Context mContext; - private ViewGroup mMainView; - private BookmarkModel mBookmarkModel; + import org.chromium.components.feature_engagement.EventConstants; + import org.chromium.ui.modelutil.PropertyModel; +@@ -56,6 +58,9 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + + private static boolean sPreventLoadingForTesting; + + private ActivityWindowAndroid mWindowAndroid; + private ModalDialogManager mModalDialogManager; - private BookmarkUndoController mUndoController; - private final ObserverList mUIObservers = new ObserverList<>(); - private BasicNativePage mNativePage; -@@ -394,6 +398,14 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate, ++ + /** + * Keeps track of whether drag is enabled / active for bookmark lists. + */ +@@ -446,6 +451,14 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, mNativePage = nativePage; } @@ -596,9 +554,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + } + /** - * @return Current URL representing the UI state of bookmark manager. If no state has been shown - * yet in this session, on phone return last used state stored in preference; on tablet -@@ -578,6 +590,16 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate, + * See BookmarkManager(Coordinator)#updateForUrl + */ +@@ -662,6 +675,16 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, } } @@ -613,12 +571,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + } + @Override - public void openSearchUI() { - setState(BookmarkUIState.createSearchState()); + public void openSearchUi() { + setState(BookmarkUiState.createSearchState()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -13,6 +13,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -14,6 +14,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.components.embedder_support.util.UrlConstants; @@ -627,8 +585,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm +import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; /** - * A native page holding a {@link BookmarkManager} on _tablet_. -@@ -29,12 +32,15 @@ public class BookmarkPage extends BasicNativePage { + * A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. +@@ -30,13 +33,16 @@ public class BookmarkPage extends BasicNativePage { * @param host A NativePageHost to load urls. */ public BookmarkPage(ComponentName componentName, SnackbarManager snackbarManager, @@ -636,15 +594,59 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + boolean isIncognito, NativePageHost host, ChromeActivity activity) { super(host); - mManager = new BookmarkManager( - host.getContext(), componentName, false, isIncognito, snackbarManager); - mManager.setBasicNativePage(this); + mBookmarkManagerCoordinator = + new BookmarkManagerCoordinator(host.getContext(), componentName, false, isIncognito, + snackbarManager, Profile.getLastUsedRegularProfile()); + mBookmarkManagerCoordinator.setBasicNativePage(this); + mManager.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( + new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP)); mTitle = host.getContext().getResources().getString(R.string.bookmarks); - initWithView(mManager.getView()); + initWithView(mBookmarkManagerCoordinator.getView()); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +@@ -138,6 +138,8 @@ public class BookmarkToolbar extends SelectableListToolbar + void setCurrentFolder(BookmarkItem folder) { + mCurrentFolder = folder; + ++ getMenu().findItem(R.id.import_menu_id).setVisible(true); ++ getMenu().findItem(R.id.export_menu_id).setVisible(true); + getMenu().findItem(R.id.search_menu_id).setVisible(true); + getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable()); + +@@ -172,6 +174,8 @@ public class BookmarkToolbar extends SelectableListToolbar + void showLoadingUi() { + setTitle(null); + setNavigationButton(NAVIGATION_BUTTON_NONE); ++ getMenu().findItem(R.id.import_menu_id).setVisible(false); ++ getMenu().findItem(R.id.export_menu_id).setVisible(false); + getMenu().findItem(R.id.search_menu_id).setVisible(false); + getMenu().findItem(R.id.edit_menu_id).setVisible(false); + } +@@ -192,6 +196,12 @@ public class BookmarkToolbar extends SelectableListToolbar + } else if (menuItem.getItemId() == R.id.search_menu_id) { + mOpenSearchUiRunnable.run(); + return true; ++ } else if (menuItem.getItemId() == R.id.import_menu_id) { ++ mDelegate.importBookmarks(); ++ return true; ++ } else if (menuItem.getItemId() == R.id.export_menu_id) { ++ mDelegate.exportBookmarks(); ++ return true; + } + + if (menuItem.getItemId() == R.id.selection_mode_edit_menu_id) { +@@ -271,6 +281,8 @@ public class BookmarkToolbar extends SelectableListToolbar + super.showNormalView(); + + if (mCurrentFolder == null) { ++ getMenu().findItem(R.id.import_menu_id).setVisible(false); ++ getMenu().findItem(R.id.export_menu_id).setVisible(false); + getMenu().findItem(R.id.search_menu_id).setVisible(false); + getMenu().findItem(R.id.edit_menu_id).setVisible(false); + } else { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java @@ -656,7 +658,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -52,7 +53,7 @@ import java.util.function.BooleanSupplier; +@@ -51,7 +52,7 @@ import java.util.function.BooleanSupplier; * Creates NativePage objects to show chrome-native:// URLs using the native Android view system. */ public class NativePageFactory { @@ -665,7 +667,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier mCurrentTabSupplier; -@@ -70,7 +71,7 @@ public class NativePageFactory { +@@ -68,7 +69,7 @@ public class NativePageFactory { private NativePageBuilder mNativePageBuilder; @@ -674,7 +676,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat @NonNull BottomSheetController sheetController, @NonNull BrowserControlsManager browserControlsManager, @NonNull Supplier currentTabSupplier, -@@ -121,7 +122,7 @@ public class NativePageFactory { +@@ -116,7 +117,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -683,16 +685,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mUma; private final BrowserControlsManager mBrowserControlsManager; -@@ -135,7 +136,7 @@ public class NativePageFactory { +@@ -129,7 +130,7 @@ public class NativePageFactory { + private final JankTracker mJankTracker; private final Supplier mToolbarSupplier; - private final CrowButtonDelegate mCrowButtonDelegate; - public NativePageBuilder(Activity activity, Supplier uma, + public NativePageBuilder(ChromeActivity activity, Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier currentTabSupplier, Supplier snackbarManagerSupplier, -@@ -174,7 +175,7 @@ public class NativePageFactory { +@@ -166,7 +167,7 @@ public class NativePageFactory { protected NativePage buildBookmarksPage(Tab tab) { return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(), mTabModelSelector.isIncognitoSelected(), @@ -704,7 +706,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -202,6 +202,8 @@ static_library("browser") { +@@ -198,6 +198,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -713,7 +715,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1878,6 +1880,13 @@ static_library("browser") { +@@ -1833,6 +1835,13 @@ static_library("browser") { "webid/federated_identity_permission_context_factory.h", ] @@ -727,7 +729,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3477,8 +3486,6 @@ static_library("browser") { +@@ -3438,8 +3447,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -739,7 +741,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8463,6 +8463,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8785,6 +8785,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, #endif @@ -1251,7 +1253,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6634,6 +6634,11 @@ const char kPromiseIconsDescription[] = +@@ -6790,6 +6790,11 @@ const char kPromiseIconsDescription[] = #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -1266,7 +1268,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3854,6 +3854,9 @@ extern const char kPromiseIconsDescription[]; +@@ -3951,6 +3951,9 @@ extern const char kPromiseIconsDescription[]; #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -1279,15 +1281,15 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -177,6 +177,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCastDeviceFilter, &kClearOmniboxFocusAfterNavigation, &kCloseTabSuggestions, + &kBookmarksExportUseSaf, &kCriticalPersistedTabData, &kCommerceCoupons, - &kCCTBackgroundTab, -@@ -1083,6 +1084,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, + &kCCTAllowCrossUidActivitySwitchFromBelow, +@@ -1119,6 +1120,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1302,7 +1304,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -161,6 +161,7 @@ BASE_DECLARE_FEATURE(kTabStripImprovements); +@@ -168,6 +168,7 @@ BASE_DECLARE_FEATURE(kTabStripImprovements); BASE_DECLARE_FEATURE(kDiscoverFeedMultiColumn); BASE_DECLARE_FEATURE(kTabStripRedesign); BASE_DECLARE_FEATURE(kTabToGTSAnimation); @@ -1313,14 +1315,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -545,6 +545,7 @@ public abstract class ChromeFeatureList { +@@ -558,6 +558,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VIDEO_TUTORIALS = "VideoTutorials"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar"; public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; - public static final String WEBNOTES_DYNAMIC_TEMPLATES = "WebNotesDynamicTemplates"; + public static final String WEBNOTES_STYLIZE = "WebNotesStylize"; diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc --- a/chrome/browser/importer/profile_writer.cc +++ b/chrome/browser/importer/profile_writer.cc @@ -1382,7 +1384,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -113,6 +113,8 @@ public final class ChromePreferenceKeys { +@@ -106,6 +106,8 @@ public final class ChromePreferenceKeys { public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url"; public static final String BOOKMARKS_LAST_USED_PARENT = "enhanced_bookmark_last_used_parent_folder"; @@ -1391,7 +1393,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * Whether Chrome is set as the default browser. -@@ -1011,6 +1013,7 @@ public final class ChromePreferenceKeys { +@@ -1002,6 +1004,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1430,7 +1432,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -401,6 +401,9 @@ static_library("common_lib") { +@@ -402,6 +402,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1567,7 +1569,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -41,6 +41,7 @@ import org.chromium.base.task.AsyncTask; +@@ -44,6 +44,7 @@ import org.chromium.base.task.AsyncTask; import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.R; @@ -1575,7 +1577,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import org.chromium.ui.permissions.PermissionConstants; -@@ -64,6 +65,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -67,6 +68,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String TAG = "SelectFileDialog"; private static final String IMAGE_TYPE = "image"; private static final String VIDEO_TYPE = "video"; @@ -1583,7 +1585,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; -@@ -258,6 +260,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -262,6 +264,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mFileTypes = fileTypes; } @@ -1595,7 +1597,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -284,7 +291,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -288,7 +295,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1604,7 +1606,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui // The permission scenario for accessing media has evolved a bit over the years: // Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was // later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and -@@ -333,7 +340,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -337,7 +344,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -1613,7 +1615,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format("Permissions arrays misaligned: %d != %d", -@@ -347,7 +354,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -351,7 +358,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1622,7 +1624,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions[i].equals(storagePermission) || permissions[i].equals(PermissionConstants.READ_MEDIA_IMAGES) || permissions[i].equals( -@@ -553,6 +560,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -570,6 +577,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -1630,7 +1632,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -881,6 +889,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -898,6 +906,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mFileTypes.size(); } diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 5bef3b40..1bc3fe42 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -4,14 +4,14 @@ Subject: Bookmarks select all menu entry License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/res/menu/bookmark_action_bar_menu.xml | 7 +++++++ - .../browser/bookmarks/BookmarkActionBar.java | 15 +++++++++++++++ + .../java/res/menu/bookmark_toolbar_menu.xml | 7 +++++++ + .../chrome/browser/bookmarks/BookmarkToolbar.java | 15 +++++++++++++++ .../ui/android/strings/android_chrome_strings.grd | 3 +++ 3 files changed, 25 insertions(+) -diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml ---- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml -+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml +diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml +--- a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml ++++ b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml @@ -23,6 +23,13 @@ found in the LICENSE file. android:visible="false" app:showAsAction="ifRoom" @@ -26,20 +26,36 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/ + * Main toolbar of bookmark UI. It is responsible for displaying title and buttons +@@ -138,6 +139,7 @@ public class BookmarkToolbar extends SelectableListToolbar + void setCurrentFolder(BookmarkItem folder) { + mCurrentFolder = folder; + ++ getMenu().findItem(R.id.select_all_menu_id).setVisible(true); + getMenu().findItem(R.id.import_menu_id).setVisible(true); + getMenu().findItem(R.id.export_menu_id).setVisible(true); + getMenu().findItem(R.id.search_menu_id).setVisible(true); +@@ -174,6 +176,7 @@ public class BookmarkToolbar extends SelectableListToolbar + void showLoadingUi() { + setTitle(null); + setNavigationButton(NAVIGATION_BUTTON_NONE); ++ getMenu().findItem(R.id.select_all_menu_id).setVisible(false); + getMenu().findItem(R.id.import_menu_id).setVisible(false); + getMenu().findItem(R.id.export_menu_id).setVisible(false); + getMenu().findItem(R.id.search_menu_id).setVisible(false); +@@ -258,6 +261,17 @@ public class BookmarkToolbar extends SelectableListToolbar } - selectionDelegate.clearSelection(); + mSelectionDelegate.clearSelection(); return true; + } else if (menuItem.getItemId() == R.id.select_all_menu_id) { + BookmarkModel bookmarkModel = mDelegate.getModel(); @@ -55,30 +71,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } assert false : "Unhandled menu click."; -@@ -153,6 +165,7 @@ public class BookmarkActionBar extends SelectableListToolbar - void showLoadingUi() { - setTitle(null); - setNavigationButton(NAVIGATION_BUTTON_NONE); -+ getMenu().findItem(R.id.select_all_menu_id).setVisible(false); - getMenu().findItem(R.id.import_menu_id).setVisible(false); - getMenu().findItem(R.id.export_menu_id).setVisible(false); - getMenu().findItem(R.id.search_menu_id).setVisible(false); -@@ -164,6 +177,7 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -281,6 +295,7 @@ public class BookmarkToolbar extends SelectableListToolbar super.showNormalView(); - if (mDelegate == null) { + if (mCurrentFolder == null) { + getMenu().findItem(R.id.select_all_menu_id).setVisible(false); getMenu().findItem(R.id.import_menu_id).setVisible(false); getMenu().findItem(R.id.export_menu_id).setVisible(false); getMenu().findItem(R.id.search_menu_id).setVisible(false); -@@ -195,6 +209,7 @@ public class BookmarkActionBar extends SelectableListToolbar - @Override - public void onFolderStateSet(BookmarkId folder) { - mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); -+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true); - getMenu().findItem(R.id.import_menu_id).setVisible(true); - getMenu().findItem(R.id.export_menu_id).setVisible(true); - getMenu().findItem(R.id.search_menu_id).setVisible(true); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index 8df053b6..3d4b7006 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -57,7 +57,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PrivacyGuidePagerAdapter.java | 2 - .../privacy_guide/PrivacyGuideUtils.java | 6 +- .../privacy_guide/StepDisplayHandlerImpl.java | 2 +- - ...hrome_browser_main_extra_parts_profiles.cc | 10 +- + ...hrome_browser_main_extra_parts_profiles.cc | 11 +-- chrome/browser/profiles/profile_impl.cc | 4 +- chrome/browser/safe_browsing/BUILD.gn | 4 +- chrome/browser/safe_browsing/android/BUILD.gn | 5 - @@ -98,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../file_system_access_permission_context.h | 6 -- weblayer/BUILD.gn | 4 - weblayer/test/BUILD.gn | 1 - - 89 files changed, 213 insertions(+), 749 deletions(-) + 89 files changed, 213 insertions(+), 750 deletions(-) diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml --- a/chrome/android/java/res/xml/google_services_preferences.xml @@ -159,7 +159,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -30,15 +30,11 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; +@@ -31,15 +31,11 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment; import org.chromium.chrome.browser.profiles.Profile; @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; -@@ -60,9 +56,7 @@ public class PrivacySettings +@@ -61,9 +57,7 @@ public class PrivacySettings extends PreferenceFragmentCompat private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; private static final String PREF_SECURE_DNS = "secure_dns"; @@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; -@@ -115,15 +109,6 @@ public class PrivacySettings +@@ -117,15 +111,6 @@ public class PrivacySettings extends PreferenceFragmentCompat mIncognitoLockSettings = new IncognitoLockSettings(incognitoReauthPreference); mIncognitoLockSettings.setUpIncognitoReauthPreference(getActivity()); @@ -201,8 +201,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting setHasOptionsMenu(true); ChromeSwitchPreference canMakePaymentPref = -@@ -148,16 +133,11 @@ public class PrivacySettings - public boolean isPreferenceClickDisabledByPolicy(Preference preference) { +@@ -150,16 +135,11 @@ public class PrivacySettings extends PreferenceFragmentCompat + public boolean isPreferenceClickDisabled(Preference preference) { // Advanced Protection automatically enables HTTPS-Only Mode so // lock the setting. - return isPreferenceControlledByPolicy(preference) @@ -219,7 +219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference secureDnsPref = findPreference(PREF_SECURE_DNS); secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); -@@ -249,32 +229,6 @@ public class PrivacySettings +@@ -251,32 +231,6 @@ public class PrivacySettings extends PreferenceFragmentCompat secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); } @@ -308,7 +308,7 @@ diff --git a/chrome/app/android/chrome_main_delegate_android.cc b/chrome/app/and diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -299,8 +299,6 @@ static_library("browser") { +@@ -297,8 +297,6 @@ static_library("browser") { "commerce/shopping_service_factory.h", "complex_tasks/task_tab_helper.cc", "complex_tasks/task_tab_helper.h", @@ -317,7 +317,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "component_updater/chrome_component_updater_configurator.cc", "component_updater/chrome_component_updater_configurator.h", "component_updater/chrome_origin_trials_component_installer.cc", -@@ -313,8 +311,6 @@ static_library("browser") { +@@ -311,8 +309,6 @@ static_library("browser") { "component_updater/component_updater_utils.h", "component_updater/crl_set_component_installer.cc", "component_updater/crl_set_component_installer.h", @@ -326,7 +326,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "component_updater/desktop_sharing_hub_component_remover.cc", "component_updater/desktop_sharing_hub_component_remover.h", "component_updater/first_party_sets_component_installer.cc", -@@ -665,11 +661,6 @@ static_library("browser") { +@@ -663,11 +659,6 @@ static_library("browser") { "lookalikes/lookalike_url_service.h", "lookalikes/lookalike_url_tab_storage.cc", "lookalikes/lookalike_url_tab_storage.h", @@ -338,7 +338,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "media/audio_service_util.cc", "media/audio_service_util.h", "media/history/media_history_contents_observer.cc", -@@ -1102,8 +1093,6 @@ static_library("browser") { +@@ -1100,8 +1091,6 @@ static_library("browser") { "permissions/adaptive_quiet_notification_permission_ui_enabler.h", "permissions/chrome_permissions_client.cc", "permissions/chrome_permissions_client.h", @@ -347,7 +347,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "permissions/crowd_deny_preload_data.cc", "permissions/crowd_deny_preload_data.h", "permissions/crowd_deny_safe_browsing_request.cc", -@@ -2172,9 +2161,6 @@ static_library("browser") { +@@ -2127,9 +2116,6 @@ static_library("browser") { "//components/leveldb_proto", "//components/live_caption:constants", "//components/live_caption:utils", @@ -357,7 +357,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/memory_pressure", "//components/metrics:call_stack_profile_collector", "//components/metrics:call_stack_profile_params", -@@ -2269,7 +2255,6 @@ static_library("browser") { +@@ -2225,7 +2211,6 @@ static_library("browser") { "//components/reporting/util:task_runner_context", "//components/resources", "//components/safe_browsing/content/browser", @@ -365,7 +365,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/web_ui", -@@ -3073,12 +3058,6 @@ static_library("browser") { +@@ -3028,12 +3013,6 @@ static_library("browser") { "lifetime/application_lifetime_android.h", "long_screenshots/long_screenshots_tab_service_factory.cc", "long_screenshots/long_screenshots_tab_service_factory.h", @@ -378,7 +378,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "media/android/cdm/media_drm_origin_id_manager.cc", "media/android/cdm/media_drm_origin_id_manager.h", "media/android/cdm/media_drm_origin_id_manager_factory.cc", -@@ -3630,8 +3609,6 @@ static_library("browser") { +@@ -3595,8 +3574,6 @@ static_library("browser") { "download/download_commands.h", "download/download_crx_util.cc", "download/download_crx_util.h", @@ -387,7 +387,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "download/download_dir_policy_handler.cc", "download/download_dir_policy_handler.h", "download/download_dir_util.cc", -@@ -7943,9 +7920,6 @@ static_library("test_support") { +@@ -7932,9 +7909,6 @@ static_library("test_support") { "//components/consent_auditor:test_support", "//components/invalidation/impl", "//components/invalidation/impl:test_support", @@ -410,7 +410,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/ui/android/tab_model/tab_model_list.h" #include "chrome/browser/ui/autofill/chrome_autofill_client.h" -@@ -60,7 +62,9 @@ +@@ -61,7 +63,9 @@ #include "components/navigation_interception/intercept_navigation_delegate.h" #include "components/no_state_prefetch/browser/no_state_prefetch_manager.h" #include "components/paint_preview/buildflags/buildflags.h" @@ -420,7 +420,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom #include "content/public/browser/file_select_listener.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/render_frame_host.h" -@@ -145,8 +149,10 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( +@@ -146,8 +150,10 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( content::WebContents* portal_contents) { WebContentsDelegateAndroid::PortalWebContentsCreated(portal_contents); @@ -431,7 +431,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom // This is a subset of the tab helpers that would be attached by // TabAndroid::AttachTabHelpers. -@@ -169,11 +175,13 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( +@@ -163,11 +169,13 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( HistoryTabHelper::CreateForWebContents(portal_contents); infobars::ContentInfoBarManager::CreateForWebContents(portal_contents); PrefsTabHelper::CreateForWebContents(portal_contents); @@ -459,7 +459,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h namespace subresource_filter { class RulesetService; } -@@ -211,9 +207,6 @@ class BrowserProcess { +@@ -218,9 +214,6 @@ class BrowserProcess { // on this platform (or this is a unit test). virtual StatusTray* status_tray() = 0; @@ -480,7 +480,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro #include "chrome/browser/shell_integration.h" #include "chrome/browser/site_isolation/prefs_observer.h" #include "chrome/browser/ssl/secure_origin_prefs_observer.h" -@@ -111,7 +110,6 @@ +@@ -110,7 +109,6 @@ #include "components/prefs/json_pref_store.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" @@ -488,7 +488,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro #include "components/sessions/core/session_id_generator.h" #include "components/subresource_filter/content/browser/ruleset_service.h" #include "components/translate/core/browser/translate_download_manager.h" -@@ -418,8 +416,6 @@ void BrowserProcessImpl::StartTearDown() { +@@ -447,8 +445,6 @@ void BrowserProcessImpl::StartTearDown() { metrics_services_manager_.reset(); intranet_redirect_detector_.reset(); @@ -497,7 +497,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro network_time_tracker_.reset(); #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) -@@ -1062,14 +1058,6 @@ StatusTray* BrowserProcessImpl::status_tray() { +@@ -1094,14 +1090,6 @@ StatusTray* BrowserProcessImpl::status_tray() { return status_tray_.get(); } @@ -512,7 +512,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro subresource_filter::RulesetService* BrowserProcessImpl::subresource_filter_ruleset_service() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1309,23 +1297,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { +@@ -1334,23 +1322,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { } void BrowserProcessImpl::CreateSafeBrowsingService() { @@ -539,7 +539,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -180,7 +180,6 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -182,7 +182,6 @@ class BrowserProcessImpl : public BrowserProcess, std::unique_ptr manager) override; #endif StatusTray* status_tray() override; @@ -547,7 +547,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc subresource_filter::RulesetService* subresource_filter_ruleset_service() override; -@@ -331,9 +330,6 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -333,9 +332,6 @@ class BrowserProcessImpl : public BrowserProcess, std::unique_ptr background_mode_manager_; #endif @@ -560,7 +560,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -634,10 +634,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -625,10 +625,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies")); network::mojom::NetworkContext* safe_browsing_context = nullptr; @@ -576,15 +576,15 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -121,6 +121,7 @@ +@@ -119,6 +119,7 @@ #include "chrome/browser/profiling_host/chrome_browser_main_extra_parts_profiling.h" #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h" #include "chrome/browser/renderer_preferences_util.h" +#if defined(FULL_SAFE_BROWSING) #include "chrome/browser/safe_browsing/certificate_reporting_service.h" #include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" - #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h" -@@ -128,6 +129,7 @@ + #include "chrome/browser/safe_browsing/chrome_ping_manager_factory.h" +@@ -127,6 +128,7 @@ #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h" #include "chrome/browser/safe_browsing/url_lookup_service_factory.h" @@ -592,7 +592,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/search/search.h" #include "chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.h" #include "chrome/browser/sharing/sms/sms_remote_fetcher.h" -@@ -1065,9 +1067,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { +@@ -1047,9 +1049,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { class CertificateReportingServiceCertReporter : public SSLCertReporter { public: explicit CertificateReportingServiceCertReporter( @@ -603,7 +603,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch CertificateReportingServiceCertReporter( const CertificateReportingServiceCertReporter&) = delete; -@@ -1079,11 +1079,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter { +@@ -1061,11 +1061,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter { // SSLCertReporter implementation void ReportInvalidCertificateChain( const std::string& serialized_report) override { @@ -615,7 +615,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch }; #if BUILDFLAG(ENABLE_EXTENSIONS) -@@ -2575,7 +2573,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2581,7 +2579,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( } #elif BUILDFLAG(IS_POSIX) #if BUILDFLAG(IS_ANDROID) @@ -624,7 +624,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #elif BUILDFLAG(IS_CHROMEOS) bool enable_crash_reporter = false; if (crash_reporter::IsCrashpadEnabled()) { -@@ -5027,6 +5025,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5056,6 +5054,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -632,7 +632,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // g_browser_process->safe_browsing_service() may be null in unittests. safe_browsing::SafeBrowsingUIManager* ui_manager = g_browser_process->safe_browsing_service() -@@ -5042,6 +5041,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5071,6 +5070,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( std::make_unique( handle)); } @@ -640,7 +640,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: -@@ -5312,7 +5312,9 @@ void ChromeContentBrowserClient::OverridePageVisibilityState( +@@ -5349,7 +5349,9 @@ void ChromeContentBrowserClient::OverridePageVisibilityState( void ChromeContentBrowserClient::InitOnUIThread() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -650,15 +650,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // Initialize `network_contexts_parent_directory_`. base::FilePath user_data_dir; -@@ -6585,6 +6587,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( - const std::vector& allowlist_domains) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); +@@ -6615,6 +6617,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( + ? content::BrowserThread::UI + : content::BrowserThread::IO); +#if defined(FULL_SAFE_BROWSING) // Should not bypass safe browsing check if the check is for enterprise // lookup. if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled) -@@ -6605,6 +6608,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -6635,6 +6638,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( } return safe_browsing_url_checker_delegate_; @@ -668,7 +668,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } safe_browsing::RealTimeUrlLookupServiceBase* -@@ -6612,24 +6618,28 @@ ChromeContentBrowserClient::GetUrlLookupService( +@@ -6642,24 +6648,28 @@ ChromeContentBrowserClient::GetUrlLookupService( content::BrowserContext* browser_context, bool is_enterprise_lookup_enabled, bool is_consumer_lookup_enabled) { @@ -701,7 +701,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -941,9 +941,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -964,9 +964,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { // Parts are deleted in the reverse order they are added. std::vector extra_parts_; @@ -758,7 +758,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c #include "chrome/browser/component_updater/chrome_origin_trials_component_installer.h" #include "chrome/browser/component_updater/commerce_heuristics_component_installer.h" #include "chrome/browser/component_updater/crl_set_component_installer.h" -@@ -39,7 +38,6 @@ +@@ -40,7 +39,6 @@ #include "components/component_updater/installer_policies/autofill_states_component_installer.h" #include "components/component_updater/installer_policies/on_device_head_suggest_component_installer.h" #include "components/component_updater/installer_policies/optimization_hints_component_installer.h" @@ -766,7 +766,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c #include "components/component_updater/url_param_filter_remover.h" #include "components/nacl/common/buildflags.h" #include "components/safe_browsing/core/common/features.h" -@@ -185,9 +183,6 @@ void RegisterComponentsForUpdate() { +@@ -186,9 +184,6 @@ void RegisterComponentsForUpdate() { MaybeRegisterPKIMetadataComponent(cus); @@ -776,7 +776,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c #if BUILDFLAG(IS_CHROMEOS_ASH) RegisterSmartDimComponent(cus); RegisterAppProvisioningComponent(cus); -@@ -208,13 +203,6 @@ void RegisterComponentsForUpdate() { +@@ -214,13 +209,6 @@ void RegisterComponentsForUpdate() { RegisterAutofillStatesComponent(cus, g_browser_process->local_state()); @@ -812,8 +812,8 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom +#endif #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_paths.h" - #include "chrome/common/net/safe_search_util.h" -@@ -68,9 +72,11 @@ + #include "chrome/common/pdf_util.h" +@@ -68,10 +72,12 @@ #include "components/prefs/pref_member.h" #include "components/prefs/pref_service.h" #include "components/safe_browsing/buildflags.h" @@ -821,11 +821,12 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #include "components/safe_browsing/content/browser/download/download_stats.h" #include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h" #include "components/safe_browsing/content/common/file_type_policies.h" + #include "components/safe_search_api/safe_search_util.h" +#endif #include "components/services/quarantine/public/mojom/quarantine.mojom.h" #include "components/services/quarantine/quarantine_impl.h" #include "content/public/browser/browser_task_traits.h" -@@ -136,7 +142,9 @@ using content::DownloadManager; +@@ -137,7 +143,9 @@ using content::DownloadManager; using download::DownloadItem; using download::DownloadPathReservationTracker; using download::PathValidationResult; @@ -849,7 +850,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (download_restriction != DownloadPrefs::DownloadRestriction::POTENTIALLY_DANGEROUS_FILES && download_restriction != -@@ -402,8 +410,8 @@ void MaybeReportDangerousDownloadBlocked( +@@ -405,8 +413,8 @@ void MaybeReportDangerousDownloadBlocked( danger_type, download->GetMimeType(), /*scan_id*/ "", download->GetTotalBytes(), safe_browsing::EventResult::BLOCKED); } @@ -859,7 +860,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #if BUILDFLAG(FULL_SAFE_BROWSING) download::DownloadDangerType SavePackageDangerType( -@@ -461,13 +469,6 @@ void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { +@@ -464,13 +472,6 @@ void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { download_manager_ = dm; @@ -873,7 +874,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (download_manager_) { download_manager_->AddObserver(this); } -@@ -832,17 +833,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( +@@ -835,17 +836,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath* filename, const GURL& source_url) { @@ -891,7 +892,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } void ChromeDownloadManagerDelegate::SanitizeDownloadParameters( -@@ -906,9 +896,6 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { +@@ -910,9 +900,6 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { chrome::ShowSettingsSubPage(browser, "certificates"); else browser->OpenURL(params); @@ -901,7 +902,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #endif // BUILDFLAG(IS_ANDROID) } -@@ -962,12 +949,6 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { +@@ -966,12 +953,6 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { DownloadProtectionService* ChromeDownloadManagerDelegate::GetDownloadProtectionService() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -914,7 +915,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom return nullptr; } #endif -@@ -1514,8 +1495,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( +@@ -1518,8 +1499,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( DownloadItemModel model(item); model.DetermineAndSetShouldPreferOpeningInBrowser( target_info->target_path, target_info->is_filetype_handled_safely); @@ -926,7 +927,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (ShouldBlockFile(item, target_info->danger_type)) { MaybeReportDangerousDownloadBlocked( download_prefs_->download_restriction(), "DANGEROUS_FILE_TYPE", -@@ -1524,6 +1508,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( +@@ -1528,6 +1512,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( // A dangerous type would take precedence over the blocking of the file. target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS; } @@ -934,15 +935,15 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom base::FilePath target_path = target_info->target_path; -@@ -1593,6 +1578,7 @@ bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile( - bool ChromeDownloadManagerDelegate::ShouldBlockFile( - download::DownloadItem* item, - download::DownloadDangerType danger_type) const { +@@ -1602,6 +1587,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( + return false; + } + +#if BUILDFLAG(FULL_SAFE_BROWSING) DownloadPrefs::DownloadRestriction download_restriction = download_prefs_->download_restriction(); -@@ -1641,7 +1627,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( +@@ -1650,7 +1636,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( LOG(ERROR) << "Invalid download restruction value: " << static_cast(download_restriction); } @@ -951,7 +952,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom return false; } -@@ -1655,7 +1641,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( +@@ -1664,7 +1650,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( service->MaybeSendDangerousDownloadOpenedReport(download, show_download_in_folder); } @@ -959,7 +960,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (!download->GetAutoOpened()) { download::DownloadContent download_content = download::DownloadContentFromMimeType(download->GetMimeType(), false); -@@ -1663,6 +1648,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( +@@ -1672,6 +1657,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( download->GetDangerType(), download_content, base::Time::Now(), download->GetEndTime(), show_download_in_folder); } @@ -1003,7 +1004,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow #include "components/safe_browsing/core/common/features.h" #include "components/signin/public/base/consent_level.h" #include "components/signin/public/identity_manager/account_info.h" -@@ -70,7 +74,9 @@ +@@ -71,7 +75,9 @@ using download::DownloadItem; using InsecureDownloadStatus = download::DownloadItem::InsecureDownloadStatus; @@ -1013,7 +1014,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow using ReportThreatDetailsResult = safe_browsing::PingManager::ReportThreatDetailsResult; using TailoredVerdict = safe_browsing::ClientDownloadResponse::TailoredVerdict; -@@ -108,9 +114,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data { +@@ -109,9 +115,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data { // for the file type. absl::optional should_prefer_opening_in_browser_; @@ -1025,7 +1026,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow // Whether the download is currently being revived. bool is_being_revived_; -@@ -160,7 +168,9 @@ DownloadItemModelData* DownloadItemModelData::GetOrCreate( +@@ -161,7 +169,9 @@ DownloadItemModelData* DownloadItemModelData::GetOrCreate( DownloadItemModelData::DownloadItemModelData() : should_show_in_shelf_(true), was_ui_notified_(false), @@ -1035,7 +1036,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow is_being_revived_(false) {} #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -543,6 +553,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { +@@ -544,6 +554,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { data->should_prefer_opening_in_browser_ = preference; } @@ -1043,7 +1044,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const { const DownloadItemModelData* data = DownloadItemModelData::Get(download_); return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS; -@@ -553,6 +564,7 @@ void DownloadItemModel::SetDangerLevel( +@@ -554,6 +565,7 @@ void DownloadItemModel::SetDangerLevel( DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); data->danger_level_ = danger_level; } @@ -1051,7 +1052,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow download::DownloadItem::InsecureDownloadStatus DownloadItemModel::GetInsecureDownloadStatus() const { -@@ -728,9 +740,6 @@ bool DownloadItemModel::IsCommandEnabled( +@@ -729,9 +741,6 @@ bool DownloadItemModel::IsCommandEnabled( // filename. Don't base an "Always open" decision based on it. Also // exclude extensions. return download_->CanOpenDownload() && @@ -1147,9 +1148,9 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download #include "components/safe_browsing/content/browser/download/download_stats.h" +#endif - void RecordDownloadCount(ChromeDownloadCountTypes type) { - base::UmaHistogramEnumeration("Download.CountsChrome", type, -@@ -29,8 +31,10 @@ void RecordDangerousDownloadWarningShown( + void RecordDownloadSource(ChromeDownloadSource source) { + base::UmaHistogramEnumeration("Download.SourcesChrome", source, +@@ -24,8 +26,10 @@ void RecordDangerousDownloadWarningShown( bool has_user_gesture) { base::UmaHistogramEnumeration("Download.ShowedDownloadWarning", danger_type, download::DOWNLOAD_DANGER_TYPE_MAX); @@ -1159,8 +1160,8 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download +#endif } - void RecordOpenedDangerousConfirmDialog( -@@ -45,6 +49,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, + void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, +@@ -33,11 +37,13 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, base::RecordAction(base::UserMetricsAction("Download.Open")); base::UmaHistogramEnumeration("Download.OpenMethod", open_method, DOWNLOAD_OPEN_METHOD_LAST_ENTRY); @@ -1168,8 +1169,6 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download download::DownloadContent download_content = download::DownloadContentFromMimeType( mime_type_string, /*record_content_subcategory=*/false); -@@ -61,6 +66,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method, - } base::UmaHistogramEnumeration("Download.Open.ContentType", download_content, download::DownloadContent::MAX); +#endif @@ -1449,7 +1448,7 @@ diff --git a/chrome/browser/download/download_target_info.h b/chrome/browser/dow diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc --- a/chrome/browser/download/download_ui_model.cc +++ b/chrome/browser/download/download_ui_model.cc -@@ -40,7 +40,9 @@ +@@ -41,7 +41,9 @@ using download::DownloadItem; using offline_items_collection::FailState; @@ -1459,7 +1458,7 @@ diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/downl namespace { -@@ -471,12 +473,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() { +@@ -472,12 +474,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() { void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {} @@ -1477,17 +1476,18 @@ diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/downl diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h --- a/chrome/browser/download/download_ui_model.h +++ b/chrome/browser/download/download_ui_model.h -@@ -18,7 +18,9 @@ +@@ -18,8 +18,10 @@ #include "components/download/public/common/download_item.h" #include "components/offline_items_collection/core/offline_item.h" #include "components/safe_browsing/buildflags.h" +#if defined(FULL_SAFE_BROWSING) #include "components/safe_browsing/content/common/proto/download_file_types.pb.h" + #include "third_party/abseil-cpp/absl/types/optional.h" +#endif #include "ui/base/models/image_model.h" #include "ui/color/color_id.h" #include "ui/gfx/vector_icon_types.h" -@@ -355,6 +357,7 @@ class DownloadUIModel { +@@ -362,6 +364,7 @@ class DownloadUIModel { // Change what's returned by ShouldPreferOpeningInBrowser to |preference|. virtual void SetShouldPreferOpeningInBrowser(bool preference); @@ -1495,7 +1495,7 @@ diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/downlo // Return the danger level determined during download target determination. // The value returned here is independent of the danger level as determined by // the Safe Browsing. -@@ -363,6 +366,7 @@ class DownloadUIModel { +@@ -370,6 +373,7 @@ class DownloadUIModel { // Change what's returned by GetDangerLevel(). virtual void SetDangerLevel( safe_browsing::DownloadFileType::DangerLevel danger_level); @@ -1507,7 +1507,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b --- a/chrome/browser/extensions/api/downloads/downloads_api.cc +++ b/chrome/browser/extensions/api/downloads/downloads_api.cc @@ -37,7 +37,6 @@ - #include "chrome/browser/download/bubble/download_bubble_prefs.h" + #include "chrome/browser/download/bubble/download_bubble_ui_controller.h" #include "chrome/browser/download/download_core_service.h" #include "chrome/browser/download/download_core_service_factory.h" -#include "chrome/browser/download/download_danger_prompt.h" @@ -1522,8 +1522,8 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b - DownloadsAcceptDangerFunction::on_prompt_created_ = nullptr; - ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() { - std::unique_ptr params( - downloads::AcceptDanger::Params::Create(args())); + absl::optional params = + downloads::AcceptDanger::Params::Create(args()); @@ -1401,42 +1397,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) { return; } @@ -1610,8 +1610,8 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/br diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -1280,21 +1280,9 @@ WebstorePrivateGetExtensionStatusFunction::Run() { - GetExtensionStatus::Params::Create(args())); +@@ -1288,21 +1288,9 @@ WebstorePrivateGetExtensionStatusFunction::Run() { + GetExtensionStatus::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); - const ExtensionId& extension_id = params->id; @@ -1776,7 +1776,7 @@ diff --git a/chrome/browser/lookalikes/lookalike_url_controller_client.cc b/chro diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -908,7 +908,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { +@@ -949,7 +949,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { metrics_service_->RegisterMetricsProvider( std::make_unique()); #endif @@ -1812,7 +1812,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b #endif #if BUILDFLAG(IS_ANDROID) -@@ -888,21 +888,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const { +@@ -883,21 +883,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const { safe_browsing::PasswordProtectionService* ChromePasswordManagerClient::GetPasswordProtectionService() const { @@ -1835,7 +1835,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b } #endif // defined(ON_FOCUS_PING_ENABLED) -@@ -914,15 +906,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( +@@ -909,15 +901,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( bool password_field_exists, uint64_t reused_password_hash, const std::string& domain) { @@ -1851,7 +1851,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b #if !BUILDFLAG(IS_ANDROID) // If the webpage is not an extension page, do nothing. if (!GURL(domain).SchemeIs(kExtensionScheme)) { -@@ -961,11 +944,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( +@@ -956,11 +939,6 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( } void ChromePasswordManagerClient::LogPasswordReuseDetectedEvent() { @@ -1863,7 +1863,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b } #if !BUILDFLAG(IS_ANDROID) -@@ -1578,6 +1556,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( +@@ -1582,6 +1560,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( is_enabled = false; } @@ -1871,7 +1871,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing // warnings until user interaction. If the current page has a delayed warning, // it'll have a user interaction observer attached. Disable password -@@ -1588,6 +1567,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( +@@ -1592,6 +1571,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( observer->OnPasswordSaveOrAutofillDenied(); is_enabled = false; } @@ -1974,7 +1974,7 @@ diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config. diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -9,6 +9,7 @@ +@@ -10,6 +10,7 @@ #include "base/trace_event/trace_event.h" #include "build/branding_buildflags.h" #include "build/build_config.h" @@ -1982,7 +1982,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "build/chromecast_buildflags.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/about_flags.h" -@@ -1371,7 +1372,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1430,7 +1431,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, PushMessagingAppIdentifier::RegisterProfilePrefs(registry); QuietNotificationPermissionUiState::RegisterProfilePrefs(registry); RegisterBrowserUserPrefs(registry); @@ -2081,15 +2081,15 @@ diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -122,7 +122,6 @@ +@@ -125,7 +125,6 @@ #include "chrome/browser/push_messaging/push_messaging_service_factory.h" #include "chrome/browser/reading_list/reading_list_model_factory.h" #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" -#include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" #include "chrome/browser/safe_browsing/chrome_password_protection_service_factory.h" + #include "chrome/browser/safe_browsing/chrome_ping_manager_factory.h" #include "chrome/browser/safe_browsing/client_side_detection_service_factory.h" - #include "chrome/browser/safe_browsing/safe_browsing_metrics_collector_factory.h" -@@ -520,7 +519,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -563,7 +562,6 @@ void ChromeBrowserMainExtraPartsProfiles:: CertDbInitializerFactory::GetInstance(); #endif #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) @@ -2097,20 +2097,21 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #endif #if BUILDFLAG(ENABLE_SUPERVISED_USERS) ChildAccountServiceFactory::GetInstance(); -@@ -830,12 +828,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -897,13 +895,6 @@ void ChromeBrowserMainExtraPartsProfiles:: safe_browsing::ExtensionTelemetryServiceFactory::GetInstance(); safe_browsing::HashRealTimeServiceFactory::GetInstance(); #endif - safe_browsing::ChromePasswordProtectionServiceFactory::GetInstance(); +- safe_browsing::ChromePingManagerFactory::GetInstance(); - safe_browsing::ClientSideDetectionServiceFactory::GetInstance(); - safe_browsing::RealTimeUrlLookupServiceFactory::GetInstance(); - safe_browsing::SafeBrowsingMetricsCollectorFactory::GetInstance(); - safe_browsing::SafeBrowsingNavigationObserverManagerFactory::GetInstance(); - safe_browsing::VerdictCacheManagerFactory::GetInstance(); - #if BUILDFLAG(IS_MAC) - if (screentime::IsScreenTimeEnabled()) { - screentime::HistoryBridgeFactory::GetInstance(); -@@ -884,7 +876,9 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) + screen_ai::AXScreenAIAnnotatorFactory::EnsureFactoryBuilt(); + screen_ai::PdfOcrControllerFactory::GetInstance(); +@@ -957,7 +948,9 @@ void ChromeBrowserMainExtraPartsProfiles:: } #endif TabRestoreServiceFactory::GetInstance(); @@ -2123,7 +2124,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -94,7 +94,6 @@ +@@ -93,7 +93,6 @@ #include "chrome/browser/push_messaging/push_messaging_service_factory.h" #include "chrome/browser/push_messaging/push_messaging_service_impl.h" #include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h" @@ -2378,7 +2379,7 @@ diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chro diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service.cc b/chrome/browser/safe_browsing/download_protection/download_protection_service.cc --- a/chrome/browser/safe_browsing/download_protection/download_protection_service.cc +++ b/chrome/browser/safe_browsing/download_protection/download_protection_service.cc -@@ -807,11 +807,13 @@ void DownloadProtectionService::RequestFinished(DeepScanningRequest* request) { +@@ -811,11 +811,13 @@ void DownloadProtectionService::RequestFinished(DeepScanningRequest* request) { deep_scanning_requests_.erase(it); } @@ -2420,7 +2421,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/download_protectio diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome/browser/safe_browsing/url_lookup_service_factory.cc --- a/chrome/browser/safe_browsing/url_lookup_service_factory.cc +++ b/chrome/browser/safe_browsing/url_lookup_service_factory.cc -@@ -56,6 +56,7 @@ RealTimeUrlLookupServiceFactory::RealTimeUrlLookupServiceFactory() +@@ -63,6 +63,7 @@ RealTimeUrlLookupServiceFactory::RealTimeUrlLookupServiceFactory() KeyedService* RealTimeUrlLookupServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { @@ -2428,7 +2429,7 @@ diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome if (!g_browser_process->safe_browsing_service()) { return nullptr; } -@@ -78,6 +79,9 @@ KeyedService* RealTimeUrlLookupServiceFactory::BuildServiceInstanceFor( +@@ -85,6 +86,9 @@ KeyedService* RealTimeUrlLookupServiceFactory::BuildServiceInstanceFor( profile->IsOffTheRecord(), g_browser_process->variations_service(), SafeBrowsingNavigationObserverManagerFactory::GetForBrowserContext( profile)); @@ -2670,7 +2671,7 @@ diff --git a/chrome/browser/subresource_filter/chrome_content_subresource_filter diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -558,7 +558,6 @@ static_library("ui") { +@@ -560,7 +560,6 @@ static_library("ui") { "//components/renderer_context_menu", "//components/resources", "//components/safe_browsing/content/browser", @@ -2678,7 +2679,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/web_ui", "//components/safe_browsing/core/browser/db:database_manager", -@@ -4540,7 +4539,6 @@ static_library("ui") { +@@ -4592,7 +4591,6 @@ static_library("ui") { "views/download/bubble/download_dialog_view.h", "views/download/bubble/download_toolbar_button_view.cc", "views/download/bubble/download_toolbar_button_view.h", @@ -2689,7 +2690,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -411,9 +411,6 @@ CHAR_LIMIT guidelines: +@@ -414,9 +414,6 @@ CHAR_LIMIT guidelines: Help improve Chrome\u2019s features and performance @@ -2699,8 +2700,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4942,9 +4939,6 @@ To change this setting, <resetlink>reset sync

      <resetlink>reset sync

      - @@ -2720,7 +2721,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/media/history/media_history_contents_observer.h" #include "chrome/browser/media/media_engagement_service.h" #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_observer.h" -@@ -62,12 +61,14 @@ +@@ -61,12 +60,14 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_key.h" #include "chrome/browser/resource_coordinator/tab_helper.h" @@ -2735,7 +2736,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/sessions/session_tab_helper_factory.h" #include "chrome/browser/ssl/chrome_security_blocking_page_factory.h" -@@ -132,9 +133,11 @@ +@@ -131,9 +132,11 @@ #include "components/permissions/permission_recovery_success_rate_tracker.h" #include "components/permissions/permission_request_manager.h" #include "components/permissions/unused_site_permissions_service.h" @@ -2747,7 +2748,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/search/ntp_features.h" #include "components/site_engagement/content/site_engagement_helper.h" #include "components/site_engagement/content/site_engagement_service.h" -@@ -405,6 +408,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -398,6 +401,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // See https://crbug.com/910288. resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents( web_contents); @@ -2755,7 +2756,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents( web_contents, HostContentSettingsMapFactory::GetForProfile(profile), safe_browsing::SafeBrowsingNavigationObserverManagerFactory:: -@@ -422,6 +426,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -415,6 +419,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { safe_browsing::TriggerCreator::MaybeCreateTriggersForWebContents( profile, web_contents); SafetyTipWebContentsObserver::CreateForWebContents(web_contents); @@ -2766,15 +2767,15 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -@@ -278,6 +278,7 @@ CreateHttpsOnlyModePage(content::WebContents* web_contents) { - request_url)); +@@ -279,6 +279,7 @@ CreateHttpsOnlyModePage(content::WebContents* web_contents) { + /*is_under_advanced_protection=*/false); } +#if 0 std::unique_ptr CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) { safe_browsing::SBThreatType threat_type = -@@ -336,7 +337,9 @@ CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) { +@@ -337,7 +338,9 @@ CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) { ui_manager->blocking_page_factory()->CreateSafeBrowsingPage( ui_manager, web_contents, main_frame_url, {resource}, true)); } @@ -2784,7 +2785,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b std::unique_ptr CreateEnterpriseBlockPage( content::WebContents* web_contents) { const GURL kRequestUrl("https://enterprise-block.example.net"); -@@ -427,6 +430,7 @@ CreateSafeBrowsingQuietBlockingPage(content::WebContents* web_contents) { +@@ -428,6 +431,7 @@ CreateSafeBrowsingQuietBlockingPage(content::WebContents* web_contents) { g_browser_process->safe_browsing_service()->ui_manager().get(), web_contents, main_frame_url, resource, is_giant_webview)); } @@ -2792,7 +2793,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) std::unique_ptr CreateCaptivePortalBlockingPage( -@@ -534,12 +538,6 @@ void InterstitialHTMLSource::StartDataRequest( +@@ -535,12 +539,6 @@ void InterstitialHTMLSource::StartDataRequest( interstitial_delegate = CreateMITMSoftwareBlockingPage(web_contents); } else if (path_without_query == "/blocked-interception") { interstitial_delegate = CreateBlockedInterceptionBlockingPage(web_contents); @@ -2805,7 +2806,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b } else if (path_without_query == "/clock") { interstitial_delegate = CreateBadClockBlockingPage(web_contents); } else if (path_without_query == "/lookalike") { -@@ -552,13 +550,7 @@ void InterstitialHTMLSource::StartDataRequest( +@@ -553,13 +551,7 @@ void InterstitialHTMLSource::StartDataRequest( interstitial_delegate = CreateInsecureFormPage(web_contents); } else if (path_without_query == "/https_only") { interstitial_delegate = CreateHttpsOnlyModePage(web_contents); @@ -2838,15 +2839,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/ "//components/safe_browsing/core/common", ] public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] -@@ -69,7 +67,6 @@ if (safe_browsing_mode == 1) { - ":download_type_util", - "//base", - "//base:i18n", -- "//components/safe_browsing/content/common:file_type_policies", - "//components/safe_browsing/core/common", - "//third_party/unrar:unrar", - ] -@@ -151,10 +148,6 @@ if (safe_browsing_mode == 1) { +@@ -132,10 +130,6 @@ if (safe_browsing_mode == 1) { source_set("safe_browsing") { deps = [] @@ -2857,6 +2850,14 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/ if (safe_browsing_mode == 1) { sources = [ "ipc_protobuf_message_macros.h", +@@ -157,7 +151,6 @@ source_set("safe_browsing") { + ":download_type_util", + "//base", + "//base:i18n", +- "//components/safe_browsing/content/common:file_type_policies", + "//components/safe_browsing/core/common", + "//third_party/lzma_sdk/google:seven_zip_reader", + "//third_party/unrar:unrar", diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn @@ -2885,7 +2886,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #include "components/spellcheck/spellcheck_buildflags.h" #include "components/subresource_filter/content/renderer/subresource_filter_agent.h" #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h" -@@ -433,12 +435,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -459,12 +461,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { subresource_filter_ruleset_dealer_ = std::make_unique(); @@ -2921,7 +2922,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -1006,7 +1006,6 @@ if (is_android) { +@@ -1042,7 +1042,6 @@ if (is_android) { "//components/password_manager/content/browser:browser", "//components/policy:chrome_settings_proto_generated_compile", "//components/policy/core/browser:test_support", @@ -2929,7 +2930,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/common:interfaces", "//components/safe_browsing/content/renderer/phishing_classifier:phishing_classifier", "//components/safe_browsing/core/common/fbs:client_model", -@@ -1322,8 +1321,6 @@ if (!is_android) { +@@ -1356,8 +1355,6 @@ if (!is_android) { "//chrome/browser/profiling_host:profiling_browsertests", "//chrome/browser/resource_coordinator:mojo_bindings", "//chrome/browser/resource_coordinator:tab_manager_features", @@ -2938,7 +2939,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/browser/segmentation_platform:test_utils", "//chrome/browser/sharing/proto", "//chrome/browser/storage_access_api:permissions", -@@ -1466,7 +1463,6 @@ if (!is_android) { +@@ -1501,7 +1498,6 @@ if (!is_android) { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -2946,7 +2947,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/password_protection:test_support", -@@ -6082,7 +6078,6 @@ test("unit_tests") { +@@ -6165,7 +6161,6 @@ test("unit_tests") { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -2957,7 +2958,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -655,7 +655,6 @@ test("components_unittests") { +@@ -661,7 +661,6 @@ test("components_unittests") { if (safe_browsing_mode == 1) { deps += [ "//components/safe_browsing/content/browser:unit_tests", @@ -2980,7 +2981,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -715,10 +715,7 @@ PermissionRequestManager::PermissionRequestManager( +@@ -727,10 +727,7 @@ PermissionRequestManager::PermissionRequestManager( view_factory_(base::BindRepeating(&PermissionPrompt::Create)), tab_is_hidden_(web_contents->GetVisibility() == content::Visibility::HIDDEN), @@ -3019,7 +3020,7 @@ diff --git a/components/safe_browsing/content/common/file_type_policies.cc b/com diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc --- a/components/safe_browsing/core/common/features.cc +++ b/components/safe_browsing/core/common/features.cc -@@ -224,8 +224,8 @@ constexpr base::FeatureParam kStrictDownloadTimeoutMilliseconds{ +@@ -227,8 +227,8 @@ constexpr base::FeatureParam kStrictDownloadTimeoutMilliseconds{ /*default_value=*/7000}; BASE_FEATURE(kSuspiciousSiteTriggerQuotaFeature, @@ -3028,8 +3029,8 @@ diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_ + "SafeBrowsingSuspiciousSiteTriggerQuota", // disabled by default + base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - BASE_FEATURE(kTailoredSecurityDesktopNotice, - "TailoredSecurityDesktopNotice", + BASE_FEATURE(kTailoredSecurityRetryForSyncUsers, + "TailoredSecurityRetryForSyncUsers", diff --git a/components/security_interstitials/content/captive_portal_blocking_page.cc b/components/security_interstitials/content/captive_portal_blocking_page.cc --- a/components/security_interstitials/content/captive_portal_blocking_page.cc +++ b/components/security_interstitials/content/captive_portal_blocking_page.cc @@ -3236,7 +3237,7 @@ diff --git a/content/public/browser/file_system_access_permission_context.h b/co diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn -@@ -470,11 +470,9 @@ source_set("weblayer_lib_base") { +@@ -462,11 +462,9 @@ source_set("weblayer_lib_base") { "//components/profile_metrics", "//components/reduce_accept_language/browser", "//components/safe_browsing/content/browser", @@ -3248,7 +3249,7 @@ diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", "//components/safe_browsing/core/browser/db:database_manager", "//components/safe_browsing/core/common", -@@ -609,8 +607,6 @@ source_set("weblayer_lib_base") { +@@ -601,8 +599,6 @@ source_set("weblayer_lib_base") { "browser/bluetooth/weblayer_bluetooth_scanning_prompt_android_delegate.h", "browser/browser_list_proxy.cc", "browser/browser_list_proxy.h", @@ -3260,7 +3261,7 @@ diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn --- a/weblayer/test/BUILD.gn +++ b/weblayer/test/BUILD.gn -@@ -244,7 +244,6 @@ test("weblayer_browsertests") { +@@ -243,7 +243,6 @@ test("weblayer_browsertests") { "//components/page_info/android", "//components/safe_browsing/android:safe_browsing_api_handler", "//components/safe_browsing/content/browser", diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index d15bf470..e7130328 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -6,32 +6,32 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 5 ----- chrome/android/chrome_java_sources.gni | 1 - - .../browser/app/omnibox/OmniboxPedalDelegateImpl.java | 8 -------- + .../browser/app/omnibox/ActionChipsDelegateImpl.java | 8 -------- chrome/browser/BUILD.gn | 1 - 4 files changed, 15 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -322,7 +322,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/profiles/android:java", - "//chrome/browser/quick_delete:java", +@@ -314,7 +314,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/recent_tabs:factory_java", + "//chrome/browser/recent_tabs:java", "//chrome/browser/safe_browsing/android:java", - "//chrome/browser/safety_check/android:java", "//chrome/browser/search_engines/android:java", "//chrome/browser/search_resumption:java", "//chrome/browser/segmentation_platform:factory_java", -@@ -904,8 +903,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/privacy_guide/android:java", - "//chrome/browser/privacy_guide/android:junit", - "//chrome/browser/profiles/android:java", +@@ -895,8 +894,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/quick_delete:junit", + "//chrome/browser/recent_tabs:java", + "//chrome/browser/recent_tabs/internal:junit", - "//chrome/browser/safety_check/android:java", - "//chrome/browser/safety_check/android:junit", "//chrome/browser/search_engines/android:java", "//chrome/browser/search_resumption:junit", "//chrome/browser/segmentation_platform:factory_java", -@@ -1444,8 +1441,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/profiles/android:java", +@@ -1438,8 +1435,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/quick_delete:javatests", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", - "//chrome/browser/safety_check/android:java", @@ -42,7 +42,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -926,7 +926,6 @@ chrome_java_sources = [ +@@ -927,7 +927,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", @@ -50,18 +50,18 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java", "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java", "java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java", -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics; - import org.chromium.chrome.browser.omnibox.suggestions.pedal.PedalViewProperties.PedalIcon; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/ActionChipsDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/ActionChipsDelegateImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/ActionChipsDelegateImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/ActionChipsDelegateImpl.java +@@ -32,7 +32,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.ActionChipsDelegate; + import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.settings.SettingsLauncher; -@@ -96,12 +95,6 @@ public class OmniboxPedalDelegateImpl implements OmniboxPedalDelegate { +@@ -96,12 +95,6 @@ public class ActionChipsDelegateImpl implements ActionChipsDelegate { startActivity(intent); } break; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn case OmniboxPedalType.MANAGE_SITE_SETTINGS: settingsLauncher.launchSettingsActivity(mActivity, SiteSettings.class); break; -@@ -198,7 +191,6 @@ public class OmniboxPedalDelegateImpl implements OmniboxPedalDelegate { +@@ -198,7 +191,6 @@ public class ActionChipsDelegateImpl implements ActionChipsDelegate { case OmniboxPedalType.MANAGE_PASSWORDS: case OmniboxPedalType.UPDATE_CREDIT_CARD: case OmniboxPedalType.LAUNCH_INCOGNITO: @@ -85,9 +85,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3299,7 +3299,6 @@ static_library("browser") { - "//chrome/browser/privacy_sandbox/android:jni_headers", +@@ -3261,7 +3261,6 @@ static_library("browser") { "//chrome/browser/reading_list/android", + "//chrome/browser/recent_tabs:jni_headers", "//chrome/browser/safe_browsing/android:safe_browsing_enums", - "//chrome/browser/safety_check/android", "//chrome/browser/search_resumption:jni_headers", diff --git a/build/patches/Disable-support-for-RAR-files-inspection.patch b/build/patches/Disable-support-for-RAR-files-inspection.patch index 7680040c..44342f4f 100644 --- a/build/patches/Disable-support-for-RAR-files-inspection.patch +++ b/build/patches/Disable-support-for-RAR-files-inspection.patch @@ -4,15 +4,16 @@ Subject: Disable support for RAR files inspection License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../download_protection/file_analyzer.cc | 2 +- - chrome/common/safe_browsing/BUILD.gn | 19 ------------------- - .../file_util/safe_archive_analyzer.cc | 4 +--- - 3 files changed, 2 insertions(+), 23 deletions(-) + .../download_protection/file_analyzer.cc | 2 +- + chrome/common/safe_browsing/BUILD.gn | 2 -- + .../services/file_util/safe_archive_analyzer.cc | 17 +++-------------- + .../services/file_util/safe_archive_analyzer.h | 2 -- + 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -@@ -95,7 +95,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, +@@ -78,7 +78,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, if (inspection_type == DownloadFileType::ZIP) { StartExtractZipFeatures(); } else if (inspection_type == DownloadFileType::RAR) { @@ -24,60 +25,60 @@ diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/BUILD.gn --- a/chrome/common/safe_browsing/BUILD.gn +++ b/chrome/common/safe_browsing/BUILD.gn -@@ -56,24 +56,6 @@ if (safe_browsing_mode == 1) { - public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] - } - -- source_set("rar_analyzer") { -- sources = [ +@@ -137,8 +137,6 @@ source_set("safe_browsing") { + "protobuf_message_log_macros.h", + "protobuf_message_read_macros.h", + "protobuf_message_write_macros.h", - "rar_analyzer.cc", - "rar_analyzer.h", -- ] -- -- deps = [ -- ":archive_analyzer_results", -- ":download_type_util", -- "//base", -- "//base:i18n", -- "//components/safe_browsing/core/common", -- "//third_party/unrar:unrar", -- ] -- -- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] -- } -- - if (is_linux || is_win) { - source_set("document_analyzer") { - sources = [ -@@ -165,7 +147,6 @@ source_set("safe_browsing") { - ":archive_analyzer_results", - ":binary_feature_extractor", - ":download_type_util", -- ":rar_analyzer", - "//components/safe_browsing/core/common", - "//third_party/lzma_sdk/google:seven_zip_reader", - ] + "seven_zip_analyzer.cc", + "seven_zip_analyzer.h", + "zip_analyzer.cc", diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/services/file_util/safe_archive_analyzer.cc --- a/chrome/services/file_util/safe_archive_analyzer.cc +++ b/chrome/services/file_util/safe_archive_analyzer.cc -@@ -6,7 +6,6 @@ - - #include "build/build_config.h" - #include "chrome/common/safe_browsing/archive_analyzer_results.h" --#include "chrome/common/safe_browsing/rar_analyzer.h" - #include "chrome/common/safe_browsing/seven_zip_analyzer.h" - #include "chrome/common/safe_browsing/zip_analyzer.h" - -@@ -47,9 +46,8 @@ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, - AnalyzeRarFileCallback callback) { +@@ -62,20 +62,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile( + mojo::PendingRemote temp_file_getter, + AnalyzeRarFileCallback callback) { DCHECK(rar_file.IsValid()); - +- temp_file_getter_.Bind(std::move(temp_file_getter)); +- callback_ = std::move(callback); +- AnalysisFinishedCallback analysis_finished_callback = +- base::BindOnce(&SafeArchiveAnalyzer::AnalysisFinished, +- weak_factory_.GetWeakPtr(), base::FilePath()); +- base::RepeatingCallback +- temp_file_getter_callback = +- base::BindRepeating(&SafeArchiveAnalyzer::RequestTemporaryFile, +- weak_factory_.GetWeakPtr()); +- timeout_timer_.Start(FROM_HERE, kArchiveAnalysisTimeout, this, +- &SafeArchiveAnalyzer::Timeout); +- rar_analyzer_.Init(std::move(rar_file), base::FilePath(), +- std::move(analysis_finished_callback), +- std::move(temp_file_getter_callback), &results_); + LOG(FATAL) << "AnalyzeRarFile is disabled in this build"; - safe_browsing::ArchiveAnalyzerResults results; -- safe_browsing::rar_analyzer::AnalyzeRarFile( -- std::move(rar_file), std::move(temporary_file), &results); - std::move(callback).Run(results); ++ safe_browsing::ArchiveAnalyzerResults results; ++ std::move(callback).Run(results); } + void SafeArchiveAnalyzer::AnalyzeSevenZipFile( +diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services/file_util/safe_archive_analyzer.h +--- a/chrome/services/file_util/safe_archive_analyzer.h ++++ b/chrome/services/file_util/safe_archive_analyzer.h +@@ -6,7 +6,6 @@ + #define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_ + + #include "chrome/common/safe_browsing/archive_analyzer_results.h" +-#include "chrome/common/safe_browsing/rar_analyzer.h" + #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" + #include "mojo/public/cpp/bindings/remote.h" + +@@ -59,7 +58,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer { + void Timeout(); + + safe_browsing::ZipAnalyzer zip_analyzer_; +- safe_browsing::RarAnalyzer rar_analyzer_; + + // A timer to ensure no archive takes too long to unpack. + base::OneShotTimer timeout_timer_; -- 2.25.1 diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index b5d95c86..0dda9e19 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -23,11 +23,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/BUILD.gn | 7 ++ chrome/browser/android/tab_android.cc | 23 ++++++ chrome/browser/android/tab_android.h | 2 + - .../tab_web_contents_delegate_android.cc | 3 +- .../browser/extensions/extension_view_host.cc | 3 +- .../strings/android_chrome_strings.grd | 6 ++ - chrome/browser/ui/tab_helpers.cc | 6 +- - .../presentation_receiver_window_view.cc | 3 +- + chrome/browser/ui/tab_helpers.cc | 3 + .../browser/android_autofill_manager.cc | 2 +- .../browser/android_autofill_manager.h | 4 +- .../browser/content_autofill_driver.cc | 30 +++++++ @@ -39,25 +37,25 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_prefs.h | 2 + .../embedder_support/view/ContentView.java | 46 +++++++++++ .../chromium/ui/base/ViewAndroidDelegate.java | 8 ++ - 24 files changed, 314 insertions(+), 12 deletions(-) + 22 files changed, 308 insertions(+), 9 deletions(-) diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc +++ b/android_webview/browser/aw_contents.cc -@@ -336,7 +336,8 @@ void AwContents::InitAutofillIfNecessary(bool autocomplete_enabled) { - AwAutofillClient::FromWebContents(web_contents)) - : base::BindRepeating(&autofill::BrowserDriverInitHook, - AwAutofillClient::FromWebContents(web_contents), -- base::android::GetDefaultLocaleString()); -+ base::android::GetDefaultLocaleString(), +@@ -213,7 +213,8 @@ AwBrowserPermissionRequestDelegate* AwBrowserPermissionRequestDelegate::FromID( + AwSafeBrowsingUIManager::UIManagerClient* + AwSafeBrowsingUIManager::UIManagerClient::FromWebContents( + WebContents* web_contents) { +- return AwContents::FromWebContents(web_contents); ++ return AwContents::FromWebContents(web_contents, + /*enable_secondary_autofill_manager*/ false); + } - ContentAutofillDriverFactory::CreateForWebContentsAndDelegate( - web_contents, AwAutofillClient::FromWebContents(web_contents), + // static diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -340,6 +340,7 @@ if (current_toolchain == default_toolchain) { +@@ -332,6 +332,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/favicon:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/layouts/glue:java", @@ -68,7 +66,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -55,13 +55,18 @@ import java.lang.annotation.Retention; +@@ -56,6 +56,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Locale; @@ -80,15 +78,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage /** * The "Passwords" screen in Settings, which allows the user to enable or disable password saving, * to view saved passwords (just the username and URL), and to delete saved passwords. - */ +@@ -63,7 +68,7 @@ import java.util.Locale; public class PasswordSettings extends PreferenceFragmentCompat implements PasswordManagerHandler.PasswordListObserver, -- Preference.OnPreferenceClickListener { -+ Preference.OnPreferenceClickListener, INeedSnackbarManager { + Preference.OnPreferenceClickListener, +- FragmentHelpAndFeedbackLauncher { ++ FragmentHelpAndFeedbackLauncher, INeedSnackbarManager { @IntDef({TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN, TrustedVaultBannerState.OPTED_IN}) @Retention(RetentionPolicy.SOURCE) -@@ -90,6 +95,12 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -92,6 +97,12 @@ public class PasswordSettings extends PreferenceFragmentCompat public static final String PASSWORD_EXPORT_EVENT_HISTOGRAM = "PasswordManager.PasswordExport.Event"; @@ -101,16 +100,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords"; private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions"; private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text"; -@@ -120,6 +131,8 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -122,6 +133,8 @@ public class PasswordSettings extends PreferenceFragmentCompat private Preference mLinkPref; private Menu mMenu; + private ChromeSwitchPreference mEnableAndroidAutofillSwitch; + private ChromeSwitchPreference mEnableAndroidAutofillIncognitoSwitch; private @ManagePasswordsReferrer int mManagePasswordsReferrer; + private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; - /** -@@ -284,6 +297,7 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -286,6 +299,7 @@ public class PasswordSettings extends PreferenceFragmentCompat } createSavePasswordsSwitch(); @@ -118,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage createAutoSignInCheckbox(); if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { -@@ -518,6 +532,71 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -520,6 +534,71 @@ public class PasswordSettings extends PreferenceFragmentCompat getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE)); } @@ -193,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -73,6 +73,17 @@ import org.chromium.ui.base.WindowAndroid; +@@ -75,6 +75,17 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -211,16 +210,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. * This class is not intended to be extended. -@@ -210,6 +221,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { - private int mThemeColor; +@@ -213,6 +224,8 @@ public class TabImpl implements Tab { private boolean mUsedCriticalPersistedTabData; + private boolean mIsWebContentObscured; + AutofillProvider mAutofillProvider; + /** * Creates an instance of a {@link TabImpl}. * -@@ -774,6 +787,11 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -777,6 +790,11 @@ public class TabImpl implements Tab { for (TabObserver observer : mObservers) observer.onDestroyed(this); mObservers.clear(); @@ -232,7 +231,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1355,6 +1373,16 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1356,6 +1374,16 @@ public class TabImpl implements Tab { return tabsPtrArray; } @@ -249,7 +248,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Initializes the {@link WebContents}. Completes the browser content components initialization * around a native WebContents pointer. -@@ -1404,6 +1432,27 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1405,6 +1433,27 @@ public class TabImpl implements Tab { mDelegateFactory.createContextMenuPopulatorFactory(this), this)); mWebContents.notifyRendererPreferenceUpdate(); @@ -277,7 +276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav TabHelpers.initWebContentsHelpers(this); notifyContentChanged(); } finally { -@@ -1740,6 +1789,7 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1747,6 +1796,7 @@ public class TabImpl implements Tab { void setActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, String title); void loadOriginalImage(long nativeTabAndroid); boolean handleNonNavigationAboutURL(GURL url); @@ -288,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java -@@ -21,6 +21,10 @@ import org.chromium.ui.dragdrop.DragAndDropBrowserDelegate; +@@ -22,6 +22,10 @@ import org.chromium.ui.dragdrop.DragAndDropBrowserDelegate; import org.chromium.ui.dragdrop.DragAndDropDelegate; import org.chromium.ui.dragdrop.DragStateTracker; @@ -299,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr /** * Implementation of the abstract class {@link ViewAndroidDelegate} for Chrome. */ -@@ -85,6 +89,16 @@ public class TabViewAndroidDelegate extends ViewAndroidDelegate { +@@ -87,6 +91,16 @@ public class TabViewAndroidDelegate extends ViewAndroidDelegate { mTab.onBackgroundColorChanged(color); } @@ -319,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2506,6 +2506,13 @@ static_library("browser") { +@@ -2469,6 +2469,13 @@ static_library("browser") { deps += [ "//chrome/browser/error_reporting" ] } @@ -382,28 +381,15 @@ diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_a private: JavaObjectWeakGlobalRef weak_java_tab_; -diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc ---- a/chrome/browser/android/tab_web_contents_delegate_android.cc -+++ b/chrome/browser/android/tab_web_contents_delegate_android.cc -@@ -168,7 +168,8 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated( - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(portal_contents), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/ true)); - ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( - portal_contents, - autofill::ChromeAutofillClient::FromWebContents(portal_contents)); diff --git a/chrome/browser/extensions/extension_view_host.cc b/chrome/browser/extensions/extension_view_host.cc --- a/chrome/browser/extensions/extension_view_host.cc +++ b/chrome/browser/extensions/extension_view_host.cc -@@ -59,7 +59,8 @@ ExtensionViewHost::ExtensionViewHost(const Extension* extension, - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(host_contents()), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), +@@ -52,7 +52,8 @@ ExtensionViewHost::ExtensionViewHost(const Extension* extension, + // Attach WebContents helpers. Extension tabs automatically get them attached + // in TabHelpers::AttachTabHelpers, but popups don't. + // TODO(kalman): How much of TabHelpers::AttachTabHelpers should be here? +- autofill::ChromeAutofillClient::CreateForWebContents(host_contents()); ++ autofill::ChromeAutofillClient::CreateForWebContents(host_contents(, + /*enable_secondary_autofill_manager*/ false)); // The popup itself cannot be zoomed, but we must specify a zoom level to use. @@ -411,7 +397,7 @@ diff --git a/chrome/browser/extensions/extension_view_host.cc b/chrome/browser/e diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -598,6 +598,12 @@ CHAR_LIMIT guidelines: +@@ -601,6 +601,12 @@ CHAR_LIMIT guidelines: Save passwords @@ -427,7 +413,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -166,6 +166,9 @@ +@@ -165,6 +165,9 @@ #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h" #include "chrome/browser/video_tutorials/video_tutorial_tab_helper.h" #include "content/public/common/content_features.h" @@ -437,29 +423,6 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #else #include "chrome/browser/banners/app_banner_manager_desktop.h" #include "chrome/browser/preloading/prefetch/zero_suggest_prefetch/zero_suggest_prefetch_tab_helper.h" -@@ -319,7 +322,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(web_contents), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/true)); - if (breadcrumbs::IsEnabled()) - BreadcrumbManagerTabHelper::CreateForWebContents(web_contents); - chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); -diff --git a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc ---- a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc -+++ b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc -@@ -174,7 +174,8 @@ void PresentationReceiverWindowView::Init() { - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(web_contents), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/ false)); - ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( - web_contents, - autofill::ChromeAutofillClient::FromWebContents(web_contents)); diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/components/android_autofill/browser/android_autofill_manager.cc --- a/components/android_autofill/browser/android_autofill_manager.cc +++ b/components/android_autofill/browser/android_autofill_manager.cc @@ -475,7 +438,7 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/c diff --git a/components/android_autofill/browser/android_autofill_manager.h b/components/android_autofill/browser/android_autofill_manager.h --- a/components/android_autofill/browser/android_autofill_manager.h +++ b/components/android_autofill/browser/android_autofill_manager.h -@@ -84,12 +84,12 @@ class AndroidAutofillManager : public AutofillManager { +@@ -86,12 +86,12 @@ class AndroidAutofillManager : public AutofillManager { const FieldTypeGroup field_type_group, const url::Origin& triggered_origin); @@ -493,55 +456,55 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.h b/co diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -326,6 +326,8 @@ void ContentAutofillDriver::FormsSeen( - const std::vector& updated_forms, +@@ -336,6 +336,8 @@ void ContentAutofillDriver::FormsSeen( const std::vector& removed_forms) { - target->autofill_manager_->OnFormsSeen(updated_forms, removed_forms); + target->autofill_manager_->OnFormsSeen(WithNewVersion(updated_forms), + removed_forms); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnFormsSeen(updated_forms, removed_forms); }); } -@@ -352,6 +354,8 @@ void ContentAutofillDriver::FormSubmitted( +@@ -362,6 +364,8 @@ void ContentAutofillDriver::FormSubmitted( } - target->autofill_manager_->OnFormSubmitted(form, known_success, - submission_source); + target->autofill_manager_->OnFormSubmitted( + WithNewVersion(form), known_success, submission_source); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnFormSubmitted(form, known_success, submission_source); }); } -@@ -372,6 +376,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, +@@ -382,6 +386,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, base::TimeTicks timestamp) { target->autofill_manager_->OnTextFieldDidChange( - form, field, bounding_box, timestamp); + WithNewVersion(form), field, bounding_box, timestamp); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnTextFieldDidChange(form, field, bounding_box, timestamp); }); } -@@ -390,6 +396,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, +@@ -400,6 +406,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { - target->autofill_manager_->OnTextFieldDidScroll(form, field, - bounding_box); + target->autofill_manager_->OnTextFieldDidScroll(WithNewVersion(form), + field, bounding_box); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnTextFieldDidScroll(form, field, bounding_box); }); } -@@ -409,6 +417,8 @@ void ContentAutofillDriver::SelectControlDidChange( +@@ -419,6 +427,8 @@ void ContentAutofillDriver::SelectControlDidChange( const FormFieldData& field, const gfx::RectF& bounding_box) { - target->autofill_manager_->OnSelectControlDidChange(form, field, - bounding_box); + target->autofill_manager_->OnSelectControlDidChange( + WithNewVersion(form), field, bounding_box); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnSelectControlDidChange(form, field, bounding_box); }); } -@@ -434,6 +444,10 @@ void ContentAutofillDriver::AskForValuesToFill( +@@ -444,6 +454,10 @@ void ContentAutofillDriver::AskForValuesToFill( target->autofill_manager_->OnAskForValuesToFill( - form, field, bounding_box, autoselect_first_suggestion, - form_element_was_clicked); + WithNewVersion(form), field, bounding_box, + autoselect_first_suggestion, form_element_was_clicked); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnAskForValuesToFill(form, field, bounding_box, + autoselect_first_suggestion, @@ -549,7 +512,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -444,12 +458,16 @@ void ContentAutofillDriver::HidePopup() { +@@ -454,12 +468,16 @@ void ContentAutofillDriver::HidePopup() { DCHECK(!target->IsPrerendering()) << "We should never affect UI while prerendering"; target->autofill_manager_->OnHidePopup(); @@ -566,25 +529,25 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co } void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) { -@@ -477,6 +495,8 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, +@@ -487,6 +505,8 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { - target->autofill_manager_->OnFocusOnFormField(form, field, - bounding_box); + target->autofill_manager_->OnFocusOnFormField(WithNewVersion(form), + field, bounding_box); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnFocusOnFormField(form, field, bounding_box); }); } -@@ -489,6 +509,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, - [](ContentAutofillDriver* target, const FormData& form, +@@ -500,6 +520,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, base::TimeTicks timestamp) { - target->autofill_manager_->OnDidFillAutofillFormData(form, timestamp); + target->autofill_manager_->OnDidFillAutofillFormData( + WithNewVersion(form), timestamp); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnDidFillAutofillFormData(form, timestamp); }); } -@@ -498,6 +520,8 @@ void ContentAutofillDriver::DidPreviewAutofillFormData() { +@@ -509,6 +531,8 @@ void ContentAutofillDriver::DidPreviewAutofillFormData() { autofill_router().DidPreviewAutofillFormData( this, [](ContentAutofillDriver* target) { target->autofill_manager_->OnDidPreviewAutofillFormData(); @@ -593,7 +556,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -507,6 +531,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { +@@ -518,6 +542,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { autofill_router().DidEndTextFieldEditing( this, [](ContentAutofillDriver* target) { target->autofill_manager_->OnDidEndTextFieldEditing(); @@ -602,18 +565,18 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -518,6 +544,8 @@ void ContentAutofillDriver::SelectFieldOptionsDidChange( - this, GetFormWithFrameAndFormMetaData(raw_form), +@@ -530,6 +556,8 @@ void ContentAutofillDriver::SelectFieldOptionsDidChange( [](ContentAutofillDriver* target, const FormData& form) { - target->autofill_manager_->OnSelectFieldOptionsDidChange(form); + target->autofill_manager_->OnSelectFieldOptionsDidChange( + WithNewVersion(form)); + if (target->secondary_autofill_manager_) + target->secondary_autofill_manager_->OnSelectFieldOptionsDidChange(form); }); } -@@ -592,6 +620,8 @@ void ContentAutofillDriver::DidNavigateFrame( - if (autofill_router_) // Can be nullptr only in tests. - autofill_router_->UnregisterDriver(this); +@@ -597,6 +625,8 @@ void ContentAutofillDriver::DidNavigateFrame( + submitted_forms_.clear(); + autofill_router_->UnregisterDriver(this); autofill_manager_->Reset(); + if (secondary_autofill_manager_) + secondary_autofill_manager_->Reset(); @@ -623,7 +586,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h --- a/components/autofill/content/browser/content_autofill_driver.h +++ b/components/autofill/content/browser/content_autofill_driver.h -@@ -127,10 +127,13 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -126,10 +126,13 @@ class ContentAutofillDriver : public AutofillDriver, ContentAutofillDriver& operator=(const ContentAutofillDriver&) = delete; ~ContentAutofillDriver() override; @@ -638,7 +601,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com content::RenderFrameHost* render_frame_host() { return render_frame_host_; } -@@ -349,6 +352,10 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -345,6 +348,10 @@ class ContentAutofillDriver : public AutofillDriver, // code. std::unique_ptr autofill_manager_ = nullptr; @@ -652,7 +615,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc --- a/components/autofill/content/browser/content_autofill_driver_factory.cc +++ b/components/autofill/content/browser/content_autofill_driver_factory.cc -@@ -13,6 +13,7 @@ +@@ -14,6 +14,7 @@ #include "components/autofill/content/browser/content_autofill_driver.h" #include "components/autofill/core/browser/browser_autofill_manager.h" #include "components/autofill/core/common/autofill_features.h" @@ -660,7 +623,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory #include "content/public/browser/global_routing_id.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" -@@ -42,9 +43,17 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) { +@@ -43,9 +44,17 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) { void BrowserDriverInitHook(AutofillClient* client, const std::string& app_locale, @@ -682,18 +645,18 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/browser/content_autofill_driver_factory.h b/components/autofill/content/browser/content_autofill_driver_factory.h --- a/components/autofill/content/browser/content_autofill_driver_factory.h +++ b/components/autofill/content/browser/content_autofill_driver_factory.h -@@ -34,6 +34,7 @@ class ContentAutofillDriver; +@@ -35,6 +35,7 @@ class ContentAutofillDriver; // other implementations. void BrowserDriverInitHook(AutofillClient* client, const std::string& app_locale, + bool enable_secondary_autofill_manager, ContentAutofillDriver* driver); - // Manages lifetime of ContentAutofillDriver. One Factory per WebContents + // Manages lifetime of ContentAutofillDriver. Owned by ContentAutofillClient, diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc -@@ -806,7 +806,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange( +@@ -807,7 +807,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( const blink::WebFormControlElement& element) { @@ -708,7 +671,7 @@ diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/c diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -100,6 +100,10 @@ const char kAutofillWalletImportEnabled[] = "autofill.wallet_import_enabled"; +@@ -106,6 +106,10 @@ const char kAutofillWalletImportEnabled[] = "autofill.wallet_import_enabled"; const char kAutocompleteLastVersionRetentionPolicy[] = "autocomplete.retention_policy_last_version"; @@ -719,7 +682,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { // Synced prefs. Used for cross-device choices, e.g., credit card Autofill. registry->RegisterBooleanPref( -@@ -127,6 +131,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -135,6 +139,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true); #endif registry->RegisterBooleanPref(prefs::kAutofillWalletImportEnabled, true); @@ -731,7 +694,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h --- a/components/autofill/core/common/autofill_prefs.h +++ b/components/autofill/core/common/autofill_prefs.h -@@ -44,6 +44,8 @@ extern const char kAutofillUploadEvents[]; +@@ -45,6 +45,8 @@ extern const char kAutofillUploadEvents[]; extern const char kAutofillUploadEventsLastResetTimestamp[]; extern const char kAutofillWalletImportEnabled[]; extern const char kAutocompleteLastVersionRetentionPolicy[]; diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 341771d0..b0eed2d2 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -6,7 +6,7 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../crash/MinidumpUploadServiceImpl.java | 22 +++ - .../crash_upload_list_android.cc | 22 ++- + .../crash_upload_list_android.cc | 25 ++- .../crash_upload_list_android.h | 1 + chrome/browser/net/chrome_network_delegate.cc | 7 + chrome/browser/ui/BUILD.gn | 1 + @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../upload_list/text_log_upload_list.cc | 1 + components/upload_list/upload_list.cc | 14 ++ components/upload_list/upload_list.h | 9 + - 18 files changed, 373 insertions(+), 133 deletions(-) + 18 files changed, 375 insertions(+), 134 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java @@ -85,7 +85,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr +} + void CrashUploadListAndroid::LoadUnsuccessfulUploadList( - std::vector* uploads) { + std::vector>* uploads) { const char pending_uploads[] = ".dmp"; const char skipped_uploads[] = ".skipped"; const char manually_forced_uploads[] = ".forced"; @@ -111,34 +111,35 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr // Crash reports can have multiple extensions (e.g. foo.dmp, foo.dmp.try1, // foo.skipped.try0). file = file.BaseName(); -@@ -136,8 +149,15 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( +@@ -136,7 +149,15 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( RecordUnsuccessfulUploadListState( UnsuccessfulUploadListState::ADDING_AN_UPLOAD_ENTRY); id = id.substr(pos + 1); +- uploads->push_back(std::make_unique( +- id, info.creation_time, upload_state, ui::FormatBytes(file_size))); + // Since current thread is an IO thread + // to avoid failed DCHECK ThreadRestrictions::AssertSingletonAllowed() + // remove ui::FormatBytes(): dcheck fail because it use base::FormatDouble() + // and LazyInstance::DestructorAtExit(). + // also "upload.file_size" is unused. + std::u16string file_size_string; - UploadList::UploadInfo upload(id, info.creation_time, upload_state, -- ui::FormatBytes(file_size)); -+ file_size_string); ++ auto upload = std::make_unique( ++ id, info.creation_time, upload_state, file_size_string); + upload.file_path = file_path; - uploads->push_back(upload); ++ uploads->push_back(upload); } } diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chrome/browser/crash_upload_list/crash_upload_list_android.h --- a/chrome/browser/crash_upload_list/crash_upload_list_android.h +++ b/chrome/browser/crash_upload_list/crash_upload_list_android.h -@@ -34,6 +34,7 @@ class CrashUploadListAndroid : public TextLogUploadList { - - std::vector LoadUploadList() override; +@@ -35,6 +35,7 @@ class CrashUploadListAndroid : public TextLogUploadList { + std::vector> LoadUploadList() + override; void RequestSingleUpload(const std::string& local_id) override; + void RequestNewExtraction() override; private: - void LoadUnsuccessfulUploadList(std::vector* uploads); + void LoadUnsuccessfulUploadList( diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc @@ -159,7 +160,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -644,6 +644,7 @@ static_library("ui") { +@@ -646,6 +646,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -879,7 +880,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen diff --git a/components/upload_list/text_log_upload_list.cc b/components/upload_list/text_log_upload_list.cc --- a/components/upload_list/text_log_upload_list.cc +++ b/components/upload_list/text_log_upload_list.cc -@@ -111,6 +111,7 @@ std::unique_ptr TryParseCsvLogEntry( +@@ -165,6 +165,7 @@ std::unique_ptr TextLogUploadList::TryParseCsvLogEntry( } auto info = std::make_unique(components[1], upload_time); @@ -890,8 +891,8 @@ diff --git a/components/upload_list/text_log_upload_list.cc b/components/upload_ diff --git a/components/upload_list/upload_list.cc b/components/upload_list/upload_list.cc --- a/components/upload_list/upload_list.cc +++ b/components/upload_list/upload_list.cc -@@ -95,6 +95,11 @@ void UploadList::GetUploads(size_t max_count, - std::back_inserter(*uploads)); +@@ -99,6 +99,11 @@ std::vector UploadList::GetUploads( + return uploads; } +void UploadList::RequestNewExtraction() { @@ -899,10 +900,10 @@ diff --git a/components/upload_list/upload_list.cc b/components/upload_list/uplo + NOTREACHED(); +} + - void UploadList::OnLoadComplete(const std::vector& uploads) { - uploads_ = uploads; - if (!load_callback_.is_null()) -@@ -105,3 +110,12 @@ void UploadList::OnClearComplete() { + void UploadList::OnLoadComplete( + std::vector> uploads) { + uploads_ = std::move(uploads); +@@ -111,3 +116,12 @@ void UploadList::OnClearComplete() { if (!clear_callback_.is_null()) std::move(clear_callback_).Run(); } @@ -918,7 +919,7 @@ diff --git a/components/upload_list/upload_list.cc b/components/upload_list/uplo diff --git a/components/upload_list/upload_list.h b/components/upload_list/upload_list.h --- a/components/upload_list/upload_list.h +++ b/components/upload_list/upload_list.h -@@ -68,6 +68,9 @@ class UploadList : public base::RefCountedThreadSafe { +@@ -69,6 +69,9 @@ class UploadList : public base::RefCountedThreadSafe { // Formatted file size for locally stored data. std::u16string file_size; @@ -928,9 +929,9 @@ diff --git a/components/upload_list/upload_list.h b/components/upload_list/uploa }; UploadList(); -@@ -97,6 +100,12 @@ class UploadList : public base::RefCountedThreadSafe { - // Must be called only after a Load() callback has been received. - void GetUploads(size_t max_count, std::vector* uploads); +@@ -99,6 +102,12 @@ class UploadList : public base::RefCountedThreadSafe { + // The |UploadInfo| pointers are still owned by this |UploadList| instance. + std::vector GetUploads(size_t max_count) const; + // Get full path of crash file for local_id + std::string GetFilePathByLocalId(const std::string& local_id); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 3361849d..9c415220 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -28,12 +28,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ChromeAccessibilitySettingsDelegate.java | 52 ++++++++++++ .../chrome/browser/app/ChromeActivity.java | 13 +++ .../browser/app/flags/ChromeCachedFlags.java | 1 + - .../compositor/CompositorViewHolder.java | 9 ++- + .../compositor/CompositorViewHolder.java | 6 ++ .../layouts/LayoutManagerChrome.java | 18 ++++- .../layouts/LayoutManagerChromeTablet.java | 4 +- .../layouts/ToolbarSwipeLayout.java | 15 +++- .../overlays/strip/StripLayoutHelper.java | 2 +- - .../strip/StripLayoutHelperManager.java | 36 +++++++-- + .../strip/StripLayoutHelperManager.java | 34 +++++++- .../scene_layer/StaticTabSceneLayer.java | 8 +- .../scene_layer/TabListSceneLayer.java | 14 ++++ .../scene_layer/TabStripSceneLayer.java | 15 +++- @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/NewTabPage.java | 13 ++- .../chrome/browser/ntp/RecentTabsPage.java | 22 ++++- .../browser/searchwidget/SearchActivity.java | 13 ++- - .../browser/settings/SettingsActivity.java | 5 ++ + .../browser/settings/SettingsActivity.java | 6 +- .../StatusIndicatorCoordinator.java | 10 +++ .../StatusIndicatorSceneLayer.java | 7 +- .../browser/toolbar/ToolbarManager.java | 37 +++++++-- @@ -86,7 +86,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../accessibility/AccessibilitySettings.java | 16 ++++ .../AccessibilitySettingsDelegate.java | 6 ++ .../render_widget_host_view_android.cc | 3 + - 74 files changed, 868 insertions(+), 61 deletions(-) + 74 files changed, 866 insertions(+), 59 deletions(-) diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc @@ -139,7 +139,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -4265,6 +4265,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -4274,6 +4274,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -162,7 +162,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ /** The mediator implements the logic to interact with the surfaces and caller. */ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View.OnClickListener, StartSurface.OnTabSelectingListener, BackPressHandler, -@@ -1241,6 +1244,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -1254,6 +1257,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. } private void setTopMargin(int topMargin) { @@ -182,7 +182,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.List; -@@ -144,7 +145,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -143,7 +144,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T @Override public void initializeWithNative(Activity activity, BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, @@ -192,7 +192,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser try (TraceEvent e = TraceEvent.scoped("TabGroupUiCoordinator.initializeWithNative")) { if (UmaSessionStats.isMetricsServiceAvailable()) { UmaSessionStats.registerSyntheticFieldTrial( -@@ -187,7 +189,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -186,7 +188,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T mMediator = new TabGroupUiMediator(mActivity, visibilityController, this, mModel, mTabModelSelector, mTabCreatorManager, mLayoutStateProviderSupplier, mIncognitoStateProvider, mTabGridDialogControllerSupplier, @@ -205,7 +205,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -48,6 +48,12 @@ import org.chromium.url.GURL; +@@ -47,6 +47,12 @@ import org.chromium.url.GURL; import java.util.List; @@ -218,7 +218,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGroupUi. Responsible for managing the internal state of the component. */ -@@ -115,13 +121,20 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -116,6 +122,11 @@ public class TabGroupUiMediator implements BackPressHandler { private boolean mIsTabGroupUiVisible; private boolean mIsShowingOverViewMode; @@ -230,9 +230,10 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser TabGroupUiMediator(Context context, BottomControlsVisibilityController visibilityController, ResetHandler resetHandler, PropertyModel model, TabModelSelector tabModelSelector, TabCreatorManager tabCreatorManager, - OneshotSupplier layoutStateProviderSupplier, +@@ -123,7 +134,9 @@ public class TabGroupUiMediator implements BackPressHandler { IncognitoStateProvider incognitoStateProvider, - @Nullable Supplier dialogControllerSupplier, + @Nullable OneshotSupplier + dialogControllerSupplier, - ObservableSupplier omniboxFocusStateSupplier) { + ObservableSupplier omniboxFocusStateSupplier, + TopUiThemeColorProvider topUiThemeColorProvider, ObservableSupplier tabSupplier) { @@ -240,7 +241,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mContext = context; mResetHandler = resetHandler; mModel = model; -@@ -142,10 +155,29 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -144,10 +157,29 @@ public class TabGroupUiMediator implements BackPressHandler { mIsShowingOverViewMode = true; } @@ -270,7 +271,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mContext) && getTabsToShowForId(lastId).contains(tab)) { return; -@@ -202,6 +234,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -204,6 +236,7 @@ public class TabGroupUiMediator implements BackPressHandler { return; } resetTabStripWithRelatedTabsForId(currentTab.getId()); @@ -278,14 +279,19 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -318,6 +351,20 @@ public class TabGroupUiMediator implements BackPressHandler { - if (tab != null) { +@@ -319,6 +352,8 @@ public class TabGroupUiMediator implements BackPressHandler { resetTabStripWithRelatedTabsForId(tab.getId()); } -+ + + mTabObserver.triggerWithCurrentTab(); -+ } + + mBackPressStateSupplier = new ObservableSupplierImpl<>(); + if (mTabGridDialogControllerSupplier != null) { + mTabGridDialogControllerSupplier.onAvailable(controller -> { +@@ -332,6 +367,18 @@ public class TabGroupUiMediator implements BackPressHandler { + mModel.set(TabGroupUiProperties.LEFT_BUTTON_DRAWABLE_ID, drawableId); + } + + /** + * Update the colors of the layer based on the specified tab. + * @param tab The tab to base the colors on. @@ -296,10 +302,12 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + int color = mTopUiThemeColorProvider.getSceneLayerBackground(tab); + mModel.set(TabGroupUiProperties.PRIMARY_COLOR, color); + } ++ } ++ + void setupLeftButtonOnClickListener(View.OnClickListener listener) { + mModel.set(TabGroupUiProperties.LEFT_BUTTON_ON_CLICK_LISTENER, listener); } - - void setupLeftButtonDrawable(int drawableId) { -@@ -437,6 +484,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -438,6 +485,7 @@ public class TabGroupUiMediator implements BackPressHandler { } public void destroy() { @@ -397,7 +405,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -@@ -49,6 +50,9 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; +@@ -50,6 +51,9 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; @@ -407,7 +415,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -99,6 +103,74 @@ public class TabListCoordinator +@@ -100,6 +104,74 @@ public class TabListCoordinator private ItemTouchHelper mItemTouchHelper; private OnItemTouchListener mOnItemTouchListener; @@ -482,7 +490,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * @param mode Modes of showing the list of tabs. Can be used in GRID or STRIP. -@@ -262,6 +334,12 @@ public class TabListCoordinator +@@ -249,6 +321,12 @@ public class TabListCoordinator if (mMode == TabListMode.GRID) { GridLayoutManager gridLayoutManager = new GridLayoutManager(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); @@ -495,7 +503,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount(gridLayoutManager, -@@ -499,6 +577,9 @@ public class TabListCoordinator +@@ -488,6 +566,9 @@ public class TabListCoordinator } registerLayoutChangeListener(); mRecyclerView.prepareTabSwitcherView(); @@ -585,9 +593,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; +import org.chromium.chrome.browser.flags.CachedFeatureFlags; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; -@@ -463,11 +464,22 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.tab.TabCreationState; +@@ -457,11 +458,22 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView updateTopControlsProperties(); mContainerViewModel.set( BOTTOM_CONTROLS_HEIGHT, browserControlsStateProvider.getBottomControlsHeight()); @@ -610,7 +618,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (backPressManager != null && BackPressManager.isEnabled()) { assert !mIsStartSurfaceEnabled || mIsStartSurfaceRefactorEnabled; backPressManager.addHandler(this, BackPressHandler.Type.TAB_SWITCHER); -@@ -595,6 +607,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -589,6 +601,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); mContainerViewModel.set(TOP_MARGIN, contentOffset); @@ -700,7 +708,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -242,6 +242,9 @@ import java.util.ArrayList; +@@ -241,6 +241,9 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; @@ -710,7 +718,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} * and associated classes. -@@ -750,6 +753,16 @@ public abstract class ChromeActivity +@@ -749,6 +752,16 @@ public abstract class ChromeActivity int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { controlContainer.initWithToolbar(toolbarLayoutId); @@ -730,7 +738,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java -@@ -99,6 +99,7 @@ public class ChromeCachedFlags { +@@ -101,6 +101,7 @@ public class ChromeCachedFlags { ChromeFeatureList.sInstanceSwitcher, ChromeFeatureList.sInstantStart, ChromeFeatureList.sInterestFeedV2, @@ -741,7 +749,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/Chrom diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -86,6 +86,8 @@ import org.chromium.ui.base.WindowAndroid; +@@ -87,6 +87,8 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.mojom.VirtualKeyboardMode; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; @@ -750,7 +758,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp import java.util.ArrayList; import java.util.HashSet; -@@ -323,6 +325,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -324,6 +326,10 @@ public class CompositorViewHolder extends FrameLayout WebContents webContents = mTabVisible.getWebContents(); if (webContents == null) return; EventForwarder forwarder = webContents.getEventForwarder(); @@ -761,29 +769,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp forwarder.setCurrentTouchEventOffsets(0, top); } }); -@@ -940,7 +946,8 @@ public class CompositorViewHolder extends FrameLayout - // the |WebContents|. - keyboardHeight = KeyboardVisibilityDelegate.getInstance().calculateKeyboardHeight( - this.getRootView()); -- h += keyboardHeight; -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) -+ h += keyboardHeight; - } - webContents.setSize(w, h - controlsHeight); - if (mVirtualKeyboardMode == VirtualKeyboardMode.OVERLAYS_CONTENT) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java -@@ -45,6 +45,8 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sc - import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; +@@ -46,6 +46,8 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sw import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; + import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.CachedFeatureFlags; import java.util.List; -@@ -257,7 +259,10 @@ public class LayoutManagerChrome +@@ -258,7 +260,10 @@ public class LayoutManagerChrome @Override public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { @@ -795,7 +793,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -507,9 +512,11 @@ public class LayoutManagerChrome +@@ -508,9 +513,11 @@ public class LayoutManagerChrome private static final float SWIPE_RANGE_DEG = 25; private final boolean mSupportSwipeDown; @@ -808,7 +806,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -541,6 +548,9 @@ public class LayoutManagerChrome +@@ -542,6 +549,9 @@ public class LayoutManagerChrome && mScrollDirection == ScrollDirection.DOWN) { RecordUserAction.record("MobileToolbarSwipeOpenStackView"); showLayout(LayoutType.TAB_SWITCHER, true); @@ -818,7 +816,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } else if (mScrollDirection == ScrollDirection.LEFT || mScrollDirection == ScrollDirection.RIGHT) { startShowing(mToolbarSwipeLayout, true); -@@ -587,6 +597,8 @@ public class LayoutManagerChrome +@@ -588,6 +598,8 @@ public class LayoutManagerChrome direction = ScrollDirection.RIGHT; } else if (swipeAngle < 270 + SWIPE_RANGE_DEG && swipeAngle > 270 - SWIPE_RANGE_DEG) { direction = ScrollDirection.DOWN; @@ -827,7 +825,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } return direction; -@@ -600,7 +612,7 @@ public class LayoutManagerChrome +@@ -601,7 +613,7 @@ public class LayoutManagerChrome return false; } @@ -839,7 +837,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java -@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; +@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; import org.chromium.chrome.features.start_surface.StartSurface; import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; @@ -847,7 +845,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.concurrent.Callable; -@@ -87,7 +88,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { +@@ -86,7 +87,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { mStartSurfaceSupplier = startSurfaceSupplier; mTabSwitcherSupplier = tabSwitcherSupplier; mTabStripLayoutHelperManager = new StripLayoutHelperManager(host.getContext(), this, @@ -899,7 +897,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -504,7 +504,7 @@ public class StripLayoutHelper implements StripLayoutTab.StripLayoutTabDelegate +@@ -505,7 +505,7 @@ public class StripLayoutHelper implements StripLayoutTab.StripLayoutTabDelegate // position 0 is on the left. Account for that in the offset calculation. boolean isRtl = LocalizationUtils.isLayoutRtl(); boolean useUnadjustedScrollOffset = isRtl != isLeft; @@ -911,7 +909,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -59,6 +59,9 @@ import org.chromium.ui.base.LocalizationUtils; +@@ -57,6 +57,9 @@ import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.resources.ResourceManager; import org.chromium.url.GURL; @@ -921,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.List; -@@ -132,9 +135,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -127,9 +130,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa private final String mDefaultTitle; private final Supplier mLayerTitleCacheSupplier; @@ -933,17 +931,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over public void onDown(float x, float y, boolean fromMouse, int buttons) { + y -= mStripFilterArea.top; if (mModelSelectorButton.onDown(x, y)) return; - if (mStripScrim.isVisible()) return; getActiveStripLayoutHelper().onDown(time(), x, y, fromMouse, buttons); -@@ -154,6 +161,7 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa + } +@@ -147,12 +154,14 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa @Override public void drag(float x, float y, float dx, float dy, float tx, float ty) { + y -= mStripFilterArea.top; mModelSelectorButton.drag(x, y); - if (mStripScrim.isVisible()) return; getActiveStripLayoutHelper().drag(time(), x, y, dx, dy, tx, ty); -@@ -161,6 +169,7 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa + } @Override public void click(float x, float y, boolean fromMouse, int buttons) { @@ -951,23 +948,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mModelSelectorButton.click(x, y)) { mModelSelectorButton.handleClick(time); -@@ -172,13 +181,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -163,11 +172,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa @Override public void fling(float x, float y, float velocityX, float velocityY) { -- if (mStripScrim.isVisible()) return; + y -= mStripFilterArea.top; getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY); } @Override public void onLongPress(float x, float y) { -- if (mStripScrim.isVisible()) return; + y -= mStripFilterArea.top; getActiveStripLayoutHelper().onLongPress(time(), x, y); } -@@ -262,7 +271,8 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -229,7 +240,8 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa */ public StripLayoutHelperManager(Context context, LayoutUpdateHost updateHost, LayoutRenderHost renderHost, Supplier layerTitleCacheSupplier, @@ -977,7 +972,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mUpdateHost = updateHost; mLayerTitleCacheSupplier = layerTitleCacheSupplier; mTabStripTreeProvider = new TabStripSceneLayer(context); -@@ -348,6 +358,8 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -313,6 +325,8 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa new StripLayoutHelper(context, updateHost, renderHost, false, mModelSelectorButton); mIncognitoHelper = new StripLayoutHelper(context, updateHost, renderHost, true, mModelSelectorButton); @@ -986,7 +981,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over onContextChanged(context); } -@@ -443,9 +455,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -398,9 +412,13 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa Tab selectedTab = mTabModelSelector.getCurrentModel().getTabAt( mTabModelSelector.getCurrentModel().index()); int selectedTabId = selectedTab == null ? TabModel.INVALID_TAB_INDEX : selectedTab.getId(); @@ -1001,7 +996,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -482,7 +498,17 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa +@@ -436,7 +454,17 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa mIncognitoHelper.onSizeChanged( mWidth, mHeight, orientationChanged, LayoutManagerImpl.time()); @@ -1095,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen /** * The Java component of what is basically a CC Layer that manages drawing the Tab Strip (which is -@@ -77,10 +79,19 @@ public class TabStripSceneLayer extends SceneOverlayLayer { +@@ -77,9 +79,18 @@ public class TabStripSceneLayer extends SceneOverlayLayer { */ public void pushAndUpdateStrip(StripLayoutHelperManager layoutHelper, LayerTitleCache layerTitleCache, ResourceManager resourceManager, @@ -1103,7 +1098,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen + StripLayoutTab[] stripLayoutTabsToRender, float yOffset, int selectedTabId, + float viewportHeight, int topControlsHeight) { if (mNativePtr == 0) return; - - final boolean visible = yOffset > -layoutHelper.getHeight(); + boolean visible = yOffset > -layoutHelper.getHeight(); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { @@ -1238,7 +1232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -100,6 +100,8 @@ import org.chromium.content_public.browser.NavigationEntry; +@@ -99,6 +99,8 @@ import org.chromium.content_public.browser.NavigationEntry; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.mojom.WindowOpenDisposition; @@ -1247,7 +1241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; -@@ -564,10 +566,15 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -562,10 +564,15 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide // + topControlsDistanceToRest| will give the margin for the current animation frame. final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1265,7 +1259,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -587,7 +594,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -585,7 +592,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide * strip. */ private int getToolbarExtraYOffset() { @@ -1345,7 +1339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -77,6 +77,11 @@ import org.chromium.ui.base.WindowDelegate; +@@ -80,6 +80,11 @@ import org.chromium.ui.base.WindowDelegate; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1357,7 +1351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import java.lang.ref.WeakReference; /** Queries the user's default search engine and shows autocomplete suggestions. */ -@@ -190,6 +195,12 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -206,6 +211,12 @@ public class SearchActivity extends AsyncInitializationActivity mSearchBox = (SearchActivityLocationBarLayout) mContentView.findViewById( R.id.search_location_bar); mAnchorView = mContentView.findViewById(R.id.toolbar); @@ -1370,7 +1364,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se updateAnchorViewLayout(); // Create status bar color controller and assign to search activity. -@@ -215,7 +226,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -231,7 +242,7 @@ public class SearchActivity extends AsyncInitializationActivity getOnBackPressedDispatcher().addCallback(this, backPressManager.getCallback()); } // clang-format off @@ -1382,10 +1376,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -320,6 +320,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -310,7 +310,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); } +- initBackPressHandler(); + if (fragment instanceof AccessibilitySettings) { + ((ChromeAccessibilitySettingsDelegate) + ((AccessibilitySettings) fragment) @@ -1448,7 +1443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -174,6 +174,9 @@ import org.chromium.url.GURL; +@@ -173,6 +173,9 @@ import org.chromium.url.GURL; import java.util.List; @@ -1458,7 +1453,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -648,7 +651,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -643,7 +646,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve mEphemeralTabCoordinatorSupplier); // clang-format off LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( @@ -1467,7 +1462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar PrivacyPreferencesManagerImpl.getInstance(), mLocationBarModel, mActionModeController.getActionModeCallback(), new WindowDelegate(mActivity.getWindow()), windowAndroid, mActivityTabProvider, -@@ -883,11 +886,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -877,11 +880,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1481,8 +1476,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener(mLayoutChangeListener); mLayoutChangeListener = null; } -@@ -1279,13 +1284,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - return mLocationBar.getOmniboxStub().isUrlBarFocused(); +@@ -1289,13 +1294,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + return ((LocationBarCoordinator) mLocationBar).getUrlBarTextWithoutAutocomplete(); } + View mBottomRoot; @@ -1509,8 +1504,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController, mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector, mTabContentManager, mCompositorViewHolder, -@@ -1293,8 +1310,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - mShareDelegateSupplier, mLayoutStateProviderSupplier, mSnackbarManager); +@@ -1303,8 +1320,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + mLayoutStateProviderSupplier, mSnackbarManager); var bottomControlsCoordinator = new BottomControlsCoordinator(mActivity, mWindowAndroid, mLayoutManager, mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer, - mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) root, mTabGroupUi, @@ -1521,7 +1516,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); bottomControlsCoordinator.getHandleBackPressChangedSupplier().addObserver( (x) -> { onBackPressStateChanged(); }); -@@ -2079,6 +2097,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2102,6 +2120,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1541,15 +1536,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java @@ -15,6 +15,8 @@ import org.chromium.base.lifetime.Destroyable; - import org.chromium.base.supplier.ObservableSupplier; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.ui.base.ApplicationViewportInsetSupplier; + import org.chromium.ui.base.ViewportInsets; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.CachedFeatureFlags; /** * The container that holds both infobars and snackbars. It will be translated up and down when the -@@ -62,10 +64,27 @@ public class BottomContainer +@@ -57,10 +59,27 @@ public class BottomContainer setTranslationY(mBaseYOffset); } @@ -1576,7 +1571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai + } float offsetFromControls = mBrowserControlsStateProvider.getBottomControlOffset() - mBrowserControlsStateProvider.getBottomControlsHeight(); - offsetFromControls -= mViewportInsetSupplier.get(); + offsetFromControls -= mViewportInsetSupplier.get().viewVisibleHeightInset; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java @@ -1611,7 +1606,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7084,6 +7084,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7385,6 +7385,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWindowsScrollingPersonalityDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWindowsScrollingPersonality)}, @@ -1634,7 +1629,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer using base::android::JavaParamRef; using base::android::JavaRef; -@@ -96,8 +97,10 @@ void TabStripSceneLayer::SetContentTree( +@@ -93,8 +94,10 @@ void TabStripSceneLayer::SetContentTree( content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1647,7 +1642,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -130,13 +133,18 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -127,13 +130,18 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, jboolean should_readd_background, jint background_color) { gfx::RectF content(0, y_offset, width, height); @@ -1710,7 +1705,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1817,6 +1817,10 @@ const char kImprovedKeyboardShortcutsDescription[] = +@@ -1808,6 +1808,10 @@ const char kImprovedKeyboardShortcutsDescription[] = "Ensure keyboard shortcuts work consistently with international keyboard " "layouts and deprecate legacy shortcuts."; @@ -1724,9 +1719,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1016,6 +1016,9 @@ extern const char kImprovedKeyboardShortcutsDescription[]; - extern const char kCompositorThreadedScrollbarScrollingName[]; - extern const char kCompositorThreadedScrollbarScrollingDescription[]; +@@ -1015,6 +1015,9 @@ extern const char kIgnoreSyncEncryptionKeysLongMissingDescription[]; + extern const char kImprovedKeyboardShortcutsName[]; + extern const char kImprovedKeyboardShortcutsDescription[]; +extern const char kMoveTopToolbarToBottomName[]; +extern const char kMoveTopToolbarToBottomDescription[]; @@ -1777,7 +1772,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "base/metrics/field_trial_params.h" #include "base/no_destructor.h" #include "base/strings/string_piece_forward.h" -@@ -239,6 +240,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -245,6 +246,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kInstantStart, &kLensCameraAssistedSearch, &kLensOnQuickActionSearchWidget, @@ -1823,7 +1818,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -375,6 +375,8 @@ public abstract class ChromeFeatureList { +@@ -385,6 +385,8 @@ public abstract class ChromeFeatureList { public static final String METRICS_SETTINGS_ANDROID = "MetricsSettingsAndroid"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MODAL_PERMISSION_DIALOG_VIEW = "ModalPermissionDialogView"; @@ -1832,15 +1827,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -633,6 +635,8 @@ public abstract class ChromeFeatureList { +@@ -652,6 +654,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sInterestFeedV2 = new CachedFlag(INTEREST_FEED_V2, true); public static final CachedFlag sLensCameraAssistedSearch = new CachedFlag(LENS_CAMERA_ASSISTED_SEARCH, true); + public static final CachedFlag sMoveTopToolbarToBottom = + new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); - public static final CachedFlag sOSKResizesVisualViewportByDefault = - new CachedFlag(OSK_RESIZES_VISUAL_VIEWPORT, false); public static final CachedFlag sOmahaMinSdkVersionAndroid = + new CachedFlag(OMAHA_MIN_SDK_VERSION_ANDROID, false); + public static final CachedFlag sOmniboxMatchToolbarAndStatusBarColor = diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java @@ -1948,7 +1943,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -90,6 +90,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -90,6 +90,7 @@ public class LocationBarCoordinator private WindowDelegate mWindowDelegate; private WindowAndroid mWindowAndroid; private View mAutocompleteAnchorView; @@ -1956,7 +1951,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private LocationBarMediator mLocationBarMediator; private View mUrlBar; private View mDeleteButton; -@@ -145,7 +146,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -144,7 +145,7 @@ public class LocationBarCoordinator * @param reportExceptionCallback A {@link Callback} to report exceptions. * @param backPressManager The {@link BackPressManager} for intercepting back press. */ @@ -1965,7 +1960,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ObservableSupplier profileObservableSupplier, PrivacyPreferencesManager privacyPreferencesManager, LocationBarDataProvider locationBarDataProvider, ActionMode.Callback actionModeCallback, -@@ -177,6 +178,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, +@@ -175,6 +176,7 @@ public class LocationBarCoordinator mActivityLifecycleDispatcher = activityLifecycleDispatcher; mActivityLifecycleDispatcher.register(this); mAutocompleteAnchorView = autocompleteAnchorView; @@ -1973,8 +1968,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow Context context = mLocationBarLayout.getContext(); OneshotSupplierImpl templateUrlServiceSupplier = new OneshotSupplierImpl<>(); -@@ -407,6 +409,11 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, - return mAutocompleteAnchorView; +@@ -371,6 +373,11 @@ public class LocationBarCoordinator + mLocationBarMediator.revertChanges(); } + @Override @@ -1983,8 +1978,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + } + @Override - public View getAlignmentView() { - return isTablet() ? mLocationBarLayout : mAutocompleteAnchorView; + public View getContainerView() { + return mLocationBarLayout; diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java @@ -2016,7 +2011,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -61,6 +61,8 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; +@@ -59,6 +59,8 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2025,7 +2020,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -77,6 +79,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -75,6 +77,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC private @Nullable OmniboxSuggestionsDropdown mDropdown; private @NonNull ObserverList mScrollListenerList = new ObserverList<>(); @@ -2033,7 +2028,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public AutocompleteCoordinator(@NonNull ViewGroup parent, @NonNull AutocompleteControllerProvider controllerProvider, -@@ -100,6 +103,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -98,6 +101,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC PropertyModel listModel = new PropertyModel(SuggestionListProperties.ALL_KEYS); ModelList listItems = new ModelList(); @@ -2041,7 +2036,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow listModel.set(SuggestionListProperties.EMBEDDER, dropdownEmbedder); listModel.set(SuggestionListProperties.VISIBLE, false); listModel.set(SuggestionListProperties.SUGGESTION_MODELS, listItems); -@@ -156,7 +160,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -154,7 +158,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC public void inflate() { OmniboxSuggestionsDropdown dropdown; try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { @@ -2050,7 +2045,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } // Start with visibility GONE to ensure that show() is called. -@@ -234,6 +238,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -232,6 +236,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById( R.id.omnibox_results_container_stub)) .inflate(); @@ -2080,7 +2075,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -1012,7 +1015,9 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, +@@ -1029,7 +1032,9 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2141,7 +2136,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java -@@ -43,6 +43,9 @@ import org.chromium.ui.base.ViewUtils; +@@ -41,6 +41,9 @@ import org.chromium.ui.base.ViewUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -2151,7 +2146,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ public class OmniboxSuggestionsDropdown extends RecyclerView { private static final long DEFERRED_INITIAL_SHRINKING_LAYOUT_FROM_IME_DURATION_MS = 300; -@@ -246,7 +249,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -248,7 +251,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { * Constructs a new list designed for containing omnibox suggestions. * @param context Context used for contained views. */ @@ -2161,7 +2156,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow super(context, null, android.R.attr.dropDownListViewStyle); setFocusable(true); setFocusableInTouchMode(true); -@@ -256,13 +260,25 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -258,13 +262,25 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { setItemAnimator(null); mLayoutScrollListener = new SuggestionLayoutScrollListener(context); @@ -2188,33 +2183,33 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ViewCompat.setPaddingRelative(this, 0, 0, 0, paddingBottom); mStandardBgColor = shouldShowModernizeVisualUpdate -@@ -484,6 +500,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -491,6 +507,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { } - private int calculateAnchorBottomRelativeToContent() { + private int calculateAvailableViewportHeight() { + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + return 0; - View contentView = - mEmbedder.getAnchorView().getRootView().findViewById(android.R.id.content); - ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mTempPosition); + mEmbedder.getWindowDelegate().getWindowVisibleDisplayFrame(mTempRect); + return mTempRect.height(); + } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java -@@ -16,6 +16,10 @@ public interface OmniboxSuggestionsDropdownEmbedder { +@@ -94,6 +94,10 @@ public interface OmniboxSuggestionsDropdownEmbedder { @NonNull - View getAnchorView(); + OmniboxAlignment getCurrentAlignment(); + /** Return the container view the suggestion list should be drawn in. */ + @NonNull + View getAnchorContainerView(); + - /** - * Return the view that the omnibox suggestions should be aligned horizontally to. The - * view must be a descendant of {@link #getAnchorView()} or the anchor view itself. + /** Return the delegate used to interact with the Window. */ + @NonNull + WindowDelegate getWindowDelegate(); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1623,6 +1623,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1626,6 +1626,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2230,7 +2225,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -171,6 +171,7 @@ android_library("java") { +@@ -173,6 +173,7 @@ android_library("java") { "//components/user_prefs/android:java", "//content/public/android:content_java", "//third_party/android_deps:material_design_java", @@ -2454,7 +2449,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -57,6 +57,11 @@ import java.lang.annotation.Retention; +@@ -60,6 +60,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.function.BooleanSupplier; @@ -2466,7 +2461,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Layout for the browser controls (omnibox, menu, tab strip, etc..). */ -@@ -113,6 +118,12 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con +@@ -116,6 +121,12 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con @Override public void initWithToolbar(int toolbarLayoutId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { @@ -2664,7 +2659,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "cc/base/math_util.h" #include "cc/slim/layer.h" #include "components/viz/common/features.h" -@@ -841,6 +842,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -854,6 +855,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = metadata.top_controls_height * metadata.top_controls_shown_ratio; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index b94afc7f..d18bbbbb 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- ...em_webview_bundle.AndroidManifest.expected | 5 - chrome/android/BUILD.gn | 47 +- - chrome/android/chrome_java_sources.gni | 6 - + chrome/android/chrome_java_sources.gni | 5 - .../features/cablev2_authenticator/BUILD.gn | 2 - chrome/android/java/AndroidManifest.xml | 51 -- .../java/res/xml/privacy_preferences.xml | 5 - @@ -90,7 +90,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/signin/public/android/BUILD.gn | 3 - .../signin/AccountRenameChecker.java | 16 - components/webauthn/android/BUILD.gn | 9 - - .../webauthn/AuthenticatorImpl.java | 85 +-- + .../webauthn/AuthenticatorImpl.java | 83 +-- .../webauthn/Fido2ApiCallHelper.java | 23 +- .../push_messaging/push_messaging_manager.cc | 2 +- content/public/android/BUILD.gn | 4 - @@ -101,11 +101,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/BUILD.gn | 9 - services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 567 +----------------- + third_party/android_deps/BUILD.gn | 568 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- weblayer/browser/java/BUILD.gn | 1 - - 81 files changed, 96 insertions(+), 1963 deletions(-) + 81 files changed, 96 insertions(+), 1961 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -132,7 +132,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest. diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -242,14 +242,6 @@ if (current_toolchain == default_toolchain) { +@@ -230,14 +230,6 @@ if (current_toolchain == default_toolchain) { ":chrome_public_apk_template_resources", ":update_proto_java", ":usage_stats_proto_java", @@ -146,8 +146,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn - "$google_play_services_package:google_play_services_tasks_java", "//base:jni_java", "//cc:cc_java", - "//chrome/android/features/keyboard_accessory:public_java", -@@ -536,14 +528,23 @@ if (current_toolchain == default_toolchain) { + "//cc/mojom:mojom_java", +@@ -529,14 +521,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -174,7 +174,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -832,11 +833,6 @@ if (current_toolchain == default_toolchain) { +@@ -817,11 +818,6 @@ if (current_toolchain == default_toolchain) { ":chrome_java", ":chrome_jni_headers", ":delegate_public_impl_java", @@ -186,7 +186,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java_test_support", "//base:base_junit_test_support", "//base/test:test_support_java", -@@ -1383,13 +1379,6 @@ if (current_toolchain == default_toolchain) { +@@ -1375,13 +1371,6 @@ if (current_toolchain == default_toolchain) { ":chrome_app_java_resources", ":chrome_test_util_java", ":delegate_public_impl_java", @@ -200,7 +200,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -2318,7 +2307,6 @@ if (current_toolchain == default_toolchain) { +@@ -2310,7 +2299,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -208,7 +208,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -2455,7 +2443,6 @@ if (current_toolchain == default_toolchain) { +@@ -2447,7 +2435,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -216,7 +216,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", -@@ -2471,8 +2458,6 @@ if (current_toolchain == default_toolchain) { +@@ -2463,8 +2450,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -225,7 +225,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2497,17 +2482,11 @@ if (current_toolchain == default_toolchain) { +@@ -2489,17 +2474,11 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", @@ -243,7 +243,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:jni_java", "//chrome/browser/download/android:file_provider_java", -@@ -2521,7 +2500,6 @@ if (current_toolchain == default_toolchain) { +@@ -2513,7 +2492,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -251,7 +251,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//ui/android:ui_no_recycler_view_java", -@@ -2540,7 +2518,6 @@ if (current_toolchain == default_toolchain) { +@@ -2532,7 +2510,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/1126301): Consider moving these to the chrome module to # reduce base dex size. @@ -270,11 +270,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -932,11 +931,6 @@ chrome_java_sources = [ +@@ -933,10 +932,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", -- "java/src/org/chromium/chrome/browser/services/gcm/BundleToPersistableBundleConverter.java", - "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerServiceImpl.java", - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundServiceImpl.java", - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java", @@ -297,7 +296,7 @@ diff --git a/chrome/android/features/cablev2_authenticator/BUILD.gn b/chrome/and diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -106,21 +106,16 @@ by a child template that "extends" this file. +@@ -111,21 +111,16 @@ by a child template that "extends" this file. @@ -319,7 +318,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} -@@ -758,16 +753,6 @@ by a child template that "extends" this file. +@@ -780,16 +775,6 @@ by a child template that "extends" this file. @@ -336,7 +335,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -363,7 +362,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1009,20 +974,10 @@ by a child template that "extends" this file. +@@ -1031,20 +996,10 @@ by a child template that "extends" this file. @@ -384,7 +383,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1254,12 +1209,6 @@ by a child template that "extends" this file. +@@ -1276,12 +1231,6 @@ by a child template that "extends" this file. {% endif %} @@ -754,15 +753,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -120,7 +120,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -122,7 +122,6 @@ public class PasswordSettings extends PreferenceFragmentCompat private Preference mLinkPref; private Menu mMenu; - private @Nullable PasswordCheck mPasswordCheck; private @ManagePasswordsReferrer int mManagePasswordsReferrer; + private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; - /** -@@ -182,7 +181,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -185,7 +184,6 @@ public class PasswordSettings extends PreferenceFragmentCompat @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -770,7 +769,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage computeTrustedVaultBannerState(); } -@@ -287,9 +285,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -289,9 +287,6 @@ public class PasswordSettings extends PreferenceFragmentCompat createSavePasswordsSwitch(); createAutoSignInCheckbox(); @@ -780,7 +779,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner(R.string.android_trusted_vault_banner_sub_label_opted_in, -@@ -464,10 +459,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -466,10 +461,6 @@ public class PasswordSettings extends PreferenceFragmentCompat // by the system. if (getActivity().isFinishing()) { PasswordManagerHandlerProvider.getInstance().removeObserver(this); @@ -814,7 +813,7 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7062,8 +7062,6 @@ static_library("browser") { +@@ -7051,8 +7051,6 @@ static_library("browser") { "offline_pages/offliner_helper.h", "offline_pages/offliner_user_data.cc", "offline_pages/offliner_user_data.h", @@ -1097,7 +1096,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -253,8 +253,6 @@ static_library("ui") { +@@ -255,8 +255,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1106,7 +1105,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -489,7 +487,6 @@ static_library("ui") { +@@ -491,7 +489,6 @@ static_library("ui") { "//components/feedback/redaction_tool", "//components/find_in_page", "//components/flags_ui", @@ -1117,7 +1116,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java -@@ -186,12 +186,8 @@ public class SigninFirstRunMediator +@@ -183,12 +183,8 @@ public class SigninFirstRunMediator boolean isSigninDisabledByPolicy = false; boolean isMetricsReportingDisabledByPolicy = false; if (hasPolicies) { @@ -1135,7 +1134,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -186,12 +186,7 @@ bool AuthenticatorMechanismSelectorSheetModel::IsManageDevicesButtonVisible() +@@ -191,12 +191,7 @@ bool AuthenticatorMechanismSelectorSheetModel::IsManageDevicesButtonVisible() const { // If any phones are shown then also show a button that goes to the settings // page to manage them. @@ -1160,7 +1159,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -803,8 +802,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -814,8 +813,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIFlagsHost) return &NewWebUI; @@ -1172,7 +1171,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -1111,10 +1111,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms( +@@ -1137,10 +1137,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms( if (cable_ui_type_) { switch (*cable_ui_type_) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1199,7 +1198,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -254,8 +254,6 @@ android_library("chrome_java_integration_test_support") { +@@ -247,8 +247,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1261,8 +1260,8 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex import org.chromium.base.StrictModeContext; @@ -25,7 +22,6 @@ import org.chromium.base.TraceEvent; import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; import org.chromium.components.embedder_support.util.Origin; - import org.chromium.content_public.browser.UiThreadTaskTraits; -import org.chromium.gms.ChromiumPlayServicesAvailability; /** @@ -2982,7 +2981,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in "//third_party/androidx:androidx_annotation_annotation_java", ] -@@ -59,11 +57,9 @@ robolectric_binary("module_installer_junit_tests") { +@@ -58,11 +56,9 @@ robolectric_binary("module_installer_junit_tests") { ] deps = [ ":module_installer_java", @@ -3205,7 +3204,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -209,34 +166,13 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -209,32 +166,13 @@ public final class AuthenticatorImpl implements Authenticator { */ public void getMatchingCredentialIds(String relyingPartyId, byte[][] credentialIds, boolean requireThirdPartyPayment, GetMatchingCredentialIdsResponseCallback callback) { @@ -3229,11 +3228,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - return; - } - -- // The WebAuthenticationConditionalUI feature will only be enabled on Android when gmscore -- // supports silent discovery. If the gmscore and chromium versions are out of sync for some -- // reason, this method will return true but chrome will ignore conditional requests. -- // Android surfaces only platform credentials on conditional requests, use IsUVPAA as a -- // proxy for availability. +- // If the gmscore and chromium versions are out of sync for some reason, this method will +- // return true but chrome will ignore conditional requests. Android surfaces only platform +- // credentials on conditional requests, use IsUVPAA as a proxy for availability. - mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(callback); - getFido2CredentialRequest().handleIsUserVerifyingPlatformAuthenticatorAvailableRequest( - mRenderFrameHost, @@ -3242,7 +3239,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -248,8 +184,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -246,8 +184,6 @@ public final class AuthenticatorImpl implements Authenticator { if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3251,7 +3248,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -299,7 +233,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -297,7 +233,6 @@ public final class AuthenticatorImpl implements Authenticator { mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3312,7 +3309,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -132,10 +132,6 @@ android_library("content_main_dex_java") { +@@ -129,10 +129,6 @@ android_library("content_main_dex_java") { android_library("content_full_java") { deps = [ ":content_main_dex_java", @@ -3326,7 +3323,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3236,10 +3236,6 @@ if (is_android) { +@@ -3271,10 +3271,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3340,7 +3337,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -476,9 +476,6 @@ if (is_android) { +@@ -489,9 +489,6 @@ if (is_android) { "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", ] deps = [ @@ -3387,7 +3384,7 @@ diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_jav diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -117,11 +117,6 @@ if (is_android) { +@@ -123,11 +123,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3399,7 +3396,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -150,10 +145,6 @@ if (is_android) { +@@ -156,10 +151,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3439,7 +3436,7 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD. diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -75,21 +75,13 @@ if (!limit_android_deps) { +@@ -81,22 +81,13 @@ if (!limit_android_deps) { android_library("chromium_play_services_availability_java") { sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ] @@ -3453,6 +3450,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } - - java_group("playcore_java") { +- preferred_dep = true - if (defined(playcore_target)) { - deps = [ playcore_target ] - } else { @@ -3462,7 +3460,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # TODO(crbug.com/1366370) Remove this once all depencencies are updated to -@@ -954,210 +946,6 @@ if (!limit_android_deps) { +@@ -961,210 +952,6 @@ if (!limit_android_deps) { ] } @@ -3673,7 +3671,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = -@@ -1203,64 +991,6 @@ if (!limit_android_deps) { +@@ -1210,64 +997,6 @@ if (!limit_android_deps) { ] } @@ -3738,7 +3736,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_guava_guava_android_java") { jar_path = "libs/com_google_guava_guava_android/guava-31.1-android.jar" -@@ -1519,19 +1249,6 @@ if (!limit_android_deps) { +@@ -1571,19 +1300,6 @@ if (!limit_android_deps) { is_robolectric = true } @@ -3758,7 +3756,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("org_robolectric_utils_java") { jar_path = "libs/org_robolectric_utils/utils-4.8.1.jar" -@@ -1892,288 +1609,6 @@ if (!limit_android_deps) { +@@ -1944,288 +1660,6 @@ if (!limit_android_deps) { deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } diff --git a/build/patches/Remove-contextual-search-manager.patch b/build/patches/Remove-contextual-search-manager.patch index 4b463a10..c3adace6 100644 --- a/build/patches/Remove-contextual-search-manager.patch +++ b/build/patches/Remove-contextual-search-manager.patch @@ -53,15 +53,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -596,7 +596,6 @@ if (current_toolchain == default_toolchain) { +@@ -586,7 +586,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser:sharing_send_message_result_generated_enum", + "//chrome/browser/notifications/scheduler/public:jni_enums", "//chrome/browser/ui:duplicate_download_enums_java", - "//components/browsing_data/core:browsing_data_utils_java", - "//components/browsing_data/core:clear_browsing_data_tab_java", - "//components/contextual_search/core/browser:quick_action_category_enum_javagen", "//components/dom_distiller/core:distiller_type_java", "//components/ntp_tiles:ntp_tiles_enums_java", "//components/offline_pages/core:offline_page_model_enums_java", -@@ -3492,16 +3491,12 @@ generate_jni("chrome_jni_headers") { +@@ -3480,16 +3479,12 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java", "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java", @@ -81,7 +81,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -489,13 +489,6 @@ chrome_java_resources = [ +@@ -490,13 +490,6 @@ chrome_java_resources = [ "java/res/layout/context_menu_header.xml", "java/res/layout/context_menu_row.xml", "java/res/layout/context_menu_share_row.xml", @@ -95,8 +95,8 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/custom_tabs_bottombar.xml", "java/res/layout/custom_tabs_bottombar_item.xml", "java/res/layout/custom_tabs_control_container.xml", -@@ -639,7 +632,6 @@ chrome_java_resources = [ - "java/res/xml/autofill_assistant_preferences.xml", +@@ -637,7 +630,6 @@ chrome_java_resources = [ + "java/res/xml/account_management_preferences_legacy.xml", "java/res/xml/bookmark_widget_info.xml", "java/res/xml/clear_browsing_data_preferences_tab.xml", - "java/res/xml/contextual_search_preferences.xml", @@ -106,7 +106,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -305,21 +305,6 @@ chrome_java_sources = [ +@@ -310,21 +310,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelRepaddingTextView.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelTextViewInflater.java", @@ -128,7 +128,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabObserver.java", -@@ -361,7 +346,6 @@ chrome_java_sources = [ +@@ -365,7 +350,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabLoadTracker.java", "java/src/org/chromium/chrome/browser/compositor/resources/StaticResourcePreloads.java", "java/src/org/chromium/chrome/browser/compositor/resources/SystemResourcePreloads.java", @@ -136,7 +136,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java", "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java", "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java", -@@ -387,34 +371,6 @@ chrome_java_sources = [ +@@ -391,34 +375,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUi.java", "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUtils.java", "java/src/org/chromium/chrome/browser/contextmenu/LensChipDelegate.java", @@ -174,7 +174,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java -@@ -35,7 +35,6 @@ import org.chromium.base.supplier.Supplier; +@@ -38,7 +38,6 @@ import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -182,7 +182,7 @@ diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/ch import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenOptions; -@@ -537,14 +536,6 @@ class ManualFillingMediator +@@ -559,14 +558,6 @@ class ManualFillingMediator private boolean canExtendKeyboard() { if (!mModel.get(SHOW_WHEN_VISIBLE)) return false; @@ -473,9 +473,9 @@ deleted file mode 100644 diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml --- a/chrome/android/java/res/xml/google_services_preferences.xml +++ b/chrome/android/java/res/xml/google_services_preferences.xml -@@ -38,12 +38,4 @@ found in the LICENSE file. - android:summary="@string/prefs_autofill_assistant_summary" - android:fragment="org.chromium.chrome.browser.autofill_assistant.AutofillAssistantPreferenceFragment" +@@ -32,12 +32,4 @@ found in the LICENSE file. + android:summary="@string/price_notifications_settings_description" + android:fragment="org.chromium.chrome.browser.commerce.PriceNotificationPreferenceFragment" app:isPreferenceVisible="false"/> - extends AsyncInitializationActivity @@ -543,7 +543,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv SnackbarManageable, SceneChangeObserver, StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker, MenuOrKeyboardActionController, CompositorViewHolder.Initializer, -@@ -321,8 +318,6 @@ public abstract class ChromeActivity +@@ -320,8 +317,6 @@ public abstract class ChromeActivity new ObservableSupplierImpl<>(); protected final UnownedUserDataSupplier mInsetObserverViewSupplier = new InsetObserverViewSupplier(); @@ -561,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv getTabModelSelectorSupplier(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(), () -> null, mBrowserControlsManagerSupplier.get(), -@@ -948,14 +943,6 @@ public abstract class ChromeActivity +@@ -947,14 +942,6 @@ public abstract class ChromeActivity mCompositorViewHolderSupplier.get().onNativeLibraryReady( getWindowAndroid(), getTabContentManager(), getPrefService()); @@ -576,7 +576,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv TraceEvent.end("ChromeActivity:CompositorInitialization"); } -@@ -1426,11 +1413,6 @@ public abstract class ChromeActivity +@@ -1428,11 +1415,6 @@ public abstract class ChromeActivity @SuppressLint("NewApi") @Override protected final void onDestroy() { @@ -588,7 +588,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv if (mSnackbarManager != null) { SnackbarManagerProvider.detach(mSnackbarManager); } -@@ -1928,13 +1910,6 @@ public abstract class ChromeActivity +@@ -1920,13 +1902,6 @@ public abstract class ChromeActivity return mCompositorViewHolderSupplier.get(); } @@ -602,7 +602,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * Exits the fullscreen mode, if any. Does nothing if no fullscreen is present. * @return Whether the fullscreen mode is currently showing. -@@ -1980,15 +1955,6 @@ public abstract class ChromeActivity +@@ -1975,15 +1950,6 @@ public abstract class ChromeActivity } mActivityTabProvider.setLayoutStateProvider(layoutManager); @@ -618,7 +618,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv } /** -@@ -2260,18 +2226,6 @@ public abstract class ChromeActivity +@@ -2255,18 +2221,6 @@ public abstract class ChromeActivity return webContents != null ? SelectionPopupController.fromWebContents(webContents) : null; } @@ -849,7 +849,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -46,7 +46,6 @@ import org.chromium.ui.text.SpanApplier; +@@ -47,7 +47,6 @@ import org.chromium.ui.text.SpanApplier; import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; @@ -857,7 +857,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; -@@ -70,9 +69,7 @@ public class PrivacySettings +@@ -71,9 +70,7 @@ public class PrivacySettings extends PreferenceFragmentCompat // moved from SyncAndServicesSettings.java private static final String PREF_SERVICES_CATEGORY = "services_category"; private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions"; @@ -867,7 +867,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private final SharedPreferencesManager mSharedPreferencesManager = SharedPreferencesManager.getInstance(); private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile()); -@@ -129,12 +126,6 @@ public class PrivacySettings +@@ -131,12 +128,6 @@ public class PrivacySettings extends PreferenceFragmentCompat mSearchSuggestions.setOnPreferenceChangeListener(this); mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate); @@ -910,7 +910,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.desktop_site.DesktopSiteSettingsIPHController; import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils; import org.chromium.chrome.browser.feature_guide.notifications.FeatureType; -@@ -267,7 +266,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -261,7 +260,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @NonNull ObservableSupplier profileSupplier, @NonNull ObservableSupplier bookmarkModelSupplier, @NonNull ObservableSupplier tabBookmarkerSupplier, @@ -919,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab @NonNull ObservableSupplier tabModelSelectorSupplier, @NonNull OneshotSupplier startSurfaceSupplier, @NonNull OneshotSupplier tabSwitcherSupplier, -@@ -302,7 +301,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -296,7 +295,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { boolean initializeUiWithIncognitoColors, @NonNull BackPressManager backPressManager) { super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider, profileSupplier, bookmarkModelSupplier, tabBookmarkerSupplier, @@ -931,7 +931,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; +@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; @@ -939,7 +939,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.crash.ChromePureJavaExceptionReporter; import org.chromium.chrome.browser.directactions.DirectActionInitializer; import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; -@@ -95,7 +94,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -97,7 +96,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -947,7 +947,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -237,7 +235,6 @@ public class RootUiCoordinator +@@ -243,7 +241,6 @@ public class RootUiCoordinator private List mButtonDataProviders; @Nullable private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController; @@ -955,7 +955,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private IdentityDiscController mIdentityDiscController; private ChromeActionModeHandler mChromeActionModeHandler; private final ToolbarActionModeCallback mActionModeControllerCallback; -@@ -250,7 +247,6 @@ public class RootUiCoordinator +@@ -256,7 +253,6 @@ public class RootUiCoordinator private final ObservableSupplier mTabBookmarkerSupplier; private final OneshotSupplierImpl mAppMenuSupplier; private BottomSheetObserver mBottomSheetObserver; @@ -963,7 +963,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi protected final CallbackController mCallbackController; protected final BrowserControlsManager mBrowserControlsManager; private BrowserControlsStateProvider.Observer mBrowserControlsObserver; -@@ -355,7 +351,7 @@ public class RootUiCoordinator +@@ -361,7 +357,7 @@ public class RootUiCoordinator @NonNull ObservableSupplier profileSupplier, @NonNull ObservableSupplier bookmarkModelSupplier, @NonNull ObservableSupplier tabBookmarkerSupplier, @@ -972,7 +972,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi @NonNull ObservableSupplier tabModelSelectorSupplier, @NonNull OneshotSupplier startSurfaceSupplier, @NonNull OneshotSupplier tabSwitcherSupplier, -@@ -448,7 +444,6 @@ public class RootUiCoordinator +@@ -454,7 +450,6 @@ public class RootUiCoordinator mBookmarkModelSupplier = bookmarkModelSupplier; mTabBookmarkerSupplier = tabBookmarkerSupplier; mAppMenuSupplier = new OneshotSupplierImpl<>(); @@ -980,7 +980,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mActionModeControllerCallback = new ToolbarActionModeCallback(); mTabModelSelectorSupplier = tabModelSelectorSupplier; -@@ -552,11 +547,6 @@ public class RootUiCoordinator +@@ -566,11 +561,6 @@ public class RootUiCoordinator mToolbarManager = null; } @@ -992,7 +992,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi if (mAdaptiveToolbarButtonController != null) { mAdaptiveToolbarButtonController.destroy(); mAdaptiveToolbarButtonController = null; -@@ -971,15 +961,6 @@ public class RootUiCoordinator +@@ -985,15 +975,6 @@ public class RootUiCoordinator @Override public boolean canShowAppMenu() { @@ -1008,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi // Do not show the menu if we are in find in page view. if (mFindToolbarManager != null && mFindToolbarManager.isShowing() && !DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { -@@ -1134,11 +1115,6 @@ public class RootUiCoordinator +@@ -1160,11 +1141,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.READER_MODE, readerModeToolbarButtonController); @@ -1020,7 +1020,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mButtonDataProviders = Arrays.asList(mIdentityDiscController, adaptiveToolbarButtonController); -@@ -1207,10 +1183,6 @@ public class RootUiCoordinator +@@ -1233,10 +1209,6 @@ public class RootUiCoordinator public void onStartedShowing(int layoutType, boolean showToolbar) { if (layoutType != LayoutType.BROWSING && layoutType != LayoutType.SIMPLE_ANIMATION) { @@ -1031,7 +1031,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } if (layoutType == LayoutType.TAB_SWITCHER) { -@@ -1331,10 +1303,6 @@ public class RootUiCoordinator +@@ -1357,10 +1329,6 @@ public class RootUiCoordinator * cross-feature interaction, e.g. hide other features when this feature is shown. */ protected void onFindToolbarShown() { @@ -1042,7 +1042,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } /** -@@ -1491,9 +1459,6 @@ public class RootUiCoordinator +@@ -1517,9 +1485,6 @@ public class RootUiCoordinator case SheetState.FULL: if (!mOpened) { mOpened = true; @@ -1052,7 +1052,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } // On visible bottom sheet, hide page zoom dialog -@@ -1501,8 +1466,6 @@ public class RootUiCoordinator +@@ -1527,8 +1492,6 @@ public class RootUiCoordinator break; case SheetState.HIDDEN: mOpened = false; @@ -1064,7 +1064,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2092,7 +2092,6 @@ static_library("browser") { +@@ -2049,7 +2049,6 @@ static_library("browser") { "//components/content_settings/common:mojom", "//components/content_settings/core/browser", "//components/content_settings/core/common", @@ -1072,7 +1072,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/cookie_config", "//components/country_codes", "//components/crash/core/browser", -@@ -2576,8 +2575,6 @@ static_library("browser") { +@@ -2546,8 +2545,6 @@ static_library("browser") { "android/compositor/decoration_title.h", "android/compositor/layer/content_layer.cc", "android/compositor/layer/content_layer.h", @@ -1081,7 +1081,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/compositor/layer/layer.h", "android/compositor/layer/overlay_panel_layer.cc", "android/compositor/layer/overlay_panel_layer.h", -@@ -2598,8 +2595,6 @@ static_library("browser") { +@@ -2568,8 +2565,6 @@ static_library("browser") { "android/compositor/resources/resource_factory.cc", "android/compositor/resources/toolbar_resource.cc", "android/compositor/resources/toolbar_resource.h", @@ -1090,7 +1090,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/compositor/scene_layer/overscroll_scene_layer.cc", "android/compositor/scene_layer/overscroll_scene_layer.h", "android/compositor/scene_layer/scrolling_bottom_view_scene_layer.cc", -@@ -2622,16 +2617,6 @@ static_library("browser") { +@@ -2592,16 +2587,6 @@ static_library("browser") { "android/content/content_utils.cc", "android/context_menu/context_menu_native_delegate_impl.cc", "android/context_menu/context_menu_native_delegate_impl.h", @@ -1107,7 +1107,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/cookies/cookies_fetcher_util.cc", "android/customtabs/chrome_origin_verifier.cc", "android/customtabs/chrome_origin_verifier.h", -@@ -3186,8 +3171,6 @@ static_library("browser") { +@@ -3139,8 +3124,6 @@ static_library("browser") { "safe_browsing/android/safe_browsing_referring_app_bridge_android.h", "safe_browsing/android/safe_browsing_settings_launcher_android.cc", "safe_browsing/android/safe_browsing_settings_launcher_android.h", @@ -1119,9 +1119,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1979,27 +1979,6 @@ const FeatureEntry::FeatureVariation kRelatedSearchesUiVariations[] = { - {"verbose", &kRelatedSearchesUiVerbose, 1, nullptr}, - {"extreme", &kRelatedSearchesUiExtreme, 1, nullptr}, +@@ -2152,27 +2152,6 @@ const FeatureEntry::FeatureVariation kRelatedSearchesVariations[] = { + {"from content", &kRelatedSearchesContent, 1, nullptr}, + {"support all languages", &kRelatedSearchesAllLanguages, 1, nullptr}, }; - -const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith300Dp[] = @@ -1146,11 +1146,11 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc - #endif // BUILDFLAG(IS_ANDROID) - const FeatureEntry::FeatureParam kResamplingInputEventsLSQEnabled[] = { -@@ -3340,18 +3319,6 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription, - kOsAndroid, - FEATURE_VALUE_TYPE(blink::features::kOSKResizesVisualViewportByDefault)}, + const FeatureEntry::FeatureParam +@@ -3582,18 +3561,6 @@ const FeatureEntry kFeatureEntries[] = { + SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, + #endif // ENABLE_EXTENSIONS + #if BUILDFLAG(IS_ANDROID) - {"contextual-search-force-caption", - flag_descriptions::kContextualSearchForceCaptionName, - flag_descriptions::kContextualSearchForceCaptionDescription, kOsAndroid, @@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "components/download/public/common/download_features.h" #include "components/embedder_support/android/util/cdn_utils.h" #include "components/feature_engagement/public/feature_list.h" -@@ -220,11 +219,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -225,11 +224,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kContextMenuSearchAndShopWithGoogleLens, &kContextMenuTranslateWithGoogleLens, &kContextMenuPopupForAllScreenSizes, @@ -1188,8 +1188,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse - &kContextualSearchThinWebViewImplementation, &kDeferKeepScreenOnDuringGesture, &kDeferNotifyInMotion, - &kExperimentsForAgsa, -@@ -685,26 +679,6 @@ BASE_FEATURE(kLensOnQuickActionSearchWidget, + &kDelayTransitionsForAnimation, +@@ -700,26 +694,6 @@ BASE_FEATURE(kLensOnQuickActionSearchWidget, "LensOnQuickActionSearchWidget", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1216,7 +1216,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse BASE_FEATURE(kDeferKeepScreenOnDuringGesture, "DeferKeepScreenOnDuringGesture", base::FEATURE_DISABLED_BY_DEFAULT); -@@ -720,7 +694,6 @@ BASE_FEATURE(kDownloadAutoResumptionThrottling, +@@ -739,7 +713,6 @@ BASE_FEATURE(kDownloadAutoResumptionThrottling, BASE_FEATURE(kDownloadHomeForExternalApp, "DownloadHomeForExternalApp", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1227,7 +1227,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -76,11 +76,6 @@ BASE_DECLARE_FEATURE(kContextMenuSearchWithGoogleLens); +@@ -83,11 +83,6 @@ BASE_DECLARE_FEATURE(kContextMenuSearchWithGoogleLens); BASE_DECLARE_FEATURE(kContextMenuShopWithGoogleLens); BASE_DECLARE_FEATURE(kContextMenuSearchAndShopWithGoogleLens); BASE_DECLARE_FEATURE(kContextMenuTranslateWithGoogleLens); @@ -1238,7 +1238,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser -BASE_DECLARE_FEATURE(kContextualSearchThinWebViewImplementation); BASE_DECLARE_FEATURE(kDeferKeepScreenOnDuringGesture); BASE_DECLARE_FEATURE(kDeferNotifyInMotion); - BASE_DECLARE_FEATURE(kDontPrefetchLibraries); + BASE_DECLARE_FEATURE(kDelayTransitionsForAnimation); diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc @@ -1250,7 +1250,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/download/default_download_dir_policy_handler.h" #include "chrome/browser/download/download_auto_open_policy_handler.h" -@@ -1937,10 +1936,7 @@ std::unique_ptr BuildHandlerList( +@@ -1977,10 +1976,7 @@ std::unique_ptr BuildHandlerList( std::make_unique(key::kURLBlocklist)); // Policies for all platforms - End @@ -1265,7 +1265,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -800,33 +800,6 @@ CHAR_LIMIT guidelines: +@@ -803,33 +803,6 @@ CHAR_LIMIT guidelines: Customize the info used by sites to show you ads @@ -1299,7 +1299,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro “Do Not Track” -@@ -4123,38 +4096,6 @@ To change this setting, <resetlink>reset sync

      <resetlink>reset sync

      @@ -1352,7 +1352,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn -@@ -1035,8 +1035,8 @@ mojom("android_mojo_bindings") { +@@ -1049,8 +1049,8 @@ mojom("android_mojo_bindings") { # This Android unhandled-tap feature uses another mojo source, add it in. if (enable_unhandled_tap) { sources += [ "unhandled_tap_notifier/unhandled_tap_notifier.mojom" ] diff --git a/build/patches/Remove-price-shopping-commerce-integrations.patch b/build/patches/Remove-price-shopping-commerce-integrations.patch index 1b432441..7c28487f 100644 --- a/build/patches/Remove-price-shopping-commerce-integrations.patch +++ b/build/patches/Remove-price-shopping-commerce-integrations.patch @@ -23,15 +23,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabSwitcherMediator.java | 57 ---- .../chrome/browser/app/ChromeActivity.java | 10 +- .../AppMenuPropertiesDelegateImpl.java | 11 +- - .../browser/bookmarks/BookmarkActionBar.java | 3 +- - .../browser/bookmarks/BookmarkBridge.java | 88 ----- - .../bookmarks/BookmarkItemsAdapter.java | 25 +- + .../browser/bookmarks/BookmarkBridge.java | 11 - + .../bookmarks/BookmarkItemsAdapter.java | 1 + .../browser/bookmarks/BookmarkListEntry.java | 34 +- - .../browser/bookmarks/BookmarkManager.java | 4 - - .../bookmarks/BookmarkManagerCoordinator.java | 33 +- .../BookmarkSaveFlowCoordinator.java | 6 +- .../bookmarks/BookmarkSaveFlowMediator.java | 77 +---- - .../browser/bookmarks/BookmarkUIState.java | 10 - .../browser/bookmarks/BookmarkUtils.java | 6 +- .../browser/customtabs/CustomTabActivity.java | 2 +- .../init/ProcessInitializationHandler.java | 5 - @@ -47,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browsing_data_history_observer_service.cc | 15 - .../commerce/merchant_viewer/android/BUILD.gn | 34 +- .../MerchantTrustSignalsCoordinator.java | 303 +----------------- - .../PageInfoStoreInfoController.java | 8 +- + .../PageInfoStoreInfoController.java | 6 - .../price_tracking/PriceTrackingFeatures.java | 2 +- .../commerce/subscriptions/android/BUILD.gn | 1 - .../CommerceSubscriptionsService.java | 34 +- @@ -59,8 +55,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab/state/ShoppingPersistedTabData.java | 3 +- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../components/bookmarks/BookmarkId.java | 3 - - .../commerce/core/commerce_feature_list.cc | 64 ++-- - 56 files changed, 84 insertions(+), 1320 deletions(-) + .../commerce/core/commerce_feature_list.cc | 65 ++-- + 52 files changed, 78 insertions(+), 1174 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -76,7 +72,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//chrome/browser/page_info/buildflags.gni") import("//chrome/browser/password_manager/buildflags.gni") import("//chrome/browser/share/android/java_sources.gni") -@@ -273,9 +269,6 @@ if (current_toolchain == default_toolchain) { +@@ -262,9 +258,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/browser_controls/android:java", "//chrome/browser/commerce/android:java", "//chrome/browser/commerce/merchant_viewer/android:java", @@ -86,7 +82,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/consent_auditor/android:java", "//chrome/browser/contextmenu:java", "//chrome/browser/creator/android:java", -@@ -659,16 +652,6 @@ if (current_toolchain == default_toolchain) { +@@ -642,16 +635,6 @@ if (current_toolchain == default_toolchain) { sources += share_java_sources deps += share_java_deps @@ -103,7 +99,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (enable_printing) { deps += [ "//printing:printing_java" ] } -@@ -718,7 +701,6 @@ if (current_toolchain == default_toolchain) { +@@ -701,7 +684,6 @@ if (current_toolchain == default_toolchain) { ":chrome_java", "//chrome/android/features/keyboard_accessory:internal_java", "//chrome/browser/android/httpclient:java", @@ -111,7 +107,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/content_creation/notes/internal/android:java", "//chrome/browser/download/internal/android:java", "//chrome/browser/page_annotations/android:java", -@@ -869,11 +851,6 @@ if (current_toolchain == default_toolchain) { +@@ -855,11 +837,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/bluetooth/android:junit", "//chrome/browser/browser_controls/android:java", "//chrome/browser/browser_controls/android:junit", @@ -123,7 +119,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/contextmenu:java", "//chrome/browser/creator/android:java", "//chrome/browser/creator/android:junit", -@@ -1276,8 +1253,6 @@ if (current_toolchain == default_toolchain) { +@@ -1268,8 +1245,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/crypto:java", @@ -132,7 +128,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/contextmenu:java", "//chrome/browser/download/android:download_java_tests", "//chrome/browser/download/android:file_provider_java", -@@ -1412,12 +1387,6 @@ if (current_toolchain == default_toolchain) { +@@ -1404,12 +1379,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/back_press/android:java", "//chrome/browser/banners/android:java", "//chrome/browser/browser_controls/android:java", @@ -145,7 +141,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/content_creation/notes/internal/android:java", "//chrome/browser/contextmenu:java", "//chrome/browser/dependency_injection:java", -@@ -3648,8 +3617,6 @@ group("jni_headers") { +@@ -3635,8 +3604,6 @@ group("jni_headers") { "//chrome/browser/android/browserservices/metrics:jni_headers", "//chrome/browser/android/browserservices/verification:jni_headers", "//chrome/browser/battery/android:jni_headers", @@ -157,8 +153,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -199,10 +199,6 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java", +@@ -203,10 +203,6 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiState.java", "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java", "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java", - "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkMetrics.java", @@ -167,8 +163,8 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java - "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkUtils.java", "java/src/org/chromium/chrome/browser/bookmarks/ReadingListSectionHeader.java", "java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java", - "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProvider.java", -@@ -928,7 +924,6 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/bookmarks/TestingDelegate.java", +@@ -929,7 +925,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java", "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java", @@ -338,7 +334,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java -@@ -100,7 +100,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -95,7 +95,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon tabId, thumbnailSize, callback, forceUpdate, writeBack); }, null, false, gridCardOnClickListenerProvider, @@ -350,7 +346,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -193,20 +193,6 @@ class TabGridViewBinder { +@@ -200,20 +200,6 @@ class TabGridViewBinder { model.get(TabProperties.IS_SELECTED)); } else if (TabProperties.ACCESSIBILITY_DELEGATE == propertyKey) { view.setAccessibilityDelegate(model.get(TabProperties.ACCESSIBILITY_DELEGATE)); @@ -371,7 +367,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else if (TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER == propertyKey) { CouponCardView couponCardView = (CouponCardView) view.fastFindViewById(R.id.coupon_info_box_outer); -@@ -234,13 +220,6 @@ class TabGridViewBinder { +@@ -241,13 +227,6 @@ class TabGridViewBinder { }); }, false); } else if (TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP == propertyKey) { @@ -385,7 +381,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else if (TabProperties.IS_SELECTED == propertyKey) { view.setSelected(model.get(TabProperties.IS_SELECTED)); updateColorForActionButton(view, model.get(TabProperties.IS_INCOGNITO), -@@ -285,21 +264,6 @@ class TabGridViewBinder { +@@ -292,21 +271,6 @@ class TabGridViewBinder { private static void fetchPriceDrop(PropertyModel model, Callback callback, boolean shouldLog) { @@ -410,7 +406,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -154,7 +154,7 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -153,7 +153,7 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T mTabStripCoordinator = new TabListCoordinator(TabListCoordinator.TabListMode.STRIP, mContext, mTabModelSelector, null, null, false, null, null, @@ -422,7 +418,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -@@ -57,7 +57,7 @@ import java.util.List; +@@ -58,7 +58,7 @@ import java.util.List; * Coordinator for showing UI for a list of tabs. Can be used in GRID or STRIP modes. */ public class TabListCoordinator @@ -431,7 +427,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Modes of showing the list of tabs. * -@@ -115,7 +115,6 @@ public class TabListCoordinator +@@ -116,7 +116,6 @@ public class TabListCoordinator * @param itemType The item type to put in the list of tabs. * @param selectionDelegateProvider Provider to provide selected Tabs for a selectable tab list. * It's NULL when selection is not possible. @@ -439,7 +435,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser * @param parentView {@link ViewGroup} The root view of the UI. * @param attachToParent Whether the UI should attach to root view. * @param componentName A unique string uses to identify different components for UMA recording. -@@ -132,8 +131,6 @@ public class TabListCoordinator +@@ -133,8 +132,6 @@ public class TabListCoordinator .GridCardOnClickListenerProvider gridCardOnClickListenerProvider, @Nullable TabListMediator.TabGridDialogHandler dialogHandler, @UiType int itemType, @Nullable TabListMediator.SelectionDelegateProvider selectionDelegateProvider, @@ -448,7 +444,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser @NonNull ViewGroup parentView, boolean attachToParent, String componentName, @NonNull ViewGroup rootView, @Nullable Callback onModelTokenChange, @Nullable TabGridItemTouchHelperCallback -@@ -239,7 +236,7 @@ public class TabListCoordinator +@@ -226,7 +223,7 @@ public class TabListCoordinator mMediator = new TabListMediator(context, mModel, mMode, tabModelSelector, thumbnailProvider, titleProvider, tabListFaviconProvider, actionOnRelatedTabs, selectionDelegateProvider, gridCardOnClickListenerProvider, dialogHandler, @@ -457,7 +453,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser onLongPressTabItemEventListener); try (TraceEvent e = TraceEvent.scoped("TabListCoordinator.setupRecyclerView")) { -@@ -442,13 +439,6 @@ public class TabListCoordinator +@@ -431,13 +428,6 @@ public class TabListCoordinator return tabListRect.top; } @@ -471,7 +467,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * @return The container {@link androidx.recyclerview.widget.RecyclerView} that is showing the * tab list UI. -@@ -605,17 +595,6 @@ public class TabListCoordinator +@@ -594,17 +584,6 @@ public class TabListCoordinator mMediator.removeSpecialItemFromModel(uiType, itemIdentifier); } @@ -656,7 +652,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser sViewedTabIds.clear(); } -@@ -1458,25 +1368,6 @@ class TabListMediator { +@@ -1460,25 +1370,6 @@ class TabListMediator { * @param recyclerView the {@link TabListRecyclerView} to add the listener too. */ void registerOnScrolledListener(RecyclerView recyclerView) { @@ -682,7 +678,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } private void unregisterOnScrolledListener() { -@@ -1829,26 +1720,6 @@ class TabListMediator { +@@ -1834,26 +1725,6 @@ class TabListMediator { } private void setupPersistedTabDataFetcherForTab(PseudoTab pseudoTab, int index) { @@ -709,7 +705,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @VisibleForTesting -@@ -1976,23 +1847,6 @@ class TabListMediator { +@@ -1975,23 +1846,6 @@ class TabListMediator { return false; } @@ -733,7 +729,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Update the layout of tab switcher to make it compact. Because now we have messages within the * tabs like PriceMessage and these messages take up the entire row, some operations like -@@ -2003,7 +1857,7 @@ class TabListMediator { +@@ -2002,7 +1856,7 @@ class TabListMediator { void updateLayout() { // Right now we need to update layout only if there is a price welcome message card in tab // switcher. @@ -742,7 +738,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser assert mGridLayoutManager != null; int spanCount = mGridLayoutManager.getSpanCount(); GridLayoutManager.SpanSizeLookup spanSizeLookup = mGridLayoutManager.getSpanSizeLookup(); -@@ -2040,27 +1894,6 @@ class TabListMediator { +@@ -2039,27 +1893,6 @@ class TabListMediator { return TabSwitcherCoordinator.isShowingTabsInMRUOrder(mMode); } @@ -816,9 +812,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser -import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; -import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -48,7 +44,6 @@ import org.chromium.chrome.browser.tabmodel.TabList; + import org.chromium.chrome.browser.tabmodel.TabCreatorManager; +@@ -47,7 +43,6 @@ import org.chromium.chrome.browser.tabmodel.TabList; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tasks.pseudotab.PseudoTab; import org.chromium.chrome.browser.tasks.pseudotab.TabAttributeCache; @@ -852,7 +848,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser multiWindowModeStateDispatcher, mode, incognitoReauthControllerSupplier, backPressManager, dialogControllerSupplier); -@@ -272,7 +264,7 @@ public class TabSwitcherCoordinator +@@ -271,7 +263,7 @@ public class TabSwitcherCoordinator long startTimeMs = SystemClock.uptimeMillis(); mTabListCoordinator = new TabListCoordinator(mode, activity, tabModelSelector, mMultiThumbnailCardProvider, titleProvider, true, mMediator, null, @@ -861,7 +857,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRootView, null, this); mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel, mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind); -@@ -341,21 +333,6 @@ public class TabSwitcherCoordinator +@@ -339,21 +331,6 @@ public class TabSwitcherCoordinator new LayoutViewBuilder(R.layout.large_message_card_item), LargeMessageCardViewBinder::bind); } @@ -883,7 +879,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } if (mode == TabListCoordinator.TabListMode.GRID -@@ -514,8 +491,6 @@ public class TabSwitcherCoordinator +@@ -505,8 +482,6 @@ public class TabSwitcherCoordinator mMultiThumbnailCardProvider.initWithNative(); mMediator.initWithNative(controller, mSnackbarManager); @@ -892,7 +888,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mIsInitialized = true; } -@@ -593,19 +568,6 @@ public class TabSwitcherCoordinator +@@ -584,19 +559,6 @@ public class TabSwitcherCoordinator TabSelectionEditorOpenMetricGroups.OPEN_FROM_GRID, mActivity); } @@ -912,7 +908,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // TabSwitcher implementation. @Override public void setOnTabSelectingListener(OnTabSelectingListener listener) { -@@ -746,22 +708,10 @@ public class TabSwitcherCoordinator +@@ -737,22 +699,10 @@ public class TabSwitcherCoordinator @Override public boolean resetWithTabs( @Nullable List tabs, boolean quickMode, boolean mruMode) { @@ -935,7 +931,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser return showQuickly; } -@@ -798,38 +748,6 @@ public class TabSwitcherCoordinator +@@ -789,38 +739,6 @@ public class TabSwitcherCoordinator sAppendedMessagesForTesting = messages.size() > 0; } @@ -974,7 +970,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // OnLongPressTabItemEventListener implementation @Override public void onLongPressEvent(int tabId) { -@@ -866,9 +784,6 @@ public class TabSwitcherCoordinator +@@ -857,9 +775,6 @@ public class TabSwitcherCoordinator mMessageCardProviderCoordinator.getNextMessageItemForType(messageType); if (nextMessage == null || !shouldAppendMessage(nextMessage.model)) return; if (messageType == MessageService.MessageType.PRICE_MESSAGE) { @@ -984,7 +980,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else { mTabListCoordinator.addSpecialListItemToEnd( TabProperties.UiType.MESSAGE, nextMessage.model); -@@ -918,8 +833,7 @@ public class TabSwitcherCoordinator +@@ -909,8 +824,7 @@ public class TabSwitcherCoordinator } private boolean shouldRegisterLargeMessageItemType() { @@ -994,7 +990,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -957,9 +871,6 @@ public class TabSwitcherCoordinator +@@ -948,9 +862,6 @@ public class TabSwitcherCoordinator if (mTabAttributeCache != null) { mTabAttributeCache.destroy(); } @@ -1007,15 +1003,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; +@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthController; + import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; -import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabSelectionType; -@@ -80,7 +79,6 @@ import java.util.List; +@@ -78,7 +77,6 @@ import java.util.List; */ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView.VisibilityListener, TabListMediator.GridCardOnClickListenerProvider, @@ -1023,7 +1019,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser TabSwitcherCustomViewManager.Delegate, BackPressHandler { private static final String TAG = "TabSwitcherMediator"; -@@ -154,7 +152,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -148,7 +146,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView private TabSelectionEditorCoordinator .TabSelectionEditorController mTabSelectionEditorController; private TabSwitcher.OnTabSelectingListener mOnTabSelectingListener; @@ -1031,7 +1027,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * This allows to check if re-auth is pending when tab switcher is shown in Incognito mode. -@@ -242,29 +239,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -237,29 +234,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView void restoreAllAppendedMessage(); } @@ -1061,7 +1057,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Basic constructor for the Mediator. * @param context The context to use for accessing {@link android.content.res.Resources}. -@@ -288,7 +262,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -283,7 +257,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView PropertyModel containerViewModel, TabModelSelector tabModelSelector, BrowserControlsStateProvider browserControlsStateProvider, ViewGroup containerView, TabContentManager tabContentManager, MessageItemsController messageItemsController, @@ -1069,7 +1065,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, @TabListMode int mode, @Nullable OneshotSupplier incognitoReauthControllerSupplier, @Nullable BackPressManager backPressManager, -@@ -394,9 +367,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -388,9 +361,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView public void willCloseTab(Tab tab, boolean animate, boolean didCloseAlone) { if (mTabModelSelector.getCurrentModel().getCount() == 1) { messageItemsController.removeAllAppendedMessage(); @@ -1079,7 +1075,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } } -@@ -405,10 +375,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -399,10 +369,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView if (mTabModelSelector.getCurrentModel().getCount() == 1) { messageItemsController.restoreAllAppendedMessage(); } @@ -1090,7 +1086,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser notifyBackPressStateChangedInternal(); } -@@ -436,12 +402,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -430,12 +396,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView @Override public void tabClosureCommitted(Tab tab) { @@ -1103,7 +1099,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; -@@ -701,14 +661,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -695,14 +655,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView "MobileTabSwitched." + TabSwitcherCoordinator.COMPONENT_NAME); } } @@ -1118,7 +1114,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -1049,10 +1001,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -1073,10 +1025,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView mOnTabSelectingListener = listener; } @@ -1129,7 +1125,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // GridCardOnClickListenerProvider implementation. @Override @Nullable -@@ -1086,11 +1034,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -1110,11 +1058,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView } } @@ -1144,7 +1140,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -83,7 +83,6 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; +@@ -82,7 +82,6 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator; import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkModel; @@ -1152,7 +1148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.bookmarks.TabBookmarker; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.layouts.Layout; -@@ -2340,18 +2339,11 @@ public abstract class ChromeActivity +@@ -2334,18 +2333,11 @@ public abstract class ChromeActivity } if (id == R.id.enable_price_tracking_menu_id) { @@ -1171,7 +1167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv return true; } -@@ -2375,7 +2367,7 @@ public abstract class ChromeActivity +@@ -2369,7 +2361,7 @@ public abstract class ChromeActivity if (id == R.id.info_menu_id) { ChromePageInfo pageInfo = new ChromePageInfo(getModalDialogManagerSupplier(), null, OpenedFromSource.MENU, @@ -1183,7 +1179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -39,7 +39,6 @@ import org.chromium.chrome.browser.ActivityTabProvider; +@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.banners.AppMenuVerbiage; import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; import org.chromium.chrome.browser.bookmarks.BookmarkModel; @@ -1191,7 +1187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.commerce.ShoppingFeatures; import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; import org.chromium.chrome.browser.device.DeviceClassManager; -@@ -1105,9 +1104,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1111,9 +1110,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate * @param stopPriceTrackingMenuItem The menu item to stop price tracking. * @param currentTab Current tab being displayed. */ @@ -1204,81 +1200,37 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); ShoppingService.ProductInfo info = null; if (service != null && currentTab != null) { -@@ -1133,7 +1132,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - info.productClusterId, mBookmarkModelSupplier.get()); - } - startPriceTrackingMenuItem.setVisible(!priceTrackingEnabled); -- stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled); -+ stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled); */ +@@ -1143,7 +1142,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate + stopPriceTrackingMenuItem.setVisible(isSubscribed); + } else { + startPriceTrackingMenuItem.setVisible(true); +- stopPriceTrackingMenuItem.setVisible(false); ++ stopPriceTrackingMenuItem.setVisible(false); */ + startPriceTrackingMenuItem.setVisible(false); + stopPriceTrackingMenuItem.setVisible(false); + } } - /** -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -@@ -195,8 +195,7 @@ public class BookmarkActionBar extends SelectableListToolbar - return; - } - -- if (folder.equals(BookmarkId.SHOPPING_FOLDER)) { -- setTitle(R.string.price_tracking_bookmarks_filter_title); -+ if ((false)) { - } else if (mDelegate.getModel().getTopLevelFolderParentIDs().contains( - mCurrentFolder.getParentId()) - && TextUtils.isEmpty(mCurrentFolder.getTitle())) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -@@ -56,8 +56,6 @@ class BookmarkBridge { +@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.tab.Tab; + import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.bookmarks.BookmarkItem; + import org.chromium.components.bookmarks.BookmarkType; +-import org.chromium.components.commerce.core.ShoppingService; + import org.chromium.components.power_bookmarks.PowerBookmarkMeta; + import org.chromium.components.power_bookmarks.PowerBookmarkType; + import org.chromium.content_public.browser.WebContents; +@@ -47,7 +46,6 @@ class BookmarkBridge { + private boolean mIsDoingExtensiveChanges; private boolean mIsNativeBookmarkModelLoaded; - private final ObserverList mObservers = - new ObserverList(); + private final ObserverList mObservers = new ObserverList<>(); - private ShoppingService mShoppingService; -- private SubscriptionsObserver mSubscriptionsObserver; /** * Handler to fetch the bookmarks, titles, urls and folder hierarchy. -@@ -77,26 +75,6 @@ class BookmarkBridge { - mNativeBookmarkBridge = nativeBookmarkBridge; - mIsDoingExtensiveChanges = BookmarkBridgeJni.get().isDoingExtensiveChanges( - mNativeBookmarkBridge, BookmarkBridge.this); -- // TODO(crbug.com/1382191): Move this observer to native. -- mSubscriptionsObserver = new SubscriptionsObserver() { -- @Override -- public void onSubscribe(List subscriptions, boolean succeeded) {} -- -- @Override -- public void onUnsubscribe(List subscriptions, boolean succeeded) { -- if (!succeeded) return; -- removeExplicitShoppingSubscriptions(subscriptions); -- } -- }; -- -- mShoppingService = -- ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); -- mShoppingService.addSubscriptionsObserver(mSubscriptionsObserver); -- } -- -- @VisibleForTesting -- SubscriptionsObserver getSubscriptionObserver() { -- return mSubscriptionsObserver; - } - - /** -@@ -110,10 +88,6 @@ class BookmarkBridge { - mIsNativeBookmarkModelLoaded = false; - } - mObservers.clear(); -- -- if (mShoppingService != null) { -- mShoppingService.removeSubscriptionsObserver(mSubscriptionsObserver); -- } - } - - /** Returns whether the bridge has been destroyed. */ -@@ -233,12 +207,6 @@ class BookmarkBridge { +@@ -199,12 +197,6 @@ class BookmarkBridge { assert mIsNativeBookmarkModelLoaded; if (id == null) return null; @@ -1291,163 +1243,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return BookmarkBridgeJni.get().getBookmarkByID( mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } -@@ -423,68 +391,12 @@ class BookmarkBridge { +@@ -389,9 +381,6 @@ class BookmarkBridge { ThreadUtils.assertOnUiThread(); - if (mNativeBookmarkBridge == 0) return new ArrayList(); + if (mNativeBookmarkBridge == 0) return new ArrayList<>(); assert mIsNativeBookmarkModelLoaded; - if (BookmarkId.SHOPPING_FOLDER.equals(id)) { - return searchBookmarks("", null, PowerBookmarkType.SHOPPING, -1); - } - List result = new ArrayList(); + List result = new ArrayList<>(); BookmarkBridgeJni.get().getChildIDs( mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType(), result); - return result; - } - -- /** -- * Disable price tracking for the list of subscriptions. This flips the bit in ShoppingSpecifics -- * but does not actually unsubscribe from the subscription service -- this assumes that is -- * already done. -- * TODO(1284730): This should live somewhere other than BookmarkBridge. -- * -- * @param subscriptions The list of subscriptions to disable. -- */ -- private void removeExplicitShoppingSubscriptions(List subscriptions) { -- if (mNativeBookmarkBridge == 0) return; -- if (subscriptions == null) return; -- -- List products = searchBookmarks("", null, PowerBookmarkType.SHOPPING, -1); -- if (products == null || products.size() == 0) return; -- -- // Put the offer and cluster IDs into a map so they can be quickly checked. -- HashSet offerIdMap = new HashSet<>(); -- HashSet clusterIdMap = new HashSet<>(); -- for (CommerceSubscription c : subscriptions) { -- // Ensure the subscription is explicit. -- if (c == null || c.managementType != ManagementType.USER_MANAGED) { -- continue; -- } -- -- if (c.idType == IdentifierType.OFFER_ID) { -- offerIdMap.add(UnsignedLongs.parseUnsignedLong(c.id)); -- } else if (c.idType == IdentifierType.PRODUCT_CLUSTER_ID) { -- clusterIdMap.add(UnsignedLongs.parseUnsignedLong(c.id)); -- } -- } -- -- // Look at all the products the user has saved to find any of the above product or cluster -- // IDs. -- for (BookmarkId product : products) { -- PowerBookmarkMeta meta = getPowerBookmarkMeta(product); -- if (!meta.hasShoppingSpecifics()) continue; -- -- ShoppingSpecifics specifics = meta.getShoppingSpecifics(); -- if (offerIdMap.contains(specifics.getOfferId()) -- || clusterIdMap.contains(specifics.getProductClusterId())) { -- // Reset the meta using a copy of the existing one, but set the price tracking flag -- // to false. -- setPowerBookmarkMeta(product, -- PowerBookmarkMeta.newBuilder(meta) -- .setShoppingSpecifics( -- ShoppingSpecifics.newBuilder(meta.getShoppingSpecifics()) -- .setIsPriceTracked(false) -- .build()) -- .build()); -- } -- } -- } -- - /** - * Gets the child of a folder at the specific position. - * @param folderId Id of the parent folder diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -65,6 +65,7 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter { - if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { - mItemTouchHelper.startDrag(holder); -@@ -225,10 +217,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter mDelegate.openFolder(BookmarkId.SHOPPING_FOLDER)); - } - } - -@@ -245,10 +233,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter selectableList = - mMainView.findViewById(R.id.selectable_list); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -62,45 +62,21 @@ public class BookmarkManagerCoordinator { - public View createView(@NonNull ViewGroup parent, @ViewType int viewType) { - assert mDelegate != null; - -- // The shopping-specific bookmark row is only shown with the visual refresh. When -- // there's a mismatch, the ViewType is downgraded to ViewType.BOOKMARK. -- if (viewType == ViewType.SHOPPING_POWER_BOOKMARK -- && !BookmarkFeatures.isBookmarksVisualRefreshEnabled()) { -- viewType = ViewType.BOOKMARK; -- } -- - switch (viewType) { -- case ViewType.PERSONALIZED_SIGNIN_PROMO: -- case ViewType.PERSONALIZED_SYNC_PROMO: -- return buildPersonalizedPromoView(parent); -- case ViewType.SYNC_PROMO: -- return buildLegacyPromoView(parent); - case ViewType.SECTION_HEADER: - return buildSectionHeaderView(parent); - case ViewType.FOLDER: - return buildBookmarkFolderView(parent); - case ViewType.BOOKMARK: - return buildBookmarkItemView(parent); -- case ViewType.SHOPPING_POWER_BOOKMARK: -- return buildShoppingItemView(parent); - case ViewType.DIVIDER: - return buildDividerView(parent); -- case ViewType.SHOPPING_FILTER: -- return buildShoppingFilterView(parent); - default: - assert false; - return null; - } - } - -- private View buildPersonalizedPromoView(ViewGroup parent) { -- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent); -- } -- -- private View buildLegacyPromoView(ViewGroup parent) { -- return mPromoHeaderManager.createSyncPromoHolder(parent); -- } -- - private View buildSectionHeaderView(ViewGroup parent) { - return inflate(parent, org.chromium.chrome.R.layout.bookmark_section_header); - } -@@ -113,13 +89,6 @@ public class BookmarkManagerCoordinator { - return inflateBookmarkRow(parent, org.chromium.chrome.R.layout.bookmark_item_row); - } - -- private View buildShoppingItemView(ViewGroup parent) { -- PowerBookmarkShoppingItemRow row = (PowerBookmarkShoppingItemRow) inflateBookmarkRow( -- parent, org.chromium.chrome.R.layout.power_bookmark_shopping_item_row); -- row.init(mImageFetcher, mDelegate.getModel(), mSnackbarManager); -- return row; -- } -- - private View buildDividerView(ViewGroup parent) { - return inflate(parent, org.chromium.chrome.R.layout.horizontal_divider); - } -@@ -138,4 +107,4 @@ public class BookmarkManagerCoordinator { - (row).onDelegateInitialized(mDelegate); - return row; - } --} -\ No newline at end of file -+} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java -@@ -57,12 +57,10 @@ public class BookmarkSaveFlowCoordinator { +@@ -58,12 +58,10 @@ public class BookmarkSaveFlowCoordinator { /** * @param context The {@link Context} associated with this cooridnator. * @param bottomSheetController Allows displaying content in the bottom sheet. @@ -1618,10 +1354,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm public BookmarkSaveFlowCoordinator(@NonNull Context context, - @NonNull BottomSheetController bottomSheetController, ShoppingService shoppingService, + @NonNull BottomSheetController bottomSheetController, - @NonNull UserEducationHelper userEducationHelper) { + @NonNull UserEducationHelper userEducationHelper, Profile profile) { mContext = context; mBottomSheetController = bottomSheetController; -@@ -73,7 +71,7 @@ public class BookmarkSaveFlowCoordinator { +@@ -75,7 +73,7 @@ public class BookmarkSaveFlowCoordinator { mBookmarkSaveFlowView = LayoutInflater.from(mContext).inflate( org.chromium.chrome.R.layout.bookmark_save_flow, /*root=*/null); mMediator = new BookmarkSaveFlowMediator( @@ -1787,35 +1523,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm - setPriceTrackingToggleVisualsOnly(!subscriptions.contains(mSubscription)); - } } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java -@@ -43,17 +43,8 @@ public class BookmarkUIState { - return state; - } - -- static BookmarkUIState createShoppingFilterState() { -- BookmarkUIState state = new BookmarkUIState(); -- state.mState = STATE_FOLDER; -- state.mUrl = SHOPPING_FILTER_URL; -- state.mFolder = BookmarkId.SHOPPING_FOLDER; -- return state; -- } -- - static BookmarkUIState createFolderState(BookmarkId folder, - BookmarkModel bookmarkModel) { -- if (BookmarkId.SHOPPING_FOLDER.equals(folder)) return createShoppingFilterState(); - return createStateFromUrl(createFolderUrl(folder), bookmarkModel); - } - -@@ -61,7 +52,6 @@ public class BookmarkUIState { - * @see #createStateFromUrl(Uri, BookmarkModel) - */ - static BookmarkUIState createStateFromUrl(String url, BookmarkModel bookmarkModel) { -- if (SHOPPING_FILTER_URL.equals(url)) return createShoppingFilterState(); - return createStateFromUrl(Uri.parse(url), bookmarkModel); - } - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java @@ -1831,13 +1538,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return; } -- ShoppingService shoppingService = -- ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); +- Profile profile = Profile.getLastUsedRegularProfile(); +- ShoppingService shoppingService = ShoppingServiceFactory.getForProfile(profile); - BookmarkSaveFlowCoordinator bookmarkSaveFlowCoordinator = - new BookmarkSaveFlowCoordinator(activity, bottomSheetController, shoppingService, + new BookmarkSaveFlowCoordinator(activity, bottomSheetController, - new UserEducationHelper(activity, new Handler())); + new UserEducationHelper(activity, new Handler()), profile); bookmarkSaveFlowCoordinator.show( bookmarkId, fromExplicitTrackUi, wasBookmarkMoved, isNewBookmark); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java @@ -1863,7 +1570,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; -@@ -449,10 +448,6 @@ public class ProcessInitializationHandler { +@@ -446,10 +445,6 @@ public class ProcessInitializationHandler { .create() .onDeferredStartup(); // TODO(crbug.com/1355893) Move to PersistedTabData.onDeferredStartup @@ -1895,13 +1602,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -105,10 +105,6 @@ public class ContextualPageActionController { +@@ -107,10 +107,6 @@ public class ContextualPageActionController { protected void initActionProviders(Supplier shoppingServiceSupplier, Supplier bookmarkModelSupplier) { mActionProviders.clear(); - if (AdaptiveToolbarFeatures.isPriceTrackingPageActionEnabled()) { - mActionProviders.add(new PriceTrackingActionProvider( -- shoppingServiceSupplier, bookmarkModelSupplier)); +- shoppingServiceSupplier, bookmarkModelSupplier, mProfileSupplier)); - } if (AdaptiveToolbarFeatures.isReaderModePageActionEnabled()) { mActionProviders.add(new ReaderModeActionProvider()); @@ -1943,8 +1650,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxDialogController; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.read_later.ReadLaterIPHController; -@@ -87,8 +86,6 @@ import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl; - import org.chromium.chrome.browser.share.crow.CrowIphController; +@@ -85,8 +84,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; + import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController; import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator; -import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService; @@ -1952,7 +1659,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.tab.RequestDesktopUtils; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabAssociatedApp; -@@ -161,7 +158,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -155,7 +152,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private NavigationSheet mNavigationSheet; private ComposedBrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private LayoutManagerImpl mLayoutManager; @@ -1960,7 +1667,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab private UndoGroupSnackbarController mUndoGroupSnackbarController; private final int mControlContainerHeightResource; private final Supplier mInsetObserverViewSupplier; -@@ -390,11 +386,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -379,11 +375,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mUndoGroupSnackbarController.destroy(); } @@ -1972,7 +1679,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab if (mNotificationPermissionController != null) { NotificationPermissionController.detach(mNotificationPermissionController); mNotificationPermissionController = null; -@@ -545,7 +536,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -523,7 +514,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mPwaBottomSheetController = PwaBottomSheetControllerFactory.createPwaBottomSheetController(mActivity); PwaBottomSheetControllerFactory.attach(mWindowAndroid, mPwaBottomSheetController); @@ -1980,7 +1687,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab initUndoGroupSnackbarController(); } -@@ -832,17 +822,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -807,17 +797,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { if (animate) browserControlsSizer.setAnimateBrowserControlsHeightChanges(false); } @@ -2001,9 +1708,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java -@@ -15,8 +15,6 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.Supplier; +@@ -16,8 +16,6 @@ import org.chromium.base.supplier.Supplier; import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; import org.chromium.chrome.R; -import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; -import org.chromium.chrome.browser.commerce.ShoppingFeatures; @@ -2052,7 +1759,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -90,8 +90,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate; +@@ -89,8 +89,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.ActionChipsDelegate; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; @@ -2061,7 +1768,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -645,7 +643,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -640,7 +638,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve postDataType, postData, incognito, startSurfaceParentTabSupplier.get()); }; ChromePageInfo toolbarPageInfo = new ChromePageInfo(modalDialogManagerSupplier, null, @@ -2070,7 +1777,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mEphemeralTabCoordinatorSupplier); // clang-format off LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( -@@ -1987,21 +1985,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2010,21 +2008,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve * viewed in the tab switcher grid. */ private void maybeShowPriceDropIPH() { @@ -2095,7 +1802,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -91,7 +91,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; +@@ -93,7 +93,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; @@ -2103,7 +1810,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; -@@ -603,7 +602,6 @@ public class RootUiCoordinator +@@ -617,7 +616,6 @@ public class RootUiCoordinator } if (mMerchantTrustSignalsCoordinatorSupplier.hasValue()) { @@ -2111,7 +1818,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mMerchantTrustSignalsCoordinatorSupplier.set(null); } -@@ -840,16 +838,6 @@ public class RootUiCoordinator +@@ -854,16 +852,6 @@ public class RootUiCoordinator } private void initMerchantTrustSignals() { @@ -2128,7 +1835,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } private void initScrollCapture() { -@@ -1055,12 +1043,6 @@ public class RootUiCoordinator +@@ -1069,12 +1057,6 @@ public class RootUiCoordinator mIdentityDiscController = new IdentityDiscController( mActivity, mActivityLifecycleDispatcher, mProfileSupplier); @@ -2141,10 +1848,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi ReaderModeToolbarButtonController readerModeToolbarButtonController = new ReaderModeToolbarButtonController(mActivity, mActivityTabProvider, mModalDialogManagerSupplier.get(), -@@ -1111,8 +1093,6 @@ public class RootUiCoordinator - AdaptiveToolbarButtonVariant.SHARE, shareButtonController); +@@ -1137,8 +1119,6 @@ public class RootUiCoordinator + addToBookmarksToolbarButtonController); adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.VOICE, voiceToolbarButtonController); + AdaptiveToolbarButtonVariant.TRANSLATE, translateToolbarButtonController); - adaptiveToolbarButtonController.addButtonVariant( - AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController); adaptiveToolbarButtonController.addButtonVariant( @@ -2182,16 +1889,16 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2886,8 +2886,6 @@ static_library("browser") { +@@ -2844,8 +2844,6 @@ static_library("browser") { "commerce/android/price_tracking_utils_android.cc", "commerce/android/shopping_service_factory_android.cc", "commerce/merchant_viewer/web_contents_helper.cc", - "commerce/price_tracking/android/price_tracking_notification_bridge.cc", - "commerce/price_tracking/android/price_tracking_notification_bridge.h", - "component_updater/crow_domain_list_component_installer.cc", - "component_updater/crow_domain_list_component_installer.h", "content_creation/notes/internal/android/note_service_bridge_factory.cc", -@@ -3258,8 +3256,6 @@ static_library("browser") { + "content_creation/notes/internal/note_service_factory.cc", + "content_creation/notes/internal/note_service_factory.h", +@@ -3219,8 +3217,6 @@ static_library("browser") { "//chrome/browser/banners/android:jni_headers", "//chrome/browser/bluetooth/android:jni_headers", "//chrome/browser/commerce/android:shopping_service_jni", @@ -2632,13 +2339,6 @@ diff --git a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromi } else if (merchantInfo.hasReturnPolicy) { return mContext.getResources().getString( R.string.page_info_store_info_description_with_no_rating); -@@ -136,4 +130,4 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { - - @Override - public void onNativeInitialized() {} --} -\ No newline at end of file -+} diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java --- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java +++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java @@ -2665,7 +2365,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/BUILD.gn b/chrome/bro diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java --- a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java +++ b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java -@@ -10,8 +10,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +@@ -11,8 +11,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; @@ -2674,7 +2374,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.components.commerce.core.ShoppingService; -@@ -31,18 +29,14 @@ public class CommerceSubscriptionsService { +@@ -32,18 +30,14 @@ public class CommerceSubscriptionsService implements Destroyable { ChromePreferenceKeys.COMMERCE_SUBSCRIPTIONS_CHROME_MANAGED_TIMESTAMP; private final SharedPreferencesManager mSharedPreferencesManager; @@ -2694,7 +2394,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium } /** Performs any deferred startup tasks required by {@link Subscriptions}. */ -@@ -59,12 +53,6 @@ public class CommerceSubscriptionsService { +@@ -60,12 +54,6 @@ public class CommerceSubscriptionsService implements Destroyable { public void onPauseWithNative() {} }; mActivityLifecycleDispatcher.register(mPauseResumeWithNativeObserver); @@ -2707,7 +2407,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium } /** -@@ -74,10 +62,6 @@ public class CommerceSubscriptionsService { +@@ -76,10 +64,6 @@ public class CommerceSubscriptionsService implements Destroyable { if (mActivityLifecycleDispatcher != null) { mActivityLifecycleDispatcher.unregister(mPauseResumeWithNativeObserver); } @@ -2718,7 +2418,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium } private void maybeRecordMetricsAndInitializeSubscriptions() { -@@ -90,21 +74,5 @@ public class CommerceSubscriptionsService { +@@ -92,21 +76,5 @@ public class CommerceSubscriptionsService implements Destroyable { } mSharedPreferencesManager.writeLong( CHROME_MANAGED_SUBSCRIPTIONS_TIMESTAMP, System.currentTimeMillis()); @@ -2768,7 +2468,7 @@ diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persist diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -514,9 +514,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -557,9 +557,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if !BUILDFLAG(IS_ANDROID) CartServiceFactory::GetInstance(); #endif @@ -2792,10 +2492,10 @@ diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java -@@ -17,7 +17,6 @@ import org.chromium.base.Callback; - import org.chromium.base.Log; +@@ -18,7 +18,6 @@ import org.chromium.base.Log; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; -import org.chromium.chrome.browser.commerce.PriceUtils; import org.chromium.chrome.browser.endpoint_fetcher.EndpointFetcher; import org.chromium.chrome.browser.profiles.Profile; @@ -2821,7 +2521,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/S import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory; import org.chromium.chrome.browser.page_annotations.BuyableProductPageAnnotation; -@@ -953,7 +952,7 @@ public class ShoppingPersistedTabData extends PersistedTabData { +@@ -952,7 +951,7 @@ public class ShoppingPersistedTabData extends PersistedTabData { return ""; } CurrencyFormatter currencyFormatter = getCurrencyFormatter(mPriceDropData.currencyCode); @@ -2833,7 +2533,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/S diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -448,7 +448,6 @@ robolectric_library("junit") { +@@ -447,7 +447,6 @@ robolectric_library("junit") { "//base:base_junit_test_support", "//build/android:build_java", "//chrome/android:base_module_java", @@ -2857,7 +2557,7 @@ diff --git a/components/bookmarks/common/android/java/src/org/chromium/component diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -110,61 +110,50 @@ const char kEnableChromeCart[] = "enable-chrome-cart"; +@@ -110,62 +110,50 @@ const char kEnableChromeCart[] = "enable-chrome-cart"; } // namespace switches BASE_FEATURE(kCommerceAllowLocalImages, @@ -2910,7 +2610,8 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm &kCommerceMerchantViewer, "delete_all_merchants_on_clear_history", false}; -BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); --#if BUILDFLAG(IS_ANDROID) +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_LINUX) -BASE_FEATURE(kShoppingListRegionLaunched, - "ShoppingListRegionLaunched", - base::FEATURE_ENABLED_BY_DEFAULT); @@ -2919,7 +2620,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm BASE_FEATURE(kShoppingListRegionLaunched, - "ShoppingListRegionLaunched", - base::FEATURE_DISABLED_BY_DEFAULT); --#endif // BUILDFLAG(IS_ANDROID) +-#endif + "ShoppingListRegionLaunched", // guard this + base::FEATURE_DISABLED_BY_DEFAULT); // guard this @@ -2938,7 +2639,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm BASE_FEATURE(kCommerceDeveloper, "CommerceDeveloper", -@@ -175,21 +164,21 @@ const char kRetailCouponsWithCodeParam[] = "RetailCouponsWithCodeParam"; +@@ -176,21 +164,21 @@ const char kRetailCouponsWithCodeParam[] = "RetailCouponsWithCodeParam"; // Params use for Discount Consent v2. BASE_FEATURE(kDiscountConsentV2, "DiscountConsentV2", @@ -2953,9 +2654,9 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm BASE_FEATURE(kMerchantWidePromotion, - "MerchantWidePromotion", -- base::FEATURE_DISABLED_BY_DEFAULT); +- base::FEATURE_ENABLED_BY_DEFAULT); + "MerchantWidePromotion", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this ++ base::FEATURE_ENABLED_BY_DEFAULT); // guard this BASE_FEATURE(kCodeBasedRBD, "CodeBasedRBD", base::FEATURE_DISABLED_BY_DEFAULT); @@ -2967,7 +2668,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm // Params for Discount Consent V2 in the NTP Cart module. const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = -@@ -376,6 +365,7 @@ std::string GetCurrentCountryCode(variations::VariationsService* variations) { +@@ -383,6 +371,7 @@ std::string GetCurrentCountryCode(variations::VariationsService* variations) { bool IsEnabledForCountryAndLocale(const base::Feature& feature, std::string country, std::string locale) { diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch index 80486500..827192d9 100644 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ b/build/patches/Remove-signin-and-sync-integrations.patch @@ -35,20 +35,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeBackupWatcher.java | 10 - .../chrome/browser/ChromeTabbedActivity.java | 9 - .../chrome/browser/app/ChromeActivity.java | 75 ------ - .../app/feed/FeedActionDelegateImpl.java | 3 - + .../app/feed/FeedActionDelegateImpl.java | 2 - .../autofill/settings/AddressEditor.java | 16 +- - .../AutofillAssistantPreferenceFragment.java | 1 - - .../bookmarks/BookmarkItemsAdapter.java | 55 +---- - .../bookmarks/BookmarkPromoHeader.java | 227 +----------------- - .../ClearBrowsingDataFragment.java | 77 ------ - .../ClearBrowsingDataFragmentBasic.java | 27 +-- - .../contacts_picker/ChromePickerAdapter.java | 67 +----- + .../bookmarks/BookmarkPromoHeader.java | 228 +----------------- + .../ClearBrowsingDataFragment.java | 76 ------ + .../ClearBrowsingDataFragmentBasic.java | 28 +-- + .../contacts_picker/ChromePickerAdapter.java | 67 +---- .../browser/customtabs/CustomTabActivity.java | 7 - - .../firstrun/FirstRunActivityBase.java | 1 - .../firstrun/LightweightFirstRunActivity.java | 4 +- - ...FirstRunFragmentWithEnterpriseSupport.java | 6 - .../history/HistoryContentManager.java | 25 +- - .../identity_disc/IdentityDiscController.java | 130 +--------- + .../identity_disc/IdentityDiscController.java | 126 +--------- .../init/ChromeBrowserInitializer.java | 2 - .../init/ProcessInitializationHandler.java | 9 - .../chrome/browser/ntp/RecentTabsManager.java | 129 +--------- @@ -63,11 +59,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../privacy/settings/PrivacySettings.java | 31 --- .../chrome/browser/settings/MainSettings.java | 96 +------- .../browser/settings/SettingsActivity.java | 9 - - .../share/crow/CrowButtonDelegateImpl.java | 5 +- .../survey/ChromeSurveyController.java | 4 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 19 -- chrome/browser/BUILD.gn | 9 - - ...mobile_identity_consistency_field_trial.cc | 12 +- + ...mobile_identity_consistency_field_trial.cc | 13 +- chrome/browser/commerce/android/BUILD.gn | 2 - .../PriceNotificationPreferenceFragment.java | 8 +- .../price_tracking/PriceTrackingFeatures.java | 9 +- @@ -82,13 +77,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../router/discovery/access_code/BUILD.gn | 1 - .../browser/password_manager/android/BUILD.gn | 4 - ...sswordManagerErrorMessageHelperBridge.java | 26 -- - .../PasswordManagerHelper.java | 143 +---------- + .../PasswordManagerHelper.java | 142 +---------- ...StoreAndroidBackendReceiverBridgeImpl.java | 10 - ...swordSyncControllerDelegateBridgeImpl.java | 6 +- ...d_manager_settings_service_android_impl.cc | 59 +---- chrome/browser/privacy/BUILD.gn | 1 - chrome/browser/privacy_guide/android/BUILD.gn | 2 - - .../res/layout/privacy_guide_msbb_step.xml | 8 - + .../res/layout/privacy_guide_msbb_step.xml | 7 - .../browser/privacy_guide/MSBBFragment.java | 9 - .../privacy_guide/PrivacyGuideUtils.java | 5 +- ...hrome_browser_main_extra_parts_profiles.cc | 3 +- @@ -96,7 +91,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../SearchResumptionModuleMediator.java | 37 +-- .../SearchResumptionModuleUtils.java | 12 - .../ManageAccountDevicesLinkView.java | 28 +-- - .../SendTabToSelfCoordinator.java | 151 ------------ + .../SendTabToSelfCoordinator.java | 153 ------------ .../account_consistency_mode_manager.cc | 7 +- .../signin/identity_manager_factory.cc | 5 - .../identity_services_provider_android.cc | 13 - @@ -112,11 +107,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ui/signin/SyncConsentFragmentBase.java | 106 +------- .../ui/signin/SyncPromoController.java | 15 +- .../WebSigninAccountPickerDelegate.java | 23 -- - .../ui/signin/fre/SigninFirstRunMediator.java | 62 +---- + .../ui/signin/fre/SigninFirstRunMediator.java | 64 +---- .../strings/android_chrome_strings.grd | 18 -- .../core/browser/leak_detection_delegate.cc | 2 +- .../core/browser/password_form_manager.cc | 34 +-- - .../browser/password_manager_client_helper.cc | 43 +--- + .../browser/password_manager_client_helper.cc | 47 +--- .../core/browser/sync_credentials_filter.cc | 49 +--- components/signin/features.gni | 4 +- .../primary_account_manager.cc | 17 +- @@ -126,12 +121,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ProfileOAuth2TokenServiceDelegate.java | 52 ---- .../net/HttpNegotiateAuthenticator.java | 88 +------ .../chromoting/base/OAuthTokenFetcher.java | 2 - - 107 files changed, 101 insertions(+), 2699 deletions(-) + 102 files changed, 102 insertions(+), 2633 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -141,7 +141,6 @@ if (current_toolchain == default_toolchain) { +@@ -135,7 +135,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/password_manager/android:java_resources", "//chrome/browser/quick_delete:java_resources", "//chrome/browser/search_resumption:java_resources", @@ -139,7 +134,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java_resources", "//chrome/browser/ui/android/appmenu:java_resources", "//chrome/browser/ui/android/favicon:java_resources", -@@ -345,8 +344,6 @@ if (current_toolchain == default_toolchain) { +@@ -337,8 +336,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/settings:java", "//chrome/browser/share:java", "//chrome/browser/share/android:java_resources", @@ -148,7 +143,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java", "//chrome/browser/tab_group:java", "//chrome/browser/tabmodel:factory_java", -@@ -369,7 +366,6 @@ if (current_toolchain == default_toolchain) { +@@ -361,7 +358,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/page_info:java", "//chrome/browser/ui/android/quickactionsearchwidget:java", "//chrome/browser/ui/android/searchactivityutils:java", @@ -156,7 +151,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/messages/android:java", -@@ -495,7 +491,6 @@ if (current_toolchain == default_toolchain) { +@@ -488,7 +484,6 @@ if (current_toolchain == default_toolchain) { "//components/strictmode/android:java", "//components/stylus_handwriting/android:java", "//components/subresource_filter/android:java", @@ -164,7 +159,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync/protocol:protocol_java", "//components/sync_device_info:sync_device_info_java", "//components/thin_webview:factory_java", -@@ -942,9 +937,6 @@ if (current_toolchain == default_toolchain) { +@@ -933,9 +928,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/segmentation_platform:factory_java", "//chrome/browser/settings:junit_test_support", "//chrome/browser/share:java", @@ -174,7 +169,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java", "//chrome/browser/tab:junit", "//chrome/browser/tab_group:java", -@@ -978,8 +970,6 @@ if (current_toolchain == default_toolchain) { +@@ -969,8 +961,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/omnibox:junit", "//chrome/browser/ui/android/quickactionsearchwidget:java", "//chrome/browser/ui/android/searchactivityutils:java", @@ -183,7 +178,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/android/toolbar:junit", -@@ -1070,7 +1060,6 @@ if (current_toolchain == default_toolchain) { +@@ -1062,7 +1052,6 @@ if (current_toolchain == default_toolchain) { "//components/signin/core/browser:signin_enums_java", "//components/signin/public/android:java", "//components/signin/public/android:signin_java_test_support", @@ -191,7 +186,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync_device_info:sync_device_info_java", "//components/translate/content/android:junit", "//components/ukm/android:java", -@@ -1505,10 +1494,8 @@ if (current_toolchain == default_toolchain) { +@@ -1499,10 +1488,8 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/settings:test_support_java", "//chrome/browser/share:java", "//chrome/browser/share/android:java_resources", @@ -202,7 +197,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/sync/test/android:test_support_java", "//chrome/browser/tab:critical_persisted_tab_data_flatbuffer_java", "//chrome/browser/tab:critical_persisted_tab_data_proto_java", -@@ -1534,8 +1521,6 @@ if (current_toolchain == default_toolchain) { +@@ -1528,8 +1515,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/quickactionsearchwidget:java", "//chrome/browser/ui/android/quickactionsearchwidget:javatests", "//chrome/browser/ui/android/searchactivityutils:java", @@ -211,7 +206,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/messages/android:java", -@@ -1650,7 +1635,6 @@ if (current_toolchain == default_toolchain) { +@@ -1645,7 +1630,6 @@ if (current_toolchain == default_toolchain) { "//components/signin/public/android:java", "//components/signin/public/android:signin_java_test_support", "//components/site_engagement/content/android:java", @@ -219,7 +214,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync/protocol:protocol_java", "//components/sync_device_info:sync_device_info_java", "//components/url_formatter/android:url_formatter_java", -@@ -2345,7 +2329,6 @@ if (current_toolchain == default_toolchain) { +@@ -2337,7 +2321,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/download/android:java", "//chrome/browser/prefetch/android:java", "//chrome/browser/profiles/android:java", @@ -227,7 +222,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java", "//components/offline_items_collection/core:core_java", "//components/sync/protocol:protocol_java", -@@ -2769,13 +2752,11 @@ if (current_toolchain == default_toolchain) { +@@ -2760,13 +2743,11 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/optimization_guide/android:unit_device_javatests", "//chrome/browser/partnercustomizations:unit_device_javatests", "//chrome/browser/password_edit_dialog/android:unit_device_javatests", @@ -241,7 +236,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/messages/android:unit_device_javatests", "//chrome/browser/video_tutorials/internal:unit_device_javatests", "//components/browser_ui/bottomsheet/android/internal:unit_device_javatests", -@@ -3636,7 +3617,6 @@ generate_jni("chrome_jni_headers") { +@@ -3623,7 +3604,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", "java/src/org/chromium/chrome/browser/signin/SigninBridge.java", @@ -260,7 +255,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/BrowserRestartActivity.java", "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", -@@ -604,14 +603,11 @@ chrome_java_sources = [ +@@ -608,14 +607,11 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java", "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java", "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java", @@ -273,9 +268,9 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", - "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", - "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java", - "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java", -@@ -800,7 +796,6 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", + "java/src/org/chromium/chrome/browser/flags/BadFlagsSnackbarManager.java", +@@ -801,7 +797,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ntp/RevampedIncognitoDescriptionView.java", "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelperImpl.java", "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java", @@ -557,17 +552,17 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -68,9 +68,7 @@ by a child template that "extends" this file. - - - +@@ -73,9 +73,7 @@ by a child template that "extends" this file. + + + - - -@@ -81,7 +79,6 @@ by a child template that "extends" this file. +@@ -86,7 +84,6 @@ by a child template that "extends" this file. @@ -575,7 +570,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -126,8 +123,6 @@ by a child template that "extends" this file. +@@ -131,8 +128,6 @@ by a child template that "extends" this file. @@ -584,7 +579,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} {% endblock %} -@@ -542,15 +537,6 @@ by a child template that "extends" this file. +@@ -564,15 +559,6 @@ by a child template that "extends" this file. TODO(crbug.com/1093292): investigate why @android:style/Theme.NoDisplay can't be used here. --> @@ -600,7 +595,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% endif %} @@ -786,7 +781,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java -@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.init.AsyncInitTaskRunner; +@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.init.AsyncInitTaskRunner; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.profiles.Profile; @@ -801,7 +796,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAge - final AtomicReference syncAccount = new AtomicReference<>(); // The native preferences can only be read on the UI thread. - Boolean nativePrefsRead = PostTask.runSynchronously(UiThreadTaskTraits.DEFAULT, () -> { + Boolean nativePrefsRead = PostTask.runSynchronously(TaskTraits.UI_DEFAULT, () -> { @@ -188,10 +186,6 @@ public class ChromeBackupAgentImpl extends ChromeBackupAgent.Impl { // immediately, so by the time it does Chrome may not be running. if (!initializeBrowser()) return false; @@ -853,7 +848,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupWat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -90,7 +90,6 @@ import org.chromium.chrome.browser.download.DownloadUtils; +@@ -88,7 +88,6 @@ import org.chromium.chrome.browser.download.DownloadUtils; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils; import org.chromium.chrome.browser.feed.FeedSurfaceTracker; @@ -861,7 +856,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; -@@ -140,7 +139,6 @@ import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl; +@@ -138,7 +137,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge; import org.chromium.chrome.browser.suggestions.SuggestionsMetrics; import org.chromium.chrome.browser.survey.ChromeSurveyController; @@ -869,7 +864,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper; import org.chromium.chrome.browser.tab.Tab; -@@ -679,10 +677,6 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -315,9 +311,6 @@ public abstract class ChromeActivity private boolean mRemoveWindowBackgroundDone; protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler; @@ -928,7 +923,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv // The FullscreenVideoPictureInPictureController is initialized lazily https://crbug.com/729738. private FullscreenVideoPictureInPictureController mFullscreenVideoPictureInPictureController; -@@ -1075,60 +1068,6 @@ public abstract class ChromeActivity +@@ -1076,60 +1069,6 @@ public abstract class ChromeActivity return StatusBarColorController.UNDEFINED_STATUS_BAR_COLOR; } @@ -989,7 +984,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv @Override public void onResumeWithNative() { // First, update the activity type in order to have it properly captured in -@@ -1245,14 +1184,6 @@ public abstract class ChromeActivity +@@ -1246,14 +1185,6 @@ public abstract class ChromeActivity if (GSAState.getInstance().isGsaAvailable() && !SysUtils.isLowEndDevice()) { if (mGSAAccountChangeListener != null) mGSAAccountChangeListener.disconnect(); } @@ -1004,7 +999,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv super.onStopWithNative(); } -@@ -1334,11 +1265,6 @@ public abstract class ChromeActivity +@@ -1335,11 +1266,6 @@ public abstract class ChromeActivity .recordUserFontPrefOnStartup(); }); @@ -1016,7 +1011,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv // GSA connection is not needed on low-end devices because Icing is disabled. if (!SysUtils.isLowEndDevice()) { DeferredStartupHandler.getInstance().addDeferredTask(() -> { -@@ -1353,7 +1279,6 @@ public abstract class ChromeActivity +@@ -1354,7 +1280,6 @@ public abstract class ChromeActivity GSAAccountChangeListener.create(AppHooks.get().createGsaHelper()); } mGSAAccountChangeListener.connect(); @@ -1027,20 +1022,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java -@@ -21,7 +21,6 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; - import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.share.crow.CrowButtonDelegate; --import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; - import org.chromium.chrome.browser.suggestions.SuggestionsConfig; - import org.chromium.chrome.browser.tab.EmptyTabObserver; - import org.chromium.chrome.browser.tab.Tab; -@@ -156,8 +155,6 @@ public class FeedActionDelegateImpl implements FeedActionDelegate { +@@ -137,8 +137,6 @@ public class FeedActionDelegateImpl implements FeedActionDelegate { @Override - public void showSignInActivity() { + public void showSyncConsentActivity(@SigninAccessPoint int signinAccessPoint) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEED_SHOW_SIGN_IN_COMMAND)) { - SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( -- mActivityContext, SigninAccessPoint.NTP_CONTENT_SUGGESTIONS); +- mActivityContext, signinAccessPoint); } } @@ -1092,175 +1079,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin } mEditor = new EditorModel(editTitle, mCustomDoneButtonText, footerMessageText, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java -@@ -41,7 +41,6 @@ public class AutofillAssistantPreferenceFragment - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - SettingsUtils.addPreferencesFromResource(this, R.xml.autofill_assistant_preferences); - getActivity().setTitle(R.string.prefs_autofill_assistant_title); -- - PreferenceCategory assistantVoiceSearchCategory = - findPreference(PREF_ASSISTANT_VOICE_SEARCH_CATEGORY); - mAssistantVoiceSearchEnabledPref = -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -25,9 +25,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location; - import org.chromium.chrome.browser.feature_engagement.TrackerFactory; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.sync.SyncService; --import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView; --import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkItem; - import org.chromium.components.bookmarks.BookmarkType; -@@ -46,7 +43,7 @@ import java.util.List; - * BaseAdapter for {@link RecyclerView}. It manages bookmarks to list there. - */ - public class BookmarkItemsAdapter extends DragReorderableListAdapter -- implements BookmarkUIObserver, SyncService.SyncStateChangedListener { -+ implements BookmarkUIObserver { - private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500; - private static final String EMPTY_QUERY = null; - -@@ -62,14 +59,12 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter mTopLevelFolders = new ArrayList<>(); - private final Profile mProfile; -- private final SyncService mSyncService; - - // There can only be one promo header at a time. This takes on one of the values: - // ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.SYNC_PROMO, or ViewType.INVALID. - @ViewType - private int mPromoHeaderType = ViewType.INVALID; - private BookmarkDelegate mDelegate; -- private BookmarkPromoHeader mPromoHeaderManager; - private ViewFactory mViewFactory; - private String mSearchText; - private BookmarkId mCurrentFolder; -@@ -129,8 +124,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter options = getDialogOptions(); mItems = new Item[options.size()]; for (int i = 0; i < options.size(); i++) { -@@ -605,11 +593,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -615,11 +604,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat assert spinnerOptionIndex != -1; spinner.setOptions(spinnerOptions, spinnerOptionIndex); spinner.setOnPreferenceChangeListener(this); @@ -1565,7 +1387,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } @Override -@@ -658,7 +641,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -668,7 +652,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat for (Item item : mItems) { item.destroy(); } @@ -1573,7 +1395,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } // We either show the dialog, or modify the current one to display our messages. This avoids -@@ -684,27 +666,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -694,27 +677,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat private void updateSignOutOfChromeText() { ClickableSpansTextMessagePreference signOutOfChromeTextPref = findPreference(ClearBrowsingDataFragment.PREF_SIGN_OUT_OF_CHROME_TEXT); @@ -1601,7 +1423,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -769,43 +731,4 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -779,43 +742,4 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat ignoredDomains, ignoredDomainReasons); } } @@ -1665,13 +1487,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C import org.chromium.components.sync.ModelType; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; -@@ -89,27 +85,11 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -89,28 +85,11 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { new TabDelegate(false /* incognito */) .launchUrl(UrlConstants.MY_ACTIVITY_URL_IN_CBD, TabLaunchType.FROM_CHROME_UI); }); - -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); +- IdentityManager identityManager = +- IdentityServicesProvider.get().getIdentityManager(getProfile()); - if (identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN)) { - // Update the Clear Browsing History text based on the sign-in/sync state and whether - // the link to MyActivity is displayed inline or at the bottom of the page. @@ -1688,12 +1510,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { super.onCreatePreferences(savedInstanceState, rootKey); -- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( -- Profile.getLastUsedRegularProfile()); +- Profile profile = getProfile(); +- IdentityManager identityManager = +- IdentityServicesProvider.get().getIdentityManager(profile); ClickableSpansTextMessagePreference googleDataTextPref = (ClickableSpansTextMessagePreference) findPreference( ClearBrowsingDataFragment.PREF_GOOGLE_DATA_TEXT); -@@ -120,8 +100,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -121,8 +100,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { boolean isDefaultSearchEngineGoogle = templateUrlService.isDefaultSearchEngineGoogle(); // Google-related links to delete search history and other browsing activity. @@ -1703,7 +1526,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C // One of two cases: // 1. The default search engine is disabled. // 2. The user is not signed into Chrome. -@@ -224,9 +203,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -225,9 +203,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { } private boolean isHistorySyncEnabled() { @@ -1868,17 +1691,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust mConnection.showSignInToastIfNecessary(mSession, getIntent()); new CustomTabTrustedCdnPublisherUrlVisibility( -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java -@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.metrics.SimpleStartupForegroundSessionDetecto - import org.chromium.chrome.browser.metrics.UmaUtils; - import org.chromium.chrome.browser.policy.PolicyServiceFactory; - import org.chromium.chrome.browser.profiles.ProfileManagerUtils; --import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial; - import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; - import org.chromium.components.policy.PolicyService; - import org.chromium.components.signin.AccountManagerFacade; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java @@ -1893,22 +1705,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Lightw } }; mFirstRunFlowSequencer.start(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java -@@ -126,12 +126,6 @@ public class TosAndUmaFirstRunFragmentWithEnterpriseSupport - } - } - -- @Override -- protected boolean canShowUmaCheckBox() { -- return super.canShowUmaCheckBox() && mSkipTosDialogPolicyListener.get() != null -- && !mSkipTosDialogPolicyListener.get(); -- } -- - @Override - public void onShowLoadingUIComplete() { - mLoadingSpinnerContainer.setVisibility(View.VISIBLE); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java @@ -1978,7 +1774,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -26,10 +26,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; +@@ -25,10 +25,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.MainSettings; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; @@ -1989,7 +1785,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I import org.chromium.chrome.browser.signin.services.SigninManager; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tasks.ReturnToChromeUtil; -@@ -45,9 +42,6 @@ import org.chromium.components.feature_engagement.EventConstants; +@@ -44,34 +41,21 @@ import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.feature_engagement.FeatureConstants; import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.signin.base.CoreAccountInfo; @@ -1998,77 +1794,73 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I -import org.chromium.components.signin.identitymanager.PrimaryAccountChangeEvent; import org.chromium.components.signin.metrics.SigninAccessPoint; - import java.lang.annotation.Retention; -@@ -57,8 +51,7 @@ import java.lang.annotation.RetentionPolicy; + /** * Handles displaying IdentityDisc on toolbar depending on several conditions * (user sign-in state, whether NTP is shown) */ -public class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Observer, - IdentityManager.Observer, ButtonDataProvider { +public class IdentityDiscController implements NativeInitObserver, ButtonDataProvider { - // Visual state of Identity Disc. - @Retention(RetentionPolicy.SOURCE) - @IntDef({IdentityDiscState.NONE, IdentityDiscState.SMALL, IdentityDiscState.LARGE}) -@@ -80,15 +73,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + // Context is used for fetching resources and launching preferences page. + private final Context mContext; + private ActivityLifecycleDispatcher mActivityLifecycleDispatcher; private final ObservableSupplier mProfileSupplier; private final Callback mProfileSupplierObserver = this::setProfile; - // We observe IdentityManager to receive primary account state change notifications. - private IdentityManager mIdentityManager; - -- // ProfileDataCache facilitates retrieving profile picture. Separate objects are maintained -- // for different visual states to cache profile pictures of different size. -- // mProfileDataCache[IdentityDiscState.NONE] should always be null since in this state -- // Identity Disc is not visible. -- private ProfileDataCache mProfileDataCache[] = new ProfileDataCache[IdentityDiscState.MAX]; +- // ProfileDataCache facilitates retrieving profile picture. +- private ProfileDataCache mProfileDataCache; - - // Identity disc visibility state. - @IdentityDiscState - private int mState = IdentityDiscState.NONE; -@@ -216,16 +200,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +- // Whether the identity disc is visible. +- private boolean mIsIdentityDiscShown; +- +- private ButtonDataImpl mButtonData; +- private ObserverList mObservers = new ObserverList<>(); ++ // Identity disc visibility state. ++ @IdentityDiscState + private boolean mNativeIsInitialized; + + /** +@@ -193,22 +177,14 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * IdentityDiscController for profile data updates. */ - private void ensureProfileDataCache(@IdentityDiscState int state) { -- if (state == IdentityDiscState.NONE || mProfileDataCache[state] != null) return; + private void ensureProfileDataCache(boolean isIdentityDiscShown) { +- if (!isIdentityDiscShown || mProfileDataCache != null) return; - -- @DimenRes -- int dimension_id = -- (state == IdentityDiscState.SMALL) ? R.dimen.toolbar_identity_disc_size -- : R.dimen.toolbar_identity_disc_size_duet; -- ProfileDataCache profileDataCache = -- ProfileDataCache.createWithoutBadge(mContext, dimension_id); -- profileDataCache.addObserver(this); -- mProfileDataCache[state] = profileDataCache; +- mProfileDataCache = +- ProfileDataCache.createWithoutBadge(mContext, R.dimen.toolbar_identity_disc_size); +- mProfileDataCache.addObserver(this); } /** -@@ -233,10 +207,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + * Returns Profile picture Drawable. The size of the image corresponds to current visual state. */ private Drawable getProfileImage(@Nullable String email) { - assert mState != IdentityDiscState.NONE; +- assert mIsIdentityDiscShown; - if (shouldUseSignedOutAvatar(email)) { -- return AppCompatResources.getDrawable(mContext, R.drawable.account_circle_full); +- return AppCompatResources.getDrawable(mContext, R.drawable.account_circle); - } -- return mProfileDataCache[mState].getProfileDataOrDefault(email).getImage(); +- return mProfileDataCache.getProfileDataOrDefault(email).getImage(); ++ assert mState != IdentityDiscState.NONE; + return null; } /** -@@ -244,13 +215,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -216,11 +192,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * when sign-in state changes. */ private void resetIdentityDiscCache() { -- for (int i = 0; i < IdentityDiscState.MAX; i++) { -- if (mProfileDataCache[i] != null) { -- assert i != IdentityDiscState.NONE; -- mProfileDataCache[i].removeObserver(this); -- mProfileDataCache[i] = null; -- } +- if (mProfileDataCache != null) { +- assert mIsIdentityDiscShown; +- mProfileDataCache.removeObserver(this); +- mProfileDataCache = null; - } } private void notifyObservers(boolean hint) { -@@ -259,47 +223,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -229,47 +200,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa } } @@ -2077,8 +1869,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I - */ - @Override - public void onProfileDataUpdated(String accountEmail) { -- if (mState == IdentityDiscState.NONE) return; -- assert mProfileDataCache[mState] != null; +- if (!mIsIdentityDiscShown) return; +- assert mProfileDataCache != null; - - if (accountEmail.equals(CoreAccountInfo.getEmailFrom(getSignedInAccountInfo()))) { - /** @@ -2095,17 +1887,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I - /** - * Implements {@link IdentityManager.Observer}. - * -- * IdentityDisc should be shown as long as the user is signed in. Whether the user is syncing -- * or not should not matter. +- * IdentityDisc should be shown as long as the user is signed in or IDENTITY_STATUS_CONSISTENCY +- * is enabled. Whether the user is syncing or not should not matter. - */ - @Override - public void onPrimaryAccountChanged(PrimaryAccountChangeEvent eventDetails) { - switch (eventDetails.getEventTypeFor(ConsentLevel.SIGNIN)) { - case PrimaryAccountChangeEvent.Type.SET: -- resetIdentityDiscCache(); - notifyObservers(true); - break; - case PrimaryAccountChangeEvent.Type.CLEARED: +- resetIdentityDiscCache(); - notifyObservers(false); - break; - case PrimaryAccountChangeEvent.Type.NONE: @@ -2116,15 +1908,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I /** * Call to tear down dependencies. */ -@@ -310,18 +233,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -280,16 +210,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa mActivityLifecycleDispatcher = null; } -- for (int i = 0; i < IdentityDiscState.MAX; i++) { -- if (mProfileDataCache[i] != null) { -- mProfileDataCache[i].removeObserver(this); -- mProfileDataCache[i] = null; -- } +- if (mProfileDataCache != null) { +- mProfileDataCache.removeObserver(this); +- mProfileDataCache = null; - } - - if (mIdentityManager != null) { @@ -2135,7 +1925,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I if (mNativeIsInitialized) { mProfileSupplier.removeObserver(mProfileSupplierObserver); } -@@ -344,9 +255,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -312,9 +232,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * @return account info for the current profile. Returns null for OTR profile. */ private CoreAccountInfo getSignedInAccountInfo() { @@ -2146,7 +1936,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } /** -@@ -354,17 +263,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -322,17 +240,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * mIdentityManager is updated with the profile, as set to null if profile is off-the-record. */ private void setProfile(Profile profile) { @@ -2164,12 +1954,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } private String getContentDescription(@Nullable String email) { -@@ -376,31 +274,15 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -344,16 +251,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa return mContext.getString(R.string.accessibility_toolbar_btn_signed_out_identity_disc); } -- DisplayableProfileData profileData = -- mProfileDataCache[mState].getProfileDataOrDefault(email); +- DisplayableProfileData profileData = mProfileDataCache.getProfileDataOrDefault(email); - String userName = profileData.getFullName(); - if (profileData.hasDisplayableEmailAddress()) { - return mContext.getString( @@ -2182,7 +1971,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I + R.string.accessibility_toolbar_btn_identity_disc_with_name, ""); } - private void onClick() { + @VisibleForTesting +@@ -363,15 +262,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + } recordIdentityDiscUsed(); - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( @@ -2198,7 +1989,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I + settingsLauncher.launchSettingsActivity(mContext, MainSettings.class); } - private static boolean shouldUseSignedOutAvatar(@Nullable String email) { + @VisibleForTesting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java @@ -2210,7 +2001,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow import org.chromium.chrome.browser.webapps.ChromeWebApkHost; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; import org.chromium.components.crash.browser.ChildProcessCrashObserver; -@@ -356,7 +355,6 @@ public class ChromeBrowserInitializer { +@@ -355,7 +354,6 @@ public class ChromeBrowserInitializer { getBrowserStartupController().startBrowserProcessesSync( LibraryProcessType.PROCESS_BROWSER, /*singleProcess=*/false, /*startGpuProcess=*/startGpuProcess); @@ -2238,8 +2029,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.components.version_info.Channel; import org.chromium.components.version_info.VersionConstants; import org.chromium.components.version_info.VersionInfo; -@@ -180,11 +177,6 @@ public class ProcessInitializationHandler { - +@@ -177,11 +174,6 @@ public class ProcessInitializationHandler { + protected void handlePreNativeInitialization() { Context application = ContextUtils.getApplicationContext(); - // Initialize the AccountManagerFacade with the correct AccountManagerDelegate. Must be done @@ -2250,7 +2041,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni setProcessStateSummaryForAnrs(false); } -@@ -389,7 +381,6 @@ public class ProcessInitializationHandler { +@@ -386,7 +378,6 @@ public class ProcessInitializationHandler { deferredStartupHandler.addDeferredTask(new Runnable() { @Override public void run() { @@ -2261,10 +2052,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -14,24 +14,11 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager; - import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; - import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; - import org.chromium.chrome.browser.profiles.Profile; +@@ -15,24 +15,11 @@ import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSession; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionTab; -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; -import org.chromium.chrome.browser.signin.services.ProfileDataCache; @@ -2286,7 +2077,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import org.chromium.url.GURL; import java.util.HashMap; -@@ -41,8 +28,7 @@ import java.util.Map; +@@ -42,8 +29,7 @@ import java.util.Map; /** * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter. */ @@ -2296,7 +2087,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM /** * Implement this to receive updates when the page contents change. */ -@@ -63,21 +49,15 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -64,21 +50,15 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, private final Runnable mShowHistoryManager; private TabModel mTabModel; @@ -2318,7 +2109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM /** * Maps Session IDs to whether that entry was restored split by entry type. These are used to * record historgrams on {@link #destroy()} to measure restore ratio. Cached Session IDs are -@@ -108,12 +88,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -109,12 +89,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null ? sRecentlyClosedTabManagerForTests : new RecentlyClosedBridge(profile, tabModelSelector); @@ -2331,7 +2122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mRecentlyClosedTabManager.setEntriesUpdatedRunnable(this::updateRecentlyClosedEntries); updateRecentlyClosedEntries(); -@@ -122,12 +96,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -123,12 +97,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, updateForeignSessions(); mForeignSessionHelper.triggerSessionSync(); @@ -2344,7 +2135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM SessionsInvalidationManager.get(mProfile).onRecentTabsPageOpened(); } -@@ -165,14 +133,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -166,14 +134,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, recordEntries("Group", mGroupSessionIdsRestored); recordEntries("Bulk", mBulkSessionIdsRestored); @@ -2359,7 +2150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mFaviconHelper.destroy(); mFaviconHelper = null; -@@ -391,97 +351,13 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -392,97 +352,13 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, mRecentlyClosedTabManager.clearRecentlyClosedEntries(); } @@ -2458,7 +2249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM } private void onUpdateDone() { -@@ -491,7 +367,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, +@@ -492,7 +368,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, } private void update() { @@ -2470,9 +2261,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsR --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java @@ -29,11 +29,9 @@ import org.chromium.chrome.R; - import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; - import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; - import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionWindow; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSession; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionTab; + import org.chromium.chrome.browser.recent_tabs.ForeignSessionHelper.ForeignSessionWindow; -import org.chromium.chrome.browser.signin.LegacySyncPromoView; import org.chromium.chrome.browser.ui.favicon.FaviconHelper.DefaultFaviconHelper; import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; @@ -2519,7 +2310,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsR return convertView; } } -@@ -912,22 +899,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { +@@ -911,22 +898,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { addGroup(new ForeignSessionGroup(session)); } @@ -2601,21 +2392,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -31,9 +30,8 @@ public class PasswordManagerLauncher { - public static void showPasswordSettings(Activity activity, +@@ -32,9 +31,8 @@ public class PasswordManagerLauncher { @ManagePasswordsReferrer int referrer, - ObservableSupplier modalDialogManagerSupplier) { + ObservableSupplier modalDialogManagerSupplier, + boolean managePasskeys) { - SyncService syncService = SyncService.get(); PasswordManagerHelper.showPasswordSettings(activity, referrer, new SettingsLauncherImpl(), -- syncService, modalDialogManagerSupplier); -+ modalDialogManagerSupplier); +- syncService, modalDialogManagerSupplier, managePasskeys); ++ modalDialogManagerSupplier, managePasskeys); } @CalledByNative diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -40,8 +40,6 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -41,8 +41,6 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; @@ -2624,16 +2415,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage import org.chromium.components.browser_ui.settings.ChromeBasePreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SearchUtils; -@@ -63,7 +61,7 @@ import java.util.Locale; +@@ -64,7 +62,7 @@ import java.util.Locale; */ public class PasswordSettings extends PreferenceFragmentCompat implements PasswordManagerHandler.PasswordListObserver, -- Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener { -+ Preference.OnPreferenceClickListener { +- Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener, ++ Preference.OnPreferenceClickListener, + FragmentHelpAndFeedbackLauncher { @IntDef({TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN, TrustedVaultBannerState.OPTED_IN}) - @Retention(RetentionPolicy.SOURCE) -@@ -156,10 +154,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -159,10 +157,6 @@ public class PasswordSettings extends PreferenceFragmentCompat setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getStyledContext())); PasswordManagerHandlerProvider.getInstance().addObserver(this); @@ -2644,7 +2435,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage setHasOptionsMenu(true); // Password Export might be optional but Search is always present. mManagePasswordsReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState); -@@ -465,9 +459,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -467,9 +461,6 @@ public class PasswordSettings extends PreferenceFragmentCompat public void onDestroy() { super.onDestroy(); @@ -2654,7 +2445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage // The component should only be destroyed when the activity has been closed by the user // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed // by the system. -@@ -585,34 +576,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -587,34 +578,6 @@ public class PasswordSettings extends PreferenceFragmentCompat } private void displayManageAccountLink() { @@ -2689,7 +2480,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage } private Context getStyledContext() { -@@ -623,43 +586,11 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -625,43 +588,11 @@ public class PasswordSettings extends PreferenceFragmentCompat return UserPrefs.get(Profile.getLastUsedRegularProfile()); } @@ -2744,7 +2535,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/Pay import org.chromium.components.autofill.EditableOption; import org.chromium.components.autofill.prefeditor.EditorObserverForTest; import org.chromium.components.browser_ui.widget.FadingEdgeScrollView; -@@ -1136,16 +1135,7 @@ public class PaymentRequestUI implements DimmingDialog.OnDismissListener, View.O +@@ -1123,16 +1122,7 @@ public class PaymentRequestUI implements DimmingDialog.OnDismissListener, View.O */ @Nullable private String getSignedInUsersEmail() { @@ -2765,7 +2556,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/Pay diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -32,9 +32,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra +@@ -33,9 +33,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; @@ -2775,7 +2566,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; -@@ -57,7 +54,6 @@ public class PrivacySettings +@@ -58,7 +55,6 @@ public class PrivacySettings extends PreferenceFragmentCompat private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -2783,7 +2574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -142,9 +138,6 @@ public class PrivacySettings +@@ -144,9 +140,6 @@ public class PrivacySettings extends PreferenceFragmentCompat Preference secureDnsPref = findPreference(PREF_SECURE_DNS); secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); @@ -2793,7 +2584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (thirdPartyCookies != null) { thirdPartyCookies.getExtras().putString( -@@ -156,30 +149,6 @@ public class PrivacySettings +@@ -158,30 +151,6 @@ public class PrivacySettings extends PreferenceFragmentCompat updatePreferences(); } @@ -2974,7 +2765,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe private void updateSearchEnginePreference() { TemplateUrlService templateUrlService = TemplateUrlServiceFactory.getForProfile(mProfile); if (!templateUrlService.isLoaded()) { -@@ -346,8 +274,7 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -347,8 +275,7 @@ public class MainSettings extends PreferenceFragmentCompat } private boolean shouldShowNewLabelForPasswordsPreference() { @@ -2984,7 +2775,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } // TODO(crbug.com/1217070): remove this method once UPM feature is rolled out. -@@ -378,19 +305,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -379,19 +306,6 @@ public class MainSettings extends PreferenceFragmentCompat pref.setSummary(isOn ? R.string.text_on : R.string.text_off); } @@ -3004,7 +2795,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe // TemplateUrlService.LoadListener implementation. @Override public void onTemplateUrlServiceLoaded() { -@@ -398,12 +312,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -399,12 +313,6 @@ public class MainSettings extends PreferenceFragmentCompat updateSearchEnginePreference(); } @@ -3020,7 +2811,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -59,11 +59,7 @@ import org.chromium.chrome.browser.privacy_sandbox.AdMeasurementFragment; +@@ -60,11 +60,7 @@ import org.chromium.chrome.browser.privacy_sandbox.AdMeasurementFragment; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; @@ -3032,9 +2823,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; -@@ -432,11 +428,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -430,11 +426,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity fragmentHelpAndFeedbackLauncher.setHelpAndFeedbackLauncher( - HelpAndFeedbackLauncherImpl.getInstance()); + HelpAndFeedbackLauncherImpl.getForProfile(mProfile)); } - if (fragment instanceof SafetyCheckSettingsFragment) { - SafetyCheckCoordinator.create((SafetyCheckSettingsFragment) fragment, @@ -3043,29 +2834,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin - } if (fragment instanceof PasswordCheckFragmentView) { PasswordCheckComponentUiFactory.create((PasswordCheckFragmentView) fragment, - HelpAndFeedbackLauncherImpl.getInstance(), mSettingsLauncher, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl.java -@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.language.AppLocaleUtils; - import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabLaunchType; - import org.chromium.chrome.browser.tabmodel.document.TabDelegate; -@@ -220,9 +219,7 @@ public class CrowButtonDelegateImpl implements CrowButtonDelegate { - - private boolean areMetricsEnabled() { - // Require UMA and "Make searches and browsing better" to be enabled. -- return (PrivacyPreferencesManagerImpl.getInstance().isUsageAndCrashReportingPermitted() -- && UnifiedConsentServiceBridge.isUrlKeyedAnonymizedDataCollectionEnabled( -- Profile.getLastUsedRegularProfile())); -+ return false; - } - - @Override + HelpAndFeedbackLauncherImpl.getForProfile(mProfile), mSettingsLauncher, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java @@ -3090,23 +2859,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -87,7 +87,6 @@ import org.chromium.chrome.browser.share.ShareDelegate; - import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl; - import org.chromium.chrome.browser.share.crow.CrowIphController; +@@ -85,7 +85,6 @@ import org.chromium.chrome.browser.read_later.ReadLaterIPHController; + import org.chromium.chrome.browser.settings.SettingsLauncherImpl; + import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController; -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator; import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService; import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory; -@@ -108,7 +107,6 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; - import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler; +@@ -105,7 +104,6 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker; + import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -import org.chromium.chrome.browser.ui.signin.FullScreenSyncPromoUtil; import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider; - import org.chromium.chrome.browser.ui.tablet.emptybackground.EmptyBackgroundViewWrapper; import org.chromium.chrome.browser.webapps.AddToHomescreenIPHController; -@@ -970,23 +968,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + import org.chromium.chrome.browser.webapps.AddToHomescreenMostVisitedTileClickObserver; +@@ -945,23 +943,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } } @@ -3133,7 +2902,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2023,7 +2023,6 @@ static_library("browser") { +@@ -1979,7 +1979,6 @@ static_library("browser") { "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/sharing/proto", @@ -3141,7 +2910,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/storage_access_api:permissions", "//chrome/browser/thumbnail", "//chrome/browser/top_level_storage_access_api:permissions", -@@ -2839,8 +2838,6 @@ static_library("browser") { +@@ -2809,8 +2808,6 @@ static_library("browser") { "android/signin/fre_mobile_identity_consistency_field_trial.h", "android/signin/signin_bridge.cc", "android/signin/signin_bridge.h", @@ -3150,7 +2919,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "android/signin/signin_metrics_utils.cc", "android/signin/unified_consent_service_bridge.cc", "android/signin/web_signin_bridge.cc", -@@ -3215,8 +3212,6 @@ static_library("browser") { +@@ -3168,8 +3165,6 @@ static_library("browser") { "sharing/sms/sms_fetch_request_handler.h", "shell_integration_android.cc", "signin/identity_services_provider_android.cc", @@ -3159,7 +2928,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "ssl/chrome_security_state_client.cc", "ssl/chrome_security_state_client.h", "ssl/chrome_security_state_model_delegate.cc", -@@ -4520,10 +4515,6 @@ static_library("browser") { +@@ -4489,10 +4484,6 @@ static_library("browser") { "profiles/profile_statistics_factory.h", "signin/force_signin_verifier.cc", "signin/force_signin_verifier.h", @@ -3173,7 +2942,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc b/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc --- a/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc +++ b/chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.cc -@@ -5,24 +5,16 @@ +@@ -5,25 +5,16 @@ #include "chrome/browser/android/signin/fre_mobile_identity_consistency_field_trial.h" #include "base/android/jni_android.h" #include "base/android/jni_string.h" @@ -3181,10 +2950,11 @@ diff --git a/chrome/browser/android/signin/fre_mobile_identity_consistency_field namespace fre_mobile_identity_consistency_field_trial { - std::string GetFREFieldTrialGroup() { + std::string GetFREFieldTrialGroupName() { - JNIEnv* env = base::android::AttachCurrentThread(); - base::android::ScopedJavaLocalRef group = -- Java_FREMobileIdentityConsistencyFieldTrial_getFirstRunTrialGroup(env); +- Java_FREMobileIdentityConsistencyFieldTrial_getFirstRunVariationsTrialGroupName( +- env); - return base::android::ConvertJavaStringToUTF8(env, group); + return std::string(); } @@ -3203,10 +2973,10 @@ diff --git a/chrome/browser/android/signin/fre_mobile_identity_consistency_field diff --git a/chrome/browser/commerce/android/BUILD.gn b/chrome/browser/commerce/android/BUILD.gn --- a/chrome/browser/commerce/android/BUILD.gn +++ b/chrome/browser/commerce/android/BUILD.gn -@@ -23,8 +23,6 @@ android_library("java") { - "//chrome/browser/notifications:java", +@@ -24,8 +24,6 @@ android_library("java") { "//chrome/browser/preferences:java", "//chrome/browser/profiles/android:java", + "//chrome/browser/settings:java", - "//chrome/browser/signin/services/android:java", - "//chrome/browser/sync/android:java", "//components/browser_ui/notifications/android:java", @@ -3215,10 +2985,10 @@ diff --git a/chrome/browser/commerce/android/BUILD.gn b/chrome/browser/commerce/ diff --git a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java --- a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java +++ b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationPreferenceFragment.java -@@ -20,14 +20,12 @@ import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitio - import org.chromium.chrome.browser.preferences.Pref; +@@ -21,14 +21,12 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.settings.ProfileDependentSetting; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; import org.chromium.components.browser_ui.notifications.NotificationManagerProxy; import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl; @@ -3230,12 +3000,12 @@ diff --git a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browse import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; -@@ -64,12 +62,8 @@ public class PriceNotificationPreferenceFragment extends PreferenceFragmentCompa +@@ -69,12 +67,8 @@ public class PriceNotificationPreferenceFragment mEmailNotificationsSwitch = (ChromeSwitchPreference) findPreference(PREF_EMAIL_NOTIFICATIONS); mEmailNotificationsSwitch.setOnPreferenceChangeListener(this::onPreferenceChange); - String email = IdentityServicesProvider.get() -- .getIdentityManager(Profile.getLastUsedRegularProfile()) +- .getIdentityManager(mProfile) - .getPrimaryAccountInfo(ConsentLevel.SYNC) - .getEmail(); mEmailNotificationsSwitch.setSummary( @@ -3294,7 +3064,7 @@ diff --git a/chrome/browser/commerce/subscriptions/android/java_sources.gni b/ch diff --git a/chrome/browser/feed/android/BUILD.gn b/chrome/browser/feed/android/BUILD.gn --- a/chrome/browser/feed/android/BUILD.gn +++ b/chrome/browser/feed/android/BUILD.gn -@@ -105,7 +105,6 @@ android_library("java") { +@@ -106,7 +106,6 @@ android_library("java") { "//chrome/browser/privacy:java", "//chrome/browser/profiles/android:java", "//chrome/browser/share:java", @@ -3330,29 +3100,29 @@ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/fe diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/android/BUILD.gn --- a/chrome/browser/feedback/android/BUILD.gn +++ b/chrome/browser/feedback/android/BUILD.gn -@@ -57,7 +57,6 @@ android_library("java") { +@@ -82,7 +82,6 @@ android_library("feedback_collector_java") { + "//base:base_java", "//build/android:build_java", - "//chrome/browser/flags:java", "//chrome/browser/profiles/android:java", - "//chrome/browser/signin/services/android:java", "//components/browser_ui/util/android:java", "//components/signin/public/android:java", - "//components/variations/android:variations_java", + "//third_party/android_deps:guava_android_java", diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java --- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java +++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java -@@ -20,10 +20,7 @@ import org.chromium.base.ThreadUtils; - import org.chromium.base.metrics.RecordHistogram; +@@ -22,10 +22,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; import org.chromium.components.signin.base.CoreAccountInfo; -import org.chromium.components.signin.identitymanager.ConsentLevel; -import org.chromium.components.signin.identitymanager.IdentityManager; - import org.chromium.content_public.browser.UiThreadTaskTraits; import java.util.HashMap; -@@ -67,12 +64,6 @@ public abstract class FeedbackCollector implements Runnable { + import java.util.List; +@@ -68,12 +65,6 @@ public abstract class FeedbackCollector implements Runnable { // account. mSynchronousSources = buildSynchronousFeedbackSources(activity, initParams); mAsynchronousSources = buildAsynchronousFeedbackSources(initParams); @@ -3471,7 +3241,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -20,9 +20,6 @@ import android.os.SystemClock; +@@ -21,9 +21,6 @@ import android.os.SystemClock; import androidx.annotation.IntDef; import androidx.annotation.VisibleForTesting; @@ -3481,7 +3251,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.chromium.base.Callback; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.supplier.ObservableSupplier; -@@ -33,7 +30,6 @@ import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.Cr +@@ -34,7 +31,6 @@ import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.Cr import org.chromium.chrome.browser.password_manager.PasswordCheckupClientHelper.PasswordCheckBackendException; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; @@ -3489,13 +3259,14 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.prefs.PrefService; import org.chromium.components.signin.base.CoreAccountInfo; -@@ -149,19 +145,8 @@ public class PasswordManagerHelper { - * @param context used to show the UI to manage passwords. +@@ -147,20 +143,9 @@ public class PasswordManagerHelper { + * attempt to launch the credential manager even without syncing enabled. */ public static void showPasswordSettings(Context context, @ManagePasswordsReferrer int referrer, - SettingsLauncher settingsLauncher, SyncService syncService, + SettingsLauncher settingsLauncher, - ObservableSupplier modalDialogManagerSupplier) { + ObservableSupplier modalDialogManagerSupplier, + boolean managePasskeys) { - RecordHistogram.recordEnumeratedHistogram("PasswordManager.ManagePasswordsReferrer", - referrer, ManagePasswordsReferrer.MAX_VALUE + 1); - @@ -3507,10 +3278,10 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom - return; - } - - Bundle fragmentArgs = new Bundle(); - fragmentArgs.putInt(MANAGE_PASSWORDS_REFERRER, referrer); - context.startActivity(settingsLauncher.createSettingsActivityIntent( -@@ -182,13 +167,7 @@ public class PasswordManagerHelper { + if (managePasskeys && canUseAccountSettings()) { + // Passkey management has been selected but UPM is not available, possibly because + // password sync is not turned on. Attempt to use an AccountSettings intent to show +@@ -204,13 +189,7 @@ public class PasswordManagerHelper { * @return True if Unified Password Manager can be used, false otherwise. */ public static boolean canUseUpm() { @@ -3525,7 +3296,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -201,19 +180,7 @@ public class PasswordManagerHelper { +@@ -240,19 +219,7 @@ public class PasswordManagerHelper { * loading dialog. */ public static void showPasswordCheckup(Context context, @PasswordCheckReferrer int referrer, @@ -3545,7 +3316,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -293,51 +260,6 @@ public class PasswordManagerHelper { +@@ -332,51 +299,6 @@ public class PasswordManagerHelper { }); } @@ -3597,7 +3368,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom public static boolean usesUnifiedPasswordManagerUI() { if (!ChromeFeatureList.isEnabled(UNIFIED_PASSWORD_MANAGER_ANDROID)) return false; @UpmExperimentVariation -@@ -378,53 +300,12 @@ public class PasswordManagerHelper { +@@ -417,52 +339,12 @@ public class PasswordManagerHelper { } public static void launchGmsUpdate(Context context) { @@ -3624,6 +3395,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom + LoadingModalDialogCoordinator loadingDialogCoordinator, ObservableSupplier modalDialogManagerSupplier, Context context) { - assert canUseUpm(); +- assert syncService != null; - - CredentialManagerLauncher credentialManagerLauncher; - try { @@ -3645,14 +3417,12 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom - intent, startTimeMs, true, loadingDialogCoordinator), - (exception) -> { - PasswordManagerHelper.recordFailureMetrics(exception, true); -- recordLoadingDialogMetrics(LOADING_DIALOG_CREDENTIAL_MANAGER_HISTOGRAM, -- loadingDialogCoordinator.getState()); - loadingDialogCoordinator.dismiss(); - }); } @VisibleForTesting -@@ -482,24 +363,6 @@ public class PasswordManagerHelper { +@@ -517,24 +399,6 @@ public class PasswordManagerHelper { // API call level. RecordHistogram.recordEnumeratedHistogram(kGetIntentErrorHistogram, CredentialManagerError.API_ERROR, CredentialManagerError.COUNT); @@ -3886,13 +3656,12 @@ diff --git a/chrome/browser/privacy_guide/android/BUILD.gn b/chrome/browser/priv diff --git a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml --- a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml +++ b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_msbb_step.xml -@@ -28,14 +28,6 @@ found in the LICENSE file. +@@ -29,13 +29,6 @@ found in the LICENSE file. android:src="@drawable/privacy_guide_msbb_image" android:importantForAccessibility="no" /> -

      Il(;TwwL^Xu8LSJ*e=woiBz;za3YUHqlQIcHWk_DB(yNbR0s4dG7ODx4{ +zO(&H9b7g{ClNRu2IjI=VIPL=2^GNI*)iv(NhY?C6TAX#VIp^{ug1gU$_Gs9MFYn5n +zPW46H>~}vA&oMVqxB(YtS-WU2o0-me>9iSzQc=j#!XeATrK`6n=5B+vu0RtW+1*@$ +zrXl>rvn|}2_mMkXpo1iF@;;Tr_z`e8ZF>aCgLY_ib>Olwqyy=b_XD64dq^H8{5ITu +z1()STsbhKC>AsLwm2&aWy>g8RY-t28j})qBg5i?BmRUK^h9|Xf%=yx*dm^nqR@T-c +zF?Kb3B4{Sk!I(E>-qF`8loC#D4(k=;5z_iH!n{FWQrCl#!5wO^6Lh(g +zGp8|d%;O-JzDjM>mHmE>TvJi)gViWQ$u%#9*en6A&g27v;RA%>KKF)vNLz@+0w1w0 +zdeFmw_%l};@cw(cs1lwN;RoZgFUTsD@ALa1!R@9f`>go_;EXVK_e?mxz|JuGne^-xJuo +zZajt{A{w=dQ8`nf3={v;F+cI(;El+vam~s|0y?1ap=)re(1B9f&U`3c&O?l`HYUV( +z+1fOkUMfOkaGfNw@qMdMv4)p}2}#q?K}#vbK@*yy3~A~Vy9OS=R-*q0_g7H1e5~~a +zaP9vl)^45J=g()AP^DcjFD47MuY^OvE0`I4x +z-QIGnu0AT`LQEaNCOV9d*nkgZf_oPdqvV#>ylT@%_VmKmzx`k@qB&%aewk9UcgEJ| +zp|zjjn|HmA%Rb2d;jr_Gc=o{QyoD*a9k6lo6%->n3geD~`^iPZIZkXTgFQ)irLs^= +z5Cn;$vCz?XB}_;u+z$zeMx1pQ;^R>+#$I^gHhPz)w)ymlwFT}#*rcdorGfZ7#u+#G +zEKonw_;?FTF5#rK+pw(_2sBuXg>cc3T9r(?CemsEJ-h(65r<@W6-&#;Bku7fNQrhp +zL~0hwd?;&1D1>9GF7_#bv7TYH9;r^eK*SY{bVW9 +zxC$j!1m^~cK6oqa!>xid_%MaH7$4X=Ocah(65r#vYl;WPL>uTaj8{mIdxwtO*13gQ +zxrb8|JchP4ksPB2Qv;BorbXXaG_QL^M}sP4=@zI%SlW;jPV7B=B(Vq=#Z6Ar?oNjG +z)ZI>|1Skppk1Mx@fGJR<+YhcXF)a>BPTpwOwL9F9I}8$Pee-yf!f7I?t`-WgVm6;x +z-+V+&z_vVBt^{z{W=(uQ7&MSYW)rKO`)d3HXSQ*7KgD_=QD?-g*dH6#4WsW>YUD +zT201Jrc{%^v)Ku8iu33jAj{mME->9eSQscjy$@p}7jgxcA +zC(p%XelvN#o9=J&JfA!-Pm?Q89`BR1Vu#)$coI4;{+{HI?EJMIN6bB1IzZ$v?$BDK +zX6kJrZ#>Y#(%M>sFHLw;z=4M?|=jT%|#fW(ZDl)eDZ=b7UX-*+;gGI3QCd +zRG(rygOhvvAG}l!Q#iNR<;nc7&f9{TzD`iLWf6Q0Kj-SL8+9Z1|H4i}3D;SGJ* +zo=e#E-INPwlckd-QZ=Z23ONi!+9xPsqsBX|ZFzK`DvL?j@o5)3%4|Gv_NOb9Cpj|5 +z@5AHG`hr(G}zWZm&?!8YBX#&bkuLqTuV1*NH!t>J&9&%YZHPam{Gy&hQg+Jm$ +z?@8Mr1>a#6!J{u{3^$)EaKdHRNmy}8t9`9A>^@G14Bib05+RBeqB4R-iNmPhr9>yI +zmXu0o?SZ-hwa{%J_KeiGiN6bnN4k){_X!PLlN85S_)3{W#re@xCuG`?R*aCbUE&Lt +zV0o+&pNgPG`+iozvWJ4a54kE@hd1mwL5#|&5U{`cRW|wvxBH+C2kOV5g{+5Lv|d5K +z?y$^8*+P}xXKcel`+z%FWW+?lT!lK6Fouai6eWkr>#VPjPLw4A-hjJ@F##fj~5*fvK!;0b34&!v@$MhD5DKNbkN! +z!vazDg)}&R&)FXV&ejI$zEl*!_08qbocr3PU>i~veGLju+k{IYl(~T>Plproe39S` +zAGS+ahOc8_IYNxd9eUl~x$1VDU&1JgsEJ1Eoo^|XiP0dy5QSz>0v`6ozog`soje?SZkFsKhDZ&8jB8E!r} +zhW6}$03JoO9wCnAv}<_9mmap?dI__EEIEJan!|^wHI3 +zn$2fjUAky&B^ziW;qkud|4kak=rt0@nffDNsu|51wfXof$i(#jK2(o|^?fK=uvu13 +z_E`6$BQcp-P1fHG7MoPz--U2SCaxvpb57V~ai@1S8qw|>0WJqwJc^3c+kvmPKUW01 +zAg#qW?CYPeHLh7TpKP +z<;a2Fp(AYw^hL=9M;AzbCkjVftl9W;5WW~BJf3`l9B(<$D@ZtQh5lkIWg|ZymGE=j +zatwKhp36f~+1ACK@9#wwPQwxGpTYFmjO!o`&ao_d{X)Cw(c4Bj5NAn!kujXdj8(+`C=c?Z2 +zMHqYY!9CPBHk+V|lTY65hOUb(5_K9Usabnzt3rHS>To^&6P^)y8YZRSGH(J`p*_026+S!&tR)7P5j@1sL)3I%=&3G>w-&j%ckkPvO+IB@3$39JezjF~SMjLc#c}3wrH?i^add8hk}P4Lj9wymxv|lKaWlC8?7j(`qYEj}0@Hz1 +zD~hUb!-Ev?vYph%E>CRq#(@kL13djUyqX+8e)RwNK48YDULjJtyXO$XepPAioADM7 +zt&d*q!6m`T?L&cWI5K*Ehm?*Je(M#WuC`6ueb^Fu>J3C9TNd1B118l3>Quih{xnza +z_eh0Q$D{iQBFak_aS$t2m|oZd2Mac-Hdd;z7kO$>4b0JOSykaRWSgW11mXmZ#PoCe +zv@&1F9FFf^#kL6|VKf$P4UlkBxbp@jvN+fG%)A?!3K@^FWS!7_D(Ip^H9yfsSH`}F +zTZ^*TVy}ixJ}`lCH686*k*1Cw#O_ew<0zd`hX?y?cltM)7ZB6yc>SXBXLuB9F9^on +zocxyR4@Z*ZTcKQ{e+Fp}M?QQ38er3nu7-XfI2`VrE+HBvoSnw~OZ*K*1NE%P!b%`) +zAfaV+d?|a^hlfZ6r;9o1pf6H}U{8cpBBpcLO0K^`>r?N~wT+wMx;Xt=Hj($&4Q|d` +zd<=?jx*X%LA{sz6x&m{=Z9lzDO|yz3*Y!Yv6%2y2;>8LKwV2oX0p2fqei_%{fVe|3dj%|0d~3VRr+&S4Y(BTj7-K{_B*VW&JN`S#ACVbg`>&BUtQ&<)G|O%A1Z|#!&(c!3dT77vOKa;7u~T-+ +z2ZuZ@Tqu6S2?yApIHrvw*I@B$x$Xr2sgFKx0u~`vL2{10{?eu{f2Dx$H+HUG_l~u6 +zr3$6B`>Z+9lnB&89!B85dAG|^c*$w!Op*z)`X)jrj%sonB;x(hi=n$iYgwOdIgAL9 +z!u2;r4tljG2-ejKV6D0bEA+mG(+_by|d4KStm$XM3)C4BTtFT@k~ +z@WLx8$hTILK(HHe_<DBN-)}neouc@P@l|&fcHl#MaC&)4pE$xy +z1>w64sa&q@-0i1f#&hknr`cm}n_~GtyQA=?9b!GOV1tX?e&F_A+E~UU8pXw0*;tOB +z3gMatB_5)YKCu&M<3NwC^uca{ypyC;4oB0ED92h0!U_CQBQswQKU5H5)hMH8M|1dF +zHvXdCnr!RlHx#<%a91yx(4!Zo# +z<*0HH6ZhS8nTaTt=$a1V?>pL-N`%W^bWMSf4^4XCKqtfueT|RWbikbeEOlT~u!*xte2pn9NBRYS~Me+4^Dl1j}<*-TSxuVuJ^? +zPa#FK+WDYt^g1+&w?dlM%{r(oQlQ47_TA0~&V9EcU(C%nE+IkLE`u0Wl;m2BgO(C_ +zfDm-dC~r$pJN6_?)s+l)-f2O6kA%xWggD3Y&X>mK5CP6i5Sa)OA5Nc*M%D#cbLDYI +z0*EW$56;@B%Av%eulPp#lh-U8^LXH(J$qt;@Jv|ySg>-Vh!DXzQ%mjyZ?S?fq2!o* +z4lzfWBzGm6xHrg-*RA@pfLuY&X{8nIrLlQ0mJj*681yS?daD5RrCq +zRNUU&LY$UBTG#6_wk0|EW%{>!NSq_Ky(!VE@TfIct3*H(gxg)`^Fdj=^;EzqTlO99 +z>V?&CvNOgbbacm)pn@D?U+AB(Tx4AvJ0F~1n{**nJOn*EBzIu*FURWP!7dTyl1Q4B +z_AitRKqwuuK)ET3EeC_j$jE|2Hzl8V2LT^xw;m%89y`(X#1>da#P*3$<5Y6qQt8kI +z5lJX88eG3P{Qh_iNe*V;kw77wS4oypW<$Mpl8&-E&~fJW2jVp-y3z>2d2OydgS8pZ +z-=#!*?ZOujD>`P1Y(S{FnXBbHqSys5fUSE=kKnpNTk6*7clr+14lOj2&{uUBWRJej +zw&vcXRT@au0S)SzJad{kmLy#Mk(IqP`q&(Hu56+V%4=71rX?)T^wL4u97K!xL`5}P +z!`yWc{W(O%-6@y8K>Y&uH%oK$_owJnWZew5**Pa5GexurSr8B)Z&>!q5HoIdq)U6? +zj6oK0S+|r_Rdq2e +zLlOyt4Eu-<6E@ZNs#1@;`o@2kOJKxk@7D0<6~UY;dsjWGX%Wk(g}|fbcp&ku(8n_f +zWgbxx2U{mSJ2#lc(;b2CvP@(kW&c-u9JRu&* +z^&POmEVOzgJWo|!aL4wx@^_m&W1;JTuB`G%G4FHKa#T;9px_|3vo?y8@kEi +zDWCu_XVTa99h)E6w$|voPP&+e$A_-WMBdo9cHM~&9o1-I1>gwhP?FSlG6|&=YWJXZYFWXQq!Yb84Er`tfmWokalS{ +zU&CvkhlbF~H#sKcPm#t~0kdFl*LWDr%^)AH~&Haz*+;Ef5-OBJLzj*KY&Ls?L^`W8)5= +z9LvzQRu$$MoEzOt%?;#o$8o?>pmNFx-GCD_J!s;%iEo65fh98ee9In2w&H +zJCP`1v#y4~9S!OX9#q|TIY!*41q`|Hu;nn* +z;rM1te!0%okTCBHwYOhBNR*!B@iKNO8*90@(Zf|P#LoJBMd3S!(NQYcKx5T+6A1I6 +z3b8}0YDO$2v1~@oHn^?%vB}8~#^$j?gtKup{_^>1G&AvtZ1pbc=S>7WmC_}Is +zDMaF-L)=moDr-5QvagdI+O(-89Ab}EVQV*{F-*hFqHWzuL09G` +zl*In+AExE1S4Ch54}>6K->qTK2y@rMX(%MQ7yABQO<|Zm9ZCxJ8Z&5*CD5?i5S4{3 +zNy>~Tq>UUWi$k7Q{})NX1CdDWacd=qin}N#R|1X~cZbAS0XZ{36#$Lt)DDHE_|F_Y +z0!iSue+T4Og-@`P;2Wr7F$J%>fCtQ_F6$C8?C8S5Al0Q>gXUQ_O@c1ri}u{w;}-)8 +zimkcU5Vw8hCYC*JKYd|-OVWFrH7BG6TL}kREH=hTM<1j=WX2e>YAdNaLSF;1cn-4jttFF81*oe?GY6mv`PofeLG{EctR*9OJB>JTfSP0z#t7pCwqBHV=t%DG1Z9h92gFW&~)*j+e(Yn +z&sZqmUDM_Bu`t7tvZx0KDK)G;r_UWk-x-)dVh?81$D(E=)E`S9@+Ojq{@MA=3Qk@W +zUeiW)$1oJocI|*0>Ex4r(5(sBSdNSeME?izv_~Kcmyhv>O^{%N*0!h8jAB>vvFwfGZwQeP$blb +z`t;M_i9^rPPUyE99b>X~n78Mqr#-lu2aY~MQ0eN_ccUa(1=XHA=MUmMYg_7N;Df9i +zbwD8A^mlH*75X6$9wa{9BS9S&nA^i66huPxG27b9oip@4RH8j_I;{Jq%y8Q&{gUj5 +zzApYj+q!PU-~H>OJ`J+XX78H1K*>`RhyedO`ug$^GYV^Qt|r9);$iTmJ=!+aI2Xc$yBM)%*j16c97y3e +zV_zZcDh|?ebBxxJyl43JTia} +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 +z-XFn@Jg;vZSu;uYVhxtSD`MdF=7Oi +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 +zEhO^|*k2`cP +z*Iq!c#Bc0DrU=ix)&^c)YyUIWq=ZeIA)2ZL4o-q#Pcvne)qPmeRxyJ27M2xIodVA`au{%oeVn2sCLo>d_o% +zSoC6umpT`}VR_Hbi^ObIVe85-n5~XQ_7oKGG>U0f)re*gX1oILee$?r;BR>x^H5@8 +zUR^!lA0M7xxRGzQAQ~Y6o(c1&r5Z}rrmQTPnX?Cckr24(zj*kpCHsko`@^$2`muCg +zSN-A`tId4Osq*WF$;U$h5j?Q**A>#jo!y^n8_{f|6YY!8V+|y}3Y^W4c$=()O +zOt-^3Cc~s@IRQg1Izf-gE~taI{2w&@omL6EI#iG7Rzw)CGZ&ZG3il(wNKPwnUdsXH +z5#%Tlme8EgpV*x2^wvnN4Z=y`9J{#3U+vzl0Cy#RqK_c`1{;}3J_)tP(J?DXVx`mw +z3!LRXdY5c?RMU3T@Fn;4J|V;oN+h^daq>{9#=pfizA+_$&~ao4tQ$j*JMJQ3py-8I +zP9*xoo<;KPssEVpJ1PA#@z*1_VgnRVnBo!akMJf|)*G1I@Ap8Szh0B24jhiEKGXp~ +z4E={n4o#{%h}+~aC>0pc{_`=A@Prnv`lBBv6LNX*q0R7pV|EHUr4)n|OiA=M#Uvys +zQCR%)vEQ}V4rX|uR4@JP(__-~`w7vO$WlXilk2M(+t1K?06|x!js#)6Bu4og$l?}) +zfp67n52yfdLx08(%@K!buDwCn>m!7>3^|dB?F-7Pok=Z1Mk=0%dJr8VcnLv!eIc`#+cKH$pJAEm-RgSB2 +zJd9C=1&hvWZ6Vj78E;-ki4pv6?)Mkr!6N8of6suA{o8t~D=T&&j!>sUM8oH#hT +zbC;u_veOlDV)V0eUmDGWPn4)ARU@Qvh +zCj)SOk!PEOY91>JTY!{iPfEnFFz`MHQ4s=`}4nTeR@(HAeN_-NM}a6 +z{Vi_9x)AY1hAaKh>GgLU``5*sE`%HBJg|Tg(n2V_-yXM8HSZR*ZrVj+b9lxuG9X{4OCT%qV +z728o$b0GvIrQ#B-Caqf779q6k2TQfmY!2A4#8w}{K5JUU`ufuAoJ(UHG%47xAgBMw;F=aWs1#hH_IrJSHi^{ShNdZ2^j)N%F4e2AY +zif_c5tzIyEl{>I`g_}9zyeckyW?H-X7DAGI$0#X39v1sUJYD^9%xX12ydbTvEnAUo +zEc8GEe9>>%L!^O$S1Q3S= +z3@u>Y*0f2BNN~;j`YT%Dh2-|4)Hl;~@$#@TBH)&(r#wktsLoeIB +zWBdNk1$`5cM}&{p#6HNakF?q6ssFb{y^K-Kq)?HE-W(QR{{Bsy{1&-|dWS;``7`qT +z>nQ2;!RL_46ILXgB4stIVV^4TAKK6IdNGFYD>|P2RUEs_0NJ|uc`?wu<;pWTgyghx +z%H^C$CHIgXz#QAXL=xGx5QP*6EC-70@BHTecfPoe`uNCE2w2fwLf7ba|P>Z3JDoeVK%1 +zX#)sQN3RYv>$0MTn>gV;ndKdHGKuqILSF+1DX#6%Ab~YU!-P1`z?Z!)oU%t_tA!F> +z0&TwX(Wu>UgI?Uf3_evPmhItCx-GSVtx|jD3>zF`K3mSmK_;ZS;C3t?izG{lQ?tKs +z_YN3v{iB66`1Bo~S-qgx4cn?-(^Tz1T+fbWu~Q;)_yKIZ`I6R6&_XA7d2 +zv)30vNTV3!CX5K+JaIAWe0gHX0gg8oniO>E$kSjN{$xq*8aK~rG!-XsRmCU7VDJ^ +z&|)iF)(R;ijnrM6nUqT5w^Q&ULQg~!aP14YMemhh;xi!CD@mob5uP|rGsukUXeyYPu^S|{hv4^BVGd5c0Y)S50sCcS5BJTP%+2qY +z%O3yN>1F+@#o-EZ8*G4`pSBCQHaZJ@!fTTz9pG6e@I#~WE}Rd!DasgL^&8?>hh3#$ +zvpvM^$cyy9n^2Oq0kX0Dp&L$gG&n}YygEPlfAQ>N!5-?4;GGpHA_EEEAhvr!J{Ek*U@1SKJ +zIv*>e@9B=r9HspVi8$n+K~Zu1Qod!>-Vd!Q$V5C-r!7Q^8oA6opd= +z_`VvR&mMV%C7MZi4Zu-3GL5Z4A#dXUh=3wb!R>F_v`o9 +zNR`4|RzcdZXJ|0ckNU38Jco|^7Vo4$9MGGo&O`lx(ILdgCai?YAl&=MXrjtWQvIN+ +z)1Xq|V)O4X4@<&>_mp@xFyNzW|2#yEy(D-I@t3N)H^DpRs~I^P1d;l&WU&kX~pZ6Gl&?N++1Z&SgXsO>k&;5Kr;a7Q) +zjXz6+z@f^rX-CKi%Fa@7v&CDh85$Vw=)>ti5Pd$G!sL;%gp};WXD32TV1qk6>|Dxc +z1>UXLMLs(zYM&FEcxeDAX3HK$&+5KThxMLJfofp~9IlQDij5a8WpKOAblsXE{k-(C +z(>K?V(>}=I=^@jfz?SMsP@CrzRgA(TOtr%ix4%~ljgp@m2|$L{E+zF0PAyfTZ>F%fdhjMMl% +zSka}BdVSN4IaqFU2?Z9X9_0jxhHTLUmL{eyqoLh^Uhiy>U^|YB163+W#^SQNT|ePM +zaK;JrSN!}BYR0nZw@?}?D6`PX8NSH;Uti{ai&GT6?LZV3kO} +zF`+ntDC}Pgwwu*e6Zu79DFYBY=eY=>wxB@Uh+^~RoNK@(eNZkL_o$1V;D>*T>`@LJ +z{>3d=Q|6(;5|^O23|kMRxpnghat9Ar7W1!qAqDGom>S}X#BUQBH9|G`v6O`8g*DE+aWPQe+AJRob|4piG;sQKC%Ur-Q)s}z@_JFC +zbT_YYtl!yjtUTuf_>eL2?xFFOCm6SS_BZZH#(>o~DCDibD) +ztCzQg1XekAO-B<;d^Zqsm>p<$Yi~RW4Nsn;A`TdVOp^p!|MIbB#iwlQL>*7mkMn|5Y~$ahj6oD(YS#YH +zsOW^eP&KDj0iAlyL&Nq?SRQT$D@Pljaqk2sQHV}pzIb~(hp_j +zXcnsXoaczF{iE>WaM-SY{XFM+oR3C^Eh^?86$rdqB +zR*~78*}WV?m`$>cY=hv9qJoWcM!NfKaHI7^!;wMP;FC*#mvtxA6dVe?*Y0s}&pEW~ +zaG~6a2@SNCw?W{pvv0tJeO6TfeXSh{50c*n0a>XD_S$zxp`g7YYeYfvxm+$OiiJt{ +zO};C`*FuVs-l}`MuYBNvgo|82F^~|nS_{a>WD%hoULGwDL6}_k?0d7-yrL_*->2Ts +z!hc`ibb%Y|_d&cyny((hr7MAlKkfamkHd;)m +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 +zvbY0D)6F#3Ho?i +zl_9acVMl-LzBhqLCRP&Cw|)i9iRlq87p6*8K+?`nU5G*C5w9YZ@|eHgy;NfPWl4@D +z!D4J{01P*m-@w>b^X0-E+OJ|-!I90AdrKsk;zJVHoRDeBbeKj4g`0Di_oCJn60R6i +z#m=wn%qN}%Q>_ty-*VULR +z88|?bRp=A}i&Q$f+kQ5?db!j%%HLU(*#F>U3F9Mm4Y(D7Ld!C50ls(CCbNpQzu&;H +zL2|8l@<&f9Ue29a%azyt?K$1hW96n8_1g)6v5Qe +z#B}pd$;}A*A9boG#)&KM7oCIc-}8Q;la)DNI}>di!~2sY18MZ?o4~ +z<-2E8zaA-?x{U@Nv8zSWnCoQCi8!4!-I^L5T8Qsv6q=rBy^E8r{b~&WR)dg&p*$G_OQ=L|&20mu~0{;dZ@O?K04l +zwBBLK6qqFh7;1*71hXHrmGe3G&h~j_l%Uj8{aIr%G<@3n<5Bkes%+Dv3+x +zm1{zg4$ePg+L!)45|T`cf=y>$17dYnK}v6yQt!_0#3UINDzkiz5)DAHLX7Rtm+vV`68#l7XVjS$L&%!WbG0=d?u6&?M^V;JR +zU|3Kl5ur=WS_{n{@1;~HrBBE(SAQ<6k~{RQR}sZiVf-OZP6o3$LZwPAvLF)97qvF9 +z_b?y+sfnmA4`QXS{bk!o01^k|3Bo0wZ|`hC4u5-j!dlQwP~RY9Uyq@g1BNJ^h~8@m +z4Y9%c*=#i-mqIAweZzPJc~m{QMe|I81v^ojhhs(V$_9QF0qtfEJ!?uXVzYk2;MMNW +zvK1&xKMu2u3&Syfh#&!1?~4_;c-D%VhSs(yT&;Nz^IL<(YoOe_IpMQ8VWdj9f(BBr +zKpXGLc5*zJD%H`X#Re=1Ot{W@YjL>H-!XPciSxVo3;V2UMqbK2Jp;jZxfKJlu`5e; +zlEw=ph^^AEe_{@4yXR(tw8ad$ZAld39%jx&l$^ZeajZDL7KQ#-i$)^*NV8{dCb+rp +zQqhs-crtEf1CO=E@xNbCmGFtS^-B$3wM +z(D_~UEyTrq<|lL@rS0JeR^2m&bY^XSC9 +zC>|+T%vy_&ZIw43BvckQhbBylV;Zflb&?}Nw1(weS}9nyH5H{darM*Z^*nX6k=oyL`k4`{v7^jh;P6mk$k1yjcL0lzC5S +zYhM-4Bl*VgD(E_nesjsevsKYDIT6Sb&6j+ca?L~cWhSFJ3A;MHTazORhh~_vlbk?8 +z3EXH=J2HB!`3bD=WSgQGg?~%E9md%buu;scqJ{AvISd~%D_(Gh6G$ZG{NWK3?qofC +zelo+W90abjJ|*t(l+M%@j1)Qw$qq_HON;n*`gb!n0gdfZ#I51UB}bVyr!yBl+lX*y +zVH%T?qzA^rl0iU=VB*iN7a@NTJZ@W@5A6$ogVfcT05QNUkE11Tguq#&Smv>;mca7m +zv5(sGDVSKRptn2gyOKA3YRV{gsI{OhGz(8aCtgw@c0Jf+O@ZLUA9W_17W*aXV)lxd +z3ChzYUrM^Fc2k>8ByY!UP5#Td+IS}A{2n@BS4`f~{Av<`@KxDL*Uv8c3}gPAQGM;O +z9id9iTEkhD&>)J4bM^-ua +zQVQdBI>w>(ld0v+kO?dBpOT9B-zLuLbCm{&lJ;Z9aPlmXYxK*=%UJ;vF(=lp@9{Lk +zHzY?sCI3Ak=~igWeSQ!^8N-jWSb>Yw5Y1x +zTvmSI;|`^J*)|!mGBo+3Ua&ybhE1cS`LwNcCP(zWqtYO-TVQ?10 +zU%Y@u68T}-Z|5M(X(}AToqsa_m`iYie>p=eYKuJ&*$ZD&p7eQFzkdM{4L{>_4XhJu4LEEcOMFFovEhr_30pc +zr)MwY^Ul-Wf!I%gcdG6SCrtLLsNcmg6u#E{OpSe)EF5r$s`zw`2yLp6`=Jlv>` +zjoi3Yq1y$59?7N$DynB3#>7_e3~J1=t(7`Fqx{R}ba#E;1I1Ld{`|Ifu1u3dq+kJJ +zAYkqjN08huUcrtwzB&2^>MxH5e3#!6a9Lj$YwgnASoQQyY1r=2UjTt^;IKeXmv@@Y +z8j1OcYAX4Foxmw2jw-9Qc0+`2v3n!x=}wGzU{M8|a!HGsvr9H4;^9|OZ9?;N*t6I6 +zYU{|?OO>VAXKl>B7=vi>z|ylrQg0@xb|BE;HpAf4zj`*lS=8hrKSYnJ4=UmYHoU!GUM`r2)i7fOQ|G!sU&~t*k+1OyKB5RP4JvL +z^-36Eus$Kek>{I;y}s3}Hsjr+%a?aGgCVX{BOK8$CF>o_yeK359aiyE1V(Qv}$67I}|<H!7}+DG95zu@s6}^1`o>kqw-&;Z(}X +zUFrQaN3Oz^s>EJW?PxQFxb6My8Ei&@2<5$b*A8ZR1Q$Q5_P*6f^0a-0+ +zWfXtNa1tVb<$MeRlk~_rkAQ;C-V=aPVh?d_TFI)P8u1Q$79q?)9|L;hL~x@d2V0s1 +z3oVmfMMjg5> +z0pOBr`j<_;&tH51t$bwAQXuGj(yK=Ho5 +zT|^$Js1p@WEqQ4vkyrjxnCRkj(;9p5)XsNHz$<}~iKk)Gxe~_5b31+99-&1d<;i{9 +zBAZtOjt%UjiQx*o`spLLdeN#mhW|Dx)ax=45Z47o&h;?=j18n9OffJFsWHPGAIxAa +zk|CHbqp>@OO4&heH@9<6f`DMU9syL~+CvP~5LpzUyRek0ECq-mFwLP66ODS!BfMlfqc$uTFgGTcL*JglXV+z#< +zXP4o+<#w`5!p>X>LwR5+PT=RZ;o?CElyK=8p*j5`jg7%e +zi&&g<;3!2=xV)Gk_PCu%65vD@M?tkhaQ7?gm3;k%9h?kdu5j(O@1PIbB*|?>al{D +zh|6Kif7mEy;a4)0dQk`U@bJs%e&Wg;5i8{BZWJB=g02-??gYObV9# +zZhgnD!Qt|3rw=8j7j=9`mz}=u_&niRxZUZ%-^;N<7y&PqhjxA_m6;!v+Q>0WvmgkUNZfbdCo2?N%6B<-!8VRNOKO3B^f)Cwtk2;sFs)ACFK{ +z{KU45M^szDK|zJW%ABhouQCH9yp$E$Egy7d+2>yMILj}M(nXcI$5 +zqhpb7A8!4q4MTBx%W8-H;f<=2dajte5nB9n+dky-g3UAD2O!g}T#-97;PA5XXNJwq +zwcCFEW9;LfPm`cS+@OsGy}D_*>i^EH(MNp$k&z`B{295tx|kUF{_gbj_}Bi=DgI#O +zW2W`(%iM9#p!XU5`^Y+#p;i5#BW#fgonNzlPuJl^vAlu)za!EQ1_5`!DkO=loj;+_ +z+gB48in(4NZxbkby|k7)J^y%p-(ub_T%T?P7!34x{`f{2ET6p}-Rw=A)Ea#MdGqr7 +z`F`EM+`Zn9X3oTxWUtPCtXxrz+!^@o=nAZTs-49@fvzJ!y@lekikq4F8E}9@SS&vv +z#bay;wMrXOmG5-#-awLUlB~3W6s7k|4eQ^^UdQ9Vdy;Hy^AgdaT9j#;*R{QT21^`K +z2CJB-5+3(9+rf_d(kW_agHb#*s^4@4T|i&;?Us17ad!n`zB_oc*IhJ>1C~roO@~y` +z(aOU98W#BqLUVL@{nhrI_f^Fp9QYw&FaH++IY7q0+hpT|)1Ste7m3XAyIQYeVndb@ +z19w?<2Qy2UUa@!G?tPUc77jo@c)Hy5PFcCqSYWow)dSKR;9<~M@%Nsb_&7c*#C2M2 +zpu75%#1@okL<9~>WFkKU#fXX*e~5fZ&HvuehTdSGMX!6;j+e9VO_@^W40DwOq +z`@X&j?>3}AHNt|htV$G}yQu%!(%&vzo@ZG(nrX|5Ou&U(_$3a#muy24d^=ULAD!12 +zZ9XG7A^*ArE0(nC+xC_1E*0_v}Rl}mb}?Oy0{fIkLWvc7Mj!2;p#e3?tHjFsLqR#@l>xHFQG +zwaVox5K^KT777$4Ve+Xv`H}oJs~@C?!&*W(j6p_%>tfTi@gq-+^CF&wVPyA3w_93$ +z6;^W9v~Ij4dyp-f$H4k-Fu<1W;CutDhhb1_3DMj4P%a45Nu)vip4A_*owWvO-!u%l +z^-W$hYhT+4_A1Gub5L+>6D@^IbAwD?7AMd7V!#St^`9saWuv#au{FAI6KUf{VNP6hOvT>dX^xz4?wOW +zD=W?{H~)fUt|)X~{1?E`-~^pe@(sL$5u!eZ +zM!)`!dnTA1Y7BPab>FeS~H +zWH5I?2+Rq%kdsk<66}R?Q~F=^Q^e%hw5tle6#5i1UVi@`YjoOU(1^0p(2npoH)X6Q*tO7lP(?g>5$rU8< +zvPdu_O5Q^HN4c{xs1I)ZYuX4V&oH`crkULgfPVi7Q(g_T+|SEo|GKvi>$Y_E`YwI^ +zxBkiTm3MKCzx;1M9rN`JhFH9#IqAolWb5m(_{;zPkJ*uj;`*LXW0{ouF*Mq}w(Hv_ +zyVcp+SMvT}_r_keSl)Hy3w$nShVIL6{jC2k5!#_{e(Gx7yL4WV1Hkn!lD7QRr&F&# +z^ws+f)MC$>K7qL87o^^Y~b?0a0 +zgdH5j>2oP`LG7#=1dj3&OYfiHr|lso!Uky%%ybcOz52HMB|cU^=XaAI2W9F)+nlUg +z=sGAY{_UpPrrh)RxSxL6M#&UE5~7;&P2=$lwfwHQhv!mfOs&Kc`j@vi$$t5vFu{5$ +zo`3hTG=;H61v@v307P(RKW9W$ARCSnb1C~Y`f!^pt4tlL`oFy +zV}Z@|W!LrRW$~-YW3 +zB{kVX^GdULfOe(tltsb1t||kc%|svXaY*nsBh||z#j6{{J*s%3k&4>)9g5Jv%DIHz +zC0GN|dz0D$x&#C1jJbh6-Q3jG=kH#q!LSsEQnutc8dd0nJQmP`naz&Vl;4K2llB2b +zPEJkM^D}+E%&E=M0Y7tXofOHh#zku-65R@0Z&)HdbEk^t?X70WbBs$)jeK68lhQKZ +zZ_==jwX3>qAj%H+zLfpI2dqZ!sMm^lb*K{CqM+F^T6Kpn_OW;QH{=Y&>FvD!u=pB2 +zLw^sl$L%xuuKrw{D3R|3-bDW!qCG5m`39td%l`IgdFf{b3#Sbm{|;5LqoET_=osuKv%acz5x0RTV +zL5srjWj0J=>!f_p`3LWIDm5sHDe6^a1ge&z2SFiT_B&tmEW#=@>a$Y6@6 +z7^bg55L3G`)-O`*%pZTWmGJj(%l<$-%O76-Sc@GW+|jSc6ugI0t{|_rA94W&`);CS +zmPbR@&X1!wzTalTTwv3An#bn4_V0JDG@u>OeL^RS)A7CP;9wx*6RRK+g*BXfQp}9YiKxq#TAd3)_kl;Cx3B +z)&AG|yR#WRF+KyyOqO_3NlqX}SjqJDq#L-|*pABXPYXESHH0<`_MGlKmq +z=dZJcQrJd+zdPmUW?3k9K;5}^6dy6Z)gFbu@U=ZGFK^{5o+wix_#X32mkH7R +z{8f%V&pt-Y*15`L`H%ZEcxgvm4@%kaB0s-V@GGtAn8MPNwUt$K{Avg$Bh>hg#vH{Z +zK+i$`tkDPi1J^xDPFcQMehFUIImns74>LyeQ~5=M7}f+nHGMU4aFqe!@biB7+z5Y^ +zcSW^X{u%Du;{ctUx6hsvS<%35@^+ti`P)xGf`s-areF8-Mx5Ys&LJAVr}&T8U=sxF0I@?!2&VQajExs@RM61`y4J4ZxZLa%tuboE>{DPMw_+_!oD?WU*WePCUF24i} +z=`fsu&6HX-JkQ+NHdUDw8_TQg5{8^}%)fs8I42ow6WUORJpA2;Rf%Sz5~qzQf;G`( +z2=VhxZmVyCjWL=`5C)?q?<;abe8NfgF|T|1=IWv|(QaMbfvYSIU>5T +z=ch$_SPlq|V+7p{V?934A@U`q`${p#oCibn8f0Zd*_%Zv>78=|gNCjEODcn+TMiEW +zlr}hQD&$IF<#Pn#C27lnubfa#_vvDB)1bEQoknF@4h&CD#U)67{dXEV3h(Hp1|1-vk9p*ki`v{%9Q%FbzVoJq_&o_O +zvk~I3<;^*=i51|8Lg+$?yI=Y!}y +zU9lkNENFc!SGmC^Bzv6JlG^ZkD&!=L1m6>D4!$INBuTtC%#P<)CqE#m&!SL22el$qeyd_7`!(R1vnJJG@LsO#WqSrg2a>O6HY_>Kzw@Y~d^`r)Wrw2Q +z$4o?JJIW$~0?RcS8$QKdbel10h>r$Cn^`+zSY))^J|NS +zt>Q}{-Vv$E=5Mb1*Gn%Eyh#$xM*RuA0l?H@9F*!P$_oREWQ@Z>R>>#u5a46})=%Wa +zPbcJ0lxZ2z?L&^nF>-)uwBrJ35|~DF>lcfEF7GOl!+PH(pa|AgieuF&=Iat=DW``l +z=T(0pz6R_oO9&irGoA*m8OYCLgy8nzOk%@Mr^o`rOnF!JJ7KuwE`So?%Ae4>fl&2k +z`CYn!_E2}D1bx$v7wOWUW7kwGo!V@w9+0f3dFH%1E-Ba`lEz*Mf;Nwf@h8TdyzVnc +zE>U@wH$8eCM%0rpRy08)=C&jBCsxItDLF7eWMDrtnvyMM|J5o(}y*Ua+3}Ed2U?Sb0_X +z$N~`X>?vZG57o5Ss0>9+4s!1UCKhz&_uJHeUgjVEz2w5Eq4T!z=6l(5{dl(OL8~P$ +zUoHe4E%Slmx3aQl4$AzX0uVbl=g#RQfaG?9`$lbilGwx#FpujuoYzklcq%xCE#t!0 +zz@VZ}pBKe5AUqKtNumebV3)-o<(#+uJW#{Eu?aci)#KLRE{c=fNhyx=O6v*`P~rVH!SP``Cr+qVKxw2NxZ*w5S3Q>YTYr +zUD70TDEQ>rCEhvxCGTvOW8M-tH3ySBW}={K+PiJpL9w8~Ibbr4suJHAHGSHZG4Lr* +zwLIWg)JxOB4bMIwiySMLJ(k1K-&#~1`S}u&VkR4LgJyn_*bX=%&NKf&Yzz?((?EfSvKv; +zFUR5zSB^2Xl2+k!iglAGGgC?KY90q31u18&pby-vUl&?DZsUr0c;SeVKG*KyVXGbq +zbXs9l?XxIR;dSSLpb^2LL#LJpX9n+4bRcZsE>ZFbu_` +zmP4mQptG7^5?+;t`9Ab_{pLpm2PI!0Ydf-aig$$(PuCDG+Vc&AONYr)_Nal@{V6Mu +zKM#By^41?eeoAHvZ5DNa#VYEAA<-pbc#VbwP3CF%)&WOsrhU0@&{5$3D0cY{R8R-h +znj}QwwF9>_Wr{7^RQh&_Lzk_Ma)#Kk8kEEl3NZ`irO!y%rQdH7p~=G=@Qx+w0xa93 +zH8JXHpy7flB`rdjr9$b6W^PmNRoM7}s0g|7DqwD^rb9 +z+`s;?Zlu2&vO{>u0fGD8R(3|{T?flhByu0p$4CEl56f3)ZoxBShV4-UjjD}US=5qZ +z?D&ClBhN1vhk>v2Cy9WIkf^`osg1;p8;Z%e;COL2OvnbrnR!=XqtQ-Xz%a!huMi8A +zfLnjghrb_u(k{YpfX?FU_L>KDz-)#&jR3Plj)PljZ&QNJQ#UPvuAGHwswS +zOe5mwN#VrU`9g^i@RkdY=6*&;fWlvI6A30wO_R&P|TyG<{po>_Bd6RX$HcxC>)5P+3P}fWy1_;9eS79w81_G +zGla~77!FZtzV@qp-6Nb5!LlXpa5g6vwUeO!IXdJmG?n~w_Yn(DF$T}HG3HT10ad;O +zZKT7eejrki2+0EQyYY|9e|_B$1;w>|JsXzE(Npt&OF8pF!N@ct*5Q%sMS +zpjZFg0VwKpemal311DwtUC6EQ$ +zK$b&9qIfM~eX`fZI!WHuH~(^(AXEJFu2~!^evON{3}6dYsL%N^_=_FSw>y#F&5(}i +zwsL^aK3?v@$PdguB2d}q)@3OrRsrqvZv7w*Tr1~G(Sw|q{sAD~*WXizD+?nRe`tK} +zqX8ic%I*12U`7HBnQDC5IwS7`CGCTAvG$#@!_#i%H_g55b@3NT3Es-z``h0H8{*de +z@!oYFzPZNesVvFq91KqfU}o +zdsx08#YeK=@QN-G&a$w-pV`@Zx)uF>p<~w`6J{Wv+~5V+aEu_DDsOY2K&FxoOqArc +zWH)Fl7`Oa7%XjL7!L2Bggz=(oq<>qYgDfc-j0doqKA-oy1~Wy8sQdBr5+#7%C4qPb +zn*`;;{$au;a0QUUu(lGc7^G5oyQ#G6TWBSNV4UkL?29}G1 +z*PZmEcDb%2SZ8TJC2vKMI_HRSjACT2P}2&?&=+(dt(g$OUNenFIhjh&1f=CuzGbICiQ5u9oP> +zHXOgEzdQ)k3qNtpP(@tU83D{A;Pdgv1WAsI7CBI&96F%+T4$_g=Xk++HNePZZ{m2i +zPCRP+`W+eg4I`wW+So9+WLd@|QnI1%7F+($d#2qwKUfVnT9c=8>)6DrfmxBd+fy#z +zA?bxqkQqV6>?NHMW5t>r>dySWrN6-zpzhYDC{!R~gmOaesq7z(Y@|91lSR{)Ve+8q +zd_&G<0EP7;MveJTz}N)peV3~%#%>qY$=VSSGbgKUX;=s@}A +z(L1_$EX*uNHrrmDg$S5z#fuZ1s(vHOeYsUQ^j-Ln!1#??cA0xTVtZ(4O|GR3#=I{81g8p*am(`+{w~r`aX|QzrRT(u`Vj`+$;9RAi +zHxMXJ-;k34rFbn`X$Te(8OoX7ZBgORVH;ON_ffD%VgMU}{+8LeMpC10Nt+a07n^1z +zd7OT}%E~_b+}J;GQ%Ssz`GfH2HZQTgToqvCTDh?CH8x9u`G1J27y*k7LfDgxo>R?mhI(GFBC(UwkPf +zIr7?}bhM%{cB*or9a*R84C#%G;32MTuw5Z*=rVt%D}K#&3D3$it2O(ya>kBZIx>Kw +z+nPONwINux^ggVhIS9mzEOG_D!I>;DBU$_f$^md_R0dn~t%oV&D|ELLC()s>x^2m| +zE8=p+NVVHsS+F_fr6QVht@2nf89KmxnVH}uA1(WI9>9+ +zP=t3*ez=~oEe{4sL)w@h6}8O(Gx++Y|3 +zWy@!CBGYBU#35#R;LQ;^W~go$G>{AuLX9&A_M_J4^quQ)xsoCDGGPoX|AAz6gmT~g +zh4*}jQ1iRGuGw9Jl-{A{Q2OjsWA*oci#E!2Qc +z*Qghiwk(?KJ7oF%5|#vEA@NBQ5diXwv9oDS +ziNhQDf-l#+c6K?>>uN8QjTo!|cp2<>mu9pDLDhY!fio$-*sl`UCkZ&g!yOk}Px+3= +zsL!tSVQ%g8sz9^Av +zbzv+%t%_jOr;2H(wsom6CK!dZ6xu}RSC4Y6_BAF0BG%`e#NwKxsA~{$yE`8t@Q|Hr +z7LXc1Rbt8#^bD-e!$E|UMrSR>EJ$;eB|xFs!V$D@&ey1#kc!R5db(R${d@bFx6`#r3WkB%gpo8ZKpj^sfipPss2QdZoyb8yvY-s+sbesdm;vu&qz-3&)aYWB}1ZeN4_5nVFv%Qmsotz@Je7j{mz2^R_~Jpm$@q +z-U1lqpsT~tdqZdFoXY?PP7QKy;Sql3Y+)UN%j{ppxIUTc0qRcsluKn~32>r7>=Sdn +z5{GKIiv~nNd%!cQY_cjIt?R6*&DF8{@=&_|BS%&8y(i&EkLRVMPn5!--fn7`Ql4!q +zkSI17RB34001>gHd>Jd%Qq}uJ$g_w|{U;Oi@Z}_*R~XbE(I*TcP&uQnSyWR#n&8Ua>u_XZqRJB_`uNjw_$15_ +z0*ep_#QEMD*l=MxCfn@#5P&p5_C=_DX7{uHf*uu*^%Oay5KW?opZqvRhpd}$h#fSC +z3U(Vnh&D0j!gl%LW&k;S!SgS5O)Kdp5&UkF5!)%KQ{C*F6N>@Yc#?_!_4hd1#7^Hq +z$idjukaR8BO{4u{gQ`sv0BtC#SQYp^YU-we0J2eewn*=cEgk$aCpn_Wu>aDI#uG&# +z`1RM=U}Bwa$&>;?y>K6~NpfC@X4rzQs88e|2IurzU^}@d344^m+5ikElmJCHNEZ!W +z@?IM;{;|z@>gbvS>%6Xo=Di-tHUgnA?)PZ+_N%C_7GN$l$Go?=s1&eX`H@*6;nsi` +zT58mUa&Cpwy>2{zp)ag2h+6pob}taehS^&p?Qm29Ic{L#OktdE}KFG7KHWURLYf`nFOfn<@|c +zqXi+ZC2)4Y>nDT~%38r|gr?L0YwoD}^kBd?O_Hg<-+R+K5+kvsx&WAdUNH7JLQ>#M +zI%h+cqfa#K7l?ap8E@ZlVswFIXOUhi&DJKH%s9>VO~bokGuly8D$(7~2vl*4x$L9l +zSwFu2C^WNCn;gZIfxh4LGaLDDbm5D}DoXhvU7}u7C>Od?oOm)d? +z1EMyFahy_ZI=ISSE`kZPrunN|x=zzk0D~@95G8=m(N5+JF)JdJ8fW7|zI@yuH=@@3 +zzy2oRLT&?;tXtl5AL6q#3Z@de78*RTv-p`j`g%-?x_~51`Cv2gT60@ZE?u?SWpAJH +z0Q?q8oD3HAWRO;G47oY0;<$64?H+5AlB`<(5t`qph#g?rAiT?9d`=L3VKxslV`z>f +za$y3yhKw0ctuZ@^sQG%;CN$_kdP%({LH3$C&ER8YZ-d8h&&NUKoCt=Mz3#E{VH@LA +zOhKUZQK)b-{tJ05Z5>zYEInfWy3loyEdsJmn*xPF*_t~y&8dakMVyigl;7<*0u{18 +zT;^fD8sYHi1smDn^8u^~uoJdHc}bFxc+DFOePYoqg|BV47BpZBlxB=mm(5{+3Ph@% +z9@0cBM +z1O#*}8r#i7BCazR_je>0CDQ^kw6R^kNJvSP4r8M|S&JbsP3~~c{75M?YDx&xqhGX1 +zB0;(efaRhiwd+Wr>jm$>{`=O)n^pV4t2?h*lv!;RWm3f@de>$jR>TF2JTVl8Zh+kM +zgR5JeI+_xNa)u*7UbTnfrKNVurT(@h6o#KbZ4EvY8QUIF(_5ax0J?81Jb`Sf34-_* +zgQ@281D46o&?2`P!6rBw^0elCU-#M+m(A$NUVXi^wyqZ@A&E1QN*b?vDhwrcGqAUi +zbF2CQlc1oVMKY3Q;va~ahx~r7VR@04hj=?J@>RqW@>6Ph;piZ +z^2A5B8WDO-{!DF=dd*qcPuI(%zA9%*bMHWby|(~&McoIqxdtphbR_=74XxBeiz-ei#6;Ukvm6&{DNmB5~fS-ov<0M&>1 +zQW-*;aAQpCU;4_XUqEELp7VvMBZxaM2h5(BBfG1Xg~YDUqXr_y3~b&{**|bH(f4r| +zFk00P+P&kie% +zd%ii*pAKq- +z#s{NI3?4E +zfF@az)IwY6occe?*3uZkk6p2;hjlGDYl&pe8alyN&(it5^AA;pDNnay==h^ee{nZk}|jf|x2zm1XD5_vqqYCl|{ +zHHV*5dMY=BBh;9}(17SK2;PmA>lOioA_m*(ndI@M*=}M9#-qv@Ws``n-M6DCVc4IL +zK!z+|oSmlCt=z`j!l_aAk)manQy=#AzE2$orJyvHrpm&R>5RP=44iN5Q#1ai?7(zA +zBjx1~`|VXJJc^=Q7f8*r~tDPI})*138#o9ML +zjmXyQamwMXEVEaq4B^RpEv5u$ZC7SUt=O5hXvHk)zGtaDuLgwS*KRCOcXa<|O`~KR +z?Y5;5ae>@NBd_cV!II$Wf}^Vr+|kXJGh6M~&fXu~JVXYVZ +zgn;h)P2=Lv8_3a*-n5!g?p??c?s)yMK0@uAZlnC^sT3H|L0AC=mSZ4Rs7u2|{>i1m +zxD%fM2%~W*&a-Qo&?BtW7&8BRYSiLbxih4KC$0?{Bb;#^8QM8(h8!i#=&!ka(}*cx +zUC|FXbeG$6@?*V^>EhBK;>I*ovW>=pRLBvqZF*SI7r`u3!4 +zH;zgbswJ+x2io3tIqFZNvBDxxeynFDS+ZJLbizJXh#xSbW-ec!b&r>4 +zw3gz@Mk|@-mWRU-)PkieYVrWY1d@QwrEYN)$gilj9fe_wn~;lsO`L~8OSt+|Kci6K +z*cv2Fqr+rC$2r7(yJjDD+qKvVK`I+#RT(o3nG#zv^o}Y9v~yFY{48zH)(=LM%_qtG +z&*)$VauzsQh~wi +zr3*p6n~mNmjb(~^TvF`138#~>^N{2g=icky)W5SG%nIq&RuMeWAs|35g=^NtIN@xMpy|&Ba@!&ax?*V(KkQn#gd5k1c_NRugxUvMj` +z#J$yPxjUdXG@#MiVfb0RLBYC8P+?lGyH8XF;Pp}dJ!oLm{!ZNhW}FBuIy2ZBe?;x? +zuPx|O>=eL2Tj9b3VZLQue%5LABg?@Q=Tp2(hB1L|&jK(>_Qe+LxkSape7QsAUIQrC +zuaO{S(LwYTi62LoKqsA%TL`Ho3CpUz5{Y-1XO=v8q%Nn*A3h}qGeqxd0Qly*G7IsZ +z@Z;xi!(2Oo(fV7j_J&}$AtK~@7V=toq&SfBiyuuK&@wlkry)G2 +zVp8W0x#`_81xV5W`m~3kJuU+0@^saT#s#8>Qa}2-VR{pF;Wl@hK!VivN0rH6DdpRu +z5Dt_yZuAHj%p}X%&N(Ey@E)Kk9=eCz%G#f8RFZZT +zFprv}1U?d|NIK)M=_j@ZmBYsgW>Bqw)^%^Bq9ARS-xRrmd@?qcD)SV1YYxii(aumU +zSpbY$W~SQ+3=n%&n@g9lhHl5{ihu|2-=w22tZl?LK*PeqiipXOCR(xJ(tEnYCQnMB +zgMbNhuC3fpVf3KOd3Mw}Ae_-p*OcsW&NDHLFHG%iMKKS0QzhRIHy>Y8P8DHEN>Ern@-&83kK5CO%>ss +z&g#w}Ujq45AWLxc(v}b673_d;Q>b5|1|`Q_#aHZ%L&{2L5G?_y-=5C4NJt|-sy|zF +zLqrmR>Vi0O;0zS%6)??f2{eu_KEj2)SmvbMF|wrWW~rg=gz4*b2a>vTEK;oW@>gvM +zB6;?0#v}qIg>u$P9782{g7}x5yJGpo;YmPM%(_vn)ERI$i6o{K7cHU78^;1EjLxE- +zx%Vh>a<8eR+_g3jcxU3K#z?++>|B@2)@z;mL5!_mXZYk@&))YF%P!FoP=mNrhZCf +zyIwf=uLQpQ@b;;fWF^mZom#URH>lMd^WJsqY5qIlARwd@Cy0xGR}o~2-m03*eTGf7yhp6FJaLqh3@di$2nh!G26LyNzL6}jyGclMx$fBNv@Je| +zs#qcP64MqcYIs?klIE0U(l7}gA7Foc8w$c<2t1$=o4-Tev-7%`*8Wfya=RhXTcpsp +z?e{RgFrOlCQn!`Dow#d;oJ>395bbTKzQP*VLQh>eN=s1_&3Cr!K_6)t00!Kukw9uT +zT;|!QIBh>nW*AVsL*d19$Q}S1%Z~_z>!Ook%Gwm(t~~!rl-FV)ko!x5PZ%z|GHh95 +zkk(d}4$Z#25YObkvSb`aczvo8VtWOe$3V2yDIIU4gmP4e2Afh}4;x-&w;tsEQbGy{ +zb!cq>O?F-F)EM%Xtpmy>8k!eUDVl#bQA_||K%CxOkB +zGaMPVGAQx}`jKYgE7I_v)YJctguvhFOgdy+V8?c7r0?e~2ad@Nr&wSNJ&4m!Da3N?pe~$iA-D^~a=feqdHt>TTRIok7cU +zW;M(#(3aG*6Jda-2*G&_g~}5FhXwEmmN7h`UGm66Z?g8XDOT+uxL7UV0nvbn%r#qF +zMar~1;I;|b@k;pCJ3H&3bUwM>bi%mcT_rbyY1r5D(4)A5+qz`943Hpj*SQJVvG`k2 +z=oE|Y*j5)IhE2!J5j;k@@XfV9(O7I+wBTgi3cSLADO?EctuFJW72m=N*05WKaMSC# +zv#2PcZj>c=$q&wF6PuO+@}N+AdIrj+I$k|gu)O?1JP@iE%%&Ly<_5TYQt!FJ8ZQ|n +z{iS`EoH-a|F|(e<@k_Zd51 +z)iOJJbEHD-SY(GIhumh+qj74tn{ +zhz}3S(aw|@{e-5h;qf@cRnNZRWHbKjM%3Q_>=W|7o4Aac>UaH?r`;LIVMk2uIuwfR +z^S~O!uv<@SIxb!o2!~fb5a2E9Llk>z&q*&vQ8W@T*r?{~**n_ftmRkg%%N-saJMcT +zB8-Hc?wzv!9t#EM7O`rtT&rbYOo7n^`DXxWjr@3!V8gJfj45FZ-aGLgaPPosfP$$6 +zkOrvr@UChttNbM?h{ejITv}}IdD1;q%0Zo@jxSU?UOTp0vfZ!5o0G?!8kQIg8f%yk +zfCgf7ol~I?Xs}=QltW;gMHUlFB=(%Nwm714V-*3y99_`f58yRY^;K?Ac9=Wf=?V8g`(OC?+g!Csa-H;rLMj^`9}`5cLaB(x{suJTa={@rc*VB!l*;gg;|TwwuG27lh=`R_UC +z=|6x|$zlW9YM#tt*vDvu&AH|YuO~ikj;Gl5il#wu_}%NSy<((Vwov;dX^a-Rpr~cw +zI&|~hsj-J}?cFypEa`ciu$TG;)k(DwsKRq|8NczDd-qQ1MIO#tv@x+AK#3sdcPoBlst1@|CGN(Tq64Y7_F1UGP=*RZV>DohpmD%6h4 +z*+PetjK5Y1e1xsa_f6ge|Dt+-IcfSlA9;}8!cgLgB{ri1dCK%a1@VPOsYM@t1q)m| +zq|K5riMEk?DS&j^wS9>JlCzX0d-Tw%PI1>@V#b{*QbgUT#E1rgCj!Z^G`F~asL_^{ +z@^QH#0cpIVDvk)h>1XOj`MG)6WYK`6Fk`5mU>mfgRabsMNIXqD8eXpy??%AUAtYY6 +zVq;*o+}wh*E-DQUOMtN?)S?^XhhHT0LA^M_1IT6{vK$Q-pKu6?run?^`a +z8xB2j3uB|kJ@Y@_$KN;Er +zy6lFcVLm!gd%*cI{eFD89+f$Izh+b`Qj-n9sxZ^pb`~>y%qqb72Tvu)w9S$5{KQ +zr$+3T#VpUb4f~?6&U^aO`(Qr1FQCS=wHGV3v8oYU#-Q7u7F~f>#Y}@FJ}p+up#75I +z{?%%HVowAuqgVr#zk#c++bWRpn*sdsz0&{tp-8qcNpfiMJ5B{91|euwq)l=m +zo>iO?OGTWGI4;M!1Ft*f$DttaFX$;OD_ABPhXL`9p+5sM8Bc32vY9zt?W0Yo?k$H{ +zK4#X6WnG5jnwHWL&}_>dq4ib^pIVr|v+ky6l(^~&Xagarr+^)+gnCE#7dhtp%oGQeTXy{C*2zfu%{8jLON%{6tTGURXmk)5>} +z7Pxdj4m^_$gPg$(d*9rTEbwANcGVmP4B~s=d=8{cspfuo#cBooY%ru%56mHT9936^ +zU$i5}K3Pd6@=xn-e1ku}fB!M-Q#7Y2rg7e3Apq9#ip4%FTst +zP)`+6)WnO>uV2_Qs~XbTI4|$l>d!j&u<_2F+(VfKRwmDQey +z{sl%_$xN-4o6m=AiOzFYy-lcGZ}E`C_~x=?@>SxdK73&LWK2Wg#$f0cUZ@w3c?U6_ +zp@S(#_*YPM@EPcxx-^uDE-7E&jO-8jly#Y|;jzSb{b4Oy{;e4W!3Od?x-g+jD9ICZ +zxztfK(=z|AgQK7@Uc*APCBG^de9?NS&Bz4sV2#m<;=q<|_=zvJ_?GTk_>w5q$S}jk +z7MTQ_-UdoxE}JuKHkgaFlDV9JPPv@80698&jGv%wEAs%Gy(JaSX!%7I8MNJS`*a*j +zeO_skP~L~CRE52BX)bhG5hhDABzs8=uIBXn9eOKjE*mjg!*(bO@fjWw=x9=r2u^Z* +zOLPAW_p{z6X~l)ZC#or?4<1cLQpj&#rr6C4{O89Hbu)d_4@hwv#ZUEeGkar_9sqtk +z8^nUHimBj~sz@>zPyZxLiGI&5nzn*# +z$oix|*;3U30U%NLmh{UKepNbwqK5^-VCy&7g-=%$ +zB;8Re$a~I7Anf&z!AeL9!RtW=1(xHOdjhXihvrqurkIEK-V`@4N$P=6A*sJtoqD8( +zjyW|?1~x57&-58Y2wS$+hnD7>x1hz*^1scLk98Z0e!FZmPI=kHq+HPJ2xu!8hTIA& +z6=9b+OUNdV`Y8Ax`$>U^j_3KKAVklFRb#y!uFxr&daZV8IgR(LB6DK0VSqi|f9|*b +zl|{AMquwtjG+=QswpS&YOIxkGgMP4Yz{`*)P5ZVTJZ0cmz+d0& +zDVLpa0*}q=FC@x$C?+Beq^g0g10mo(IP7b +zx{%j+m#YBLo+ZFb(_D%BI!6Yg+me=xy|MR4O)5S$`cRUn+bE0?9qkWUkSg`AQn#g}WaHMv?Z}gGRO+bB+h3g{I$)ffw)#2(bjuzM{hXO{F~>$f +zHFRL-&Lhxo<7{t1mzQ4=3GLA6=C)+e*7dKKj!~hw8U`op1U2SxtYE;KcqV;hV@i*y +z*U}$qw?p*g5X9bM)(dyQAYY2|p*#g7mp84nG +z6vyYV`p^@%nC9*w^ICyH9=(>(xWXK%^qKwn2f;}D#e?zzC3q{wlx*G8mSF9cHR`Z! +z+Znda4BNIctPI<>ZQHhO+qQRntEyJ5+U-A?NACs9*2fr67kCYoA%V?ll?k{VW7|Pr +z1SGe=vWBG8MFL+V3Tmsn96a%yCbcn=W@IZM%sj%z+EGoAqAkk+fLO$Y*WdvIm( +ztr#Qk*@*LZ&M4DCLxZT2vnHR10P0-b*1#|s9olR(HvNRcT43e;p+PD400Z+R-7j2# +zC8dd9w=azL7IIcwd*36Yuxy&sJR^zw@3T>ws@ +zRx#v>fwUb?h_fHq*ZaE#wH}^JBcx->%_;3Vlp5|~icG>SXrZjrcu6=A!1ARYh{*W_06xpQs2_kt(d9#akhr?wgwq3O +z0ibept#_(UlqQFvDhgZ1F)*N1idKkzRyZPo6Zw#?QmtcSlHr$B!07eCAH`J{sN$T* +zpq&rr5L^^JV1cP7KA5ylf&6rdmqMDFP>MNH&mrIKm1k+OzzlK@mpf +zSx$5`zj7u3N0@Sy-;|#80g!_`ARBR-H;}nEY17A`e)b!8p-xaEFqiVeC;J9RA1HfW +zMC_ZWl-So69oIy$lhlsoCfa#V1!!D75^iXJ;Hk%AHLBv_dwGaDzni9nUm*#q4@fa( +z{Jy4{_bXf%+f`vIpozZ2SIWp6c^Bs$S+VPy3tEJkviYdnOXoXb#zsmKBgfoENTvZs +ziyJS|*L#&o4*N>vOc*f5*j5vyc_F+;U$6>}gp`c)fiiTqQ21W5%R&l4sW1LSzrR<| +zf=W$CrKRbGdh>RE`&APA6%DL|2AI;Ctr_rzXl~1{u@Cy6l;EyE^P-BnpQ#&>V{-f+ +zv1}YeOmR5#J69QdysF9d3PtU=_Kx2qB3|9q6bNLeQb$GzJ8(b}m5SF9MKU(F0E%(9 +znO_{NOn7Ph?)j)g3h(5bWmSKo^lDC;9@P_BkbIYXnuoei)XM`!KzFMmZFbto!fOqm +zO2(XK%6P4gv;X_R3%PLAcmHC$728nXNnvyvKc}5t>*cl`(h? +z7kbqrReZ6MU!?SiBy=thHrok;FpxeTixG0>UX?w5jp5zSe_OU5%#rZ|yNU+@qs@`N +z_v~gOwZRT{&Vq`YAPpGm^C|iY+P+T+m=Ft%&w1CglvU15aA&|A+?L?L!N#7Sg-1fi +zgpsQS^p{sJC0Qgp;cQFH!*M>upA`~0Jc4fPq?i?mTGo7JpF)-`eW((@!}xN&UPqzB +zbQ|ZijqFujzWo*c7~ppGVH)+QwFeW>pE#Ic9)j=$N0~l=5~{=irRP(oJ4CsWw>}Pl +zFxLE_!6=Q|2BB8}_it&lGGhc3a}($Y_<(sZH)k-M`a{<%#NU?UiU;C+0^oL_S&L&K +z2ATAgXTVCWCz=GSC}~}ErC5jcIUn^r%;Hh2k6~bU(LbiO|8IY8XQ@ +zo*^quY69n!Xn6V-dY{*$jj>hhbi9tJ1os>FjB;6+6GCr@yIQIw)e?ytb6Q?e6f&7a +z9zYJsIeutPz)K1qplUxq8xXUND2rSKxaQ0=B!3BAp +zqW>P(`+&DQAY*` +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 +zLm6v6TitTCV +zIh|KM)117%+3e@q{&;sJWIDJOKz}?|mG8HhyP~VO)RYbibJ}rufsI`E&Bm2yz8B-% +zwXaiDCtlQF8Am%z9C;+}k{6v2V2iU3#av#hOqsH7lH`gx9YPV*N{BKCtfEE<;MNw? +zx!q`U*pl6Uk$u&)o*@ixTp+8$nnKyJy5EUogKa+0(L7Rs+YRlT4F774#L3;948*A( +zFO*FT*x;pF->UY9T#$!$gf>u(PePt`92>^Q@s8M_0m~#<+^j1$12ZD7f^G;ZxjgF! +zNB77!ot*-hv~G>Z%UtYyJBd5RmYlm0p`VX)_hRSW^UiZu0K1_1{1_bE<@eS!>V|13 +z?H7;Xj70&#MZwoCl +zoFfl?I6w7yzFR1di|ZN0sj?aovC_P|rXo3IH=+z@*Yo=D?b`;PD|{AlxOCL7x=qW4 +zY}^#{d#yq0*aB``S4}dxWxpx_4(jkW04uL9vWrK}ii0SRqa59~Lw<3cfVd1d^LH2@ +z@|b_6h?o)J!Zmjv@*cCFpo*2bIUT?m^j2j(LSWDpaYpl +zw3wi4nyrf`->D!iqcn3?1QKrAw()Il6C?f?4p{%>Mq`K$KQ;M#0K|>k! +z4O@c^oGL2j&>SIu{Z!@&7~bYl9@cL4TPR_3f(783T_?^WWpw0IXBK=&e^hvBOaaX@1P(R<1G)I +z#nvo+X+^R*hWIB88JzhV!`kMqyA76@rJl7|&U&VfDXX9nk+jd=>MJygt!%-2aiUkv*O>a5;gE4ACEh!1-!b&)4v`*)q}(IzquO4M>(abH40rr +zUh&X)3HpS9RWgXP0%N4V$U1oK8ox_VTv)W3AOZ5^#F}Z8@C;D7quv6KbLiGpX&3@^ +zNt#>5b(oJ}?UkDE?IEcWH18hn0F%y(b4X(L5sxx}8k$>%Zu&)SqYXynlz&G +zr}`AiIA@NEUA9v`lo}W$h3Zzq_~&QvA5ai9gELUnt|0=_A;D{30C&JGut=w +zg)T}@d$EL+TCb2DE~`@S5U1u$nwZv5coanC_ULAums!-8{l8{yI$0C#PxI;U;xpGdMgc}fI +zFuQ37g~1w!vLy)|=TpDM#EUn<_|^m7KC8K2CiB>9m{Xi?+t3Rr=7tpCy#bvE>C%okK5&l*`G4OBEn +zXB+c|uB@3(pTyeMCHzN4fP+wEDP5uh2@X1ktbY +zlvaQgKascBP4S4sJ^F(Kk#^7a9mrJ!ak+EOd%a0@s)DLEXxl;RY%`lKB=VfIlg?Vu +zgcE%Nq%4l&;(G>FLo} +z-}`%$yW@MqyLIGt|MPhLie#7JXy2+y9G3^DXClI$IZTbR4Asa{=SR- +zOwMlSQwbrSvgz&zxqdoyDv|B{{4fr!(oJfx+4j!r@)-VjYE<1xJ9qrS +zwQmmZm+8E_JvzI8zFx2It{!d&lgDE7GFB&_=T8ayFV)>PRoPZwW$dGGfREq-AN{aY +zBuw?))#*UM%;#<);u)7YnuRS13)edIAHaxzVlA}*=O%VY4C!3So=4z5xnr$u@M4l6 +zg_SFq)Hd9|`tt1)`br1J;qSLKnn54B(Mo>N_|1Q+m%HfnJq9@I*(!2t;p+54d$#ak +zuQ=@<_FB}{)ftpQ#VHNw)6end1Ym1->Q_pg@lu7u>+dVlJz3Y?_MXb_FN6ypy=Yge +zGSm`6NBVA7wE3r!N>#74*FAUrMuG+>z~|Qf^S8J{%bc2C^Y9Gt7WRhTtm4I8RwfcB +z8+DJfl66Mg^S1%C0t*okI4NUnwy%NkU^t&}SHY3DjhT>5&GcP*C>{3g_3Pq|H+y0- +z!o$7b`fJ`I%drDJ$A`Y&_jQgQKW|oT1=abt($Z@a*@B>d42~kb!VN2Wd1Ra +z=mgM{9qp;RUEqd|RDh)~pr%q7H>JJsZFOps%sO3Pfiu})EJC(3NBe;kyd~L02-%fM +zwHiI;5y6^`m=W`nIipHyJX*hxJ=tk;y1ENQLG)Ten1JvgMYEYtK+Kj)$NesUBG}~D +zFl&zfD|#Mw*WBS62VDq{Z${urnPg+DFv)25rBw_Z&l-mc%;;>MQ3H}Z9Pxr-k9Iky +z+FA#GwYA)c&&tJikpYlz4+Hq9`jZIp%sSJdaP{B=H>z(p%bEK&xO7bvs>(=SWB#Ik +z0NKDC9nm28J{a7r>q;5B^~y)vcY +z-(Z6kwDCsfkk(jj4dR|?G|NH3-V~Z7Skx*&Mi(A`?7^@Tf!72}oxd!v6y?LvDuDKE +zBJ7$$w~GjBVGw${cc!>J6UR%*y#B7at)l8jn8S``h{6#;XPkk1H2Q@KhTN|vV8IiP +zvJOt58k>k}nw0J>z^IDCN%sYNYWmH!>f?SuAK+rXpaPVKx)}_(cVPI7B!fTX +zgY1(=6DO0+@MM{Xr8Lgt$k7UDG5C^bmJ)b6;JWN%_@>pLdt$_fsRzu^H_{={r{F6C +zUE_M{9z)rih7E*JX-Q~h?3g9?#_}|2XAln~p{WsR`P&kYeMa%d{mVt(8&*!jgk*0M +zQU3?q{%|FRXyWmU6lGzT(w?-k=y@H^IzCD#VU72*dQul5_LIKKlZFvEJ(x; +zwhgKN71;;SyYYi<9|uH~UZtK66gwb68JtHIwi{@@0cEa7K!S1kry@W;4q}Y`VB5$% +zeu`3g9Al^?%=O{|BvJoh+podY%P4t~5yPx}mZFl?|+s4xRA8gyi`Tt*K8Z3_+j +zVB0JIfo=ExgKZak-PA7q2e!TQFKk-~oMsr7i6+f3R(zX)$2af3R)5@!>G4wtui~v18TD`#DE^h@u*UvWYfgE{>Aa +zP;h1@6FQs=IhJxwQu!Zjd(ZGcux%B%zZh1&|BG#xv?Uv4{9xOO1v-dw|6to8D*s^H +zQPv(MSi{rMNKgNZZEIy8`{Q?#(XzY>|6to4K0!r4*!FHmmDCTmtpKpKpR;Q%%9s)y +zrOFoKt^_EWkK1_7h0^bv=z!TJS%a4ELf0tf2nn{2=@9PO)>>LVz1=BSs9y^=_-E9Q +zxoig9jhXT4}L!AI6~=Z^Bc7v!?A2dk62M1qx`i}CflMyrA3a0)QfYL0B%yHr4Qs0Y%W +z>_Yy{SBS<>uc~tuxbkhGI%#@=WgFPT59mfb2-@2b4TJhh$%3opzb(l| +z;8@P;wyKP5gE2#1UP5hpHj}To?CtY}TM0A3zWJXQtK9S@8^r!d+|z#bcmHPwZ}_8U+dm(MGAE80na)} +z{>%7`w&wNqaWIx1TK?g(ZXV@j__^aUWTs)*=HyM8YJNzZg@yPJ_WuT}C$kL!9uvh4LuS_Z2u +z(D(B5WMldD{bt>jYLD%`1Fx)YCr#$lE^m*O_SnKxzHcf;=oKDrrdk)mN2K|H${(u7ZrDu +zx4z}4nvRadYS%oez#aDqMO`wJ=X+HS9G>?amh^L~#zVfV>77DcJ01$>{_u|vnc13# +zGD9dySsm4-#oKbi6cqV=F06R8WPm~N*LqR>3j(cY3J&8}i&xSV&0_*nAifEVJ=sHa +zSOYa=jOB+#;W6c(ThrbCVA) +zSsxMiQU4mpz3uc{evl-cXI<%bUBDnCaO%+Bbf<%BA661`^-+9eXkJ>`ezJeN3AVm; +zeIQrrkh8^Dl{K_p&38H%G0-FA;d$tc=hc6{jjn^{LuIm!0GS<3#!;UVRaa(?Sq>>l +zed~jVS{x=1GFHFb>?Tw8NVNwb%N6z8g0U)EEZ%TCoUc2Ys#sB1*GXd7%W!_b-R@^N +z)kvEe;@{o4V4IR|g<52>4nXLL#4`>|v$a-sL9+gAJ_})FCUsPgK;A-<5h;j_Y*G4Dp>F{d6ox +zA0OGHSk)#A2U)v|=h*kDbhN!^l9mb4ko^=k(^;}KA0e1rXiOY~SF1-A?GPr3u}P2+ +z)h~*rwc@j$ppygJI6gO%){1QSy?4h!zl{2v$6BpJu*<XNK>^%@a3!d!u*8dHAJeHcCI4BE)~e)7 +z%m`BPuB_L(1Lp6k{)oF<47X(5FfV*2MARpWa1bb-Wh1K>6qi}+p+-W{H3C%>>1Etx +zBDhLQ@ujh?UbgY>%ji803+0XgfITKsBu$|AAHurs{e+@kvl%GK>eQVAAgFv-i&+Og +z;WQB6uZUTX@lIBWw#~D=68v}>4c2oonSYB|VR>>}>$y5vhbSeHBrWm{IR(_Gt-puj +zQ89r7jARTW#s4O5`h>7&IG`$fBsg0JqJRROsb@17C(`gBWZrBTbcfV7_GpO??OSV0 +znJDJMxHdX6N$tI58Y5Lg2Qdo6wWyBj@st$17}qUxo(A-U)Y4T*oiE2IFDkTkYxNc+ke!X$B|ZRRGk;`Oj45yad4LCCGE+ +z+6zf-D83%vvJHE6Hua5?EsUmURHd(gNH#BBm?^(25pSFlLQ5|#wD=f@&AVF;oQENk +zqj1A;Ww$npL~Fbw&T--rDt+#VuUP#DumRy*@~^S@8x%Ew1g69FE3R?)ib|T(Cb52I +zkFKX$=w*>@r&V}b&Jas^Py!6j`sB6~2^003)dtB92VSYIRqEjm(waYTWT_Lv0;sJn +z>vjHlBEAki7g$c@T?`g)4ZjR`6tgVcda6s3i}G=^JbBSLRA@7)gY&x^OE~ZDNr?s* +zSogptKZt5^ZG|&jzkFA)iWqH^NBg9rdSAZo`Mz(?!+NPvlaqj1Mdsh(;MIr6%LL1rv2+&S8@SVtx0TLUR%z5k2Qux%|_nYN*{(aD{f|LfV~Ack$~z6 +zEMEDz389GE^hk@os=4EPoRLtqNT;yH`%`~YJch+6_$Ce*=()4 +zcJEJ0E^G+XeN~@merB7Ge;A(*AvpzL^H&DEH{T1jPQW(6?%?tz3;c=CYJvk6pi8hG +zc=N(m5lDLR9}OUF4!Y6K#%#JjC^vPfVFT0g2cfmY)4Ja?+rJ;WoW^}24I*u02KR=< +z38|Jz$eceNl}xS@6Jr+%FqYidwUVK>AQ$*_ +za2(Mzqk28Q62i!EfXOm9L?{RVD(eAX6AzvS6cY} +zf8@YJ5uXGG3i~iN*FE=Itt#n1Db{~3FF|H<1Zh8xj&rQimuVfahfIx)XUtJsaVSLD +zyj1W2P<%9XlC<=VR_HI0PS#2p+^{7eUs~S8Y-+{_RDiDomlE#Woo`!6y$J^{3=zPo +zE>NdSZmE-a539{x%n%Y-Z!UM&Uo^>~={4UfDD?fRcphKIPh~vDR|UogL*0}ZjEk03A&b)lfDy@9O)^EgaG`Rw +zao@?ES!nbSa1fbd2}%s!{gkCIPNAa{sQzjNmRmUelF{9>Q5rj&5y>)3c%f2_fLFdY{aUtqXC#0RXJ`BnB?AY+1B~I}a&Z(QOgjW4s0c3Ep`6hrf +zs-lvT2hKtF3C!P7-CeApnj}N}HS=O54m^gIuzsK2lL?Z?s0>)|B)SDYw+2pbddX!N +zT)a7Eljgp9zDF0Q(39Bx+}tg}IZ*k&-+9jMgX=UY>eKD{{^adF`UYlMtAc#f{bG1k +z=vkJ>vJ{wq@OsBdDg}tBtW&tq)|f11(~9H0L4%U-7&^U8DLsWx7pQ>QA4~_G3PaqK +z02F~D9MWqex=mCZkKuK%M}fH}mdRZARO2BK7H!nMi>fW0@iTPbtFM1_{Pp%Ocv{6n +zCMCh!+6!H?iy{S?&{PX@X>2H8eNuXO8)?Z_RpZx)nJ5U6H`qrds4B~}&hQ&^xYh72W +z#lXnk^#zNlr53EW!w<3PSUI^^Fx2Sa)m*1ym-gCXHB)n5Bil@xku*ASQ)eh{ +zFp&DDtF^mmV0a^2F5*A<3J=yxGunOVNinedQr?TVy;0Z!%dzSn8goREbBuxr3l^)X +zV`ygfm>>ZhmCRSpWs%&qZ7-BawP(7pCja?@KXn1E8mdXD#_A@gw2 +zY3y@^IUM=#8>h@Cr*8f3Eqr1}w*~MA8v5@)dDe3Jm%fDGE +zEngBa0AU@tp}5M2wJPqEL>pej-+v%5{~A;=0RVL_5`lG}?NbYR@IkA$95GZ*U7V-D +zUzr61ub>%a0gT$07D?lcePCE!Y?~M?M*yKU$Y-^OY%SOK%{*YcnooQig4WdS6GZE8 +zc7QPz_x_96=2mef1jmSp>%h~@Oq!M?O}SUhGu!)F3=PFVy10jlYX4|JGdRyPaVv(r3ayVt +zk#wCu#ldVCJZ295QVxcA_@v(`F3^$CSo +z(Ps%cbp+(HdkzrTPO$E_wxzjXh5qD$*uo^}u$tn!AyAkFhw$Aq$1FpHrddoguINdi +zEM`{l5YeYJwMI1Qo(|SDca#!mrc88k_5zDo;yE5;2M_FS-6rb30bNJEMa6|1Fzajp +zz*ZWCIti3mAs?yCd|R9?{BpdKFM>K}K8#6={=GD-cvF&uy-iV_#%Jl47c28l3_R3f +zM$QI1fANPi1h88DJ2u@c3UbxS%wx`BYxfFit?IQ4 +zF3ki2NV|Qcog-x>nr>M>nIA^rHai*th%~df4_OG!S)F>S2{<5(;Hn=$dH6eM>xtIA +zKsSKy%#`3Z9cjWV4ym5}A(zP$(sx>qE7u%249m4_ZmrXE7?TuXKGry_)w6f?!Dez8 +zln_iRow~HI8j)i#(SuXK6pJWTq_Jx|aL<*x&iJt9G1SC^nG0)R;G-(b1~j_}v(l5K +zqcmRz1hVWIJMqVCwyuajFEQ{EwlZQq$mSy*iR`p8M+8#nCMp!GeWX-89uO)tao3YhY(F8lNpD7gNfLl% +z8ucJnIep5tylYPyd}7>(q4ouQdI53R^$vagijaHc;&fR5WBNT)@`f&Ad2&N@X#KsN +zHNS<2&7L>xOygdYF;A=E-m68#&b257%&d~9qp;R=MH7Y#lV+o7y;HDe3rPeW=C?7J +zt-xTdb9aGwekG-boD-kFsW +z${2-pAbpT9L(a77q{?2MlUmVm&N +zq^XYzg?L$J9fHz%e0ysx2_|Mwt{i@Ryokw~si@?+Le2FtShvvopZ<+p;Ymbk06TA1}rIWKGwAYz{;!4#h{U+V1Ca6(e1f2-)V>RNs#=~~y +z81Ny)mTgVcdtU5x4SwHQ-=EG6kd% +z4geB%sD83(twiOrwDS(2!ScH!DrB$LS9BAI4jS@^MBxk1AMcX$Ma|Bh6k!>FPs;mj +zf_db^_P3U4d$nLs}!+p9jf7`;DhE=op=rSQ;&sM>&m_nl4}H&v|4d`f&50%Q@+q7joP6 +zg@r9uF;9~!MWBXyMa(K8^Ez{^QG@yziW9J$p#v>U_Dq5pIj4%vx+@HslLfY!*IT}7 +zNj${Y!~u${ZL62L+=$SzOuQ=U13&bMH@W4dys)@7R(J&RjP`RZy!4BYk(6WuD~De) +z(q2|3-L`Ex@|f4N*1C;+w2?Y6;LiN|5zuTXboB4O*13I2 +zpfrgosEVJdUtJFR-AX!Yf{#zn`JjRgyHv)w2hL1@$<0$j!s@fghZ=7KnYCmvq!WxX +zQV>D$rK>>Yiv{`v{VPLM5yd9v%FWykBCN=Xqa%xKy}eLSuK(P)g|+&&3YDSaA%~YE +z`amN{6sW6t0EK}1FW1PK1R%XhT+mFshh;Kx#>Z!O8$mGxk|ZVcmDy=%GAywZNRQD4 +zD=+&8{lHHk<7yhAQ!Y4v+L?1|Mls`=HKTaU+|@2~S2n954hu%ows%Y|DiQ`&#{~5A +z;b;6nJ=U?P{1isp=X6&S;_pZ>_gN;9L_Ck*3*~(kzR-dg>KhY{_5zkKs6<6F6PC~$ +z(dXVJR`)0$SdK@<^=T(C0+o2DS4McTL?{V>4fSN*s$q6ia +z=Ke^-rSnBhrB?GqDg4W+-ED>E%($RO$M&G$KqEMpMpJTiL@y}5}7L(uS +zHU^XjtUbeRhdj@Oyps8PV>y?hEbZYh{T4r?*c +z$SVj&6RuE^s}jN-%g~Iu0uHm~hcv6T%TlUf_`lq-NrK#Y;mQt$Gs-WVq7&iQF^aXI +zfC{4p{o-$RN03d=TNI2=5$~4+tNcw6`5iQ_>0ri|Hd@VP2sdc=60`{3{|qDgL_h9g +z!JjX#1j*8^jKF2X_wWOR*T9ZR#sv(FuM%t{hyPi1vo@^Pd(j|ZG7M5O}ELg35)WQSSs3CY{vH*B3iwJP&Yc1x5FZQ +zt<5u(*#wG&eN4c$GM)oknnq39$7Y(`qjwMj%Nw`hm8X!jtveL38BfDqNM=cC*nwsY +zDVA(}z2DA3XsweFc|EiIg)Gp!qQoCPX~m<~pxX#8fsodN3Oi`yFn?X4$v4aw#?Et;NcWit%Xz35u8T +zl&D>jq8v|mK^U#Aa4AZ9@s-G0AHi22i+m5@@N1>2N7$qaK$?Um&aB;mQFs%Q +z#}MX}unjf7=TuogfzZ|;ad3rk1vcC`xSj?=R?|MDUd~^C4cAcx%yOwo$V5RB4ipWrx60i6a~+?L*E!hNhRm4Iz(KU?AMU<6VSUh$9iB +z4h)*|`*i5vOY^Y15i5AgkJUWZ4^sUqCyPHz>x}=&uC?(BUA0roJ3(J4%s4e&M<_BD(gujsc1NohYq*8~{~!cxEpu +znd4!5jwFYH4gK_Q-B4{aMZ6)=ug!83!_!H>{F$taQWh!468602#Tkwi`~eARII=dh +zYNoz9X4OfZiDi_7rtZxCpr>>FwqOSa#b97oPKA>;wPMjn_3|5yY2U^iPI8%1UK_4% +zTRW-0fUG<vj3r|PB(rbP`)N&H9 +z1ZQiE!NX}xHmh@4UmRf2SuJ=WJWDNtW<37NV`=r?oEO9UQuxME#K2~WNxXU1S_29Z +z-PMEXZmb#s1cHW|t^J@EH_Dv7VbNPl`zJc-ET#L=K%5#GTh}W5h^8je(pslX>2dWo +z6U}F*ALhr2R4L}+RuIT8+z|XZ(L(nri+N5qgC8PpAS#&-JD7e@JCo)?jwY5Q!!4vQ +zG*-wSS4T1=cfYtF;eAgDFLiVhr@)xY-dZeuKjv~=UKXW8m@ +zV;gq}$I@FWP4ye0wWI*ax@jhJ5E>w7eh8`;B9%aN#kY@QQ~xozwWFh8XRQW+42n7sqj`#_%>{oB`PzmzIh +zeQ(So_tGk*;FAe!m-6ml*j+iEq#{WP9667boc5z)3w}E68IZ{Q=~B3V>A)Jg)sAVIgI93$hMQ^K{t%Xz=~fFj8LF(8GLh0 +z96(@_83G$E7LR%@S`k&U1@(|hi*y6;WO_sb*S>nWEUZPN)9sIzAG)tAp7EVuk#NSo +z_I%2FV@UWbafgW{r;qv5jPq%xuH0lYTzO(t2o4;o%LF5C)QGsmQ-w1mhv=Q!?Fc;` +ztBO(iZXO7Qd?E{B%Ehh2Btz91wj7w8@M6|>S6x?9x18&Jl>oFbj)!rW$WEKU5;__r +zNeLjO{*`z;8$*w5@6}4d06+FR+i@n%0+YxX;}1q@M38M+_4w=X-&B=#WCvFF-p?^D +zxk_GKGZ^{xs`lc_i814`RVfQMkw}tJKRINA=DNUG!UJq91kYDlIfX4Q(twlH!Sjj= +zkYhl~LLorO?K_5vy31%nu_41Z5BeY+_%Mf^0@W*nu-HWp;#riso&?STf614=#a(mB +zwaUnIEIP4%7*{+rodTKjc+?E8Vc_+Jtnx<>pKdD>I%&A8%-rJyz@*kcgIeXEt!s28 +zcL2)^0Ap3*9;FXqqXd=@LKh#lztt)Npx_^F2Y?A*UN68BbcG@0GX_-MiY$D7uK7a_ +zNdv+(qSA079BC{anq(>es?TJ%DUrV)08Rr@zXEYih5^i7qxT|1K2Yg-~Y-LkT*?@2j`OEv0 +zg{{c}xvJ;E+y=rK+n>AIgs>(_B>el-bZZV}2ub612V3aSDFy(d-#IRXAIT^62O*!1 +zyY^QT7Xf}K;!1N0C#E?@;yEd1;c_F>veqZMA%JcR!Y@0Hp6A&?Kx&5qTdaNuieTHT +zne;7O1z%!VS7{H7wf!GIY2c-+Of?DI$%YDQu)!GR(5)R>Am4?pd=%4`lQ_Dmp>_dy +z_l09@`&#QVFEa)5p|1hc`LjGst13TE*M^wPiBCq?{qu;4fQ=^x2(VLtD~U0c0PjoL +zNp|MFq2d|M)4laAWWOy-POwEN2(72z=ukYyFH&)oBcuifWmGb8El0VYc$YAX@u0n> +zMssaZy#RG8O>K^l7AMY`VGy#{pHi%^{cFOOzz5`1m7y4~runGQG+iZ}mUo5UF`HDn +zlG(8j6k+)GOcRl;hMv`^Y}N_YS(--- +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 +zQ&rJRz~Zts-8x*w#AD6* +zojPZ5)>Ix+e}TY#4UF5OdJ%ihQ!Z8X5OFb6nk+CiFh8=ws|fk)WVo&+UKWpN6Au@h +zC8SZtCJ^ij$yg$_F6!kJN0wfO1QQNca}At$_+&UeP{d81&!33gu`#}J6KikFxjEIQ +z&BUCYJ@=Nql4p95y4cKZBvEO{O9Y#QsTx`Y$n&T3Ctq!k_pPo2uhZrkl~Jb`5d7$k +zi8dl)yFBExkdv=(riVuUP)eX{b7)>Qm9+JnK#4nd10B)^JxWxcn@Dbme$Be<0`qbJ +z1RZ4my5=fO4cm2%3ZGAP-OZ>wC}Mbe#3p+b`xvtt!eFGAel?@Gx)8pa)IXtn_>GpjpGkcyi2oTxk>)GZqNiZOo4A +zQaaOPIu{{0!Lk{Ut!e}MaB7yT@7HHHR$oepq7~3Q$wpH|)pv;`Vi7X0C!dl+7n_e} +zve66(<-YY2?nBE|wM*>}3flJbx;^f-XEz!u7^I;eEywM+Fwv%2m>mT;>!Cg=T&vQ* +z#sW}~2SPy_XKZi-TuI*28O@0eC`C{s1lins1l<~y| +zuA)ZyS$c~$pQ+8wg#%Jx@G=537s(jmgT-2oWXKlVjdSP`pI&hIWU`sAakbvyoxbcJ +zhInAg1~}h%kBn*>v7*fC4{+gxB*u%6u;x)DiQA4QPwC%;`6z2T^*PEQH6X~;bj_lA +z)HYT7kAHGCBbOGm-G9|wh>ju&37F=KASNr6Z4uGwa*l(?3qhB)B?+&+E|rysKf;Mf +zEsIwQ8pTt1yNu|8|D-o!#5>F{Pr*=+VK_M@@g+#qj2`6e-E#QQ^d5d*HwseOAB>Ksy<$L++Vo#N7K$KUi(Ho%;i-5%_|Yf^r2H9x^wQ^?Ak&%=uDN127J~fITrY +zv$(Af^WhJH8)#qa9+K}ZphJ7*aiQW9Pgg;PFis<6jH;pMEglaltgf5*0G^0j`zn+5 +z$IhndcJ@R39{1ak=rZ%@G}OqX51UEAw6`}6-ZW?+#0?fZNE#so-*G7ezNB0)P{GQD +zi?L8;c~flCHh7pMQ3(m7uG@7;mu$TeKP2^j#t4B%uM2?-%SZ#GWGeNrL(GhbK>81n +zSIFWJ%G`2gLX`7BKE<4Hch+KS}q=GRct +zQa-=YKt|AwKKBFXQ8vKXS=J=5)9ySCuCJw0P7X-EpJdmgx6`6tx4!jC1rA)}VDDYS +z50xf*+B4z82)}Z2g|@Jo1(}baQ{Oe9n`SE99`+_hoau2Of!jCbD!|l|h5I!c>LXG6 +z(C5{*g;&$*g^6Y8g7ee1^_f(We$Xzp_n>39@flL+({|3=+?MEb^2o_r4cSm9_to0n +zNX#LAGT9y7OHj)4XMt%RknS^q=IH;_sugiI$W)8IZ2p)rtSrQM;KE^Mlc<=(=Ce_X +z-{#k&seH0ewe|hEVt6+>i8^}~UXXKd!zoP=2CNWILtKd_9?kKQVR3>)MRC-t7uU8? +zo6J!N@ND|JT7yHxwKy<16+M{8tGiF(gZu`}4sg$zw+;tG&?!~W9-a?EU#$~UMVGI& +zpDV+TUuJM@{taq}*?xoC8T$W%+ViOY0ks2$_}MjI-2Mi&f06@wtqbA&h9(J%)c6LqT^0WasLeZCfd4P3jcWN1sGW%k=yjs5o1=&Wi$e*A`3-7^ +z!}&!4`~zz9eS_LY0e^wo2*Lk?+TtbOptd!AEaGlnqPgsxyF9`-sGTVHFQ`2k>9UdV +zH>mxj{tasD0senLZI-`4?M&TL6a#r9?_d9b+Lc56K@PQd|A5+naQ`o;?ZyngL~R+b +zK2R*pZMOFhsLgxwzd`L9{r?4OyEihW;{OF|2a){?YCF6B2h^6Xst>q-7A!WDwzbXu +z52!sS`VXib`wysn-0*4H@eOL{>iWk17u4gvO;m#s3%7);0PDwXdQOss4YU +zw!hRjsQsf<*YF=uo9Z7>+e7hRP+MuRRvEo6*KQzi?H^G4g!>;*8$Zmm$rt=DP#b~m +zA5dH78`K{E3)CJ2|1YSG@fWCVC$Qx84Qh-34Qjs_{sn6HO>o@lOOY1;2hMq< +z{sy&8>2k`w1S5t12DJx_8&-j8o&N^4{U1Ok&kMDFW_^R&$F2W>+O8{Dy|zrRhJS(D +z;`09Le}UT36Muu+#j6?4H)u-#g4#^qpf*lb4BWl&zo2$15QZ-L@3w%5%~0fTP&+mD +zKcMz|*Z%~yk!8L??R>odg4(=Kse@#Hf!dyj;!OVqwW-#=LG4zLZ&16OFJHcM=@Ojf +zFHqa(8`OqqJ^Qftv|!9Eg$%o8aL)nyyqDpZ$DZ#cG8~oR_m0sn_x09Li4o +z2Ka6W0twsn_gZzoQFH-sJFta%h2TK(9FX!^yox=i;TLYp@4HMRFQv=ENSW;m4QceA +zMD?R=5)&89r*3MBH9=PzNK^w$vx3d9f{T8nPbHc=TC+IgiA+!WLB{n7PuugUr!h3^s! +zs7d#@8(`c5O&fbv7~M^Q!!9e%Y@tyHX(HOj>an+T&j+!}ncpTABsXMCJ%9sG8P!ARj1<%0c&+PmosF??W)V|? +zlFQ>PBJRp$l6pcZr +zKF{Q+SeM=+q0*hxh5Dd-pOwRBraeNhCkMl{*6k9a^5C4Xwh?9&$T)Y6y~}1r7qx$h +zPB+xcfStPExVt)$P32f&=1;$ew{~$+V37Jx_6B&)BpBI{;@(j^C{gP0E +zVqJfS_^B{<8@PF?SvFXh#j=KG#(vtPuZrN($}oC{h7gNp62LGBa|l-c1A7-WqWZh* +zbNb>s!^&oQ%SK$4d|()X6zl;bc-U1sV&L-;@pv3jw>#=q(37&MQSx{)^qa|wLQK;i +zuAIO(Az=DO(X(chVirqh)UJ*G?Cah$^plA51c=OrN2vTzmA?2&P<|-!Vlm&cnUm88R)kstjNiKFR0#PxaO(ntOV#36X{; +z071`%b!e*@XP1Czx|iZ59E`FuEo96>G5k{un{vB@#C?mCzN+FnJa*(V6W0?*yt1~g +z;sjldfwo +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 +zM1u@bHP2GrdWAOPO1b- +zBz&22;pHVh)qA*7838SX)8^%LzKb4>hvMxU=%CFgGcS` +zKmJbO#*_3i;H{77`ncHvhleb( +z1_z-e!+hN?tK0AOFu`b?rdYY!AvrlWqKT6a^pMeI?wV}>?4-(0r~2$Jow<3gO#o2g +z!Me(CeQHRS=~gBlaS9vXzH-%R43Z#n^G)av52mN|yfBP5j>VNNN#!Q36^N*;Ou{#- +zKo<=TD|mh(;xal*A2(IPN+ea??0%A1hUflD-c0gsE9p-e1eUWZ(C(A+Y}p_x{P`Bw +zqf6i1RuTN$Bt(^qy>qhRTw{H}DAU<9(&#W+wowsVvWGr7)YdN7Wdy)*l +z$ByfUg=k9RW3U2yuuE=L&;X_B9v5o5ccjf#8@eOsVFD!xUd^II${^a@ +zoA{)Fh3Y*3jD!9V`e{_{+EiGA8Tlj_uv$#UPfPM*<`DP8zw>x(`}px!;=(YK`0fJF +z;MLfIC<7tnHYoYm@amuUBw~>}*MfJLTzcn<#rMFipP!%IMSTJ+>L-}8 +z(Qv=cI<^dv#(GL8Ni^9yWDjvdHt$c*`DfjlMVJT>4%xK+nD`{9k9uZ4_+Y7*xiRu& +za|d$E^Y;J#5__*-TpD7?1=3XSTlOw^scr}FdtBv2Pe!!Gbu=jac&c|npP^NAlun?6 +zK1V^}2(_xmM%n-1+MK!SK3yug8|d|eDRv5%enq;VE5bJ5jsr6Je4Y{R_xXmmaX+ba +zxZdheIC-9h|AM!H#CiULw?!dQCOX3O)vjRGsCzJt_TQ|2P82a`6}nZ@SbVu3j{&X$ +zy}I0~pN(x;klnr93+$bSr1oEv?vTI+c0C|2-gj$9wos0@`Mc9vmt+4%lcd|xbwq9? +z_su{Znbj399HP*natOB3|~KMHHUb=Wt8Id +zr=@LO+`V>u_o>IJ4{U~avF70_g+oiONtvVl)fqp((L4$S{#0qR$y0XhkpTbBF?8ShnLCQzJ4W#yI?*k%pIkFVM#o`<{os;+) +zUSTb%cPh3zmdL(^gMM4X#naCW +z@jmY8mG|C-zs0&KBDu)&)&cCxbPN!}6WrMY#a6)R)c8a&3c@}pb0y=|vUq3ygVd>2 +z(#>}qsGSzb!{!>MqTgnH`{-OhFXel_;e7CvA>tTF^Te(+tJd+#_QfTq{;uUN +zRIxk;D`fle|G+-z`~dBeo&zWqEjb^|x-q +z3dq01`Y<~G#QfGH5)NqBNAZ3LuUV8W?^_S5^YPzmg; +zwYF~zk^0Ol;PDVjQByj5e@ESMiI}@8oM=?R*9MFMJI@r{9m(%?am-;9aDgiAc584&#n{mH;3nXyt&OZuzDeHNRXA!GG8 +zCz+Y`60y&(Pg|0Ue1SHPmc4{0uok@CSuwd0du0=r)CTp|XgZQazFc}S1QBK9s&6h%@3@CNh=$3*DLv3nwsKaHLu?N@|U% +zUZvau9K5YdMj?e8BjSP#T#p2Pg(Ive*qsKQrp!6>@OV~c)Z%HE;UTcU%g*>xB*(k4 +zM|L0bt}%)(l!RKZ;qh6?{w)96uUv1SOq?%N`vPgcV4J(`S*$&VUjPZN+!1a^0Rf5p +z{y5EDYgw?c_qGiCt9(KwabZ=|zr{{`zb#6ESR}YNM)v?&006k0f)+DJCiMH`V|Lrm +zD&IeIvA>%4JfV8LEJ0o&7i)moe#8|!L|y7)*|YH?o9lYqFkVoC%Z!yG=X@>_b@W7Qj+l#GJ(OB<+dx%JN$ +zQ~EdTjEj+P@fUbDzS8Rc^C)Xn$m+2eNp(J*$+0?5l67HJaSLBs;BH*QNkyrGmhh>C +zV9E3{JB*Nl(tSz)N*U#zh`sK1{c}E!PK8B?;Iy^(j$CFqlLUgH&rrAWczpO&yRVjS +z0*1aXRxlyN9l6RhJkFcDhQ-pk0MpW8!NZmKW_iSRbs +zwl|$q4gQQG4|}umL@Km^$iy@MT5Cdynd7*3J`gOI+R3EFP{5&c|8w-_D{)T*oj&af +zzIyGB^exINMhgg(7I1bXudiFAnZMT`FJcWm`yiVHpClLEmk0i*=kfIe2vxh5?{x}s +zN3vY@WvXf_1b$dA%&B|$+mKP|8UWdTC4IoS>7>Rj*Ao0REv(aNL_dmh4Xf8%ygWLE>b@mG-Eve5-j3KpQZ%_o}1sWnt+1_0-gA` +zFiT2)=B+&1sELk{=`G#+=SJ&hxZ1csdgvKzwC~na$9!uNU5p<56^jhDeuc$)V;OYS +zCo*Ju0Qa^^8}HK~1!m#^J2*M<``J5d$e~IOP61_QDVfK;-pnAPMU}R!D#RE_Pc;N)n4eq^H8M6VlQSue+5Y#6eN_R$krgy4pz_Hl&t#-p +z8xCF%XKv=CpGVtzh$m2rDyoAkf-1jT?d_13vE`o^UvA_GzaQ%*;CK>M)5{Jn05yM& +zU()U6dmU%1y%7-x=YIUeUWrgrV}@RX&Qa(a>mwV_LpLBGN$*Zli}A$jCW;WZj^Jt2 +zF*eu=Y-0XpJTT3Nk`e(fyfM!GLTs#Dgf!t~0k%GC}#_s#X$aCZ^C`>0mQcHtaP2k*}qvP~Z7+3qk<3 +z)iDlzOzY>jO&S7~Qlw&wpHIE*VGq`P=xq{c;FXt_2Ik&1r+V<8oDYQFp7$3H>QdRk +zK(oRBQMWaI)$LId7MTg)@o4UCTDUFU6RJCZrqr_Dz4B;~DD23w@LhKYwWblU*K`Y2 +zgMv9(m%P;d3FsuCp}pl5i@TSg)-{$@wmy?P-tJ>SRC+7@7^1k#+5O$5^$QGx2j@&Q +zF|}o>$F21hbTTON6={O~heNx9o4dCQ{Oi{JZo4bTJPvgp9O3#lhK8VVmWUNrR{L;c +z#xg&R(0h9|=fUOanr +zv{^OSt`(=NR!DGg4JiCmE@8MXa=LT<-A&iQaB_T6aBBy0`;+ebnHorf;D +zSQ6r+GPn!kgP5oE(=`GZAaV=w6f4n1`$ouf-+BEHE};ulNo1c%OJ~>*pT-RR2UP7* +zK_GaIOB#3ugnH77aa2$n*o45e2UCLj$a$tv3^h1BcPar!BKchd-924=5x +ziyCWl02-kitjy&lF|$y2jk^ASQZg&P@e5l6`=L|Eg9R=7i+rMCT_F{5d~P?j +z`p`zV;@CWR94PY5T=JrvT}R*n4ZM<2g{o}O6m@u;WM@9Fqq$I^N)4BZ1xb{*- +zi9UIpp(0qt+i$sVV%q52+)TV1PkAL|)Q)h8| +zpBJs1@(3-7=^PS{xZ4vi*TC~V((40(Q(w^x6>oKow6^XgY6$$kJ4v)4Lo7o3*`mJJ +z9RYlj%pzK8!%*`dqI+63t9eWIlMqLNbIA^yA#8h4*0L;H`bBOPOLOJt~58wtzFAQYy}OS +zM>iicdW%>Y)n5m#zvT9-vy7PH#g`pJvq}$R{1IbaRs(YUOZSofNl@ZlyN) +zZkl8vidE|~(izRx-N=?8jAYoWw;ZPZ_ba9F=qYa(tTA)cYJwG&;zb^$FVj1+M)u(C +z23%-TKJK}3cyrhhZ~|_^Q>fX&`>r(f#|>t7^+`*?joBa9Cx(2$`+tx*0k9)r)JktQ +z*T`wg`vI!G%qdl1Hkex}dS>5JKJ;y*So-;{mXjxSn!uf`4 +zl@|d97WMVpO>esr@hnp>I0IEuo`rbjgqc}arQj88Doq4^`+UUBIr-c;v@p8n?AOTN +z_*C{UC~i9akBLVy`qR!!`S=*K{7qof-!tRP~&*%b%Xi)%wI%2JG0 +zRcRO=G{N9DXV;6j$K*HY4p;E`My6*CaNB7c2&ad~Z +z(|Cb59Att4M2t*})6UGsEgxMk!o=F>qCqhY#@91K=rsot^J>zDNYYhvZ^~KhMOt=~ +zqaV#k3q$j^yY4QG92uN+ByPMK(;)XBQ@+gFQXaxizm_WQ&$k;$Wgn*NYM9tOK->@# +zvT&R-sdyLg)w`+`Y9aWxeZPrdhowU9jEHw@samDE;8^wSwZ~RLS6{Pex?T#hMS|#q|LsD};K;9i_A*iG!njEaz)!)M_TQRO#t6fp*3VOcr;Fc<@*-eM?1q*JpKfRS$CuEE!Hzal +zq=FdotLj8VkQPD}7&1vUy$bK-XoZ|Au5!h-?#zIYZR;7f58y(T0-YoP?2jL5P;4q3 +zr}+?>i!QksE<$&MH@!L0#Q+7_;M#Ia>!78Rh32xe4jFvVpZIKyw(SiDvs;1dU6U6q +z&jJjphDADAD4rN*S8?2G@u=(sZE~>`2TmPNqd#pEs;sM3aSYDUe8{N1MP0#SM-lTG +zE}9xfBP@83{ByQTId$vuR9c>PsD~z<{KXy#72hTv3g2BJQ$4*k~gv+4D +za+nbT3GAY(U92MUb;lsLYdmbO9Pv_@ddQI()Pd@-FS~27Z203`^dxts8<0O#fIf)f +z$i&++hlZ7=9q^ytRE*_KqwYOXv-Ln5z3lL9rSt$aiQV9otTfi^{%nG#+mqGAQqcYf +zZkO0^%c4j$b2%6s07pryL75ahEEZB%`q&fzB2F~Q89Mw^IAjTL +z+sckYa35U;g%*d+Lt^lN@&sExxh4=iFJMYFL@VkTMIe~7zJ?fQD+|W{5#IXb`}xZa +zjU?#pfcJCL^SP6RTl>wX9tG(8voqac52D5Z=?e5k_hSDB?Q4J7HwqwhH@&2NWJXD= +z?{a#zH>EDd*TKHr1l%Ba%`*%i0q1uuNi=8X^^XWgV`LH`W+t~60QILtssQPCl?@2M +z7WpkoW-q0KhsYKDWpm;3cGk9ZPhKG65TblsIJTiL?V@e0Fymr5dP}2WlvrLJuNDp5 +zSunJH_c%FW(IB02q3+`S4BA&jD&^_TP}M|>2G-|1N1IpDltw)4PtTPz;{-rwT)hGp +z8zK7=+0Nr|mW(k#p`eHKG*tR)_8C{TlxSn__!rz`C)`7eph2EnWvec*`$1mL0G?Nn +zfw|BGK#t6lY0VxUuabIQ41oUgOchs)(!#p56F2QlcRsFtwh2CFDp<%ne +zp|Y%cO2q1eDu&4+f%kj)^>3{HWz3+`L4AA +zjgyI#AUp^lOG&WEEv`zVlD{p4K*DjaAIb +z+eY>fg`_sDOmekBj>UuZnptNzfwhs+;+f`%UwIojwWr19jhN(D-Zo9IZsZ|H#5R~V +zE=%-M2`;pni>M9!kjIt@^mX*B6zQoopM1E+3z2m6{ +zT)lkXwNUoIWtn}H{+N7+u29lmRvIu39u9VQKm1_eWZgOxu+HZot=sZvZCYket(Agj +zBOIzn=l-7OF()Y}?%I?Q)YAer`F;MK-su4_rehs`?sj>f8 +zXLieZc(tsc%QUb1Z;%(Wa^`~Q^5VugBxWdD0&OL#g^y;ru1tK#yMk3*HA$UBA2P`x +z%(%M23WQ3{qsms?_Srutn{gr~zs{!;b7E1$2$N9auj|5ar}O`S%p5hYaO#SK(DG?WYyJ_iv1p|@87^gw +zrVyq8Eash#;R$A3OrWw(e?-8l=oUsZaaF`fWsWN}po0S_1;pm#pSR3WsCHO{T3d^0 +zpRt@`UHYeKmcreb?6(=?i4~Is5&&XGN$5<(<&1MT$Fqu2TBnak@H#ufR0%T$HL$UV +z;kb%A$^fpHv1^7ma)t6C{QP$x$t6HPSk2Dh4ztQxY(I~*Goi+pIACOTyrLO*%E&cI +zVaJsPrhLKjIj0jAi@FtI-B2FYW7buumnIzLrie1N^owgMd{zco9Tav+z4T?$uim)# +znPrFKjQMVfQfM1!hd=zM%pbX!N!1+=^I4ItHbE-$0y|qNM7#JGTSGX@f9IfbJM~GJ +zym}73kmPKGBIT$%hR%yw<^pf50&=1lP8y&t=L>=0LKAf(p9>#4)|;Q+7Xxpv>gY;z7}+5658DX8A$4+WDvyKT9C!<=foJ_$*NQBhBcOlYnr6rV(L^cfdpQ6 +zccp<>_7MC83%xftKzF+_zA8y%IGXoOdOlzeJ`_E!{w*_()Ri&=&VmGTJ}$ +zcB)@M9qUil#KL$2Ee~CZmjR*mnUt#GH}C9{{Bo0hC2vX3;4K92+_u1;W#^NSXc#?)qW`IRAdT{#N`NBf&O;f=My5Mi??`{_xnK_sPV-v;rHUw$ea< +zs-M7ggkqwo6dwKb(RsBI9Y38tsZIp1_wUV7W#ZP|RX|Z1iaPAdsSJolv7|Gg`QeSu +zMV?MK?!ugUHQta4 +zLUG_4gTm4z!4?Tkg=BM~iO8){#2i91gM=ut^@D*OD1LYcGVx{azkKK`dzVj)04HJu +zAp~4thfutMQX>n}6oFxVVvsO`Zq^w=f?+`ElO)64d|YWza7R-A +zmB?l$@krhhfngE=o`wXH-yurF;kIf!d>vjvH|1j6tbW*)3U9XSz(TBEJ4hPRQa7&6 +zWIQCXD^5e|YtZo{TsAaYt~zcQ+{giW;>Jb@)$5$&*^)obWQj_!Xxc~$905hcf9jf7 +zh2R8PLBP?`+6`@Ju39tfrIuR=LB2snecThzLb*J;1Q({Q`LYz*0XKGB!9Pd$(-R2r +zeJmM`a=sBHwFf^Ad%}~SzS=TKBEd911%$|rUE)z +zHDW#&%pYsR6K^ikB~r>%MRB`=bsH|<&D!ztknaG99FHB}i)_2Nu_|$Mni`QTY|Eix +zWNA*@uwd~3qWKZ(+Vf~qfFe+qT8J2|eUT04Uiv&Rm_sUS-!UVAz~>0ev2fvmx2N*g +zTBX(pYC1`^2)RtYDkxP$Z50E>L$~(^`s{7T!*W3`HQoj28m=VnKYovHz&TKt2q|%I +z1JPriRN@`0uFmw#h>n$@hGFEgK@bM75Eq!hsui3a0W29xO+~YR55>@PU71g- +zI#?h=*{&v*&!!PF8?x%zkJ(}5t?Vy3FD2vIQ~IXAn>ii#qfx0HmjP9DG>PLqK*j>9 +zZuYi@UN})|RC)k+4mmou)(a3+3}!`>i5f9~c5R`84f&oKW_k$18d)A{#p+D6f7cW) +zAR?Lrr7Gg|#clOz5M2MJrkTA?EE0`hvDC@qcxw)5$$2#rwG8Jl$kSRPSlT)_5D6d` +z1Sq4VZ)X;I#H+>G5R)e)LK9752H=b!Hq;$k5|hOXX`&u&!#8t%Lgd?ubv%fN@Isy` +z_iY7d(5$G9zzO?2Yuz=^Nd^Y3@yCp`_m-oaw>;7&pD=*E(VN^dA&HiZVPPDxzn1DwjlWi0Cr}b5u!KHzG7(zcM6&ULGZ04EN!X;HMh9@?dkGw_p +z#qvn*M$015v@Ie9li29q4QesdO5t!T`Y4IO;UfiMI=itHdAVp{hPcbTe!p$>Eln#o +zeJ@vb_pen$e6?jobZO#IpcQd@Kr5kWSdRtaE61*I0I5Svh+IQO{20s!1^b_Qeyu$E +z;~>D+yU@8YCef3p+TBakI+W9Pexfe|>~_TY>~DT%)K*~1GqMSm5^|SRk(_`joNY0H +zLd^SLH-+W1(Ed48#9oT*2ki>eCV6kjmqGT}<5bD)b5(v3i&xjBSk)pzgkxv6eT2Zx +zh&8b(#XwSVcbi3d-4s$bxtgigkuLNM#OtClS75Z%f9G~?aNyvVP0&N7k4@kK-u@_! +z;~=UyBTE5Gt{O=T72FktKsK6MbS~9BE0YcThsSq^4cxq`Q&Hnr--cl|}N4@|;z-6HIVIL-W +z300oW3XnOq4o?43XWDU58ACx))085`M*7^!1l*|eg?drR?1Wx3aro|9DP|Bv5z2iD +z_V`UhZa&B&EB=`ro823ViU~R7M!dW`YW=| +zldA8ij6)%#uR?AC6d20R)sisn@${*#?TGb5cq07Rimfl{} +z2lilqEIhCUF-N8azHDhl1_v<%&2z@wFg(+xeNGBym7Ad?f>{;U7)98wA+-;C;fXQaF5n3~Wl=3cdL;(-dwg*sXa&BT +zSjuB~LOFA(O)%v+?WILW?qLTA9B?ShG;opK8)B;tav_`v$$mHb{(17j8Fa3w?Eehz +zzyE7+bN(9KY|oK-N_KTuC^&3LpeOSi?R4if;4l5o!!?%tAvzOacuFKEj)=w(HIV)MWgCC6Ma8tc3fxhLw+q9YrM +z+YtWDiE>j1mNILU`7){4EqstobCvhP4g&yeJ0w2H3{CrRd6mJ6Ps#)%zD; +z5IrOY(%&52s5`!D+^N&^os3v3dV+tF%AQNF{c5_J5Jym5eU6#oRDpffUrTOUqA60ouC}+4L;>v02zLZn`c?dJ8+gigA +z=TI@587V=1I^x +zs;Nx0_rbpicT-a3@c$s(4OXmBxI?k0Ga)W?{~W>3omv&t4Yu1@7^OCZxyfAs;$es; +ztofNO>A@|1$BH(L+sEam)(s>3dFinA)yZ!sa_r$BYuA159sfu|9)<|^e9@*HPJFl? +zsqJ0x>-d_EQ?$@L5PWoKF5%M*odsySRarP>)9i376WQMr(*%=lHfc{ITj +zSTZ1>WGDTcpW14rOEOGp5MB$O<)eC>eJ+=Mh9}k1WhT7a{X`&_+5&4@{;H+_ufo0M +zC9a1@LddkO@~d!*4_!LZpVLcLthHIlGvoq?zS@`K97*5J$(fI1UB3vmoUf5(Ne}yF +zhiiW1cB5{aA%`gleYNZ;YH{ImOoo^1hDp2m;HCX4+?5tGVkZ^>_U^~PaN7l5|G&bG +z19may&FlHAaJPR7vN?&T0d7_UgToUUmUtCc^|GYPI>G8St0^vZ(U$a?2Yw>^Hwk-l +zhc_CmD!(VugViRxyS2ILv-CA50gD40d$_9=m#BOvAPjmRDbQAz+m;veph>c3cg3(x +zP0_@RZmNs= +z(~G56zx?jQk>60Vkuy!QZJ&YhMrc;XxtYS4Rd{KVUV@J1qYm~Y)|-{qf}x2cYKhc6 +zYKsXfWMeX}H6~iqxB>?!)Y6a3kA+0}6cU8+^TfoXlJX +zOcRil8`9TSSo1@n?V8*^(a!kE$;$nJW=SfdimN^pK@4z<5?af0$X$9ij7&{YSacVd +zBjEVHbXinmjTf>-t~k3VYn?pV8YTI49dPN7k=#2{&7IC&i@mz +z5>jHt&BC_MNv*2}Wt0YupjeEVSQiXQTON*>{BITIvy#GqK+gx2A{#w|<9P;A+T%Yz$G1M$ea|2M9lhY(I +z5R1K1;xid(5HyBsw(ToL7#mldcQoKqyx+$i0qsF-Y%%9rJ>-b6dwk|0J8Hyi=xb|Z +zYkRycrC`Wo|Bq +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 +zpBa!pU)lf`-#1TN +zvcRgTHpm%PRsZx4cd={GE9M{&L8Q_5*W$+GzVRUV`n9+v0!D3ybb$7eM-Qu<&h5g! +zHdG2J52)?Qy2}E!l6 +zI2 +z*yL!CBrebS#|~Zq4I0pvO&ju#w)EtF+C%+zu{oE|y1)KDFAfZ;3fdh;t{5hh(3fI> +zu2d7BUm0wD>{EqaeE%sDIjfzG`=Sr0)>8 +z!!>;?qW-cwRg5g!dX`kuFvsBp)u#ft@BT2f8}sOlbfN7jXr;u*GeyeU*22!V%|+&3 +zbFcj@s8Q*)>bg|5~O%*$BqJ>3J@ZVO&TP&QIQu39n3sfBV4u}Pieb!zdX-*Z9>8vHawhV)8X +zXZNZ`{hi{w0ar!*0RgD5vTWo0V*LX?4l7{r< +zrMNQGARFy{`YOIS=xPu0`V~J{zm#1C6?G)?!TNI=6j3A_9ANSjqSkUfE3Wzl{K=VK +zBpOv!4K?w5`DOF1gAH+xIW?{Ufks&*l~(O#bm>QMk0gMBD?gyRi~VJ(9xhg%Xlz-( +zuo6O5u|gOBABSV{L4xJpgHC|JjwcEWi8n-lOem-}jOBMbaQpBN`0w;0Q^|XN=aIw4 +zI25>R51S%CPH4CyV3 +zBDQ0AE64rQ_KCx%=EETJ!ZT=gAeO4)LhX2l>d<_!%E-y))9U(!l3(+bryd1I1X0|ZC}j%#0`tVGB`5z|%MB(#(ju%0 +zR1G|;LQNPQgPmmh^ZojisuzQ6s%Sfux&=}8Po8|gNZi`bRkOY~KW}tM@X5*kQCYnw +zhY|}Awdb*JPGj62;YAn+*A!*|=!_+7jfOg1^Q|O`N8-RZ^y66R8enmW6>vQ-1^l0L +z2GEi`Y|cWB6=q_=f|#=~Bv{L0c$4xesc}(54{!?ca#h?WHtj_r&gO6G{_iwS1V;X4<5dRp&G#Wb +zDeCd$f|x4Ot-Kq)CX4=vr880jGn%tL&6qhFCcRFgcJ7z0med}YBMZ4(^U6Yn4jJr% +zEPC<-vu3@q9yef@Wnx;&lmNA=K`!-|>3zASk-C2L`249*-)1Mfo`|1hgSRvibog%C +zZh?CZU}}&~4Y|I9$$^(ECx+$Aa*{?5$I&~5u-%$fPLIa|qe6vEIgFHK9s`z(VQ(X&6e+bv~EbO$kXwkXnOx&;e +z9!8oU;^Sqlf35u|%`^kQF$p9gCHEg>?Sl}E(N0l(rIf#Oo&a^cqEI)p1FNfTsvG>OyYBb_uv$MJ(aB6J9Ip29J +zD%@d^YB3;e+d57hqD4^Es`1wjo!}LtR_`EjqTx6QKKrMe;LYO~W_`A2iw1;XsMXewe| +zgmR_(zD+bCZJodf;B+v?lRqU=ZuOBigLcaYw#YmOehU$RB{!U2~$?R26gEiT<+g!N!+UJAT$(X(>_}^ +zEC)lBw%VwoAQFH7y&3?9pw>Z=(EgJV87O1uD1JRBgaRI(-K$ienrw@{p~RZ)>Skjn +zf5{Zo+t#!>Y(gE70SOssjhRV_!bGQVm97N;H79NsMW)Rjde|m!ts>p+zJB}@AHC=- +zIMW`@EC^yW#F&PmhD2bs!wH^5gfu0CYYRgSmb|eMdLm`2V_}O@1eo|%FLRAd&$^6A-GKHQsD&jnfw6APG2gAvd0VU;m +zX+SM!i>hnr$Iz>v3VJdJgQw}U{ZxzaE|LJso@n^wHLas?%(oBEF#GZ6(sELC!-1r; +zKjFEe0efveAy%lr{u+HEF|=ZiH*5*uwXzvLDn&9A{fS6F3<_db7T~K8=ozEffuX{-f8EEduu6gjABU#e)?vqsc3q-Gg*z0T3xr-`2ZV?kT*PHSDZ +zPccLbnZ5>vI{AaE~7h_F2oM#Vy4lzpF(4CC6!RPZ!` +zR_Loc={lb5f<*}j3Rdv^X+B?|YzQu^m1x7zS9|VEi +zztGZG@;622Z#j13S=Ip7f00G;*G%pFu4JZ%fM@Z%G#xEq&KmwR+cfU +z{k~Iu=P9SOq57;zeLA}Mu} +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 +z0JcfW{|neI-26MRU5oZtU_0xbJ71E +z*k*C3X3GB)*xrl&JFvaL@K0bHi|*fm?Glc^0ow!r4X~~McVHWS4C45&z;@BjKY{I> +zKY;Di{~6fEQu_q96aEKa`v>PIu&wb4Y{wY|g#HO^U;hQzZl?VI7}z%a?||*d|Hr`g +z``H}E#Xo^WIWussz2C$KF7`Uz~?{2ka)_xU-FROmE`5 +zzYDT9I>P;oJw&w~so6m>Nw$g+LFG=QkPnr7Gd~aPJVY32fPRI=f~Z5=o{5_K%v7W! +zwL+4|2%{wti^G|sTZQ+vhdjnISr(e%M?a-DBdg^gxugp7wqc^b-J=z=V43#guNnKT +z9k-$BYQFelcYS_99e?i0xDM;RFO~Fl;q`P!vCmTaa3%)&@SuM@Z+x(Rb5sl8*f9uB +zbmW7OZcBFcSut+n(jt}e{WwuwYC?zY`R*JLJ1{n7^HllkITxn_cjQ<}>|}oMCJ+a< +zDpwrrrc|y(o9}joJ9K{eRJ>`96R+Lx&J**u8=voT*p<*XxMINbUJ=JnW?S=hjWMqo +zoa1@&F>MQy*w_)+)|0H9e)@0s=v8c%`wl!K<5e~c!CSXb^r!tdCsN8%8N_zVJ$mYb%>^gx0hc?zdqSBGSm5@8;2fYklh{oPIlUx8qvc46)9T0dNd2-@Uz7+0Hft +zdMUfLE|*Y8kBXjR8Zho9NM$agS0#k@9Ad8*$*Hu?I-jdO<=DsOr+Pa!;)ir9KRQDX +zI_;DD@X`5&kqCYcsHFq>L;qz>W)>U~@|5-1&GIukvR+S1#CkVmua4*X7gDcJ)5a|s +z4|3o{P$wHqi-Mm*@O`iNm@4;%W3@!Dv6h)t4;exBz3|FCSaE&ye5*DIT9>*r*!TLH +zIGr9p5`!l7^r=Zts+H4&0Q3iwjiil1nrsVReMsyIcG$f;1M+v^VLFJDTfU=`xt;2+ +z*VvEZq~*)%TAvxNYaxzMfCRiq^9(fW<1>jDV<*%w(oQ( +zUCarv3Jmq~uL?LoqDls#8~>c)JzNh$HUOa7_@h#nfSm06_Cf4rQmGYP;heR6g?{DB +zI=v3x?W>lnTJJ#)j42ADuuH6G2-nq`V{Bahsn~m9(b9g^GgdAx(ar89+hmoUjo6Ez +zE-x#{hF6TdBuZFuyeS@VvQ#c*)V8aR6@(X?k?-r^bk9okPkNWH)wW0vqNHdsdb1O5 +z6zZVFpF32Y8qI=K$_9*C@V=Ai(v;6;@oe&em)sAdv}7SwtzO(as#^g(Sd88=Q}&r8 +z-%y04X9RoMNX7Y^v~|n<-~)=#T!SXIm>+gK1+0`2y&*B|H1Sm}N?JG13B0>pgQUMC +zzb}+LvLL>dbDSC-Y1&~Q*7a3R4)ELi&$;8>X->ByR2pKV&hm&#-CmBa1JnBn?eepA +zWG~>OUWALjO~^u-ri$3Msu>v0#uP4H8-v<5o|S>aKK?|`S!5+Z^f8bSvv0hmc| +zGJ|Us3R1kx4kq3ShkTbWr#>IxBLG(hi(M +zqE2Z?9AU8V(U8}5qF|F3h04;mUzXD3@BXAvL;Ff$DM<(>;sD{Nii2q=?tlB&LjJ^trc%4+0?}5umqdKj-}L2)%o)WlZX)|_=YfD +zxj>mLNN@9E%9Ec45_&ZaC@fKDb7?UKHd9Yn(6kJH2~e@>rg%_k()lLKmG>S)g~Yik +z8*rnivF@4Q{6=NNNyHWAkQIQ1ynGkzyiaTpZWD=ifa>_E9I?pI!yA_?41X>w3059> +zRTlBS8ntU;U(x{U?X8uPk1Z;4n%%a1r;PCO*Cfjs)Ij^DYFO9I)yFW?2+A_=YRl7Q +z9+$d$r>!qZM(+U|Z&T3t!%gc|P3mZ1`U8A-o($Mij{SVitdJ4<7k9*jcKit2#EZfw`xXn1o6>B?b_RN==_Jh&hb22(POxSsu$|>z=3O1b9;&scU*Dc4Nvhs +zU1G`0YqFcb1}o$^z( +zsFcW8f-?gA@`oP99uqr~;;}ATyTAe$1OVBkp=guum>f&EK}??NjNKO$H4HL@>W4lp +z@kd49xu4_LMvv?3aPpHLocA~qaS#QGsW1Htdb+@|pe#R&MU$4tUSm7a$r>A$v387-z##L?S19?|oElf#Wx@JE^_@H{4pgeDGlIlk6wGOPT +z49l_uR~aoBe5|b=jo9H%BYUnNC@Yzfp6tBd^jlxK9idg~QnMpf`qa0c&Qv-}GRngf +z;d|?j7RbDM?p6xP37#a^0Cl?8kw~5HwiP+Kj+^@(by*WC__b@%Tw9*6?=gX=S$s7C +z$#TY!{bd^2fR!Uw=8)Mv78$Xp;p!kXk+QFck8h?FBqMlo5f|2_wLujiGkZ{PD}qFk +z!9l32x7YYgr7l(&0huqRx!p-a){iW^9_z7oga0+VQLN1aSo8a$zzIUuSEbDP<$b7& +z!JJ&OBLhwXq3^cN%+Y&~952JE7J_o>1Z_I0ll1u +zw??Zq21@K|IMjBOP;$^(2w9GTY-`vtCYcbUE*H^MqmFs8jw5se+b0`d%qoyqolAAV +zg?UZYz>sddfpn22Om)-I!>t;xxCiVeW~jqBhGj?S`{p0btQ%7;$?kwFF?jd1B@YnP +zx*39XQ0=QRtfw8R?`^H#=pU#W?ZfK;#vIm*ME^?!2{dSyl8J!jDPe8uNx`a2Tvj7& +z%IFO +zS)<0mi*6n+t=7E|ieHuE46@O8*kZ_pL^$OfU!0pv+8#Qx~U+!qhBM&MB40%<~CoK +zv4S+NsHd*Xf6ngn(Y+if(IcZuZjZA)!=QrrFXS^P2~tWTgEksF4+dSozM5JrqqCIZdiGZ&{*zfY~D#*u_lM)u7jxF<~&=0l8w@R +z&CFGg=;rg>=EHL8Pinmi^I+{Um#`DL#Yi5d-v<6O-MTZGi3?qkdLb#8%Ba~g!}Z~< +z1d!=qhorU>`r+7aA8}###$O3_v#mA?cYrOnDOmV|}Wf&0K;8nJ@#r!tS_}_(<02-=giO-{H&Lqoi-N +zh$3ta?@aalxJH=+d>(Nczw6x%-zb5iIPbAG37Wh{ZIwdo+_Cg*RT4LxeY&k)U0>A= +z%6e+eGRoKel}N6omlIkp0GyvoX~K0S-B;h%CSsw3QM&KJ34g_2<5q3W*M6!;K8glN +zVKSn4c1{K*JCHr!WjrQE|9aGtbDuU)*NFky7y_oOwqqp;7Zn{Q3p8Vvg5fGiccw`P +z6F1jeWfatx&C_DJZ)^I%C*EYwa0tNhY!y>M97~T!xm>r!Zoa#Kv=R^#UOA3`S!qB8 +zYL*T+wu=#+oBQz=Rx-*}qfDoXzBro}=+^9H^}Sj7vaI&Ip|_OiDx?)~^Qor1gC<^A +z;8?Lv>3-Vk*3fjA>N^zHS7|wc*2qao_{teNeA{}MxzeHhKM>tJt=pGXfDzb0!I1Qp`UF_3h6Q{iChdSsD +zO7#=mUk0S$ay39J17#&ehU%^5F@IE*9T2KsiJQX(g}2)gHI#erYlg +ztdKU4TzbD7XpM)q636aULWgR+urVvA +zA0bMeWuZl+V83>6k&&@OlnEn!39wWS~{4A~jbnWn+sG%MB!i4grZ7hoMp +zPd^2Z8m6UJGO&TT?!2JC0aQ2ea+?9E++C5)`MtYAC_PBYvf3zke8xr-M@NHx+RaK& +zFN=aepSdM`GI2bj^VcVY*}M_?(Ah8=plWbuk2J77ID|&EK%%>{*iD!)ocC^mInt*y +zjjZ*}>yb)7kd-g=Mla(m)Xc+1QEN+|orw+LbEnoGV6OWeE|02%??LXNr`j*!BvqM +zEirFaU>3vxMevi*r3zC)Xqs&EMI!R-03sBroh+vMIFxZEWo;{~m`-ahRUZrJRyrv{|J12TaW^0zw;ry8 +z+Ez0bKO3{atOpsAo>k{XMAi+lM6*UZ0-G)KOVo0t(gz0aHF}xg`)bEZAbd;@v5m9$ +zt~|fWH9zLjB?JM5I-!t>{EK}CG<92?BLhc%iqhClW>O~ai$4gbdpAqGEc!#kY3f-Z +zcl2lYP;V|1BfoEnM^AF9C6u!mRq89s9oZc(W6gm$W%LT`15oktrk6^B{UCw?eny>+glNC2%H&HKz0Rj8#k|MjIet`t6t^O5=hpuh!ED{q~pc9 +z9+R;wy&5P!gvvt1Qe3Q50zrZn5S$2G9W5*Vq8F8cozrI3)GX_Vpo_p5YiM%R)*W%0 +z5=+8Co*Lgd5UNXi$92*pVsa)|{nQpi= +zA(7&>YhB)N?W;jo1Zh6Og@DNhYURjk5QxLIV}a8S)#ua-2u}JpT>kcl2g>1OmV`P) +zDm&oP?(slpuV*L{34Ic!7J6*6ejojkjyjR~iKTk?<%V{pwQJ3<8{s2&DP0$Qe$%$* +zjrXw|RX0Fbv#glFoiC2}ejg*xAXc@CUoN{I8RmX>sE +zBK^@^KdVq?6h$Mnpay_JFj +z_A+{IWIccCRGmPnYAho@aZmqV)TiemX{=0vW(0X4%)fkH-Lp2hZ0s}1-Tj!2t}bc6 +z0D(!$GleoL%YAx`#FVXq?ujW?r>!w^y4K3qj>_fd`r~g8r1=}eBV%CHTe8K +z=|)f7J%8MIP=(P;(o8t479xy`+3)j^CKBYKtCbFF85*OYFyWl?eYGT+VmiwRR$_+1 +zW!{#z$g>Gh$Q_aB-IHARA{e@_T3NX$v3!b(0!5yxTIjb@RxdyRjKRcUXcvOx;%KS- +z9vx~LklGSH+tQaxgwO84Ridf6^$nRq8nUlf&epW2;)kUA22T%xl_8#H +zO;^jqcPhLu%%kyRjpSzekYq}=PE|_Dj>fI@$uMD^@Os-AT{UBLPO)Ovi10rhta3xW|<9^krxG)5+S}h4dK!wa1NC{-SJMhSZ +z=cRK?I`rfGg+v8BUoJ-|6-30K;2Qu(p1{t{gLA3szqFFfQX=FNzt>m +zDX<06FeI{uevL{b1OfllM}O;JkwGYu!#w4VI}>=!G7pJ5c$<<2NEz;I2}h4eB)P52 +z`3l`apa)MPuW17C%qr3=tl;0*UFj(f3t4quVFv=O&??eSLct1uP50*2zD~xkKj>h1T^HEIdCY{!jex2ap6xxTh;cLP*3SKgKpw+yENeu3S +zI|-0Tn~GPjrBIvoQHO?r5z--6`T>l0P@-m@7}EgSbr($q5j&DN#tGKaE4i%APh-e!+M*n|KjAqoiy@ +zf34JmAkRAI^R_38ODDq+z9RdPg2Fx=zfr0#D6QuNPaA@~BB-h;{#dh(5vC3U+8ePU +zF}BeAlTu*S;!G$y9YF|Ig0&cA`Lud`SnqG9o+r$;Fn^NN;#Slzz@MNL?ci`nDKmJlcS?&MizZSFaZ(pOM7tw=kH0 +zJ7eQ~C8e)BDY<*wenZ2khqmfVfpot(UT+0DGgUEK7(=^4Eq +z-xNsBjs^9+HPL#0%Au{vx}236z%ei-Qzk`BD8&LQ?i(T?glQ&uBL?=w;ui?EUEM4N +zHwm>;=?Pf8qq+k&7<6DG7HHR6tmg#3l;T8Jq&@=$E8QC)66Ug-gJG+q&& +zfj8Deu^$hzn=dBVkY+j@fmRt{-vZuKy_#Ra`8XW)js5fe4wkE~nUk?6QaG;b*hKzbVPp#R>tIsPKhkf8RH5gL*8v!)DZ+cO*j{Qa +z2e~aM;@ra3-MneW{%5A|x%V>zHQC6rf1o(`Y14xK~{dBc^GY0=MeLV7`k%Gf)Pvv6d|>(`(6|(-G8ps)tjArA@}EmR +zb1!AkGvQJL)vX+rmO_TKdv}jd>Yt}+i!AeNP;ON;!N1CpgeHSy5Ug>)fVs5V6gUYfpxMi84PmEPKi#UhF&Py= +z1mk2af*3f@UMpE7GCpni9%Q|FdIEVXZTOT*ECKHQDszYL;!ClwrCmUC8g2Bbk;OzQ +zX%r)qM7@o3>|mot(cad6x-;|pV7Z^VF)Tt#Z>7~cfi8Mot8Q$52`?!nhQaK5Zn%T0 +zcRKl~U#-XIXAGGRUwZc((S{n!zK2_^ASoyBdp!<0G&2|?5eq1eXEm^Oa}6%7wX4r1 +z3l;w(7KL}QkLepYJQdwZsR6T~5rCWf`V9j&)7Fr%aSG?lqAfqRrd3wdQc+lD-1Z_Y +zp5GB(eS#s1?m1b0b!8w^%3LRBItEZQdBCBbUu5zE>Yvg=5l2#y)t5kUecH1e9pTWTwF4h47TLla|9KbKBnDQKY47Mo$h +z4H5PYUugd;Mb{80Nu?0-^1DA2< +za~Fwu_&lf`U#qe8PS_*M;v(v$$qv@2k&okK{0L~26)b-Nsfb-Un1Y(tg_sli+wzK6 +z-b!}YZRnUMLL^Sk%)Ghyx>iXizN{8frw$xd`+vwoe&8UD{$37t3b;<+@q6m +zm`EXhjC;cX4mRnE(Rv*DgktK4IH2VNk(&l@i_qmzgtue!S`rEY)s?GY@v8y4L)$VV +zYh{HL=D5v)9v&>qNeg1DW1GETI3d`8)Vaud-b&?;VsV|fpR7akD2pVU5h#WbCKWYS +z!Bh)xWwzoMxB4AyxCy0QYo0UgD8#k>OhO61ZijX_gv6KVO&aWbhn28ikOI}Tz$aRb +zp>%OaW830;Gt0&an6XQprC#jTqO6w3BwQ~?mQ?(Vdu~aequ2wn;=~w|U5aA3q_^U9 +zjo~f@+exaQLrXzA5lkwF-1fLoH#%nDlTXx*^ay>Ag}dkZfm=?)%2?%kss+CJYmUZE +zOidpnzsfceD|!VU`!&uR*9crnNRaS=001fgeupgoGA10!4Mz*zM6&7c!Yt)^2jJJ% +zFYQ^^t3?>0`5L8+TbVv9{FQU{t2g}>tEUJaptao$bDRP2LrVnR4kL9IVN_9#_GI!w +z`&tX`>BYoCKrUYyi2VDeRrle5sRiSyO4bDRy|oD$3+7+>{Jv-qHUVSJ(~h^$FV)S$ +z7C*O`qOR65f26NIwMqlP{Dnm=448X0mEL6Obncc+Y;)g%?rC?Kj%bcY2$I(^6wy?{ +z9S(Sxc*yWcsTv-MmAmA&xHhW=98={VtkFD;m=T$M%XJ$5-Gv;JdRA66U8x~8Ppi^Yj~H; +z={i71JNm~X?e;R70VOtL${x}XVIHm}B=^VAc;YHFBuBP3F)#vdU7zbsT!@uT)Jq%T +z2T30YbG=MQ=dfr*DuPkrfZ7e=6x(_8_^mi4t>rP~Oov`Q7Ljagq;JtF(cQ6l#!32F +z*ZaXTyPDKVkd&KlB2wKlm1N;a%HdwRkNVcvsT<*kufN|NXWYKqI#`-TejPE50g{-* +zqe?|zrqy{eiW&mq1DeEYf2l3?a+jfZfWbZNWO@KoEFuHhR)QE`SAs2-@_+X9-kz$;Q +zczrFjpWukE?XAt=vZ8m|Jv7X7uk7Q}YED`PREU(6(gISIP7@({ndYDdj4sV!qGruy +zEq%Fk&+pJE6*Igx`VEcw{LLB%x>#KavO{HJD#gFF?f)45?z1S!J}KGIub6!lt`jRm +zP&<$kz=h?Ve>~K{H`K^}M7(jiHF_HvB;+Tl@6cbd-l*2SD`ZdUMkrHJ8*!rdJYJ^9 +zuiKUr6FfvbSnq6&|B`ggmx*3Xk5 +zKMQEIYZ +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 +z)p=g!Va*yyWb15#^x$!_Z7KBA{Eo!{G~*3R +zU9;w+;vQ|QNC7Om@n~UTdUwp=1>S3`m38L)@@Wjph*L0{Q)R?_-K06ixZu@h*0zK7 +z)4im+P1c5a5vz^hC2GnX?mY?ph`WXLiW)#bYa2A+%SlL@u8#PMWER)Z=|n3(N&QW1 +zM9G#Tzw_+d8mGiG2ES}HV+3EC+9?!hlBf$7kHoLtnye6fWUQ$mG3&CsVYfy#w;|>l +zvn;U)wl3EkMi>$3!}>5bPW{|QSQvl4-P@uu4~!Q}wQK&lU;Ba3KIEx%#rW$`b2sf* +zJ~x{iYeS5ff~9Dc++`_yRrcDe;W9R8i`=iSZ(R0H(dDdP5P_tqBw*CfAxki@ZjiYvr&4)x2a!22_rV!^FLD3(Sw$9RBBc5CPG= +z#u5IOCL4?bHvZ)AsL3Afpb;jn_Gfl<>>!-UGyVkXmOt}gZ7X+EMt6`W!6(W57;^pa +z4WZLM_JVp8ITrOzyNf;nU +z)b>Xwj4A8KrFdRVX?vJW270$E7P4*~Zku(_APC&pUbTwYbyzYo_|7jg1=LeiCl+zt +zC4=Ue^?D$yU6yxprxAI^vq}7Wb_7LMO&}F7ra*kY=+9kKtD-0afqV_Kh4eqJCZMu})a-ij#l2P&t%pP_V_1JBeEvm0Al>VS6&Y(M#@d1xXa8FVJ$daM4SuJ%j +zp)T&?m6+LznZ~~JjpI_949*aO`P9edTS7t< +zZQHhO+qP}nwr$(CZ96Nc&dfZ0-}n1xto22_!4Z#DlKyqDflRe;7DQ0vsSii7UJgXb +zy#R;zRg8x+$5-3+2io`h`-9<1saZxr`lx$I5TN=9jVj?hGQvBqq7*^kM5bzo91^Wk +zfagRo0clRV&(~n0x_n&g2&DUNBhTg5;3$W9qN3NdXx4wgN88?Ih!SaO`BqN=ksufhYp&pkP1B9*V#l_49`{azgWj_GG59>Sq&WZvb8>FZ=O7r?i> +z@;#`|U&R3m5maOGXD(p#^f|yNc_J(&Up!j!fiDR +ziC{A5O6|u_Yb<5w4jrDylL_h7m|mpg>-top6m$wT7bGR7lEvCQM1?Xy6uhMNyINps +z{qLxBm=mSy*@%QVJavrNDbxT{omFuf&(k~_R%FDb-C)p4^9>Vwq)HB@s_P=uwrdl0 +z#af$Ac+j6#X{MbPs#k%=LD!ifFe&T;-&>yR6kSSZAn~}p0PFkZ@IK~%FZ;MMD~@7m +zpitfO{)l(@3|)XXz@dyPzKqV*LrC(riG7hx0k4=++2B@IEn|N+u`aR^NgD)ZtTq{I +z396EO8;dLBDuX?xQswLdDzq`_>CRj3I&Bq?vfj|`rL+yDVV?}Y6dv>H-A%zIK(*)Q +z)rvfD9~cs*2O<9^^&>juULm(F*Go;0Y0N8#t)6AD=TuyY(29Vr|NA)<2lQ_$@I*!g +zapI%|X3TM;I<0Sl1&*j`i6pD?#93B!LoiTW0QML5X*=$vzEvy0A@5Yr2Wb84uk-GD +z!M}(z65V}v4Kk?xi%A_)jL?m1ET7M0t0=RNF(uCfoq_yxubFjtOoGLOKxusUR;?5_ +zKhIFsniSF2DQHwGhcCF^*uu@sqSwPt6Px;LQ|e896~D4&QrIvx#YuV+m@CGw!NGK# +zDo+8?HLNMf?2#-c`n)a&#qG>JhX+Y;tBuZby48TfNupG@K`T@C;Hx4dE6oa1ANCdZ +zv&om_sp^yLWflo^3U1_yg4nS<(#drW{sh(yQ?b-scQqgc)(ZOl!ZZUs-QBA=MopmA +z&xNS82}yOoPW>w=>K$e{xWr$ciB20I5kG&F_=$}t;{hF^?qZ?<(<7$pH;&nyz=TCD +zzs-@dL4KgDRqTtH2XGx|)wn0QnY!;INkd8m(3$H#I7s&-TAFbz9F!DPd@_5CN@k>N +zJjxILxVU{x*X>hAX7yYJI6 +zsh@Y{quonS-U@Gzf(5*>;it+zh0F`)Bew}HbI0oB&_9cwM9txaIG40yBwHb`vD|(+ +zC`oP3$uIy*IhwroIC}2!*nL4x7{!Gf*~DSMNj};eZa|%`%VTrUS4-{46@Ur>(|!6f +zfr`9gZ4s3z5wMTbzDnwtMO1>sB+#jrg;Z8~Md +znp;r-y61Z7;(MXx^-#+_2bE?PcFB5%*VEMM$J?R@rLj!U{zE!W8)gK$vNJq#)`Owc +zE!T7U9$$=u83!b=Li5U1OdWrzYQaimW2d}GfOlx&Sj|HTPV{`Vt`$hml4ARBCpSxI +zy9~_}cn{wcI*%d7!@0F;y_e(xZboMtJb1EvHnUr-*H$2c2++j{(z1)iec;6!ci&M; +z*r`!FYpmYW4XG?0?1JErdH@oxNQ!)iDfYwz#_30Ze$3C|z>U9lmx+$!-B&O{;@#Y< +z`1_S4^*-7P5Q5{Z%>z!};r#}FXd``H$1VKL!wdTmgyUFz3gj7%EuLbZtwO?yHvHkh +zFiD+KE)#c_haWGKrSnU)92_--ax(VyD#dI>K#*(LbX8ba0*baSH9fIdWhzk^Xpom}#d3;q +zAG&*H;1rjNc@;n4U?bHG+Gly|3i#T4kKBuMVaKplmWl4F_jasQjd8gGE&Z<_$ZwNr +zIm6m9BnNg!G?M-><`nzkwJ`Yi+}z4}@Ag0?kvm<3M;8Lsy%VxJ=fNHg~f=%3?JB4LA9YX_zJk$imcm2w7urGJyodY1&{S83oYsX-!c`9Am>T%o{8N%$Cv3D}^2`?{>XfH_k2&BAK6foi +zC}CTwTSSCBep0g>B|om~y;@8a46^{P3lWsWs +zQy^GIw{I)0^SIm&7M6i^+ox&DjOJJ{Z(?0Ed^jfo7t|+#)|a2-Fs1#l*X0J;yBodc +zGF;kLL{B2MZqzF30FDvzc3Tn!JNT!KRS+uljB`|eAXqYJ}0@p7Qs|$nD8*Wk@vVtUp44ZBid8*uX>_{vKZ4l-( +zku+I12eh5&H5Ip>dUe%u69_D!Yr-Rh)Mb%9Ui$o=r|`s(n2K>!vCS_nNNOe{xU9Lg +zA?gu>$Ex4A2n%p97LSYEiDDvjyv?*G@@rAR0{R`)5drr-W1l_WwwZgh9Nm}C2KA(0 +zq0;d9LA2I_4`19uM6%dJcbT+sk462w{k}wVfg28J;FIdX@HaO4uyZbG`yLBfLO_!e +zSya^u@bHCaNYNa$|F)awTc)mMqfPF5xH&D1gIE<1pQ5?y&XsNeQpwn^XUOH)GDd6g +zx>;|QnzRj_q`aJlYOE61pyp)ovU3K_T=+^7&tT+1>SL$_htWXFoRlFELdo}o6^dV} +z<_JYspe83@gZN7mR}$aryAg*c$vc<|5>w}8kCSHlx#I<~jyEs_r$dh#*yd%0(g~$L +z0e8co{i{;xkgtMUmG6=zH+EneOVOWwB1Xu^0#oN))yO&|wCwmrucvN68gJEGIe7;f +zZ3-q6O$&JCo7tY!W}eFWFs|F$T3G#>^^%bz5jVZ&nIotAk1MtH?nT9H?u%^#s0 +zuq)+7Th-dtWap=|X0$lF1hR7*S(JNdqal+Y4PcW1M^uG|6u$wL#c**zMG4r)pGdY< +zcZyN$_hJ6NR%1oUoisEw6Dw52?{!F+8~)2r+5eg|ZwtQpN7qwH$3P()eXVs&8C{{< +z0iwJ*ZoM(Kn(?J9K@WqUdJ>Y@oDOMS9SNQ=hKyeSpK=2loRi3C3l49&iQH~Cu8VM +zBK3XjJa5GDdUCetjjCRM^Xx4F<9+(JcyXE2tmCMFZwNOM^`ObsAVUG(aQt{EJ>Hx@ +z*KG4k?jiyj-X{zYlno?{h~_x_wT6%u&fEFSUvFdobOXn0`XooH-fK~Q*igYgWFm%N +zO-qqKu%IHesFis^MP-AJFUkuL<@Y6FF|&%HLG5IR=k!MCsN!`T)3yc^%ad#-*Akdy +zOxtXEj^O#Vt&sCzE!+^LOUUJ+miO7NI#cP$IlP5LlJxZ@qQxbGYy?CpFF5tY4W=Q- +zyXfk7D-Cp}8sfKE91D|hV8=*hiRgm^;f*n2*C)BE)yc}7Z|3PHGKL}QT}tP5yEQLn +ze_qFy1L6T2Nrz$uj#laZY8WciBD)x~T!8uf{#(qIt^U{K<*vAUm& +zgmuc(`UWPmST3Z#I26B0-2>2>6MH4$Jk*qn;Ca&}g^X;XVy=d^y1}Gu1%|2x{2nWM +z*VKnck=! +zy$bCA!tkL0B4+@EG8M8Oen>)rV4G$%$I;TWnauDpnS`O7AZ+4U^9ojoJoPv)hv)|$aDk}UnHMnp2wj@CqnnT&pYXSWk3=X(^ +zjD%gCu{|75FhwkQd;bjHQ+voE-R?--{&1T)#XzWH-V*5?x5XnbqPs-q&n$TCe~u(} +z##^3Zt0;851Z3@d2^FCoNhu=mIHk)CX<1)iGPyz9U%(jjSSk|Jw3Z`ss(~iQI9FT6 +zST0c+bdNs_Gs`puV8KCi*uq9vxP5Ak;9vRSk8)k2S}C`X$Es)KKHJ<&>8ZF}R`*I1 +z5@lDB+F>@i(H5>;JhiS|knRy-IhXBu9w*9a#C!Qvc&ouXI)&17Yg=#1+W2j+DtrDmwN<5e+*dK +z7gU{Q?y^jcg48i6+g^Y$LrDld`ZFY(Xh$OeuPFLY%VZ9Dm_NpY`epBvBWEl3cvPY{ +zK?509s%b5wY!l~X`I?iK5LEZazziPoo#DD286oDjE*CZx2hVY8DnaHDOf;9*2P{Q3 +z;l?ExjEtU!G;~|W-qgvQ%hQCoSA&f4Ug?n-AqkE!1Ma}fu>K05=hFUddFa{Y~p_421T$%$BWUY#8yhz#m~nefnh(p-d25aEZS +zjEhCV$%nsUStfK*=-}ytY|%E4GW5MTMJm`ljTO@#LSe{0p=fQvh7~{WCsH5z+2*XV +zAQ0i;9f)HT@E9rZd0p1yts%;txyEDUevBtZm~0&j%cq~~IuZypAsWt+)-|`bYU;0p +zbq=xm11gX@%1r)pf8q!7qM@a47KkFNy&VdA7%06MjS}&P7s@_PuTE*W$D2X|WAFl- +z)qpnwm$%D0$n4_TtS)2M1pj0Ptk5hdl{EsV1ZNdn5_@TBj~PjK5VT@PCzM!<+kb_| +z%8VoMDW$lPGT=AiM^PK3T!U-C2D7|Oe#npJe1}AtHT&FFAmXw|VqmgwM$J5h!01}! +zI^yGNJjtOJhY;3Plp`hq9ayi}i%Dt#o2izNg%LhfAANl1vGFav3z9<3MiKV +z3Bz&y2o4V@QNkE*J|oaf3Q4%0ftk(sUo;~8q?*MDi)N8lQJQ*PYad65Y?(>KG&U~M +ze9avxUG(-a{#T)lc%tFjnI1ztF-2pZV+Rlj$A8U=T*Dqk#JbM{AjKs<%uuWnX(ws3=a_&z9y{850Rq +z7IMS)Ht{os%pNg$?vj~irr|Rd^wWENan08ga~%n0X4E8Y7q;h@u`3@(&=va8IpQT`X5-E!IMsfXL}*wK)fD5%9ipAe73gT*^7DgjP5m%Y0g@VN5}< +zHEEPJx8$QZ$Z=&$*Iuu^~a3KrT_eafy0G16?9`ayZn9R5$dM3ob1O8Y4pewuPK(#r>-A*Do>Z0Isw{MCnDM*f{p?THh@SFN>3gnp0@qZ#j8^o@TcG +zGrl~)pw=dR7;%8;dM6cN9t{`B$0@ZgQ9*QG& +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 +z9uOl^NShCpPKR>k~R +zoL?NZS{=u0BdO=66y2d|JREaCHTcKPy+?ZmXqd=>akE{D0g*$?9qS?Q>#~yg?tM$ +zjMdRcg$vFwb(LLYS3+tJIi08TNcSek+q*-?Zcevl`X|?YlJZ>10iyf~dT;fXx=a +z8}>=+=MnFNkhryNdQQ4=llu6=ek5lUb?c3+)CI2e(D`kz763Ji-(r`pRyGq5?0~l1 +zs|eyP>FKKWNz)v7e-w&uuB0@)XCwcQ=U$SvxvDgfriV(QXpWez%RN@VsfYp-uAbwF +zSUC|>_&+?i*Z&IuG^T8us@Ib;9;T7};SDI@|Tg9S(OF>)NoFUH8 +zv82Wm+%QzcdpfVN?e~c$RuOL*bnXE;nCYnf_xE3D@rS)=ab-KNab*C1o5Jh{icQ5H +zrhm=jg`R1cxF6R|Se3MKhj>X@m~$xUlJYF>ijte1)f}8CLHLlJ2U8brGUg1b&syyw +zxU22-{2iBczCWtZ#oBtdrpm3xD(6ZdC$B}O3xV6@h?}!yGcftkpe!v&D1rJuu6b-J +z%Y;M_D3?aAk>k>@)AJNHpl80fuUxZtM%t|)9RUL|x}OmE2|>wlV%M-C1y9sO;%qGG +z9}sc(OlF`KKz|+GQH(x_%fQ{aZk=c&5@7o~02}0{M +zrIjWtfVvfuVcz(Z0I3E0NT5$U8{&yfKK^`Pa!erDY +zFxFG?e=DZQdPd`)m5%erm4{~e4!K8FA3 +zc0e!-x>Rz3BVBg1c;b;fH2ENYmIbFn<)@I9Ud39{%sZmBCgh;1N90CA{&!L6*{#k8 +z0TDK+OAQ+`IMhBp@{eUE>L@#&>!s_Qdr^X3Zgoai8w)03fOOo9MPrV%a}|I`!a2&0 +zOw0}dri;a0koS~5Q-3n2VlzhfI`1OBTKH^Le8{APe<@nQuO+b;?Y|-phMCkHunI0s +z{;|9*zlFi?VZ})FXx{@*`XA0c+6j>Ox7V=SAuzH(t$8Mtf-Fyay>9;LpJvc|W_%8n +zGD{ev%vmGDnz4|6lNIWAWGY=mDqGlp9*Seq>dOOK +zp;oVI9!W*Z4>9wgYmF&+*Vm>o~^K?vqg)62dlXRZIl} +zWeZYgG#m{|r?f$FDLt^4gFJZPD)xluDzBYmlVLW|O2nW6i)IAf6Yq4#4^7M@l2kmM +z-!27r1(24yFL5A?OiX +z1w14YO7XOJE|X`I$&;Hf0V6Acg=uM8 +zwCY~kXbJ(oK{&0R55{V75LkLnC}8r#MhB6|Q!>HA?HJN6dHM8HuVHE&vvAab$%N8Z +zyYIGiv&I`Sa5k#y(pKkR2LGkr9u*{xR0Kl`ifzGO5gct*@bKYZ9>|sB1es?e-oHyc +zPN<~Gha55)?3rYzPIU@=28IL-25Zl7lZ;DA>4V72HqGR`jjR4dj2+K`pi(Skk9<4# +za9>tAmNvuO4jUe``=hmz^s+eO?}X|=s};NGKrap(;knM!G%8XwY@2c(y7(iF8#lP* +zM}zsvI~=d#8S|w-CUAKVGX@Rr)8`_tV=+{<-N531%xh5!i7#1R8-5DuZNN~qTP<;j +zg>weBKRL!;rZ&5Nn`%d=?w +zz#BJ(fgA4T%D$2h2Fj8!F;k7JPd^O3-DF{~1gs{eT8OR`B!b{T}aCjT;P +zWFRIa6MJi98t)HGL@f}75DsE^B1b!w15Tv*FkG-u1DajrR5iZ){~%-_18R}RK#o-Yac&%5g_@){L44K4>n_&;q|xu@wa +z<(dO2F(3^(o@|;7uYv3=ixB-FCe1to>x@U7b-B!8Nz$VyJfXvO%56pyKS+I*>9E+T +zSbOWW%*Swq4*kaKbf9bDDB_>;NsYM2E +z8e@%wsAROTunfzpc1RnHHHnHY!tIsDq9b~64_NYP=O+)%aqy-945l9Zj1=H%SVw+i5EzH(1Y$=MSw`&(0}bso5Ug8mv%wT_|u# +zQ^I?7-aE?$RzN_Daxys>_a4=y0-IucEyD0qve56%NqF=O|9P!M#uZT*DK^h^?2h~& +z%{}d}6bP{N22%<JqFcXwTn276f*4 +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 +z6+RF2RB!ZBact5e9gQ(3r>Yr#umG +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 +zGAOVacey9_L4>ensXnwc +z-@FAaj+Xz+O!-u|q3E~EM&p#1O-#xKy^eska$(4=pi&WbiL-=k@~Dr3=W&=7c<6YZ +zzZHb&xv*-ix5E`WCDWkQE-k0=epO6POg0R#r~A+SV|ZoptoEq)s|gBN9E|N%N#@d4 +zX?M^M_6>L$@}%j|wxg#E91Hm4d)^1wc|)UtSw^;icO>Sr6Hef7LyeKT~9n=;kRWY(@YMc!O20+awl?&vk@w?VxS9o>+W(DAk?!2cx{?%F{dZi +zsFkm}=TP>4o#+ibcq~Kz`2NGrFR*Ah;n$mw1MlmHto3=^r}YzSVs3zk*a*nZ@w3WF +zrtoL5_heUSYPUs%18&BcMaemmcz#(sm5d6FC5=hXRVG2xeFwg(Mbt1l`6j3?$0LF1ZsytZ(Tq7h=0Qt*sL_s{CxIa97V{l)5lB_5 +zw3v~-8+CNZhIm>Wn~o~62*WfDRv*eUrQ4(D^yV1%`HkJc{lj9}Gqy25ozp7jwj|x5 +zwTt_ROc~8t6Za^OEf{empYE(aZMTLXxLqs&T<@7@PEKq09Fq?>af@k=9x{Iw7~#=V +z35_epks6;_o_`RGv0pr>9Z+hwqDvWkpD0Aq{h5nIxUReceo;N}Am`qe(D5blo-Jai +zD+`+2;m{FZPcw`jcM3(9aM=;{q4Mhn6-CZ;5Dq30d7I0e;ngks>s1h=YhZj*U_qXu +z=3@6waE{tdmI^V;ADQ?}l4H?f7HzXkJ+Ql*L58=+sYuEw4)f;+x3oCQRPMV16F)M +zPd^Wdg;7FUB>G&pgOL)gGXr_lW*c$#k~G`tN3D=DgP7kKbQl9F9njKI%@4r>J6yDwX5>OnAxTt$NnCw0wYa2B6J=Q0Y_I +z#}SMh@+Q=5+;Y$Gbh~USE4*Asg(aXTFlG3PE;b7kC!?nX*%e9Hs!-u*SMzBbZ73ow +zp_prZ(t}!%_$XmqkfG?(Pq9=^gXbd;WdGo8DJKxAt>`5nJ%K__TJm^1?BA{mRRv{% +z$LLiP+@kDhNoR!i79Cee+v8+Kwsad^fsD*45qX=3OyZ1?l$sm=@m;*tdTyNRWB`NV +zbc2ogLln!$%(Fo%E+ju@y3o-D9^upP>2^qJun=cZMB|^^%5d~7t*HryyDbZ=B+@!M +z(2;msfH2Gz%~|XRaqIg@52v^f9jRlR-lxB4Pd!`gCG$q9I8{lGz>-rGT(?rF_lFJd +zORN|^_BRA|Y0$AOKnSHs4&VN(o+vPs}MRf!O;K +zZKGwG;&*HLoD51tU39o+Kdo?H2_{+qZjsMg5?goM(<5{-T623H{JgR~B}>#9ToVn8 +zu$~(B9)SVqSw4^~XGk@!IMLR(&RbRVdN_BQDzOrkiLLnEA)y_a(UhHe)Q+k_VrV_e +zAg-4Hg1B-y5+l)j&-8o!tLy%9!QrIahq;>g4cQ(52HiM=;`e!GM%*|C-!)Ynlt%%5 +zfc-|91-s)R0hEylA3EB=7M`mvAo5}~hx(IqHa9qB0rzO*2c_WC8QBr3@ +zBQ1lSNGDrhc_4%~%Cj?om@UV1@1UH9G)0c|6SNOE;8v|%DAoy6sXi!`i@OD4O(E#} +z8mmb@3rarQLxbclyWW6;*r(eG6y0%bb$x;r+d@;+%tCvhXK^->hX!6PN&#-;*fU;FPCw!I-_}AX0v$%!fL8~A^7JY_Fd22uuRi7^~^Kbps +zLdoVeh&P|u(r{P|xOXQlA!NZC32)8HGFAk6Om9sbrEbPdkvzdJ6rKGRbHb7kdF9sq +zz1YYN@>3o5!aElie=4@)6V=sL{MKq247&)wBpu;TGY3Gw^aUl=)v +z_Q*aMXO=U(?JzbOI4MRwPfCqW*{WPeP-2zjx6qyo>0VA2j!+AmP1w1)A=*ti`Z@o$ +z;{?Vy&?f0Z!fK)ZsH4ESpf16p0uUS{nad5SR44`7N7K(Cai;Lp6%#u<5tIVyjhp;U +z><@$j%dq;>5r5c>6Iahe +zCU39h7(@w8->?yAVXaq+6&cZL7+a94$X<&cpUlb3dfwoG%%eHbrLjAT18w@)vN!n+ +z;`}*40xr>10HIVi4TLL>AJWsW@(zJr0doW^g5#4;0u>gehB13JRFI5wJBSJ#_7>`> +z*?g0GF_0eNq5Nvl*m_bb$QKd(QQ_0KGm`xdY8vk#D9f)r2SFpYMp*)r1E^K3A+L@b +zly3k1O!SVG{(FCOMZGep~ +zN`|9^ClcteVi;BkuQ|$YWyjRIH+3Ay87Dj3olm_3PuJQ8=!04wB-42dG-ES*NxN-j +zO{%Ltq9aN&u;n?VwZSkUGnMoeuOzudQLY&<>3?DwM_4gj^xA_V_2B?~hI~I+uU*fY&qTDFx$Xe1J +z#{NT}H=J0V>kQzm6&={hF}7vaYj+fvm*KkYwI4%y+A|{B=IE4d)0U{@3o7VY?Oo#c +z?qJTEB}BzB@P?H{2Wh`r{;Bd9*7qVXwA(PQcKYVK#9sxJk5zJs(A(PQBVR4BLa>|d +z3^>j*{=WZQjWm1iNo*c9;1tB*%~gY%h(rCJ52so~cur`TkJvss%t)gTVMPxEYP0hK}BJ +zRlcw77xX#$Da@yuY^E8H2au~T8#Ds0QE8PQ6x`c1{2GT(1_}-C=l+qV=pPS +zz1vg}`O1?SRggqQdad;jpgQ^rr81>lKH+GEa!xxv>=?0*B;iTBgS|)1n53299?jUb +zJpm%3<7HuVt^4`p5QC@6q;EQbKI1`vHu=N`Yb7@mWXLgz5Ia2MLGP=04HKap`E7i- +z=5|ad69l~FpRbi)AWAbIB?kpv}J +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 +zupq2SDWh{2^*>wu(aa{NbLJjsRP +zrw=rcrWDIJI(cT9IR8%bfk_+5iUAqBHcnWA%VS1-j5&*TiK|@M14r-cHjJB{8+J~B +zQ8~td`m0~%8lPyp7s?#qkAbSJ?^~#`K*Bp;<~k^MrT2^#7J35ijASHLxm*QmN)*FF +zfubZ#KK3U+lD{VTL3%i>C4|EmWF)vQHci`o=817$#IrDr?7rxBi^*3Zk*lV4<0aXH +zY|%UhHuR$bwrmII8(=*QgIa6oynPQ1gD{^&8pQ8e{Sn()YmoL$lMl$>ei-2$=Sz4*ftpymcy*Pj +zTWCq26q@b*t#7Ls5T21vsutlk-T-ghuBf4hs}XYM(eZOTYe(%m=cT +z!N)KnB?`?s#yneq$sxF+r|UoK)KKOmH7Ngdl&zHdRv72SV<`Pta3(F7X)wn?Fw6

    >fY!+2^$EXlN&X_W+g^tn4GfwLeZSuUr`_gg5{0e8aA^a#p2rfI!23 -zcZ|6dbm0o9hW-%W796ls%%qMlf4=u`ki1$D7~qVlq?Kja^IbA3T^&`9zKt?;xED8L -z=Z-FyTZmPyYdYKM!{x{@+g3Kc&0<|0*sR(unEUf|%8zdL{J}5sb+WvxiT;9N^R-g) -zv+eK44oJB>zdz5FFJ}tDMEL7)r=K1C>#@I=Z%2Oj*bG~*>v26`?T@bK{otRc(K@a| -zgYu2B@i5?vdDHE%i#X!jxE6eF_7N9j9OZ6ye?3B8Syxhh`vo1Y{pp5H;003sGI;s{ -zV0cy5yD{(C;?}#t?Ae<2?96|3;=eZK=a+UES^LH@epMdf6_Ksn`SuHX) -zkJ+wgcJrTF`%Y^7R2{jI&$VVUzViD|J*M%K>VFnD;v+YwG20AS-T90!PSw)<=2t&p -z#;>R&H|p5lw#Fj-hX0Q`+sI9N%r+sDTi>0&*T@Y;%(nc0Ml5drL;trMwDBv6@vN>G -z%YR-%n}a;B;a%c%InYdW^S1wLZbLZE_h6>|ZFq_wTR(b!Sy}{9;Gs5)O>}{T`dNeq? -zHi@jRyy7B=21TK6Ze1%xvi0H8yVPy-CD&wE7%MNIEi9^KVTL*!7@ -zsY@H_d&Lyr-#j#SuOpaGAiQqKojm9M&6VGMZ&-ATle^O-U^zzhuw?)gli17Q$sRY0 -ztTTgGohm>C%C=hes}nydoj%ZiraqL -z(4&(R?=#R)1oAil$^Xv9MgKMVWGt@MP}{v3#=mrnx#=|FK1m@pRnM%Wct3-gJ&CJo -z)JFpXuhCu+Q_psdu|s96&+G%~MtbK7J(b;%Ne=UXFH06^UeZ@bb>=z{@8-Qg?I&cP -z21bRI|*s;xepT0)kE>aTH6)1Q6`ZAL))QVz_pdIZ<9FLWIoXk7H6vWp@ -zW9yT!@|<3}LZ~{VsWQ_wD0_7D%&?t~Z`1Gfd0*c2u3K+|N$=kCEjTQWhr=@3RYQdO -zvkgzMsTb=PqO@LJjkiZYVBRm)+Zo1`{gcyMZh&Payp>uIa@GoOpN;%JFwHsQ_hMXP -z#vi+ODL=IL3dT2;nj4J36J^g9YY3e%?k@WAv%=G24CGs)jckJYnNUHi69v-+PVvCe -zc};5QlAwL)aB1;xI_T!3xZ+^E9L-o9#1i>Rd`LyrMV*;3Qp@v=mJyQ@}u>e-z92-_1#K)=(){n(#W~*_GJQ3GGTm0c1Wn;S3%zf -zxMtaYDiNB0M!iqAs@){lFDagXBHf;>pY_No!m%V8{TqHT%};>Sr4TZD5ywbu%mhbxQlaI+Okx@ -zjw1dEDE4*~4!5l-&EMcB4Jv;ZlJ$cRrfPIE%uY{iA1^Pdk_qHkfiy@ig#VJ&s)=IDtiv!wox0~+u~Lz`xe0LH1Z@I{Q`U4 -z+ix&EW-M2M$vyI>O|i$%nQoy6Knh3#^qh`e~Lu*c#Jv`PwSB%xhi1of#| -zA?1-gB3Wu%eo(~#@4n{N$s`{-esj%kI$&Wx++%i~`Z87K9`Z8!Pcb6)1 -zK?%?}cRv~s9r#tXKwI@x6D7Ar=kiM}fSe~>A0P41i%|VAwVubEE~J0!-O5h5o_qQ2 -zvq!m-C`aJO8z|$=W -zCCBq=Asla3_wn+0oAzXs2EcuPB^qHi+?e{H+eDW#3b-t^Ti6shd>N{+^3 -zO}f3!wlx2CotpHjdiW$Vv%nosZ&NpUrPcPP`8Ef`F^@soSNet0qmJ7-l`h(X -zT>D%N?xOqp9pL;@BiX!wH?q9Q+tvgXGsOOen)Ue5Vo?ohobCXu80_m -z&k?()1tZ(+JyG${@`p}>^Z0j8+}C&_D}2w!obOama%s1zsdRb}gc|9L==MUcphwJ; -z1fBD$UJt{2f1L?-0djYA*nCsey0T$&Zg+ZiYD)@wllN(f{aGD{b7<{-YEpfYwfC`- -zeFN6s>eYmEpLfPq1QBevLHO*@3tGaC4ih|4@?UF_b03+U+kYYJGp)g&mvw^?J@RDg -zFRUGTUo@XyiOAUq5D6z%m1tbKv{D(DW?zvCyI_YV{ -zGR@Pn{RoU=rU3hJBQkt5b3c%!55xT)6GvlKog<}6vOnI2?(vG#T*cC+vGzvA%{xIx -z{SW6)Di#<4j#OLdD_oPfhS^5s=~cs=^7KsNr6qJ*jQ2%GZJwnB^nGmVexsdzxLoPB -zqgO%}^i^Wb53r~7mBxH;OBNqj2J^?mHKpwE^ek|ravflYA}Er{=`}BxO`!m5jN(@1 -z%;{ERbQ=_>k6SQS|c4 -zhpCLibXccugG1TqspGKTOf9C}hoW1a@SEQ+7aG$dEjhZ2M)OeDW2}F^t<~ojr}Flx!uYskxSezL8(3{lu;+&oZq;4hYzokz#$l5hLZ3VG&^Hw`1il?@}J -zWDfi$VS(bja0zyBHuF}_PnCu+^e|u%fxt_SY~Gur)(&yxG4@{{W-b)Jg8B>Anyg*s -zYueHH{nMCK$pK2Q=XV&XzF=7|Wj -zm#4{*^?#7G_q-qi)g*wmv{_*3uUI{VAsrm8?~M*2^F=dOghrgvE9&cl2^4|&MHnn8 -z$5VpWvcUkrA_8ziQgJ#&?T=yKX{FGRN+TWKTzya*qu>TbsT1nD2R2Ht!A=TZsNk1) -zwv~LvyKAQbar50u9~m$LK#W#Ymt(8Ax93LI5_JCkxMYr9=DDc;E5=&2qE>@E8cihf -zU}B@=GHG)^qYKx;w2K=y>}>k-&Sh7%E4-V$t5L3U^T#cx?!p&%ea2l4x?W@xlow=w -z6cFF9AON%1CP@4P5;UQ+S;C`Ofb5kM$+^k~WW>Vi4%mNxh~X*m!XUlRq)yb5&i+aJ -z&B>WCckShjmMyXu{#j(A1A2c+GqkO`HeLhrjNuAktXmM`i0iZU`OjTjrNl8SnAssiL_I+>-BWAkC -z;V+J1lC?QEKb28E>2)w!e5*4P5&CJFn>>?_+17xJB{`1_JQ_9RF(+BKu*+BtOKD{z -zSS{2%y19=b`=_t;!-wk9*)N*Ln*HI -z4Fm_X4ChR->*`2@&3iiHwpM9au^{%73WgTMb}pz*OwZ-vJI77*a0t{`rk)k&5{mrF -zs4bdiJO~~t;d%NhJqgY}(6HyubPj=u10)z##L9%F58E*>n49qLkBbI?Oco~?iKvk? -zVzW#WDh0tKQ??LDYTT-phb0{-bwsjy)Rb}s?ix9wHkzg8(;K8`8={&)$iTZoipim; -z02^CyM`HI9YHd--?UecoK^hGr8!8o$cr&CR;Ks8a>}QEhjx#*QO-RRdxQ!0ie}LgC -zjlN~_LKm;2{ks4H#+0Ox=Xi;jC-B{lG48#L%pN+#de@6^m~U_7GysulC9l#?PsNgm -zqMjQ90lfW_YRGZ^GcsVKKZ?{Rs{yfCI=*zax`F1vPY$D`A~w -zW=#Yy(4+e2;cJdwe_+ZdL+&Oq8ncOzKqADuWhM)?GI%ik?Xx;N!R1PvC+6}l@)dLs -zk=0w$mg=6!2Yc2~k63eVTFJ#CkoT;(F>xnB55x>qF>Z-(lFs_j(fUQDxmZ2D(5IU* -ziPK`Bd69^&yNu-w1g97%BL)Uv_h4hA93lhg5+|21WgFV|an)nSrN_0{ubW -zTvb{o28Dfo2H&DUPVuJrrlF4U1|uu@SfD8ecMU6fr88c+qXLm!NEAWr4H0dNNke3C -zSj(aW3iWr7zB;0eRp{XLzie4eq8*qJ>dNqAtz@1j(tTH<)iTHJ3PXHTb%a8}oDrFXc`Mpnyd#QkJ>L4_OQ1|{9KPJ78U`V?@ky-a!f&kMI*H$osgvUlM-BT4P5FV3+A=WwP -zb1JP0@m7Te8Z$D4j7oeTEVzmAPSntL?veJ5)t5>qY!l0>?tZgXqXnesg|b-kT=TR` -z;X{K0PiHxoV*rXEgR*&UmP$+RbvXP)wvc9#I#V(;T{7o#k`5b8gH!TsBih7xg_Mg; -zRGRcw8Iiw=$;i+kj`GxUXvuN|CHUm<6o4$Y|6@6*Q%lO-)I8=lpf^moFBEnuwL!%j -zVY!E%K$o8}f47^c(oT*aNeUVny!iW=6No|$&wpnOeT;=cYB7XPU3r~Yw}3|gbe#<0 -zh#>AtOr+O!8o*3g*_BE!*p*`n1&FRWwD(Mr@ODu9@7uO)ro|!6WYHxY;CjYoa+5tC -z9$YTrV=Y5LvQt>?IP~);b2C=a`Q`|%Z~;V18SFXAi>T^vLfF5v8TLyOrlaIRsyr}! -z^EP11D@Z82jl@m>ND{?$Z=p5b)%8cCVfptSUwtI|{0NaP@(yU8Pf<;UTEVR1;^iXw -z&NHPFW#d})o{y<*JH$-Qr3P{-nUP9C(!19$j}Y{77wK#@@A*Ff*iijfGP=iP=-PlxJbjM2M*o)y@4HNm4bt@VlHz=6JM9o^+77<@Z0)*%QbeDw}@$t0* -zyva4ay30atB<6CCWf@0_FZqUk%?n3>sXqedWUzQJ^M}L~=prAHmh@+{Q!=GvlTD-- -z)Shmw`^yE3Z)?yrMT-b9Fk(|e(ydXJWT~Vus)rbV{Z*Xz=bL%)Od9J{@SN9?^2=W2 -zTKrle$-h^MV_N{> -zmS2S?yAc?y8x-Bq@Yo`nk8!P~fT0X+QtekVsrbph_dp$eFv*Ctpj!8-!&vG~3=rrwC3ecK -z=!)r3*u^C$dd`q0DFKoeYeYCgQ<9?&H@VY1ReBFDfrM4H1M8$49#R*#%^j@VepjjQ -zlu(i|<h+>1f=~HHe*Kb_&+{gq|e`VZ>gJzHF^aOx}w4BpZf_V -zzBwZ%d;*{a!sEI=ROD)U7bu#H8-*CDMR&%o4PCEyLzgB`L}=Z7wB)cvl*aU)Btqf2 -z<31y7!L5;mNjZ1d3SLpS=#8dVBu0s1CtDT-TQOBkN{`GrSN48DPuDeluFFkr!qE3= -zy?f5wy+uSo*7Ns8hg%hlI{T4vM<(Qob;l5fgr#IdsX^1Ev?99fB|`k(Y%uw*t?@}l -zYzG=jy}?QdS`#{*n6cp$f@!Z*A)AaaVDzq5Cd+2y^X7Q3j%83%9z>m#{ms@M!DbNu+Y8iWsSI -zioD`c= -zHIl#xKUf#vAWo8W(T-yZEJ71KU%<9Wd@#Pg -z9gdO}*IWVkBuugYC07};!ObYB^f?LgRMzhy+;9vW*@q1w!1*AHZXjA$+>iJt&jwKg -z&Q({PihAVjK7`PIm|lj9hMgZ9E=^EVY(2;e3XVrCfc&{^xm~V5;5W3RrYM09rr5jk3%Zu -z8;d=Je0A(?sKC&SYhx>fdUuh_Y#k@y{@-P&WMvML_Ju0+{YPd5?CLpMQweC!mBQ`u -zVzI}R_yWW7rm#N+BsIT&h%`j?YqOp^*=JYzIcYRP5!7Mc6%fajqR$*T?FQ;wqUDsv -z9xitHVhruzRjYu$!tQ@9T}Ti^SLvI@eZJyw?Q+LMKj1yn3_5Ptu_E43l~%0o-TgU) -zhdJDu>BUt%qdI@qaN>H#|2P#{1Khg=an(nQ8{cA_Op)|b`lqpdyHN`k*t`GQt -z8v4+sOQFe#i%NKsz+-u;<~Z-a3ml!D{shnxMP8YSkmM!2D5FaJhBhgQD6y9x4OQ_>JOTVa53`bi@8e^ZIXy( -zcPIgNZth!vtJK8z#z2=kbS4HFO&6IjfVRclQ!_f>??Y$zVHM -z@zdU@j$X*vFL^sAclI4}HYV{JO8QL3JY{IKq@6Z9VaoqxQvwXHgPFN_PF{#IJU0bC -zr#J?=YRiSJlodPq-HvxBB!E)pWzh_JCDAT@9@e_gO2Q3A^#k?YtfQR&v8*`epcOtB -z`2w4tcn)mrozLknSg*2!G)N}9D{xD*2Ff?z;q}03))y+CzDUnsKVB~yl}*8$bTb*$ -zD=xPyp*`1J6qOQwBx|GQ1?P`TzjHpWE3OpJ{#tRkf7U&+ -zoWv?1oY9Tx1!F`?SBb^+8B|-HNCs9`d^por;Wcn@qoAF<>a=(*HrkHjQ -zyKLjLdD5kcM_?sVJa0YLpZf6K_Sy$e;e9x?<3~Q7h{20gp=JlpI2*-D5Uasboq8~S -zsxaOT0u-YUQhjY^IScHiV)(=tXo%g|vb#HOW?iNAbh_>{#?!wUZZ!ZoMThfHzHKPA -z=+L!_to68AlVXc1f^#8wl%!k{G~KE9WjLM -z`3taY+tEcLQq!(nV%)rkC}ow$6+B=W(`_^8Q4`v|!v-jW^2lw-6i?c5A^k3jBVT0b -zvH=jy67?W)kbGzl!U&_o_jNPb+2EEzwME|q2zJZAb~wq{8nrnU4Ws(!|F8-8qrqAp -zdEALhZJ4GcD60`@8qGGyhR}`H0sHeF_y}C#*lEEt$5Ju_vVk>~%!(K$;W0(K4{{2` -zC~2-3f3!bHbbq=uj>2EQ1m9WBKr$-@f=2Cl=B$KwRF;-Jb9{kL*MO?zeGKF_czAdw -z))TX&Hy3WjH#}+D`^oT+1t6BiE?%7qECGWw*sp(R2+`tVw#c==AlpY4YC{>(v#^lP -zQbR~22LQ?I^*xX|CN{N|{B_ul!XsySVnFAuF|@F*JS3A@hg2xGP1R@n@EW`WHHZpW -z7QTy%mC$}r;59`BRV~%@{=SWC_EyMN;oN^cTnKj^#mW6;3cSV^l^asRP!-%fuUYJjuLxiO)-jh?_Ip@d` -z%B9fZP3E#e{JBjDx2y(U&7+bMr4Xmd92{ol9%G`*zA=lVnN)84KF?k~L!O1{y6eyy -z4SvjqVF8mK$2e^(HX+=1u5V^3U8wy-iMvcnT}?F${jzP*nFAA^dua24$0srfs)9hX -z!jdU-Ng52fG$1EUe1z{In<&jndGC}b<^aP%D73zll*c`bO)pLVy-aj}JbzrOA5?<) -zi_i|b?!H}~Hs_0Z;(Mrb7Ehd*f!9?K&p@WJJ9dY){9P+zM#A)f19y$3BV`ubS5gkT -z0*Hmr`~G|4w{9jUEO5z!AwcS&Oj9uS$P^rH4?7TrIhiL#YZ#zR)&e7S -zsU0zFeBsxLPC(T8{u>RAt)-cqzMmw;f8@628aQ^z&p=;BiuiGO4#(dZv07z=a=)gJ -zDGu22Byl#1k8klI(P81-QX~L==AHMin1opJKwOIEcz8J8@y-_Jsgn@KD8ND}ObWJE-%X`{NiR(h -zDZ_)@2NnkPP0yJyIhcvlbHbui7W$~TpAXr_D_pllBsz$<+G+>|ogVF(w=niV)Y-#W -z?L#&G@%fq~;g~#BBhLAv5Qg$>sfp2?o~O7kA_!}2ySg%+FQWCva)%S1Pn9QiZg__D -zQ>#R9;?_u&vj!=00Fx}6k`p^j&1bG6 -zl`nRrrSCD*bGsgVV$=Kdy}v=4on4TxZhqqNEmf&eXa?OVjx8Rx$Jh1Dsz*=G%kLCE -zDw@F^<3{Y*h;G*KOh}s@$nTRWM)MvD6I7;PbqEd?eDCc%jep}KGP3p?ivBk~t3{j@ -zR;Gp-K|o3)cpdut3^Ra<@mZs|L=?R7G;CS>l3 -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 -zFXp<&`K -zh$9c4&BhIRYPe=^_jv@9IXZ}*t%AdpPKL@jT1BFp)jO*ryc9l}uE`n;&9|x|Ny~bZ^xdF#BZ)vZusF)xy+9UD_xI -zveO%oXIepv9WmS_5Qrb&@;+L6(lzX3MH$^+oQgIZy`IbT4dA_mIn$72k*2fdrja0` -z_$R+k9weWvoVem)W+JJzq3b5@@bQPe-YJN*e7nFfBKwl4CE0q~(l3-uO}+CY$tXk8 -z!ZzF`F(R1VgnBz;h#)Z1>OCNX!emKJ8n!AKD11;v!t0@d(C~zyOxQkJDjoA2FYVW+ -zOk834O$#wZ5JKdM1tEJ5oKuSgvQdU-3dj~i{K9Wa@wah)4>)L%!KN}n4?sP>@=2ESSHps!DSNa=7*cs -zYc2BJ6SBdRb2&aod%DJvc1=c(5=?G{ywx^dw2>zfE&lS&MK4%l>$7-~SnxF7$MjZF -zIrdD69(;mv8Jal4E<#vPFs*fqwAF&4*?ko2_Unf0M^X=zRdZf~84ZY&&ELB3|I`~h -zw5o-9M#V+vP^J!nqoV(NhOx$C?;$gsI2e8s2;)r0?a)VF+hCzYpTV)rr#F2i{A-0+ -z?<)Kz#~Nin!3L&6CA1%i69b23Z%O)T#rJeVeDRED#iWaonglx*yzNv7ZIu2aBai$~ -z@p>5BZ_)hk(@3s6f=e+Rk3i-Z)MA)GuoeFXuTjj+h^kiR0U{BjrPPS~zlO?Mu^fLY -z$LxL0CB=AyA1|TL0bB?}Fi9@hLG3h;bMkhP3H8`W;e_th7{*D0K(RTl_4-QM1}N8i -z#q1O$^!Xz*Pyy51H)5L|3#)9X^@K{5s57&nKTRObgLJ*9`^CyFg!femFDY5rsK;pN2dS*!V)y^#IN=g0KH8e?Kvb;PTot{e7Z9Ld~E -zVZ@Jd8bkH9^31`68EH4&Lys)t`d-+-SwDyLEUwuxrfM}8&sp<+o1%rzKin?aJ>D%vT|(@5{5PMvidnz8s+r)>JA(^gVfmm)!)SgihT}J9-+BXt=2Yo-g3jcYJTRx7&Cy=3$XeHkO^M~=?AE;u`bv3F(R*5_9IDipn6iaVx+lpm#{yY&^ -zMbA;fb`QdaRCl&Gc3>RzVZAzP5T}$bWsSur4OTf8q}bWM`R;m^*v{1?4XB0#^zjUA -zoN1goB=3IXRjv{KVUfNHWD*JjE*hixqC&E21$$~0Js?)6hZ@}d2<1fW;di-@y&e$C -zlv+^RTA^1nIvubeU{#yja2j(mDtJm$Y{ag=V<$7>58RY0;&4_75?sVtRrhR9`^&Bg -zc%G=hP{%g(ff}ng8K}}MnJ*9t^f+*3A5aR}>~RpSV6qbMmU;MJ)nbm8f#an< -zjYvW7@Qg+z}o7C_aa0RM!V}Avqo-G6c%g9+@fdndkA-WY17m%m8Sw!%$yGA}b8~HyZPg -z+=;YXFjdLRfAOC(DYvZa#1JudCUYn%vi;w5Hh^9&UMi#pWu-`ADDfPgdQky!vrogG -zFcvYXR2v;t&O3-E@!9>O+#sdAh782k02vT9jG>|TviM?I*TUFx^Alg*hMRGZ^qYVM -zfD1>MPf^dD1d+dCM$v~wy#BO>@Fulnz3Nav>fKgEM99lk*{;~d*B{pTyjvh5#{4Iz -z&1s!k(jbcgF{Q^9ha7pVulfyhTx(9~e)@KXvJ%r-KidOqf -z8Mr>qPUys(gMuN6A%U$hFUtGglt@=NI~)nDA7^bp9ol@ru&QYIi@-xaRprvD;-B< -zy?7Ai!OdPgY|AkCxn81Fc@uKXMrT^@B4kbcRWtLGmVGv%zsMhZNm4O2oCv2u+K`8g -zy#+rcwga@mSkQKy&0M%@G-^;fgV+Pi>=af9@6AcI4Qr|T*tF2qeY#bNG{H$EK8LBG -zTIf~m;L)~pZNwSg_-P2@(bJPc_> -z7uP;vODs8a4^Z~Tp50FMAiyPV#SAvIz(ax+= -z6og4T8f5GA=BSh=Wa?Ba-1^gt{>G-7`8POG2tOrrF6&g>y}F4->z1`OmB-p79xIdi -z={WiVo=0*anh^qU=mkLzf}?`^d~<1vN6UnL#-Sxb`&%PBbaM~v$oL$&GI4Qk#a4OKgY_w))cJ8pF5LEq3;=mN}VxT;RbQ1}vrS^h~tT2{8 -z^NP#~+jJkVUs;n+MHVgx^Fogt&4j1(W9KU;xA3Y6T%MXipIKO1rdEsb7L6y;_eE}p -zG^GYplc}(S9itOPCHgVq47K{Bx2<~=xRP$&diRM3_NkbWm$F>6n*68Ki~6ow6Sl^5 -zcUk9Tf&nX1=r=aVCtiC&PH#>JZ4{=NtgFTl17Lhi -zN`?f``Ca_K^KxqUTyq-RWlwF5t_ipv--Zg>6;&5R$08}aMR}J?bnNX^$~|cv@pI_9 -z90wRQ9`o6H?Yn?*WwLGBUsv-2Q?LhkZ_}ve$GFG0TVK8?O2=@HmgQAkY%2Wuy&umS -zEhu~ru{Ru^z!4_Er-gjN#aJ<8t$#J^snmeY^Hy(cMm2@Ndvhr=ZtU~sDW;5IRR;Id1oKkDOHwx>9A7%6r6$3rt)Ht -zbq+flL+49k_<=o&CjtvyK51TBg;?n!_jCMiO8+Y!w}jL3dnj3zaM~)^Wg;62MBhQ6i!a#)9P@*^r=) -zmB}R7Ud%rc75c$h4!?aKg;Iwp@0wrB0PZGXO#%&mEyQ4OYJviYK(#<{UCXH8L4tK{|KJM{0wNWCJSTeJL#}5k*)m{I?P;l$yFF -zZ8BuCflPJO7xe7Dnu@hL`v|fUy(=c2O*b>FM)Wa^OdM$m1$kE3h9U`^gPDQEkmopC -zB-`Sa{^%KsO3@Ir_IQ(XV -zIc@MKR-1MVCx+ufV -zXO40#<;?=gCysnTJaIzsR -z9`93%@aH3xGvDCx)p$;?%F=Bpi3E3c4PVC?-y}3&_Rd(;m;4_|F*ADtC9eIP&RdrL -zGKwnq2Zt)C<&~5zy6TdtVZwj`9k};yf?yGPbYkLz4z72BE{J9FgD|!?|p(- -zzrjwn!d#-X5L-GOtwXn;naoF|w@z@z4Nf8R$g`B$F-S8@=3AIUXOzf}bXII43l~;yPuP6$C%o*E?9B}&vJjx}9 -z@-zC+-pakZPf~O -zpTLg<_!%i?+$>-DU~96UWxN?XH>ClCA>X2{)qke;v!_%4#;No$IUZz%m3&Qg5~tq&Ng49;L7FoO6$!W -zjJbu$Iuc>S|D343A6oPXpjZuFeC**lj3|1`B5ylKBZTMm3(fj*%sqpg&(F6F- -zV*76&)YSLT+EigTWAX>f-v+aXHQJXxmc0OQoB`ZCpuesog1)4kAaW!m=*U#_MX%-X -zevhez>g}8I%{l*^#t-h3?G}pU>5qwq!Y5`{iC70i^1|h_&(fdrq(!ait)9Q20HqyQt?QjEe%>Cws -zlV8AeHjw!5HZfnu{$&wiT#Adema3_}?@nL8ipu7F?X^<%+F1&Q?sV}F6<)(mujVk8 -zI+C7U7|3kD7eA3V#+zX?3wEdbL&tI?GS!3gIGjQun*kW?6bdI{@x%U -zTrtG!8=oF8M8k5Gqy?XU`3e2sf?Ql96-QW2=8byrCeOGKE+|)M_7xBJO7ij2YD=OZ -zb7X_nzagI4A65KWQ#W=@k5&Qbua`W7METxB*6-l~bHj|=pAo5#K9Vj1ODQffgIaNi -z#q2*>wpk0ose6fOKk$Gnl24zy=CAANV?pHbsSEcH+0oj7#qwG%dLmsLKKoO`9w2<) -zlwa?}Lkt2lHc@|UPlEkExqTgh^$C3# -zcW}RK7iS(#AUP=Y4aRyq;meTKDVF&p>KW68ynTP{`3AUP{a)8Wg%ytUvFaKuCL>Of7|5>mx#wQtWw2)A#pdFf;53>+->Q{Mh8DEnBF@iLi3tR-F<*;(9bdHGu8 -zcZw&jt2x@|7lqj`?9z0IE7^yQvKAWH_V201&FnsPR46q{&#PaKVDiK~}WNkwDqBWbI9?uJ6&a$1*h?e+o^G~o1w}ojlHKf*<0Fiu&hg{4)ytZsRGYB)!S!BWml@@D!SlJb`xw^ncnPdS!(fCpcvv10{5`E^WrZHAy$j3GX6)aJeNxVhdd7Jr`TU@T{UAc3S -z2q6Z^Mk-w9{gFfFIQwZllL`1v_an`IiMN2Uzabkkt%!-Ik|6q}nt=d<);~IY&C0o82&K -zj0Nt7ZH?5kqhbBxUEgpRnan1t)N828Z7d7$ -z@FvL*qQgx_TlBw-2!#lNKqiJnt=kR;^E1M-^ya<(I|zibZ4u1;6LM+ut}Q*TQKcRN -zVw-2we{AK)Nj$_VidBIfL3MEcOm;;3jqpJOU%`0i@5l02*au09*VoCH46>U`X -z%=Y4&T -z3$0gc4b|RfTvcoGag4NqEO4LpjS$%y;1jb2_h++#Q@9?9NqVC`(+q1T2H0!fvxcw0 -zs{HL=L1fTL@xJ;+l~Z4D3S3bpD_PpUANKW63dE+X_?Yq}^4mS}QWPYnB!u$*nJy;V -z=sohC7hGVuxC7U`Y=B{lh6l?U-ASZU0Rm&pPAJ+QP$KH$EwFlRf=UrSm5G@-mavAp -zDu`Z`O){KgsjH;1y+*fwW9j}?ib&9iyx9I9K%?;_2DaP04r`91_ZW&5sf*brPreU-p~d0g^^QOzoL -z06}|{*6JB1BP-AjD7#q~L#yI^9;P)2y5j*MbWtiD#bSzR-&&{gU^~?+5tDah -zn8(E5tXYu_2J~|jM(JF*#K(iYhnAgI=sDmeGLaVT9OKf9kjdVZhLOh(XIA|Mwr;;( -zPZjzQ+JdcNM)UPs94WB2Qb4Ey`530+W~>2AmdwWJzy;qds9!e{2Z6e`=r65AVq6$* -zJ6heJ7E$$U!C$eq0dLu;tAZ>u7$b}IYNDnc))l`gtVn=SgJ#Zh-Da!BCD$%y147zt -zC8KkV#}XgZzm5(r0xIhp`Y?wSTYdnmDG7-6Gq^XfZ@%fV=0Jak^@2jKstnsb3%9Sy -z!SLomTUeqcTXq+Qp}{L~QaXc}wLcgBhOT*VJwJ;wN-N<|oc%B334W-^2vLAjOZVgg -z@geGJkAvz{6H`5}*^#y8=_xNwt59(NPj>>HnoDzLo9Um0sfxjo&%7rdfNTI;5?@TB -zuD*w_vWl}(iUXEYg4xwF>D&>EaMl4Y+aR^96(mZ9L98@S)rv0a9uR4XGVU8=g_A(P -zR)8qv@R)(=`&;IKb8)q{j?)-Y36K6==ZmaKI=!6D%~tJUl=l?-`zG@PUXOZbs}mkO -zpVu_9TPLGLH%~C}M7|8WRJLmz-x7%oMh~zvXkWsmOC32 -z0@?=TLNRg-voV}Njur+YWYfk_GWl59lp-gQ3^|$*uRM|mGnSE{_Roe%r7saKf!3zS -ze9}+7{eF*i}&#x%X(6tYS$we)U0)Hy*7Y -z*tgceE^8O@4QmMe-X2ie7q?zD5q?F-Q&P2{eo+gl_qKe|@I)i|C9q+>oefY0y5pVR -z!08g)NKbG8H2*v-5%u~bwY+s?QqyG5=;!Cl{hUN@4@T@G5zq))jkH7(W2}Q25h+%U -zpK}V1rwl@`F0fnZzljN96Y6yrlP|d%QzC5nI!U&5B*IG}(4233e)0>Z85ZAxB6O?B -zh|{VI2hovnjm#ut2z3PM6NY-hC>CO0Up#-Cua*^OWNunPN?QeI&&F8RcpRO6x4e=A -z*doW_-$7Jfn{HQKi0`kD*FntKU5Lm2YcfzNX|$A!Gq>XlAg;GI>#!uOT9K(F?rm}D -zlCA+{zp#o}3G3L=w4ig1ZPv*D?J_C%M>j}}T$aiIN#Fml%t$6x`TxT*z1KRArB+|& -z&q0H!EBfY8KEZp5Kot`oz>)`j0(M*Mz7feK_+LuoJ~up$H1 -zT@LC+WB%Ta%nci1wQT&QHnY(KkI~NEO#Ve -ztVB->b-CM|CUzb%=YFu%yUM&+E2I37qd#^6|B_~|EM0dD%o%XvB{uZy`j=Gf$KjKKFQEr7Oi$*d&Ip&Wm`48F4( -zEK^|vk=3~6LSz<-i?zo4yz;%6N1f@+l{mF-t}TXnd$85vCD -zR`>toF0qIaq7$QqHl@3I_ji_sl6Dv`l9Y*JWWpm8lZ~A*v;b<&Wst@~TQghnKCX_S -z4_qEale#PiK-A_FqG9*bweiX8+M@nqOR5jMT0~Ri=%G>TFq3eTx_o -zNChIuP@1MYTilQ{1x#XeV!h>2qHfZV^(LDMjQnMQ13UUL%+e$|8msr60{w&JHH=AV -z!n_NZl6klMg&FHucgq8mCY%|fCw1@kphV(AObUDqo1&aJbm5Ir&5f=hW}1-OHHM`78+Oky0a5)*9 -zP(h~np%U5sL17HtTlh953jOr&%oG*+h@OsLL*p{K#CCh)pX?0#_)^(Y*P_!-Si9H| -z9fs>@WmD_lYAiHHe8p*Ck9I{>h}v~9WwaHbRKn9*79qRquGu8F=2l`^`EG}0#7fYy -zJO^r<3|~`-@*8h0yM1YcmkS{|a9ijMTi{%VX?x3Wf$g0f2@WDrkyO+Proy1=>}(3Y -zg5yqd2w;iiWJx=*mWvJ3v&3JVj+(~*m#AEnjliHMli+``4PIU?pu*1;S)28G7**Qj -zDCm<$l|3UR(<*7TAj(0c(z_(lE|I`33O+Nd8?Go@VZKtXI}-zoXN)QmM%`rjPRWfd -zD(c?A= -z{s$k4qAYD6UU7SkJagnzX)mu>5TN49>JZGFKLN$N&>pD6wj;$c5 -z5a7ZClt`-#H=_rHFZ2psgbXHS#li5p=iD!g%h60M+K(pLsV~D>4gcEu=l?R4@*w>q -z$^)mn_W{CP^Y)M3#B?`M0VIU#%0_VzHr#om*KK#_ES_g)?0;Kuj$>9GeHsiQp)!T~ -z|F@r<-(QcJThRC2$0*U_u~{3ilB$zptaS_~Dl+i7k-$fk++)vSn(f1`-hyEUq^ZSb -z_zhqbtiwv`x@~u)$BBK4eMI>0I6w8d>awFm>@g39SJ@C0m?%76!zg|K`~hx^F%j&av5Nl%Cf(p+PN+C+ya~J;JK@uE_-au- -zD5plL7!0_TjS~7=Ei+kelLFoI&J;>g=)cCS4cNh2f8`cuHh*_16Mx$jQWPnC3wcwkiD@sCeJhLMuCOC -z)HJx-5X*&8K!ACZA4q|7YMHQnq`n3w$6DAG7ZG(tufc^r^Tz=#+F)yATzWDr_`=_# -zMRCk{Wp{$^4?)5!5*9Gczn7J(qJAR9=gmOkyTMOPOP%6joE$(7G=1LPpKyBP4W&I^ -z%0r{-+yegA5b!hw{7cXlm2EH|-(C>mc>Y=JWbxZ=3{v9n@ylH8?<8gl~+5Br1|D`_=6+DmJowK6~3i -z!U)#XgTZ-BRB$YHR0mVeI&vK=XVQ$(!oLAohhWOlJn;|6e#lEZD)=LPfScRAQT65Y+Bm{ -zN1{wUbBr*GKZ&L&*;{NE_@jW{E4oCx%zNn^aH&t0Y~T%3q#MJBh}lT=+PH+L0{qI^ -zeop#d4l?^gOM+!U1(6U>Y{xpr!{AC3N0<5R3$wVOXYB)p64t -zyCt8B!+4&v@gc~#M+Wj2K+56J(xcyBB*z3>ihtU&S#e~16)LCn%{BfHCc8Q?bVIWq -z*$@exU0ibaF~urIo5pvlRenf~7xByZt~$N#S&c?9!pgLJ$_4M|yh>m4Kk=JgaB -z>V3QkBd`Hpo(IrG`YF|3KK3!BX#%*3i!F$6oY&}wl90QL0?#EKEbOw(5jm29 -z%fhZ|Mk0KA9&%&c$$>^d-~o`YvIhRGMkzZ*eJBqRTG#g>S9O#czWwXo%LMy`HP0+f9v-kX`tOa` -zO(0hl=^O#tEJDB30l!kM?)<*=Pgjl{w;(fjykdsCf -zj3UQzXQd+&`M&8F)CKWd$Ma(Y+Ww&P;nBN+J|H0ANp?pIKC%53_TD~k7YTtiMc^ha -zi03?NlRM!1w}ptn=`-Sa<(=HV_S^eqU(x9x6tPt0dw3P!w~o?@5O -z5F3JYo1P!yp)A4F4=XtV2_^DqjaEm7L~I+BEUxtBj~w&(@P!_SoNiKGgr0U`OkEy~ -zN0n+kygb4#p0nwtJ!>3Cp#M+!NEr1Brus85|6X&PNUEtku8nKVOfB8D_hRqy3D9L3 -zIai$3-sfSUJ(k<)DO2;EcW|U|z{dQ;dGXXxhomMf4D2yMIPWme*o@wyGJoW8a0gk` -zK>iA@{y*5`$fRs(n}z21HyzhO+Qo1K>>tUR|E3;w#LxF=E7*IjAnqVnVWq1r=kkHAsdN>WB^|z{r^~d$KYDR -ztx-2lR&3k0ovhfltra^fwr#E0Sg~zq#^f(E=bU?g+^SJMyMOdM-Z`tf -zdsdJ4dB!pnc)GtSHpDQV%|bY=S60Io8Qe^(2n4C*Mphj_To3&YB#<8oUBH`H+p+9g -z$^G5+rTCYghZ6I=Cnzl}XwRUqD+|p` -zG=C8iYg;qB%PS~oe*YtGNBu$6NIZ{IU*DM~?6z}EP6ZaRu@9zP6j(8aezqS+5Nqbd -ztzr+>+}>9LJsu?OPT@`(M+AeW2k*#(_r5tHOg2r7QUI6PIDJsVCPJJI8J;sF7Y+Nx -zyy_WEd7@kt?R@6>w;PduP5lInkV^d*IHycJbvB|D{+i)H*WM4_xDU2`XkY#D^W2G9 -zlr$i;A8^@^)vi(8ikS}MBuHrMK#3_+&S@EPx>fg2eS!_l`H_gm2*sGj9de?>M7BQk -z#5R!`a3l7Q&XYd8o~|UvAN?>?+pk9lyAo^}i{;F*{G);FGdTrx^r%DZod7`tfQpX$>eIZxV+BM^qB;^@Ck&f -zNEHDI6$Davd=+cW;T)UtchjBVk{ht#1Qo=!3uo`YLXrtzJ-YMc$J%wK?vLh18kF^= -zaY{@nBWc?#Y-ZD=pQ>#I3F$P;SHY+P1r?)ri8&*&$rH=<{MX%!0iWX34lgLFU-VB>S*(3sM=xHPwyWYF=lYu(^^YbHKzg -z6#LY3ees%lvsZA9@vi(#_Q>#5lOpe->t{4`aQt)pn9S{g<0SO{^G}MyEWG^fiQlhf -zEr6<~9tm1#&8BK06!^@saprYZa;D4S_pXjnRfFz-#;7?BmMBmgm|ly;G#jAx2(K#T -zMa8!TRNV**_!^EA;nm>EYS~8mj||nNHqagn6FwOya$IHQ`7!WW>Nr`gk78tq)07t6 -z$e^R68=sI_1IrM~!Yc3KlKQyixJHONAi_&-379FVl0@dk0tL;u>GV0PZj5qzcE7p!h`(1JuV0 -z?(gfCL33z(Jw+a-imRcEjE70ZI@v7Aa-c=aS$Sb7;nevsC;oi;XFJ?o42t&NU}BOr -zWfS&N5`7}R+FLIMhIpN;!mfjC2Fl8zUJyjfy@@@GRUN@jHeh){qbF-PY!CP -z0M3oT6gPeoo1F!nuD`Te7Zy`QiV-0intcR-O=GATn+E7e-o#=>l9w@?qm4?) -zB_{B%tc?5B6R|M%Tt+u)9>cXIDI0VK86VQ#=gxm1j*|&Ov?E1aTUpW2mywF#k(xJm -zQgTe=FnA0S)dUwp;;b8HJ*b?_#@ST$vl!bQrB)|JDp`4~5(#b+lGjc9h1YG^B~`)= -zy!rJU+jJ};$*Ts?i7D#A+s>Seb!*bpa5cX@W)Tc0sKHv6vo=#28H?hml!(p%_vYK! -zaoo;+*!}Y35hl%SAr`&aLH_&-FCgG%t2KTon`X#@Z7BufR6u&DFaA~?PMXPL!AaZg -zp12AH{FwgcNnO~TSszxGHYiA;2!7^2wARr3{=gE>4F80aa}dHo`oA-d&YhkAN5-)# -zDkdDqa@RsrptvoJW29qOm_R@Z4ChDZMjAPY;x)c^@KKr&VK3AfhoAcK{%kVzWH~a3 -zfvmT8EdnG8Ha~7s!n?1qMRAq^6vqiS!P`nkvfC{ -zU5RmQE$gxm8|Zpv=7G`A? -zBGFy!@>}vJDIbd}amRs-RV4SGHroH8aqN}fGzx?*7IR!HDAaWrRy|UXQTk`5q>KeV -z1a*S0lgk-a$-Rm(Wtg%yC>>69Jq3b##>+Yb4q~m}k_$t;F!|=rDbk)QM?MSDWiTPD -z^k>}=yMdp(7iL67k*JbV`tyG{jGaQ>CXlfEmD#?L#k5uX_TACn}AIKcHV)MtyV9f -zRZH^1-N2{X_=Z(I_%%ElI@6stSBy-PHVlTQ1!%P^_?VC77 -z3>zu~hVN+|2nOj3h45bQIm8G2pA;wnEuc|aAuy$h8+p{HjI94;vKpuZGKpj0!F$gMy5EmOUfgZ6QY$EOz -zT(zQ6&Hupr(T1f9sVOejA0qu1G>UDoLFNoRyX5bswU)2m3qE03USczp79NUaSBM4* -zz_cA{MdnZ@l~Xe6P&d;EOn~vV?g}n0J-@o6Rsi>(gyT;uU3s?(?;(`rr~pLI -zE?q-VStc|Mhe?#m7N(3t!_`lDNWbD}=PGKmaB9I!Gd1R`ey9r+_&-ePI3m7k3%DAW -zo9!Q0P8e0DJVOmjOZ5Jze}5OkMdZ^3ZXIIkEV{%<*vCK7!?Af6_|<=fK#*mMAA!*c -zcue)nQiwH=lm~;Yi7lKov8=V=Ksex;K(klF5X+Yq -zk9$iFLTNzjWdIiue$8n3%hQ$P@m(oxdA$FM5~fFODTTzy`L(&!6?9loP!;+mppIp0 -z@fHfJadwEM!$?=S#NYuv(MJ``bf9F&7HRy1>k&unfH^Uk@1JE#3-3pw{>X_fSBx2X -zE=&VdQ0&&57PO;`IoklE*}WI3!@1R+zftmeudOx`|mh -zlX})Oliw4zKTL{}TS)4CMS>vL>kv{m`8=U|1uI>F1$Y~L{Q2Q}3t6bT9FHP0z5~hG -zmWO{ROO}paFHqySj?qDKE>fqe9k^sn{8;Rw3-86twsF9cB`SX0X&6&oUShN6$YhJ+HU&209Ot -z)+|~B72POrYaR*-1z{e(F3T^HL$dF5KZSS@oDqd$s}0x(6FgnCa=PJbgT`L?guCYu -zT0k1>`InoP3KNNtB`49i`|_j!y&ZkRG*>*ek%SXt-;Y_H=n}rbZ5O|S2+k`v5hCXV@^7)PUJw*;LkPa#W* -zl;{5&<0#2JNlehV{fH@C@a@Bhs=43;u2K7Mj3aQ>KFclPy$Wl>ObLlDWEFP5j(s@a -zjT7qQ^^(vO4-#1{cq -zKjm%i=5l0^Dm^a5y~wB@^9dfzdTD+DAIyq2Mo-WzU9GqiGa%UUrwDQG*d|>Rj`1|pJK*13a#nU -z;nIcUB(ju+yNEV$69ws#Op3D(K8sc3W$0{^QzleH2N##cOb-L)&}K>C!5useCN-$nVwZJF -zr{<-l^eL4}Il>kHXUalbp!p!|yN4u^CHu{Gwj!dDB!oH#VLz!olo9l(+gPh~1f+aQ -z7nn0Q1~Z7^M&zVT4L_OfcJK?ks+^jE!bFBC+}eydMWWH^AwS-b}l=|dEPCvM=KVVoq*$M(Zh -z!NZ|43MWh;6r%||J9k_V#r45VKwF7`A1qH5 -z{dlr~iQ-)9+6gQ!b#xMhfPuBk|Bl=_A&!U|dMb@XL9fj(;=H(!_F0hK6{l2$?ZHGq -zCh_>M!Rrjk>rZ7(XeKnByE490UOLWE#Twe#*VTk{r2JC9c11(X73#F5B#&Rt>0rP` -zJzp}yWHyBbf|@*1*VO>@h+o6~X+=kn|F5I(XZs5w2>|$@wim#?eR>9R?h)?8o4UG+Abxarw(TBL8=Wy=yQM7%o`^U{=s$=E)t?R%;DXMaLmCf{?T<}YYh(QNHq7y -zw4M8dl*FzfMSj=3_26x~MWA7~E(`n0&W-GFV1{WhNFM@9a~^#|_NHPrrHbSw>E|=& -zFqW^I9vO+0xGj8u5SSoE2Ly$;H*pPrq42{7Yf>`&psHsfwC=nQyj>%kzR=ulZO|#u -z6Tkgw5j7wQODO#t!t|TtYS{V*gbDuLXLeCmslI%vM%+%%`7zW~o|oh(uB(TLYZGg8 -z=Gyl#K(#;rK-d)xC?rbioyF1=1dl#8+x06$l-44=Q-dlLT}U+fL|l@?$Qk(U -zvpj)u%Z&g_op^QwASZ^q$P|7SE118t6*Wu?(U`53^<;-3crNzVsUAIN_GHA=L3QR} -zQ{Z1pC`U8yyX9CUPS$S1V>ngCq!2BJ(30?H&LdMeK_s`XK&LJVO4Y)QHBT``q;rIg -zpj1S*s%V)hXh7$fy%KGL$6(B?dIDvL(qzoE%)G`v586z#WV&aONiOsZR+v*+M}kh3 -zs!y2F12~282g=!%E -zg{D9@Jm|LFSz5Se2&__zqY)16jgT64_B({2ubrVx*+8<|1pja7j3JoG38f5wuxPyp -zSuc>Sp{fN|8G_!7ZlYPg`4(2h#z|Z385^m$-Wp|@EiRVM{2mGdO~wH$gt>J9B0Q%D -zx(tRRJ*yZA{{#6sRevd!-?$@^f#x0)$E%pIdZ01f1D;l&bkuh6B7VBYDotGG>UY=s -ze{z`d>d%P*iQuktp~YX|$2Wlo%liS1N(W&Maa-M9xyjHvQ$)#ez(yQ9Y;pHh>junH -zJg7anNk=m|@ifo|?Z5H`WnKgsLWF -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 -zd=x*r(fIq -zoKKmSM3{Hf3hSWmj9duh8>&Y=lq+pWgu4|R-Q9B;-6g@6neM^Oet5kEN6ih7n9}_@ -zXpUta%W)7Ld*4~;Z#X1Y&9u}K)b$h#^h>lcuM=ic^o90XG1llf5BX=}$OD=#Z<}HL -z`6cy|9uNJO#Lo5^^NjfYdxa>TFayh10CL_U*jI(t%y8xV{j7qy#*EYuONG?sO-C14 -zsw0&h;0M0Hxp;G$g=0~krfddc+3#4ox`$0db>$tMo13?*$m-d&&(!Ixirwa|E}FuC -zRTs{alX16sg5S?g%U-@;^ZM@{+A}O46WTKjfH$9$^*v(0hFD5FMSW|QuJ@EL&MpbF -zx4pmoWm2o~o&bk=Qa_T>gji~dS$Lz&3t|FPtnC{KkXd9eg6Ux;A9vgPMdwquEf~o; -zl@o*okSTLXfDiASnyM%p-_{G~Sy5k^Oe(Xx3RfL$K2laLLPo4TW+=kzey;46ilv0W -zmwOT-DhbXtq||p$2D6u6A)eRAW2c}Th93L*?B`G96X>hddv9CE%8A0PKxmZ3*Wg5}CF`(aImsmir{fP1-T91D<-_*@|19 -zBXZoi648kTrWTDWHxIf)cZ$=T91QiJqchLd)qVNTpinugp^Eh0F8+?2CB-Js13s$(gxhK_pOOPwh -zXCh`U3A4`Nf1u&2QlM@JQc97O*z3E)=Ck7aNXDOMPQ*&41uNz3`UMbv@s4T6MF(E- -zccBb;c@mVhgxF6Dh7pLOk7b6uP8bj^YA0>-38>D>OjGd)Q3vA0{;ft{Prq7@fSBBNhoG_ZSY;g%DD6;_Go_mYKMGuTzlDC -z_)6a_ZC4Ea^8NbseT!X={E87O)wdk~(#A^h-OZZ*qM83(*!kjp%enNg_fh{!Y*+2g -ze!HJmSRw!umihzC%qhfQViE>y7czDo5JPk8d7+WjS4cjaSn(=f{TUSW_^jYK4YR>= -z5Qdzsq9|2tSVYG!IhTd^u{$~}e)cGyV7(7WnHn`h`z-t6x>NyMoMUv{rRAW+ld?ds -zS5;GicF&9o-b6E@PI!#EHHQP3`|<0(e&=*uX~elDuVs)D3K=Euo+BvF3oOd%La|xU -zdhz9qsVseIFY}J8{R8cXCLu@R_(ky0C)&>Fq}|NoQp0WZorGO?@dmG&_nk~v8`kid -z1B&es$CHiSP-x~Efo<$ohj^*o5C;oENal?rpHEKp@W=S1dpkY?#~sVYx*hj=l-;Iz -z+sp0TSM1u?tJ-3Px% -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 -z(+F=|SJLF#BvZPpC)M(7bNEvFk*b3hsQ -z>=#8WSs6Sy4%iH$S@AzbST?zYdGHuS76*z_^YBJICeiQ&L}cv9@#S)I&gZTVi9DRuA%h}CLpPHr_6NGaZq`-g4YRB* -zF%8tPcc_l7*EG@`H!5I+`E*Fd!ti;?!U_PKOhiyY^HHu1Q3+_mcm*29QyEzZiW9wB -zcz!lso$ds4X3TwdLDBY@tNsYWWT?jOmK5vP~$n(e4I?1Jt^rDt1OJiL -zTe8-#Pdj1o0_$ncM_`WBIg%VJS%QryXq&M(K!CZtst978DvE_Qp>Qi_x6YKs41=iLolf+~y@na`43TAZ0ZZC^$kY=W38DHHQf-+6;B#ZF@WdolHfZoVEzt31a2_fT|LQ4i8kyroy>Pun$lh -zyNc2piEhzz37STF?zB)RD(=Q65=~mH#Iv6>*9Q~dwrA_|)-5Fx_~pl?kM+OoS-KYv -zTk%;k| -zPY+`f@b#)IvMri)5<(BaCQjQBktuT&sR|9$@w9cmY=eV@cF>a_MJ^=`F~U8Um8bXW -zKs$c04gdWn{FHiuqC_8^f#8gAiU{8Eig%|keqNB3?wtmf -z&dP>1Nvxoe!;Nd5lyQiBC`kgxF#DPwrA%x}tmUa|JKe;xAB|$sk@$(^`!xiDt-w4j -z4pRU)PY`;Y2VnFVR+4_q5b>F%{`Hw9#4^wyf -z=KrME!W)uw6kj*)Tdg%3*S?Ov+UmyWGPq|?gEXV4y7QEM=>Xi0&hP+$?XT??ph=i? -zz@G(ixBg++`lW#5C>=9$EF`z(vJ_S!;b~iY610we?Uvr7!xdfs%@Pae1kEm19NnN!T!b|414~au2Zk&K2luaG -z70Wa2Sy;qs<9^ugkjcW=;YuM5)j{o{Nmy -zdA=ratj@5or{u?gqHiIe+HGmn2Wzx*D))=&ncz2UVAXb*Kv^i-c4_*TsGYx;GpSZG -zj!$;B{)}mh`4|oYlC~2dj;$@OucO5dx2Gfz=MCG|hjP{>q9aN9XHB6l|G=%DB(t~f -zliBL(ku?(g`HhuNBuqDDcIbX{t_%OY=jIVNC+!{X7efVBbCc-?D;BD`L5t;OBZvyB@ -zaR~=$JxUpKRu&wPd8|ibMHUNrJMWn0-@x}1u#3r?gvDa*65BVWwemaZ#NR<&nsO1fktOPZV>!VEIpw2LBKI5Yuu(KR5C$k^^hT;VHE -z))t>Eg=Da^HUFLwd;teH1eX`;-|7 -z{`OdF0)XXQOP_8}X4|I30SpUkKYb}6sRi_dq#-Jv>h;{n-r7n|NF(9%q4sjlfjG|N -zjc3SdS5cnhEhlsk#D;cQNiHb7s#GY{B%lx>2F_F03c9_;VN)9nGVd|2*%3sYYMu1A -zD+FUGCO2#ukA~y8)ckt^X;I8+5~B}Ah33WStcM`y;^#o^(pT1?`c+5iEvo1wRk -zBCn%ElOly8B_d)yFpq?3Exb4IG?!Q?_iroL01Cjz3go0)K`laJ>@cYVbHrA#IAJnS -zwO!a~-gufEYT)o;mdcs#mo>dgOi%BG!3*Z{HkQ=47g2+vruAJgXBC6#8-CGo2jPHJ=2DRm)LD&bZ0qK -z@DDjpaaZ9h3K5mJm;60w{qv2wW-Y!-nmslV`^jXt1g~gD3i)RZ=!WOgKG5+uuoB-qWPRwA)`8q5o=kh;kHwKeM{a}i -zBa%Y*Wo^_vK^geP-EM##==A=}(nVP&=;*ipiLFL0I&8gaGt83#-8i&bTQX_V5=@xVJt82 -zR+Nf2Y?@VSgn?;&_;*9EN1Wo=WU`R0o+C^-`>$D#ECg(Hu<5srk~j$llnJbz1<8Ws -z$oCS}){|9uTyIj$KpyDmcLb-AFQUpAmAes^EX|iq%2WS#b?Gq)>LGO7X&>B)UDf?V -z)zu%&S*b_G3KP0Fg5F3=NQzml9*~RLkFSI9gULIgh7OCO0rqq@#8~ny1(R1Q=fL|J -zFP)wYb38@YIn7C5hG!ACg!1*qgr^O!*Xl1~ra_tev`K-557&t>+-QkteY;Is3pZ4o -zo -z^+CqW=+_P!V6}4tm!M<3DI=MeIdM-9BP+>+Aex2$GIoW(g&FO=teDA82l6hlYlsfF -z$cgIh0D~G-MeAR=dxt9#@KoDX4b~GO4FPIQ)H=ELJ7n_^pemRVEdvwr -zI5~)fXnp~Vyk6e}fpgS-5%(q5TC7l;;r}7*o`XC2x`ojP6Wg|J+s4G!#J2NICdtJ1 -z#I|irY}>ZY?>o=)yXT&B>Z$kMs$E^xYj<^ZRsYj_^_?88|M -zaLEF$=Aie>s4Ai8aHT2<^U&drz1~#sX@B*uCENMBQ(}=3d!1RKm?D^pfB3GHD0^jT -z8UjOSFs9+rhd%MqKY6)>eK==KNLEsdKG{MKKMIW|1%Lk;VB;BPrq8%Ei>4j>UjH?N -zdCUJt+Zam_Yh23_pehnV472*@!`<})Tn{ltqnLedFWEx$D)B_2?+6^agKv&)n5TfEY%m9x -zJR3g=xK=GZ7g`hB9K7tgQH(M5m1YVw*0+esM@}VZAMTfvNlC5qIZ`7!uU!qJ-!R{g -za!Z}#3AzrWA;Az1kz(2s!pYmFxjiD*#*shs@m%2vV7C^_cT{qMG3iv{}z}g -zLm*3UGD^KifBiG@K6Jq3)UO?bkhuM=6rEks)=KWFEC3{l(2axk0W5&r`q|5khU6F9 -z7{|u|p;l47Qm^hDOY|@R8u2t!PY0cQJAW3%Z+Wo(OHnYsEv9@$g4v(mH0acaAuY%& -zTou*Dn7fY5z`~w1qd#AN_x_KzsKF9_*@kE8zeF$GL9)!CPM`Nb{D>oewC>PN+ZK0Iyl0TfB}$}SRGWYPPgOhlVrqN_zr>^T$m}SlbN{F6g#r5?suwH7|DWn5TJBZ_ZvLXjrkfd#aC`4Mu!wbF;GQn# -zJ>ac{PzaPZ$pzmQ^g$h`4(3}C9VQWW-+tMpuTU&lj)G&ftO3a?DKp%J6 -zzGC=zxct9%U%HSiyOm~wxOan($ng?pO^keY+t~l0y{OG2(#r#awR9L0j8RggR9RtV -zBuB(heZ$z_!TI9&ijx0_?bYF7y#?l&svydW7oS*pzdwo@U@0;;NY4WxC@<^>u`yA9 -z?6}wJyh#nk$_AN}7)@_EZss;QZ2+awe-H5QHy{DHqRU;YDy7q@4)PTb>`2?eT$Vov -zbaTxBu4U1uODQK2;BT~!&W-;>M9}F5=%=B$qhCuxVPT|sn8ZYx{dy5#Au*AhbqjHV -z;E4q(3py$N6YSY~l@{Y78~<(>6+~c|pJju|{q9bxp?p+~HnwA>J0;a^N3W%8oLH+n3a?Ba -zT(axTag~Fg6)=VuZG0Q#L=gjlo*emLJME?0JMymTJxS8I=5Y(1YVJp#PDR&b>WMzZ -zoGV3&%P14+v-?4k;OB}~?NOI58QvQA)QHDg>K<`|vuS4~FPn9Zi-$;VEMsQs(K&0W -zfC-?nMzq#h`+l9h>XV)-)5{zXn6q?wb!dSnxympGhF5)EtUiWR-IJ|#3;N^yyH9{W -ze2&EA)+R%#tEEWwx&_3N>b3Fp;V6iox(qp{U_m@a=^X}Rc6w;7oFO?X(WReEwgi$r5_h0EtEnW -zrjl&yM05_FqoyN_?ku#J_?BagC0u#P(@TrE=BMilsXy!2X1nH%W8(tC2p_j2{w?j- -z3{>w4iMiPiRB2O^-U`!iI`M-4w!Uc7?x-#4Ja})fM=k811aDHcAmXQ_wK(@km0_zW -zJ&)ZGi2I_knVWH0>97jiXSys&H(yK1=Zg1RTfq<+AIG1-Wyw!CWTx4!%LdrGRf&h| -zLUgYy6;XJ#U61zIA)io1(<#cS99 -zU|%)NwkrxlM=gkTe-Lo$a}47oOLpr8IbG|#7a|4>_%&rnPE+l(9^tB#8>5-3{K&V^ -z^qhkze=}%8E0M -zqZQo+f7e35M0D!VeHKf=?%$0Ai&Vtm0%QLnewEs2^7y(i+JQSEpKU5ui!QNF@C!)Q -zM;0sKJPD^zn}|Bj2%~VSyRYbA0Q;YsCAn{6VjSY0mWN>pH*W_rHY@fGRfs3ae(JG* -zq?9t>Bo12t@DxF#0J|u-&>$0Lv{9Mx+)*JG2#i*a!_g`>&b49DrZ$aDeCj9!<#iYh -zATP^M)p#2jH!+|+mxB4TR}yO>$B1D78@tW89Sk{Wy)i%b>tz)uC+W6cAq6AAcZDY^ -zg{PRJ#F^IVy;xNtQtBqvMN3+`5Fb9NXS%Z|`k&~0?U=5ITL2G03kA?p%Q -z6~*(=LZ4OXpX%LF!Ml;YpyW77&^%)z=vI+a!bhsI)%epNI}IGVlJE=h2%}$u2DPR@ -z(WbeAfS>upD$2M;1CFx?T$Z&7>G5VwKf`PpMmcu9|FXWLon(M~j%(2!Y~k9?D)pa( -z=f1sSFky>^k|H`Sv&Em7^qOnt!V6hW -z8+1VtRSRXQf)j?_vFolq!H`V-l&BwTx1ZP$vtPV;wip8KLe;=7k2n!`_{ZtBros+dFHhUA=8+aoM -z+xq3z#;p=v+*CeMpmdju(0H70LV58cME6+RA3Y;u1qSt6Ms|#Q&3>l{dg5p8al2Fp -zFZ*Td6oZV}>yf)r(CS6}SBN~ -z0>h&IolnCxB=4&20F2j@)J1aQF}cA)cwICl6_}DIIbNP?5N$qMjl%+cN7%p!XJ7c= -z3~Z(lj$~$zqB6A%MBS$1G8SGEIZyP7DB1(VDr=ylI6RygCWZ>_5GoFuZ}HFt&uWjX -zhZ?I3#CuoV-ta(4T1rH#kzhfThwW38Q65BLdsz?Uvt$}14R*rW0MqoqNV=Dq5CLAH -zb5)^sT=KE4hg`WDSY^GVH9iDv+>q1V1L<{->W=XOE(#R5sauyhe{fW+R?%Tnp83IO -zm+FVsI!#$@{(s_Mb9oOc?7oy)icn$PVDmV%Srd0_O6S3A(tJ7C+%Ta@=A>U@rD1LM -zH@~0y;#LXt2%TVH-tX9~>^S -z3#T)FpFsdIU07pvqMZ1WJ@=f^LGP}fdpcB?i9$ozmj8J(27A93$>b?9Cs@y#6% -zg-(;0wTW<(1sDsno|JHKk?{-o8d|&PdCL^{02&ox_}^#)cD+&mfq#L%NlJyy)S=;e -zOX)wPqz;}~kJyv{_F{!)`oj`EG}R|&?mzZtUCQr^%b%8Du3Ke;$AslE0=l>GSPE&Y -zM^nz|u!AO7(MmQ4ViXmw5tzG5B2F64vt~-Ic?b_fR&@{Zq-nR@rrzK`$_jbh?5krr -ziIS)@q6ojJQ-ouN%TkR=49FMM>V|rP(i}4JrxaE;vFY?oa7Gx^*iZk6ob9(3dfD4U -z%t|qtF03J+47YV*5(U@uW^KjcSdG0=w6e98)Vb@W^8t_=Q++%6{{65N8JVD5RoID; -zi`YrDY&CK87-5V4i;Z_K%EZivi+2TCnM(njM0VtyR{2X_6RLXRr*@bMN;X-OPg6ro -z=;YaQl4z7U+6a9miP*RNN2)AiH{XgnR6l-D9!;gapQoMiO9ze^Vr40`jy -zX*!-kdM4LS;x<4d6am&smM!A@Bg@inRy;q@smSsa1KB|w*&uSS(4=n;a*D7u6;5lk -z;^S8P0o#l`{j!sxzhuTML>+nYZB{QSl0!7RJ5NHH%`w3AY!w~oN@GPyR0~CyicY6{ -zIf&g(KsZ8jQZPpCZQy6YW{jf#!N0mx;%^`~Si!Z$@pdqoB0hvUw%RIX3q)ma^aT)0 -zzjG-YO|!`wMjK24n%JAe!}_6m8@^T9!5J$enHr`kahQ!ROLyt-pQ-mu -zAie;6De*GV(*;Vh84$lYd23_7{#=2ub8TzsPs?H(%( -zpO=${3uKD-8vG>)NP^}>_3mI%_?Ex(3B68fjx5dm=M7;8gV)QoNVK6mcm|ZITW}>b -z2nK-&oDB=0soXfheP4fN!NwJs-Z&jbNWO0@=FDED(IGJXU;3Bid+-3^6{b>z(i~Jc -zObfO&Z-s#^^uvjqnp)O^wGL9uF#>L-rMH9Ig`$}`#QL08FM~|v=HoWpy1_ZU-=P7J# -zmX+)b3iN-wUy0!}Hn+Ze!KHL52jTw -zb>EHAl37Or<`VqvofyR2i^bt-Y_$+eiH8&JpLF+deIOSD|8MfwP#l##J-calN#aSx -z>qKH?;j~-%u)Cp(I4d?Bw=RA@bI5x*i-6pQR2`g^a;V_vB#P6Hz(P3t708bZDoG3w -znDS4P`zWSHBuzWhAd%od<|C8BviyH(qXGmC2rh0^ckxCt?wafwFB7W%+P^xpq`z91 -zdaqD;EOgw%P3w;)3jx0ML=v*4I-n^Dz4m1G6R{Y5LFL+K_uZv>e**&!$Yz+bt* -z{~P=zy5=&WYZrm?(F^jiP2%^z+%GVJ;*LeZ{cu@H5om$!>e`}|{_@r%7!7W7ue4_1 -z{LiZFpA6!V&WJF+GjDTVM3R;{jv&#a8^mu7yQUP-KTO-)(44kCD|c*{^1R@6xV`StHL=uTt(aG;dBMQhonGgmUOeV -zwSAxXg~GWyIDI;W+%=WGKf6rN+v^E9U!!MLeDO~`m2r&uL~*{4m(4|H%!WwSQ<;~$eU={w@wnAD0Rv1?9m*c -zxEKR^H8fyONgdxc<{mWItS8iZUC*Tpxqcx!gj96?2@@tXd -zK8q#8(mZ!cgGC}k5^8zdilm)DCk94a>;s4-Ma*&Hw445y{KXyE8&KBdA%?+*niPUo -z9~HX!v43|&`kIMWMjFBnMV5&?x#+p3$|GdmE``_`4)X1;2~(KP24Nzc{I~r3t1b*4 -zYZ@j30Cv(Sdnf*ao0=KlE;{?;}Qp-g@ -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 -zTpEq=qjr16v3SKb5!zprj -zwDAD@K>U}z8n*;9I(xK9wG$Ant<3teeT@`^|E1^*kej6fR3sbbKIUK&9?trC=u -z+jXP3CPyudqE!(SC;L72zu?v204gTy&q5rRKDTrLMynI?Tj&ocGED*c#J?(6725uQvJ*_*c| -zft$D`r8Cde(~eow-oJ0I(j`2a>W%ebgpp2A}aqM -zd38-{!HsCSWj;uKGtXj&_E4fiY0vl6pZM>&RBy{djK$ZseIv?!x*WWY#HTH -zHIluJgV3eGp-|C*`VMrd@J~1znI}!0RTa-(X=in2qx2*yEkuo>ZXG(jUTuaT`zO;# -zFfRNx8CGR7tyE_7&DZ8TeDlrUjOY~RB_L5jajwNVXp|Z<{>R6`kCT^8I9vD?_~uXVo6tNMLfZ!N(w#sXs&38?98jM(8y{ -zXary7NZ}RblAGW;QCjPps;W|rDwjh8rA!@i?bx*CXMRboSu0hsFU|5fZ`*m*MX?Zd -zo(y(9tYf-p_3SYh)PPOo5d+Lyr(i=6qg!#CjMzM}BINjM(>HQ?Y5{vY?{_76Y43iR -zr(}GJ^cOnz=gabz%7EugG)F$-WMn>GykcHXRrA8pjJ)WHZ{!HZjJ6GwW{L9V7i$jhilIS8ZzT2Y(OGdgVThivp=<*>Y~vMeWBb|IGdG@SA3i -zoOChZmVVOPEiY?LfP%xwU$u9vcBLGJMz#hTmcibMDN)nc9L+Kzo{cTtJ`QZ?NP;rQ-utfzW& -z8C*cRo&dLhoD=Pq0F2K4_NV_>jNr>9&G(WX!-!aioLf5I#<|JC_t1|cAV!_+8zQ`& -zHVF5zA>ja!;#2{LpDydt5k=b#cEvM%!<+7&f)%dU!Mye3kt3-i2~X=2Nw|D1Xm(JK{{J5dD!{=aT0^> -z(DNF-3)v7aNUqy6X%`mK8VfG>_RH5gyT`Rh>T2bcq_@5sSyE*F-)_}9ip$FV1KzrO -z>JM*KuRaBAe)^#LVFc$8Ar0eV=CQ}Jug@{IvsGqRFSl?Bu;E_%pOC%rfN__jnE=!y -zCE2Z0_$|j7`_%bIyI6CmdKnXbtC%ke)e9T})*2Okok< -znOGlBw0o5`v4JK2bF3s4sWa!Az}C1xOqM$vw@@l>S3H-*--g%VJ9C;6$bA0qU0V?k -zso?MT^S(2#lqlnT#e$Eg3_>SX$ogeL4@zIDS3xhse}#hfBmi5VEcR4^PG*MiNjrtxuKEz6gflv+|1`P8l2H? -z!)mg|na3Fu>z2z`wD_n_Ktfxin>sI#()!&2}sf6h2#20CTGaLMx*ZIHUtr-gNcz;427kd(0)|ab&K086l -zu~gfWU5F~gU%#4uIKiTc`&JLNmWSf&=)rXZ&2W+cj$}U#Bqmp4i~6WN)|~V}RGhFC -z7=*8$3LUmXK`EZK{{4fj -zwBb}Q<9x}yadomt;!?E9fmZy>;3gV`-ceUZf;2ku;W`3E@}}-Gf&Pb_LvwGa2fP56 -zb4i*Iu_!}%>pmiM`=}CO8zYSvh1r$1$9CDiBw@tTQetBzmr6mB$P`?re0d<-o#b_1 -z+WAl!7kk)(A)*ENosc73GUSZ^II9l1{5lB>Aoye8EqEP?D){Xr)p|odo4)j$F~^)v -zF4Dkv`i!CMzV)Bp=2PVv(hn6cc9mJ=E={NbLE)5;Vgx!Ww;jWn?gKW?mxd}*bpBRB -zwYxTKNGIO#@6**jL+or2-qGJ#C<=%uu|Txm$3|YuZO)M7QCnGscJQK-Kx4jG!b$*Q-%q%JU -zE-Z_@Y$SZj4fd7cr|O+_41B0nP`Gn%5Foo+7Fy9Iy7;PpsUNY84e2+Gh&r6 -zw}5_Sfmkl1-i!PDQBW08Z4o>{y{yY$dRjq^=zfF-Hy*&_v>sZnVNi`EfyUO1HyzOb -z2Kde*9;VKume)ZoI7_IH(|Wa+b);1_4`_a$#0<{5dUt(vxm{{>5P3uh6 -zBy^MhZoxm^4SWa{qC_}liJxEp%u98CEKxEF003&qpnFep8Y6+w%Re1hK_{)tIRC|S=j4wZ!YZN)V1zc*>`VCv8{13YHKb4rP -zj)`(eG=U{`27JJqF|dKz?bYuv>MJdmzhAN+CbnmXT@FV^E=-ky2Ilg*D94V2!`D4b -z?UHj4-OfjP7(Jg)`oE+HRQ(fA@ -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 -zli^V+HlB`{%r_9Bir^>&e!YqY3fH?&&Q?^ -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 -z$qV&n$glSrS$<@ -z)|s}x2Gl-DeaiI8v^gZ~Op?{gKxgDXRdRhTFQ -zT;f}XrhSJxS_Q|DR(obua`dUnl1R3`3z!W^{LNQi0!KfiPjSyS*oR{@SVmNTq>5%z -z&a{y!6_iJLK%zKrPv|@6P!W>6&<-Px^Ta=^5MMV8ybk6k6=_-LnXf?E=8)=s9FnBS -zPpl}!Vb_J95VAG)o&%RFx>};bRS`thjBKdj^Muf10Rj?CF?lNw!!p+LPIzakYn9J~ -zMj*!=z?ybUTA!(;;1*}mUM~XnPqzZ=eD42b(m`iH)Td_->;g$9`BArA(;(pa6Hwa* -z=nJi5_1Y*bWWPwpd6V-8sIGjEn0Rz=MZD|M{nBg62n$o*{Uctb+Lzk(HxmHV>Ntn4 -zEPG<1_GiwMIO2Qro|$CGq3fcV|6GPab8w;37@brxJP-Vrkr*$!iXOGeLN34cSuX>s -zC6Y8fq0<0rT?aX0^l#%&i06pFRLB#V=)vwz&9^f(RtE|HT$t*jAJPldRR|(~ST*d= -z_|Ke^?_ZiCi%4Z*=r;AU>t!#PTn2uaNW@ExNXYtBvL2jZMSUv4(h!r^{gc3Fmr3sj -zFCAGrFIG$g35Vz6V8OEH)@YoxOP`Ric$*vbgOB4?XrqC;au2* -z`^*yq^c2>E1$Q3As5Efj7Ge+7{FB_UrhcP}-T8tt{eD?f5=T^dpOB6a<}1bXJdL~< -ziODdTT84nI-P}s9OL9t0Z~hR8^E)CSFoyOpi)sq8Kr0P}uPpHx+p_cP-(`7s`1oGf -zW|EB5%cuWCN(+Ay_3D9M%OCEw7~N}FF>?rILXEC#Xy(VB@%@C^Jm}}g>8H2jy_SUE -zeX+MkxD)^QtbXglq#>-AwxNp4-Ey6Yy068JEGlR7QBmHW*17t*3Z -zAEGIsB+(@hAK{(r!s{SkfzKfc?K=oxC%)m75=*nH+sp)vHo1jSQ??rOsOEo^*dLXY -zIfm7OIu|-WUvxIBNQr&sslse>68wI6Qs6p#Ewz6XOEq>qfm{eyKd8A(packHp-D+bI -z44MS#X>%0+NfSxYEXDETg^VKW`vTW_zik?Sasy_K@Ed7;08+-x%&#GH-Bp5eT -z73%uV&-(U%4IE@-YND%`(-$n-+xgeWBjAlGl%y;Xb~LJ`B9>=Ek{cY5zzgVdZV?|| -zDRi0*LL&R}hO|EdEOXrV0MLJ4shB(UTSv(m?GJQ$tPS2X=#ofvxO`W=rm-qyY;OGL -z(B#1yc|G+z{rotD^qV1gMEJtigNCQ4?~!|nxR(q$!3->L(<5JAp$tM*e<33~ZxAdD -zmMJR`X+cb0G#0vlUJ2ZHFVZi?44Lw}`>qJS)eOFD^kL3v?ADgtqWE^>m3DopHB#H$h#$^^c6fLv5k!*5SK;4Amn)FjZNn^_ -zHb|o|Km(pzOxO^nY01k}IX97j`fP|j9*1Qw^Aa-3;z0XPN^cy1&DUu%yw+Ypj?v9O -z9mqqOz_4E&iJ(C3SnI|rkA6Law2 -zra7S>s4RuZrh=wbjgf*hejOMa*Cn -zdyWBOFm5{TU#7Ta9ihz|4&L+L_XLqy!J=*4IoKw7o6cWxw&#_atWx(+Cz67CClQ1x -z0jGrVg=#Kd^RE4wZCR&iRcoZv%R0$l{rjw -zHUXJx?zKF~X0+beoMDG3zt9i>L1#9dTo?pG`@$RIE>F4L|JvJeSsgvlfP6#H*0cG# -z#r!3EIugozQTc|=4Vzfj4QGo`_GXF;`pX_&;i^E$emX*;Ul{YdJC7GHcNzNY -z0ISjxN@O#uqD&ut>BI{EX7&mz=X1pa3`Q@_qA()yn+J$|tUZrX%?iX@8PW6TTe$_kT-($)y;0* -zRlX9(&TS_boegpE^_$7Crg1%qR`)~L2ViQ)-C?fw0hm4`niNI;BU5|fV?gt*`i1!v -zD&wz#ConIU2Nw+|hI4)}5dGt}afWzAnJ@vmTxIyUo=fVCA4dp$_-zZ9XFx@S+- -zzMkt>1r?@VLNB;vyl^DJI$sq-)3Hx9BE+?WD%K2y=1zk$N&_yjP30nLax&pf)H`=7 -zYWp5;`V)?Ejm2UM2i?VnDP3=Wy6?a$a*!m10*|#H2>SLBS;UDOKM)+yarJ19N4nhA -zxR785)@LCF^DRyF);nMB6wQNToG3%j_oKh(nWiXdV6|xqaG7QO-4{;>k4+~dX%<96 -z2O5I}68oSzGOi}(_h{|Se)@R%Wn=Hd_a$@2K$Whp-F+^*%5BjedB?rw`%`N3RBT7$ -zs!Bo0G51n3UykhOAU}B?-170cGhoY|^^(I^gLHns9}KE)#L;VEY20TG%6vmE5c`^A`JJfv-IoQ0+PV*nNV`WrAW~wY9Z4Zek_bX^W)Vv -z#2|3Su{mi7uyl^$L3})@>;#!jMH2xeaL5fazYs&{_1$MAM6rMmU -zht4xXUSs{VKo1j*Y&`n<)aF&$wWt!hSd|jEsq$imehmZe*@E9;@ -zlU@CRnBq!g%70oB2W#W}wqj5xQmXi>x3(U*WGg{D?W0=jXJa5LZ1}tAQDT_YC{~sQ -zOO~{AhqBDt7ACs*shnOf;PfntIsmd^8Yg4w>VjCD>(E=f1vdf~Q>BN42n@AWzDBav -zDOhF&pqY+M&#nC6Mm({Y(ipwP7q*{wC-Ys}83%BQWEy&Fd-D3T$b2ZKKhlH!NIM*+ -z+K-3AJaXD&UC^(uobu#ju^Sq!jAjFniNuuJI>ST42oG(poP9SbkNX>H03SqFddl$O} -zGoJdlB6Yy3NGj|JZ20|(4%J>0&0&nBF{)2|7rwR=q66RDTXvM0)3%C)2&-RzqNg(D -zOnC1f$8<6lPKk~KId%SXOo7vYK^Ht?r)QeqmyO%blz!%eJJYh$O;VJAy!rL5j2TT8 -z#@o<2g>UHVTic$hA~o#-ksBQpn~^G)Ml39D;*#{LZ@N+-QeN%>9yM>mvm*rOUnLjI -zD78;rRDl(PBZWXxfz=rX${?58~L~)ao(}4-sv!Et0RhOhVJx^I7`3OFHuaZl8T?TCzX)UFMRz -zJYn|{4;-ExZ8T)Cc+ZdP3-u!L$Zj_%WJWjH?%~_d1Ooyje+ni#q{w_nTU^GUif|s* -z1~jPnUT8E3+^c8E%O4>YiExW%^7GsC7%HO|ba{^gY_KI{piE_9DlPKVeVu97wKYOr -z0nASU_py&oPRHAf@L3CJ@s9;Zt+Z4NpUia^BAX%;bu++my7IKDUuc^GYRkz5DE2jp -zUb-cv@h~wJCuONw0uCyr^}d^jFrN)MvQ~li -zx#KTq{ds-ol?C$}EHS~BGw-yITy5IJ)m}uI%wI&|%d?MB=OB(*yV1-8HGltgOd36m -zA;$r`CZXX|BK=ppevQD?a+z}j#3e;dP8~LRE -zzGAoa4#_CEZu)W0Z7=5c7z+OdIi$wzbzSIUUUs)w&5JdK03y5Mfp9ivFM-Y>YzOad -zf(hwFp)6WQ2ONZ=p}*lT?tzB%gTab^Vds5TTspnYk$AbSLWl3rrY`4fmEmNfRd&2I -z_4t$8n85S;Os_X7960;gv=T3<<3NIc{d4DvGi>rRh4GbaH^U*6S1;67JT1%zbnKFN -zMdE^1fxp{;e{~9lbUNdG)V`P~_0Sr&^&pykH>4U13WE9;BpPsAr~qg|pKTXn6j_V8 -z897Gvsv;)PZe*M3apt|?Y5tdsd$Qfs*)?e>gOE!S63(X!8MLN>f9Ue9OWQ!cGCS4Dr+u((gxt5a3dep-k1j~-CfebhDS=!JJ7YhmJIhC -zAc@4k%UToX;G42G`eLV_R^QRlOUS@*cwcvor&8G~)NXwg;2=j3qjLD3x}{|5pIz5~ -z&0*_`C6|i%>DflUfRLkNBmY?vqCml#g?0b*6BcRr<>bK@$a7v&c!TdN -zgz*^rNNVpGN1t#1(naibr|SxrSDsc*!1GQ!3?W1sn8VQ8L6ztE+9g=9ZSoHu<} -z#bjhR)RY2M1TTP8SiRH`JQZ6|XZ=)BQNZ}{Qp_7$4ri;UjVC7msQ(rwW_)^n4dwAc -z^@##gMWUQ@FL-Pk#USDn*HQSI@cEH^BMvbEmL&xk1PjzzkjK|=kV&=EC$a!1x&7P~ -z%W!i#viTs`XK9j)k_&ZKqQ^AL;_7e^Ks>86|?QhR| -zFN%P~Qx7~KgSkdl+6Rm3#kDvA3ar%9i( -zqbloHL=SQr=2mLmiB9wD}({R=Faf -z1g0eV_Le48zdu0J=xU+2Eb$aR@E5G2zC>DlO_duc7q2&y{#WxBIGvs|(!1o2o6ndm -zoKi3D#AH&mLYxNTL=)PAQUggPJUxi1;2^)l7K%*Q(};+%dl3+|47rf -zknB(R6h2)arm6LZX$tT$`p+~CazN|XdCT;X|60&YVduu{vcjhzq9W-;{nPL^u)kOs -zgTILR6>Ej*;l~4_;x`Y=CwG@MBxt9l{F5@wT{7li>H6>NB|?pAIKktuC{>^To|pi+ -zh>?5U5n#z+_O1H-dD<0!GsnLxseYKIrgytQnNaW8p?=*x~3Z6N>pDUEQ=C -z`6iPp;d~5SzE3_mR-vhvXHW~xB6<**U0E!OvI*f*?Q&fpQVa7YK=7PAdEqW*LANOF -zxBCy_-VfMRxUW%Q+TOWF9nhD8dUiiu!+J)rT|!)Vs2H-XGH9XQqa>t;m+0bvZDXb+ -z`jymSAJOBf%DfEh#CAzXPMYn)yCfz)D$sBl-U_0@-8rSXl}Z%o4q3wRj+y#2vpgt& -zYeJLXYC9;?hhp41XCDR!gQTG63+)lAvW*q*jvwQhGk;GYOr`niPDIj1(6n8em)I4pgty=Vbt%YTR4Np_94J~b5z}dU -zhCl(xxF;MQ!{JzXlKGZ|U;{+1q%>}n{n@Ugt)+Iln2dxVjc5f`YDp9fXPiekX-}&s -zH66zID-FOk_w|72Lp9C(mrTo#e -zwd*<@+h!VDrwck2Ql))Y8X&K-4g{&vkrAC=ot!AS{^W9CHzKJ(;o96mVytc45Cu2rz7D%aA^Gl-~<0}%^uWdm9B-zs-A0eS_q -zqoyx!6hds47BQn<_CS3|TON}7$P)l%jF -z+}l4u5?qkM%Q)-nuFoHsb^!g|Mo3B6cZ-54TZrV?aq39e!S_kW=RK+BkRRi}KVN4- -zJO8*us@;1JaNA@dw?x -zlEIr9tlzf6GPhFptjOZt0>uO5-_Ih(XmMzNms4(V7eC04>g-1)#lu}I0<-&M8pi%Z -zP3f<ST++EwhD68+l;xjxLhLKXVXRukX89~L<0N5x#duL!kz;`5^ySYk -z3JXtSP6vmm@{F%U*Mb*0reIzvAu$%W<+LPG%Bq2j;?y_)!U~8w;7X>AUr2z+j9VE+wh^Zz@{V28`78MAVF#T -z6|Sk_xG(#ZHVG{5kJ(BU3|23?ZHU`#`s^!eqIff2hCba`u<0ZaPE6WXeL5v_ko6U+t29+#WTTv5$+jL@K!oO_@+@SnQg=$%2{}p1e+lh)GRfH=Ci+N(poTy_Am@J#E5%A -zxgSqO&KvA04d&^N$f_^)SM94z86x*G>VT?cMpxnbGq)CK`3$H&Oe?E -z4Qyp$Bz=L=G(C`9TBldmSAf~MpznilD+d?i*JrRDkL-I=}-kAD(cs`v{6SKYMH -zEq!dYK+lFn9>+mNkSJZp%MoX+ObnBf3a=rIjj5=14GNC6!yi2g#4#1&y5Wr`wAR%` -zjnq7_wT1LIKYQucDcg9~*3#V}2de1s1;kubtm;Zw9W2i0)#L?4k+#4MG?`Ghk;4~4 -z&|HIndkmcW+g7v<<+XVb@?=PVD$WX@z^ZjXk;E~Wd$?24l`k7 -z-Nx8|{N8US`C!5Hhtq#2Vvx{p{OZvbOu_Sqt|yp8(G*wBPLVU1QIsBQ;}0zQS6X-7g3mIuFVKqHxVkzBRI#UO$;>_ -z;ufWmqyu%Mm#?6IuvN~CK8FOKtoLQaKga2RB6@Ej#oSLFyRu_CAf+XW3Q%D&`p2p2K(_GnP@vuqn5O_n_;4kr -zWqZ?fOPipsA8r5a9ykXHWen=PzP#jo$W^=k1NXGW`0crdli96QEEmJTPZ|8pR-O$= -z0C~zGRA@i9Y&DfHGg-n(4yNl@z(?{Shl}E@qUd72eOq8-MPV6MD3%YP`5$GqWS7!i -zk6Oz5z(9cB1R<1m#!M}-CL}q6O^dd8F~N|(+I{spz;hf`UX}|_#@XV}qoLVC2qdt_ -zy#*pV=T*D_;{{J{n%Kg_vYI6ZqT89bmEGk5-zQ=H{-Z}KxJ8*sKGd#LuasTbnZ9Rn -zw=|P9RCD7Zi61Ybn(+rE9L^f;K2A=zRtGEEMxDC!TEwNO^ -zR6-X+vo>L~vMB{{pyb$K1XoKThYMnXyo -zh}{8^-UP7m8_453Qudgk^R~jI6{E7B_u{I=O1Z*yS@&8xl4<}@5T(wSo-3}*(@bw$QN4dQUMfOr -z9L+h_``t^#SCe4&9TVjC?b4?~lLcL3UnhtR>`pFiq8s^$1uc$U7pt$h2W1Q1z2iX- -z{F-?yzq6Bd`q(6tusx_B&^&rBwUGg#A4k0#KT=NwOWKxebJF8bKp)>O!E%qB$sGn} -zpHj|lss*CZIRdU@7<@4@38cLth*y9v0zo5ANh1t5jI4t2o=~T6%vqG5Z+@ZdMC-Qs}bF^lRf|QG?I6K_)OsWLctjY6M -zTm`yVCEKrinrQoD4&c(7_q+7J)^5Yp|N3Q!YAov_9AjN1k?lp^7|#zgL!cz`u_#$+ -zn89H*JpzZZgOYWz0+f!0?j{net0hQ@I;)G$r5FD}k^UZ$_l6*REf~O}xl6puhO7QE -z%SOu$eaTCSFn4B<4=IS^4obn8lp~(@lv|>vTp{+kS4#>@#@<9HpU_p6C`;52ReRFP -zN@6~+hdp_$V&rDYIsl|ZO)o2?S5FNTOWlS#MD>-@$$Kz%DF#iyRI3PODbiTrARfSIX5fWra9_Df?>Dmr#G7D{TO -zs9G!ou7>+Lv!T=(#(dQqmCg;Bro_*50lOl`8~G2di^Bts`0AQR1k$9)QxL9c%@mU6 -z7zg61IR?uZsB((LNg^})CAYKB8q^~Wcg+#6Tq?mM=?fsfmP^;9>IFuRe1bbjkg51q -zmM|r)v?%$kBvN;{DvBh%AC|7hLjONf!_meuTm4|u!6eA9XgNocm!*1u=EvFW<+Mfd -zsIFpAin(qJbJ8MvYmo$vy%XwtMhn~K>Cfs4(3Ex0Zr?t>>$hBc3g@^epPKa%@wnHvZzNP^8V7ZFUxzQPTJ(GopHTM~B&i#mVOWXL191+UU<;7Bb -z*YwWWuca=lOXuY3g#}W>=3qq;kQF~CLmWy*Osl~2UmRl=;K4*eHWO}LGEJ?0RbokA -zQlJT#_o*P&qji>-KD8xp4~prGG0Hdbh?S^#9wFLe@Hi-=(A#JKTEL>|oV4_v^tm}W -z2diUd!6oKo!G=~*H%96*vfNd1AC3B%xUlooM{J~-^3)hhxCX=3R_Vwspqkrokfl$c -zzKcWw^##a_a^G@jt~#c4fUV6*!C3e}tu_)$`!wkwx4xm^KDTEyGpQYf@Hx+tiQQ>l -zwiy3kec>6aMdoe}rY62)ivua*k^wVy=S=uE*kj|)HvpV0h@EmY=*Ec4ldZ*JeVW|= -zwJ81;+P{+ilgxFeI(pb)pq)qGie_4|5b=d?-AEGla!0Ods6aoIz-K)XzLI|n30hQ( -zm_)?^5n`Uo)^V2_V#kmg#w7m=QV5l?2onj9FdX{8bLAI)^~@4Un!v-UC9m0rRAc}s -zDy*d;w4TNnl>P0hCRP8Y_Tn{Ae&uC>xFb;-M3$sw-!FvZDbJWu(U8Sn)UWWcba)k< -zsgF*upoT7%p!(LEVdJ@fKF<#g_xliw(ouh9kwe>6;=R|wkK&?~VD`6cGFFnVwo!g> -z5_8#J@KE(#cI6=a}d$$INDd>aO*4r)D0Z0>+t%HQOchxA+q9XOwS&P&?S -zM>Qnj3=Zdx0%#7SP^2A4$E{!a?$dV)OEnpujP6It12W(YM=r0s=JkZZwROpXaAHZX -zf`fKx9;~${9nNA+$`_QGeW}ac$bW~S=Dfc@bW<+NQ>iVTv+x?m_i*}UEk&CXe -z7aROftyYx=>ySqG`0o8`bjSRZ)KzK1OT>xxfRdj6<#$(wlY7dS)F&uXH&n_y^{3k$ -zr$BY)H+-8CgljcZBOy{#wq*a_#?=+P45r?e*yk&=Rc_jpFU}fvj{EF4y}Wr|ruhCx -zQ~R}cBe!;Rmm5FltM}|FId=^ -zixngv_nmR(Ze*bd^hl{Zx;tW3U@7)T5I-lZEN-W1o4d(x6fzo#dlckE|9mZc0_kKy -zOEfPpoc~|I$fY!MfvK&&TmcbMy*drtYDDwRPC`ow!fYR-pgFGe=)ln1e%e|vQ*9@k -zB_D^6=D{gzz_~Imn%9x}29ml8#(~qb#KMmen8cIQS#b^Gp6R72^kcill&ne$2?g*I -zlx{EiA)-kicvq$_v@O}vgN3#;#zzfDcC`qLnmCmUUZNK|sOv8X%_v(GVA4PTDH5#S -zSSU{688$e7ILED@;dyJ4PF`@x&iu*POU}CS;(qfTuDVlEA!gvONX4C5$4sBr?XE#p -z($HpSA{NvwcfbuByYy72se*WjVuB!Yd`#>|c8D)%m|EF=A2DlNm|YzUS#tBTd6mbl -zkPe_q^#FzL1Ud|roTkDjCJg?$h>l4_2>UhH6~<<&uz|Op>IavG!uKOWq;TP2n>*ZN -zuJ=743sO9Crh-&RB3$mgVFhJoVnfY796b{_5p!s|U*x%t!&Ws^w$Pm4M~P9|im*WJ -zmiD}aq{L?ksM@08og>*`Yp+sJfGM^?E(3G0r;4bU6LvX9B`DGZhMP(xi;w9)!?it* -zq_2E8>F9?o=FDK-1^aN8O%I;>ha}5}#|t`h0ew~r4x!SHrYdRomo{yjL(UtDH^Z-w -zj)7Ct;V_3`7um@L$U?e04ES)X+&LP>{-g#SNmb5E@(7P+U!LLAdEQjaVW=T(G)qQm#X=%#eN!_{M`&ajtkx|D+T -z>T_xh$8C%W9Q)xJ6uwQe -zF&?gRcS-``8Ftzj)4-|5Ee+PyjP^F`(GMV-ES?9veq{#brP5W@b7-5w0Cq}$eAk4{&i$ygKCP7MT&shG0xRd6 -zUapwkyA@jM{+IX>_QVqSq!)_lD_w3ET3vD#YicZ);6!JO%=l_ZW`Rf$+Yg1zBXbQ@ -zHNTROM=Lq~3nuYMIr_h-5A8iYRlG)lPDL{L6(M&4rZ4~#??DeqA9mafvl&2kHck*? -zCUUSPeBb7(PE%AWLA>O2_8|-nuso9f9t4{{n50FxTl(TqyvqS?8sVyQsz16w4-1FaLMAqr -zO4TBlSShGmg0XF$c>~>#i1S8}ipptkiPbL|$q;t9%}`=S -zvXUIUF>*Ny&}1eRH)IL_jo4262fBVHU`b^_&Ssqyz!-YF*wK@|mEN`u9Y50!geRD@ -z2he&gN=PyCdIx6Af28Fjzje;RZu#u*Mg;X|gKUBTP`~R!3Ipj3BSu06!U`AGG3|o% -z1pR)oB_f|)QuAQETM_3!NzLtWCF8=tmad2;bo{{$h6vAkkw`IM&Q_?+c3J3!wlfgp -zT??SdvSU@mp?}eYcQYQ-s6iy3H&F`)!>8rj(y5svhj}u=c?fCCOEl1SU$0s2fmq2Z -z%Kj3~nIH>b$)&+Qt)-RM3J0(Sa;5~CXUQnER_Wu-tYKPURJ+{w0nPKNF(*@ReR91I1yxl@@FWf$TBMx?I@<{J;J^ef+2>)6W -zFDt%zM%ZE?_p^+$!j$CJu)Q0a9}YoAOaMk@*~oG(OYeGd9#V{hgV3PVXIt3dk~ -zl?Ze@uw5^wN6-_Cy;9ZSLXpd-#)oXWobDi8;51e&UEG+ -ztrEwOP_zgs4M;h;+>XT}17SEen+7Yj(tLOM>^9Mt6>y(xfwb*YSdRdq?KfxW8rwy?$|l*q1+W7Xv2MrKQnMXtpPJj~dhxG`><=X9{Z -zECkgHQ;A%{^DnW~X`v$MXt@op1w+m{IhT-j2P!B&PK+xucrueM6<SzZB30fN$X?;<)n-NotOopR -z35BsD{xUPIAVsN5JpUD)*yr$|l8hrIA&N(isPBoX!7%a(jT4(V=M3RJpMD%Ip5(g|5oi2qE7t4ywc6h_h8bbUw%!&yL -zc=f;Z%vNOOBL6U4I=$~YpmEU&*F_FB@Pg~i_0{)sG1^ompqcDwQ7X`=g%{vLeZ6ZW -znAvo&iyxBd(m3)D0^vbb%klbu@tMVV{DI*WDW*sk{wI3j4BUJbCjgx2HqJBmuof%m -zmlH>Wbk}MZ+@hv@^AkM5*|mwp(Ji#A$sfz)(`7F1l;m+_ -ztUsF#J17-TRjESYTN`p76BX5giIA)l$;cm6F;SdGuY! -zn*j9UFk1@(#)WIkEm;*kdO5|J=?SDC-bDk%P~dQ6Yv!i@l19Vhh~;*F>oTrDR^_>Z -z;2i%_3Z-W1qA^j9;VB^tBO69=?)Vla?N%a>&F*1qF6J7#BqJCAuyB>9c_Yiy+kLg1 -z@brUVCo6Q4O^;LUjxfyOS%iZtc}Hmfy}?oyIECzt>Dseq^^Syo>!|fR{I%B>a_e^O -zh|MibBpJd1%-qtaU>*%sdwAtRkWt0KoYpX8JJ{&88&DHmq=LQ5RX9U45|mN0^B!s1 -z{72wHb-D1c&UYGm?}$oUlI;A_z_WEJ9b>GB_A<%7TRhRapq&hk9Q`JkH~=RxPSZ%j -zXz_F(`1BoYhFLF0JfPA)d9t@mBEsl6n*CHjrH%A31VFQFDjWuUnCGXe=?@%UiSdAL -zX_UfS*dtRZ~vMK<$$GVZW0+!Ng-Na -z+IeBCWUyz+H!B}0o@I`Jk)7r&^F!O2vwKaGH^g1*f1KFUwUQc{AX`m0vQ0u -zL;{x*{nf_67&PN%7fXCqs#a^xu0)cR@|DrzUUXrinyZk@ZeR3tZ(NL1=q} -zPZL9>tZm*s@oB{u3p>0Tda!;YX9Fh>O!OKtN^SWp8u5HBhnmw^&ULIxEYu5{Ky!=e -zY4zdZXSF`_n`#zNfaSC@%_-)_RF=Z0S{)#Bv#w%m`(iD$EPqMVn)A+6mTCszD*Dv* -zNR`XK*()`K4k(c;yb7#3BNz{ehv71RuN#2Hf_1NCu%^ouEEy&hfE4iD8UD!8=#JMQ -z(4uT-!s%KddEI>m=$V)MZwMwzkDCL>rfEMFlPq@Gw5;I=;enP@1{Cv>;9TiXaY9Ve -zqD=c2#Ba?;bLx+lZCz6i;L@+hvD)i{k=e5M>jjI^^yd0rP(^s@p5@Q4z#8(>< -zqcjKz*2W9Uq0^<^yXmmMoYRdmLxC?!1H0*oHUww0k{5U7!~pK8Os -zX(_h6k$ATlH#HHwAjmS-Zy$vg@cVL${!|XTG6J>LPx6zpTKA&l0k6r6zT{6@Mcz_% -z4X#Z_61G3&i>l^#fcvZHikd14|BW}BlH4|RZO&Ot?6GsQ@^|^d#gL5CgP?4}b2=YN -zO>vb(fvaV@ok?PjP>%O)95D_3T?vLV6O_YC?}38@cbxMW2ooa3cjYO3?AIMSMNM>i -z+;$aPFLNkj!u{MbeJwz~LCU~@k=ytmNQ>!4Xyo;_UzG&%$~xdn -zJEdU5DYm{q)4gWMKynB~x|+oX8gz@X)#hlO?NP#v$tSm__%z}JsiEA<2K(46C)!B`#)zv@)Jq|ELk+swfLo~5xf8)X;r<9jue*d9j1ZFQfS??4oS_U^@z!9x^}sp# -zUKMWnCn#&G6L1$?Frq(OMm(UqwO^5HFqD!&0481!dF%m7HwAJcHK0tvL<$ZGEc0{c -zIuB{ZuAa-&SU>V}2b7lt+b?R?j0n|)Tpn#$buPJ=b`y)kT(`^bCHZ~%uG@I#)lMnN -zwvNqj-AIOM3H24joEJEVGiuK^;C8^ovwKnIw=m)Loea7~;Khl}t`xUV-Hyql^a=;- -zlr=)f&He4nW}df!yDL_c$MojZDVvUK3lMLS2&yH0*M -z{d}d;bNoOa2xnGall8MoHS)&QR*;T@(aARKeu;h&R*rF|`>xb1WrpIYPd_ -zE5y72`n#3ZLaS|BaA(JSz*XS#eqS56=U8 -z@+3P|1v+^S0|?2Y08dC?O1l3lz4sCB5qq;OeGOt90~$nlW_K4}8&6B`SM&ytFF3kIIz$#1N -zhNhK^SB959FiPa;8PeSw)}v4HA)6932k4qw^UVmNDaBaRZ6$M(t8=0NMrC@L#Kk}% -z{ubq=G?UfW!hD}|1w-#JJF70Rkbi?0`O#b92L(S71esL7 -zEV!JNlyb_(NUO3Uvh%o*E&uApJb=r4BL1ddbM5VK7=s5!&Ur)`W|pgIG(tt@Dl8rB -z3P3T(OZ&c%y?c}3REIh_9(oM7YlqY<{)|T<_{9mzROEsKQH0mcwtwqn$$CcA@dR2M>G&SAe* -zsPz+0=C2h;{c(2g(@XO_%FrJHuurv4#i{uo1eRaKf2_JzOENm1A^pWzs%6grFD3H# -zMyG~2Fjow3Ty+XW7omwVVPO_zC@;06V2#t?(CLVJe#upW^Aq0z`_+_YP7^eDiWXE+ -z{{CMK%cEjiO3oO#M3STBAB1Jg4K0MjYZDyY?)LS);jD`kO2<~r<|O3B`Lag8hP>iN -z%U*a8h3qyh3*Hq7yrrIcLg!WP!XBV;#1B%G*iE>E)lcNx`l7TYz*K>C_zQKOP?VXo -zVL7gQV8PhztLO0RLJcNEm=1Q;RU16Urj>8auSpPbp1wThPKcmA5+~%SkW?8SCVkcN -z2RtLzbr$ppD}Mc(o#FgO^}Z^v+Y#x;{lTe1(78xRBQGp@LOP0Qj-go=0FQu42-L6y -zn2XAJ6)efUc1VWLmrQi&qZgY=UPSiA5bT1SPWDgXl-48fNZo!1aR_;&(}HqE^y&=Y -zf+1v|Dwf%KBxY{?Z7UjldiE6nW{o&KV17R9l(*W#y)jIQ$e+!^7Jk?fyS?>Hmh0Vul)l0h -zJR~oQC7$RJvI{Zl3#=QkeF;io4uU*4&C<%ZxbcE|1JLkCp>MbnDJr@&JNl_!*DG(e -znuoER)-Mlvx-b@rccd>nS0*x+Eg!6KXgu2x!mIt25)8{Y9g**^<6f$ov4rS~*mqZ~Jm -zdJ-^}0zIt;%6UDYLoA$mG67tWp8#$4A8IAnRK$XpN{XER$O{G4LQAn&f^q{Rb>nCK -zp&Y|?FvsfI&R1YM5_{Mnd!92AkrG&&xPL6{{;RhbqhmEfAND+j$LE_w^DH-}^df)F -zk|ew@ChXQ<5)wd6STe-*$s*Oo@mn?eMWbsAv{=puHM*Hid1MPL_@s?l3ZhTfUleW| -zya`?Vt>Z{Rb0aVWP$<~?z>xn`D_135n8y*& -z0SrC|^s3e&UNX)eTdk5n*q0C)Xw3R9j8S{WpK*_!`sKSuQv<#HUYfai-DE=H7G$u# -z@Vgqc{aq*tEqIIpOpS>ShH)?KE#uovi*_dIC?s^qnJWL{RqDh=PLg{lF1*E+f+As2 -zq9YSW7(_~Romy$-;QA|y8lMW+wC(Ilx`*{V;GvM=2Xh@AR1N8F^1Thpy#*>)gAlBv -zU&oTvk82Ol+ksd;H`6~B6KocgWwux!NRftT^NLx|>R=j`^L3?EjiRTNPhf-Z7%rzy -z)yk67sW^ZJe`1wZmR}3!M_OslXTof1*{qTQGYGWh&#^3(N#RtIHSmWVvI0>z!kXSD -zO*N;bAJO;@b%tacD$qT29q#YHiPPuC3Q$gqnG@&2)+70tm7?P-d{Yx|=4FcXeXojz -z0uL*D28Wc(z6=ud`zc<~EM-W_Ov{)G5n{;Q{Y)5J9MYi;tHn{YNPt!ltNs%e6WhP! -z;Y4ty8=<@0Vjt-xkP?*~Cf`gSv<-fU;o0!Srv`_?*K(0(RLiWH#<^o153sYRt~b@U -zce}iP)loFauaE1$f5T!L49jYoJX;8!yoPri0ugUK-``eugD*h=%FxqNpkJHYN?o{P -zMUdXkZx?mf>9Ct^)CW!CK -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 -zdf%hOFY}2>K$(6U8E~+Pw7>Y#h -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 +zy##H(J}DE?z^uy`% +zpOCJBT&g@2V%9KmGElapxm1MmkX*)rj9b-z5$7_Er855Hjhhz=0xC50A +zqE<$u2`O(V+S8nh1pML%h^-d#%y)D6S=;Ft&gOW5vf-7czVc4{f;k?j_7|Y +zp>2+L(Va<(v;GHhh16o}?s&Vu)9esOjnW5j-n!Xq66Pp(cGCQcI{T$ud@DHBHjTSY +zvQ5jWQ=ADIt4jBXod7tVo0byYqx}K)vSNP8&#|WUHci@VU1p-w>F?AIr$a5jr^H-G +zD0rif^1|*d#E0v)%IKX1v32%zOb^lWJ6sg1ch<#-(j|$^urNsHQ$94(%}7LvZE{XP +zsL`UMnJ=~OOn>?dXe-yIn?#l!CJ-;{TO&yFOXTdp>1|wJn_@Tm>}T%;ea`xwHur>b +z71XqlXX#z&76x4Y9g=yAkvS!wr8cYKofUKHBtNGfVI|&^Bn|jv!NN2#BviPow6i(DBrmZbvF=`M-sv`+r#YD3+dqdt>5FP= +z9H>Uyg!Wy(`n~Iqzxwj0pZy-rQ%FN=OmFgh_e1V@_C^o+@^cYy&#Aea%47S<<#bEoF|7ewo{RfSy^)T-rE +zHJT_SRmX&-W%8PDQmPD)EtP)~hXHyz)xJz}&hAW=zNE$?KZ%>U2+}5~TH@=kPiU_~ +z{Vlp|eEy4cCLTTZ5IADOkrIvbEH#2u6-;YB*#~zB;z}o)Kbe50WXvc1lXiweE4c`) +zzrYkn;BX+r=f$+Su(55LPBBv4%oK`5M=~~+x2eiv?P|*qn9w8>uniN9%1Q+?FOia* +zEjrVx%>sRDb|V{<(K23JBq{OZNjj_x;zj9=hEzsNottf#&Mxg~6h@Y{hm%~zJWOms +zTm(*;B&b6dV4PMcumn_jMN?3zlzk!cD$3JJ`+C^py6&70%!Tp)pi$BDY_7wwR-+!y +zOv!-H8zJ3=HS8J9Tm{eQ|1e=HCkoL=>vY|aE2{kzqG>DLKaGa +zWxdqdp>co*XA>k{f$)a23fZ6rA1A1XZ8fff74+KpBkep#D5WjN740ghYDhBT6?F1c*|mIre$lc90oF&&{V +zU`9#gglp8lOidjK##*S}yMhl_QK%x-HBNLa93dlO->3kgIWSy$79KK7Pa?6s;@Poe8-%B2Qw`)kZ^PM~0@?zXja) +zX);r;aH+S=(tiPw2TyQXwfgt8k)qT~b7StNZL^WNu!F^LLR4Tb&l{z;C^mvgy39ir +z%Bjp%6KG;!JA=lI8AH1-{15q5l29S$nTYK*HSeekg(3F>L8rJ)#Y7|`$kK@%EB+wu>vW>pnK`#B +zh4ytsupF(Ta(aHQ^|+bk2|hd0)o=N*(5{lQ=UXb~jD}h7%Y;O!O(Etq9p-cps7A~M +zF&AqB0qe`=dI`}0&X5#6n4?B!+WVWBKTs2^ndy3^JU0_9k<@b)LK|VJgf@)~(FepM +zvS6 +zWG~v`el=(A;%-al{0%(eG+Xnc(ENyaU!f}L7z6LB)Gx7)(E0L*n=V6!x6JE#+LO|P +zgb(gI56eR3O1m(zU~BGKg=wW-$WB(}TMH_uRT~snk58BSb_f(`niTvnv>yu`pDuw+rW{uOpKezjlXElA$pVrOp +z;AgfG*r(%`pRjjyC6N;I4mMa49@hQCs_3J3@-`)W2S40qKg2OHTqNsjK6Txf0~&Gr +zn@OOzmwTr{D~QgOF{@{7gw2vol4Dsz4U-d5WD*s{E9KP36C0R(FeZ9)sGnUtxfnrc +zt1|(gOdS$>4{A^lippkq_bSqZrz}fS)r|xvsy8ez|K!p6i1bCFQy_@FrC95{YF>V{ +zb1L}q*EUq6Bq1$o>2;Fi%QO;JFxVmI8&lQU@;r{twTt^Co4<*#*=SnO>rmqkuVzP? +zH;8v~Z)C?wgw7YL*537pPA{)N`Ra=opM5!koYB%FQ+uGIssd_%-AzQUYI=^`9%|u5 +z_q%S0=p+<3#2)Z1eSGlA&CC?KBh7g5ojo+~L3*SCb@4h<@2&OR#W(8{`+9KB_~UDW +z=*cKr-H$>oP;t=q2_D2vuDHU=&N%cCKQN +zLj0zmzMECm)2~%&j^sfnv4|rpE9Jv+{%pjiW) +z!O4Oc76)Dev?4sak&8AKQL5US*s^FdV>H?O694!qCw-}ol9c|vIMB7T<;7L}WaseF +z^{ewf!eZO?$)jiC6i>eY2EmqqX@MUI5jE +zSnD*cvYi~DKazFpW?9nmf7|LQ8>tyA+c^9@-j(=QqubkytBH7Yd3o`Owb0XtD6TP# +z{7X{UN#(Kw`HTk8ffrpzW%))waL1@SCwR+2t4H5&aCE$u6QWzqWu5L`{B9HHXqxv& +zn$JPy0q-Ud*{t`LvskI+vP`8MrPEfBJgzAyML94zfuln(hza#+)fcnX7cwyfaKg&%nq(cJW3iddDD$9*qeAp6yj_Xz6SVgbDK6dC +zM>0ujUdAA@)Z`&)VoEc-Hf-p7^bJdr6w*fBB?ZPEj`!F1y4@oetCz6o#I&Aw6IFlD +z&v%j2W?0qv(>-En(^j)BwMfpN*ob_Ha!qw_vnt(@4y^uPNxQn<$Z_oY?q6YG2N+SC5uS~Gd +zPPr&8|0b*wk_(scXvLX7T%)|a^e?(PBF8s1n$q!)E8!t2xO*F(y<0xngv5xmw)KK6 +z7ckp_oBe+O)Xh}hpb7KP8F{1GY_H(l{Qm5IxH{Md_F!@KsDJ0s$oQKkJjm=0%~#hX +zek)DlzYgs)R&M&w63%%J@%{Lb-Sp8#vDsl)*@*P~7fD +zb^Q*;!TIxgs4nlLZ7T40C+EjEugVRy)nRvCzmqRWSNf&Y8-Ml9Bd%PPxc_SZ;q6zC +zs^7_%Cy%=Q#-r-b&cCWZ{85yd{kRiq)(_V?`k%Y>w?>X$3}O%TwioIx`s021VCVAn +z-p=Fg`|lm$s!9C(m%r_2=C3l7fBDOQTpdh^!QH-7^WZDxrRyJ+&UtofY*#Z5>|`F^ +zzNwzJ@b2N&aeP3uJ;JdM_{%83Z +z%`%3SSlYeh1iD!CSNG%72VKlv(~gr9C1-Sd{v}9UjOv$`ww2d>n~7;zB&e)r`7M3? +zzDWU$_=|B?CYuPM?YLI?M=}`Z{C&#^(J#Ue0ZVj*Z;VEEeh1blQkO-^I^RG +zRIQuaPlx%O2Kw<+p?^Y|xO(^T%{tn3G=W&DP`2p$^^*Vl@BjY#>S2C(xRF11Q;r~` +zBR-LWuXico_p6G(_qgwz4zYFPFL+L^GkC}%EecoqRI?B8xpVW_nsE7EsOYpi^RZ{i +z*?i`u>jAC)Y6q0BxW%8oWHS%)6dBO$dN$hAm*k73eO|tPN9mCN-M)QS_498rrr*0p +zAk6=UfXWpd5tw{CX2n5smcsQ`q^m#t;avFf`ZW@mKYxm%s2|IMpyK0?KL|m`Qa-zG +zzv&_)n<9TZZYRi^{b;S(a8%!{@Sn|t?2sJh?*HbbzT9v8>#s{nMdn>PFc#JS;KXjh +zDqhv}ikm&l`tF^J`#IZ +zBRkhWy!z!|^Ea$7k?XyC_^0~iiQ)Cvzx;gj_S3sJSAYKVufKw*?^0*QRw_a1*Yh&H +zzRPL7sfXcaFS7dcA76Jat*;wd4KY;n)V)Gb|1SM{e&Xlb57)2vkDuO`k2mjb-+kCW +zy?=9i{`B_k{^`R{@Agk0Kfc*N{q*K@nb^V3gB4~yM3eR&Svy~Qm^{kg;$D0V@M6kp +z-aC;a!Y`{O{p^5}rq`R?*8XkJVG*`~J@zF#*#)n`^W0c$=RAm+ylCi%s7RSTN(r=? +zEFy}wbdQWj1^V_hFK<2vqv77)&8N}7>E39-4^w;eua@I;n2)~8AHS%7^V8e#`5*+S +z;S6|eJMIB>6`4Y({%HZ08|*t%E?3jx!Nkr?qOk0$00HkqyyuWYf~!ue73=Lmr#)~B +zBpVwqV^;Opm?q{$>?G6a$OO-O?R~9dLu`cpvDP%WMX?AAUZP9P?%`~;tL*k9T%6dx +z3qG%-tmL{8L$VOavM}2S=+W$HfzLu)*DY?)_pc2Zmq-~GOF9yZPcmUcurkwv=ZOeL +ze4IHh@|$iwx}+~P+{^sAYDHo7NXxNS<)|0%EXtV*KDTutCV{whgC-~gv4f?1zN@ci +zdf9V?_)vzU4eUi4bh4R4Mm@WRMzSF$mDZX;LV?$iOUJF}(dd2I8T|wRHyH#Y_37T3 +zXuQz{owaFa;4z3^MZ3#>-9HSCOZ@>O<7N6ujrp(gvYSH}|Q-u0`_B!I=%p9PCP +z;Grxa1f~u~ixVr4mH&pQb0P>e6!Cbc3yCio<%S#uR%|%xhb!LBhtmfgCf3B!p;k|) +zh}dGDQ$x^x95$E}qtn%3(VuJs%hnLo*H+jYfi$n>MApn +zXw1+MW>O=}XKpPi;gQQO)Y~}qopvNjigQ#qttoc~qR*y|jPie>%NZS1baWEy7ISH= +zhhoGHpl7`{BC$JyfeKV??0vC0@E8^XdF(d&slZyJD_sS-Se;AA(>nPV8K8(6_)(KS +zPfW3~wf~O-%&Y6OFO3CtLEhLdi2&0@O=AZ)uaWThGJ&cr=*IN#=%Sgb*XGrc!$V9P>qW8LC%-%k7+#W-{*m&?K7BN +z-yMG><{O+Z)3D4wRInV0j$o!0oTnyQ?^V633Bnw$NFU}14oL1;Lh@zqqzuOwdlPAzLQZyb7vWav(r~pNtqnLs)agl7(vFsj+ +zIqeQU#pCL=DRqciLm +zgMVJN$^@Op&cHoH9JbY-KGg{IGoUg{*#n($vu_$h@EJKcBSk7X4#LFoN(6Lna?=nj +zF-O@>N-FJb>O`s2Jrn|7!95Y<*F95bbYpbCLz9arlf`9`Q5R5WZUDaMVyiFPlL2cG +z`lWW|k>|8%dZ&t%M|^2~%2+ir#NsGNB2EaCMs#{%hq|*|uu}{7y1MfP35To>oaZp# +zsKQdQl6@ +z2D{81o->%yB@xMvsW$%6q4R8gOC%7;YuP9S6yYByz!SU}qW9?$pfi{Xq?OebQxN1# +zU{fNuqd?0|%sTSOsIzC9DgEXMvcx6Ahyx)DkOuceG6y1NWodQt9rJv@k({?kE-G1| +z^=4`XO6-Clrwv^cbfhSztr4AvAVwe1bPmQ%(4Byf=yB^J5wDd236CbE06GJvPQHzq +zN(*VdnC4p~9H`}>eaR-SCjz?mA?OQ%(;x@_C1FpDNlDH1hfO;u)6C=em&uOn90mW7rF(Uj)eabV%e@G +zUd{P8FaURHu&1!VA66m>s0~6q3$iQR$-*F}rY~dSjDt9HQTGe5_W0-Fl=dCwz6c+P +zVgj71%J)(@M=(3Qb9zt~U}1kt5UHiB$^peM9w9~@Dy-MdqU&^G&c_g5GJ-qtkMOKo +zYi&S}WLm8Y%XU#;8E`}+TvP5yKCclotlXWU10xc!g;WCZ&@_c~S8^7K^MJV8Ikv5$ +zqa6DUx&?vk*U`>|_=he`TC33tUBBOP&o10yQ){!0or>@RM +zMGjyr?$o(`$@jHV`V#=9!8r6aV}t^}m< +zw{_y~N;`X)>$y}HbNJp<(=CA?MlPPAF{p;}4oyePq~La<-YjBeFx*D4XkH-GVAdGn +z2~j7ytb1|J*rT3?+1b{0BEhpNz=2Gnf;U7&_>2{U>&UFxj?M)8M^}+pvc?GE3h-8n +zff!1&=nPY4ZS~TT3p!=y$qqE(h?9w~Gdk)D +zn?TX%lZwMsEOkz8y07HHECg&r+YLSw%e-TuB+ZO-{5;|w(QsxiLLH*O&J6iiEa|}P +zT;HRYn;8A7u(GgZ6l^jr9 +zS&Tzo^3Hr+2x>;sNzI^`By;GBWg~v9@opch5Mr=?KCs2(U^l-9`Zh)aJDl!#mcguMI +zzYawgm>3x-NL;r@IBScjwhy9lQ4&IaffRB_>B!}Jkop4#%W9r+qqHs2a5mWFPEYD9 +z*rU;@!J4?jt9);*USanLMsP+was|G@?V%!T*Yxqib|Kb{!*;MQD*a?gD4AcW0@wLEd81-h2=pC+S6^Li64I(ey5K!6i& +zjPqUZsK*LV(Osau5n*3KTfHTz7MJX?6u!1Ww|h$WXgK!|x(ZgYJyFOg?-OZU_SB*Z +zR776ldaek$Q~{|g1m$RPne;t6V~A~5Z+%n2F|BJ|HO%Ru5qbg$81GAc#~D(*12uG^SgoI#eB3#(M5SYwl#vNO17 +zgvBhS1-*v#r5be*zM+?z48B}RjCL5As6H<@>!Ol@CT}Dm5V(TB#(Bn^^9vY=d;fU)7 +zvhl*)bOt{fzm}Rb!dtUr2SOr^A`5IBtzq0;qe06}*=$`d0*VwehpUfQJq8W@M#YJD +zWVDlB^fMyWXC58maKsd%7;i*wr~tb)hzZwCPS1H8#VkiSu>MF#=Xv!+-#Roq6SYY% +z1sRJ&l{obRJZxwv%rW=TCWk&UrQmRZKS3SQx3`}^=*ug*bZ>md?N@p`k|*df%z9qi +z6Fie-Jc{~VBs5dORtXK2N=)08M>IA?m7 +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 +zz#T9UCSmqtA*@XCvDi +z$&ORH9zEc$IiY&9#`X~S7c^;{Ch>5b^HmI6WxPODI&}waC5t-MVzlYjJ_i*E8@H~P +zr)h>XPt5}77ck(kcJ$C!9V-U@k-OoWdhICcgpy5gr>8}{Z;pgZwua4BHZHU`JYQh8 +z%~kvV8UaotNcz6Omk`<%(PEd&(_9s1=}Oe^KQzri>+JU*S-ZB)mBTk{L%N-U?#fI% +za)Zo*OQz+9*`hu_!rq`4nzVQ9ZzRhaHZlile^V|*b1MZq;!&ZdoriW+Dk5@Fff(|&Yee(H3Pih;pZEJ$to;U^MVv)}|+ +z0r|Nnmc4^xce@?AYiHC>O-YL(4(1h8!4K@a1kR*zoWw5>ccd_WVp$|LTAsU->BuzN +zUAWZ0*MV!}C3D_AKxwQ(b0PL^taE}lLg)JgqnBfht17B*R}h5j@FsBwF(4BKN#kZ7 +zB(0!6md28wHn5F75*U9>s%@jl!A{kZnO<|n?ppvQF~d&MXaq};27Nnd*TBG{l-~ll +ztoB!M1ShmFrPxVmd#p(!p5aoimby24R3}>R8xk=yyyfogo@<)EW6v^u@LTaF>WMNF +z4Y4Pd%;}`r(hF8AOLGXT#k85cJ@a%wr$Y(!K%x(doz`Hf6Bu|`@*&+#D!o_npDGkh +zyyj9V_o2V^QnFz{>e;kTBg>1vu455#xP@`%vk4v%s{H3V$DDL+m!!oP^#OXCVMtIp0ug_0ts +z5{d+B^%`kYt==A3ds0+j*5MM;42>_gK`gU0Cl<((Bu&fR@D^o-ODvweZB<2@NWng_ +zc3n^yeSu;2xE?%RuqZN(*KI=M1ctU~gV0DiQl`huD!c4mWh1aZ@pRvas!Za`UhXA1 +z--$(U(uqZG>29-8g#ybxmk9&jTRm9s8gN=axQ?jl{o|dE6 +z{&dr-yx?de=!MR9$Jzwh4u3@RC2g%G=br}*byQ>}%k1>#Cy_`^ +zIoOOJdXb-C_>hweTbFjH_uP2TT6krSC~OiP3{(Iy{7SUdgtNfNr$pP>&{?7melJxDhq|jzHsn7)K&S%0ps7%=+h4^r +z0la&)XgXxjoUA@6n;EpXpnXCmi5e~wAZ*Vii-e9mlw;MZ6;(n#;YhD1f9zdLK%iX2 +zzn;Z90k-wZZ08NK$CgD5qyrUqE6YW@ly=96yi-|v(VvBZ*|--xeAjM$8*V>z^Mx#4 +z8usDk0r0HLGF^{u7$#DmGVrMv5(dcmR2HqlFB*3T-`lYn>@SvO5d)d3LWsNB{O&Xy +z{xe3CaI7pP>0Z$53XNub1TE4-1S8{R*`+{ujAq2!ub`o~x?T=CZ~DHF+1qPI_n0h% +zGw0fV86VvuImA6~?GW6Kb4e~b+pLY*J2i;eZ%H72Ft8o}N4QyN2D(~K4lPB`_7|SE +zn-tmFgd~sY(K*EqS%7>*JCpqDnpyNqOF*>=e*fG1)UeEZce_n#1msA&nW<};Np)~H +zoBSimmGI^tK##+a3&~FmcU&WY*_S*X?TWx2y6w`XcCl5!V<){&74V1E>em8gd3z;^7uqw)o5?Rr`rwc +zPgf|7CH85y3~31|_1ztiW$cslIJ5)ZeM-I(jznE{3o94EUn8R|3q!k!!ef4018-9p +z*gV^A$pl=@-R+LO!Q!4=V1Orii;_zr;AAiYW@ZZB7fL_96jOd{g~GEFhkzHv*^t-(>u_S&y +zH)yna4|=G+>C%&B%XQL_aR)X8)~U8Fb9>K4og&(v{w%((J_S@f2YwzQx{isAXoib7Br(2AFOcDQ=R4(>ZT@3es*9T(Q?uP>a+GoL6 literal 0 HcmV?d00001 diff --git a/components/resources/adblocking/easylist.txt.gz b/components/resources/adblocking/easylist.txt.gz new file mode 100644 -index 0000000000000000000000000000000000000000..1140586e311ab2b0b66366beb327bd77c56accc1 +index 0000000000000000000000000000000000000000..492fd498529bab8004de97f0785af267fe25e0be GIT binary patch -literal 142775 -zcmV(zK<2+6iwFq*`t@S~17%@zd2DHObS`vwbO4N7ZI9zNlK$Smq7N7ZdxJ>o>6v75 -za~K%C+1=b8azJpI&Ejx47?ecYY}2A5N^ZN+nBRW&N>SZz?0&JHDi+D&Td|6y|M#w~ -zeQ5UAzxXL$-4rZ?eLTT>D}q~|M}Sb{8RgDG=Kha3nIVS -zA-d3gy1u=+eSh=r{kxkVKD-0|7dLwQ>H5zmo_}_6y#B+%b#CKq`>&ArvjNT_w8Z#y -z{r=tcf0~X;xW4(}(}#E0fBW(yi2eE0yTQg!*YB=dbB@=4nEKX?_Ifke-zVEOXDAEA -z-oAZ%ZJ{0y^%Po7Ii5yLx%$SmaXk0-^VK(Z?H2}3J(#WyhtF4qX^Yx)ogE6s(>R8X -zaT8iw5rSF`BX2ijN$6lYv$aF@<|`EMZQNNqVnTV}Z&w8RT~DBDK{3i+#V`#G7rODT -z8KLK>v@Sf9Z$KgAy3b!9P2WR~FxavQ2TYDd9YC)`$waDJb3BBh?V+b)8HO#%lv}qU -zP?;F*7^%u=ha+S|2;b2~o8yD+#`R3QZkthgBCnp -z;%|nhulCeKX-iQUTkB2N*nh;{44?q0)_CNhZqpd3d#-duiJfqn;dO>%0Ylgfu7}|R -zMaRL_)Pu``-S(&`h@K99H;z3`!3YVvFhxr>`2Zixc~$fv`pfv6G -z2irO`k4oY|mqBu8N9e(Qo~|rspE4@$QM`vvhK|a`mDM~xWmIc(>b}R!gF9l@uc5xT -z&G_wH1Sd4%DdEvJJIWG9SmV?X82cCrw0maI1SW{{FxQD_Ln;t-AwhpmkoqA}uvp68 -zLut0cl>%T;Fe;c7JOVfZs8zUD;l?P~DF_EZU>e*3Cc?Ml&JAsWJ#$W7K$`U4o_Kyg -zn4y1gvf?HGN`ZHEDwO6W&DL+9Peqle-f*?j>2a#t&`h|3Q|+xiS|4EbfuRUt>n&>$ -zVSjswCz6nDwOqkiOA7CjoqpWIJYhZ0# -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 -z88%*IZ-$F(ce!lPm7}&|Daiac8#^jF~eR -z`gelx&cxET&k8#ZF75+#D6w7S!C5TRYH>oG*tg|^TrH^en@dYLYxP1pcTkk~cU%9r -z#j8kk3c#Fjn2O0@UuRX~Ydde0#~O@r)FzWM;bGLX#{rs@w20bZ40jiP3^729r$j`s -z?JR2_mZCr(xXTHi5)2(IKAXrmX@0HMa^!(vt-wh1e9W!`(6`B|M6&U)WkfV5Jlw=f -zGl{52MG|nJ^HwUzcgbZ?xHum^l?F|J>^C~!PGA;b@W2OTDot>JC;louh{!PU7aW?S -z^|syGxiEZcWH<8agIUvl#-OTi6+Udlr@If+0Nzb3r)K9Gvklw}$;aC{?^APl5}(!^ -zuU8p(V8A1f_rcC~hn^lR -zA^3n?KwTFw#LNZ*EERd|9gbP=`0-P9*SqSDMz42TN$*nC3|EYf?~(*PuP75D=Fpf{ -zjz;;+p+pqhy~rlhjjx>X|hLUX3^%}XLEc#}y${ll1V -zImMV|{59P%GS1ksf($e9@irs4GiQqPlltJH8Z3iOVs+r^?V7ufuS=zN#m7W2KbiuZ -ze`p{+5GaJfXgWu5*|^K_2#PYmZbMHZjGf9k`3q<){S0VMWRQe8C#2Ueqg1AI9EKI+f6U4SrEx= -zdLjv}`HYEO{=uSZ5X(1U?IJ$#lmWfcwGf8ku*ZNpcLt)1)O}3eQ9<~g8NFI) -zux-ApoBHF2A3kn2WV-C3wyhX9dvc>*mmtRK$H&VD!eggcL{7i<7LSwe -z+W!dDv#@DxWg2eqJkc*NgEAgJ5uWKs^sM5ZwcdC)j34j;F%=Z>iFRZ(@)96O;XM)| -zj0vcrOL(2(m?uO^frueB2-?pgLsBoQC&rDa1T9>Fk*Jy4^FNf9)<@V#sCRsTwO -zsj!&DVoKA~wx2N9vy+RhH)?5kY4XnY6XQFYY$<^YXNt`R6VfcjnV5_V6Wj(a8V||w -zeqc^h1BaJ;>CM}>&z)#YRd0PeI9b*^y3NWltHd~Cb4%&PxVA^0k2BV1XaH&ZK))Nx -z!FMFncC=e -zbs*DjMgd#!Ch|X?6lR2N%*2sHVe};KO~i#apRvw7nrbtRF%Q0#BvS<-@WMnSGtq;K -zAv(+}4vS?^R1ozc9aG4JQY;C0^2g2NBNomZS{Xt_?mmQrH^AXX8f%QcBypNI!kMBH -zI(yFjG4?-sjxgq06DFY=Huo&R$ky` -zx$t#uM*8DpDnx)acm{(A|CvL@b=HeQ^sf~No|AK$v7+j4hYh!~cg;8rYEXN3((VRm -zebrBmZ&ouk*bLLQ$yBT{1e2#PS^`n`Q5-xbX9~Sw3QSF7Sv+xEcQhXMBwD5z@Qn19 -z5Jp;KkXe|TGgHfw=G(7)2UuQzsr13_V}af(_0fZC(c{QUJB+~X3yj4=9E)dlskx9d -zFJ+?vjpI2xeaI3gk9VP?Ei^Npc4dFnLP1$eAR)7OmYwmtjK7-UdWIa5D3zC!68fT^ -z96o+3^xr;9T~OqftR%LdCmVps_6It2CsQ7)Zje -zdnlm1kR4nIPUDMC70s%me-uFoqo;fSFt5q(i!QvNsJ)p`xjkQH!0P`$ZSUG7%dHy-e%G&X_&Pj0UR9lXc6E6}qiso+tysxd -zp(D?o9mh@vGn4tK%2y{dv#L5~=eIAw7r?CQKDv%r`|30RGFg0r00@G53aa#sQ?iKA -zL+sl(JzI?bk*$l839x;?E>X@Ps7&0}p&f6`>PL`>DBbBrg%Y2sqXyO<+ImP?C>Fib -ze=KUs`)rUGn{kle{DTqr{^1i^-A&~U+2a4;1VXKWxH8W-=n2tTl}5o{Bg@9XFkJ>M -zp;(AU(-A}oiES_R6x3bVk&y^XN0%ToUaCu?tTbjwfSq%)^&nYzyM`r5Cvth*RoLM) -zD=f)xdLCzjtHO!lc&JBkgy`Ze!OA0eTZLfV*LV_bz|VR`gW`hajIm~2YMgeuD?b0_ -zmlt%Ty_w&4UmKStQ;)&k9rm86j$k;YCiH2k`WBYHfaZP@z%i|=ik3mswbn-HN5|sm -z?{2_v9iY3%f=FzV+V|Q3eQD}w?jJ84;3+zn-hB;8_n-bd8K<(bbB3_MWdW2C=@RFb -z^;q0WYf`5SS~Ei_lDEp@c-ayX2dV3U9ifj0bQ7k{C!trc^-4utx5xmRv<)HXh3Vi) -zpq*Gb>c75x{vC%8#S<)`)VI`iS!lso1h>{4$rPeb*H~UV*v17__n8BImWY4L8|?^X -z164xU$o&@l-YkJ{{fG8KoHH^p(3h@NLu}zx_QNRhvd1rg;6(+%^U)O(JXRcLJN&Li#SP$a-lV)0kUY0{U8%egKVtaO@GGS -zSzb4jOkU?p<~;S;(eS0~gl;tc^#m9pbPP7bh7f0IH`9B!KzP%bIb}CVPz22D3a?bK -zT#jPgOdO_?61`sFi?=MTTVa;>TjJ#wMDUnf%l%*d@lSuhYm=*;`p-m?JQeWyJzEZlXKWJL~jt2z++kOo^vQzoO*_wXPvCvXwBQLD0R3kc+ -z&>2O$C&N}D2H7(*sC#9`rW;-syIFTpKZ;hqqFh6H9$MC&AkE;p--AKJ`x%{%1Z42> -z{^O}Ut4E(sEYC#@=;Y#t^s3!Om=~~G-bB&1&=pnX{8CI>jQ3-etYhcIi0o(*jRM}I -z1RafLupScaeOJr6-Dp2o;4OxMnmgGF7`TLAwviw}uqxY8T|hOhjP1efEgQSZOz#|0 -zXh$Gm^2Rw0)zbvTTS|cnl`gFl3(=Livv8TC -ziKx8#LS$n98keMHo}0gwNX`o_*!Zdd^C*O@a+*m%Q)gdPBU>YxGiS;ru4fC`Yy*1f -zTM+g&IrtRoe!84&9e@ox62{%JAKluz9Q%@{B#2~YPeUs?EM@@k${7e7xc9@3Z;wG? -zsNEca;g;9MFfI7j$E^hiL&6Dbw`dqH%*tp!3IxJcS%-9drZF1-t}$W -zE+2+Msc*;v{CYJx&0I8eAG!r7sFIpF|J64_-&Xm11n^=50KdNc^FKu|KSW=BWA&Q9 -z|LR+z?QP#!B#oexzd_)8ychk=og3Y^csn%_`Wr;F=?DS*2~?!NC1>maLHkl5f6cam -z2d>s%eQSkaEcU;{3i#=VZ~o!$e+9u*1D`=P2f$s{jZo5ic=x6Tz96-+1`Ca}ni^^Q -zL4?r_@ZY`u_lX^@gEAhsj$=6tZ<<TP|TsM|tnANyoAj<#`lhqRaNd}PySM`gqM5@G -zbzp(W#S74&zv~|fXF~XdaM6NdqN&!^OV;;NHR>RRqk-3 -z7BeeXqY6 -zvcx)Rc9}#MupZ}^J1F7-%S`kw)hD02Zv6DsCjrWDzuTvurgN!1^Tukpor_Op*KKy6 -z4%&fC%Is5~4%>Y7X^8b{5OC>pm9B_zhjzx%10K1rn`2|P;e -zn$-ccz5Y`M-SFv6OtC%;eEl?})u-eBQ))slsAQM*pZZIdeaendEi_AgI({l-sXnPm -zUi4+hq>l0OnQ`invT4OxS&v9NpVg-p#;pHDx76z!?#G|(k+`d3FlshST@6^bFJ{?% -zoClV}I~k1K`O~1>m}X;DnGl55kD3K>N--=`IauFe?S6vVF1CG^G=UUhIzhfA72YxH -zGz>hED)PVhpe$gUj7tnlXaEejWhn0Ey2bfXmd5Rkx@J-6`_?aGs_h*AY9bN-sx$pu -z4%R^@5)CqR{S*J7DF>azNFEOqfoE&jorECC1~UP|P{pSrg1THukw%oAHr9cb{= -zN0oFxOJ}N@u=byAJhb)D&O>_-J$dNhp>G`!J)ZL>ZKC4r0i}jb*bTG;=O*Tb?IO+S -z?WbS;uU|dw(@7;5-&Ic<=O_qjZ2L$rC}1}}Z62468M?(4(m`FdP^{ncXqw7Nd6Rtpa;zgmEV -zve@h`bOq=^WKWwC8OVIMdwK?F;Q&v8Ooz=1es6)m^Wum}rUnZKc*-XSL|-jk(x>&t -z*3v;livZd~T}&$cyiI-b`JP-pY?p^3UHeb2g&tb|osI9}TlmSgaN!}OZJ(~2XDlDu -zxOlQa#DGWx*OepbuCV|Mu;#i*1G+%`0c`#!(^m@zEHw~0;OdgDjDnNSb>F80v}>*V -z;PAAvq$ivG_`K4XKDgk5cF^1QOpJc{PuX~zfT_gYASrKzPGONKT3*@RVa -z1n-{#VvXBVZBlS1?}*IGZAs3?t+B6z(?@3~@+OKf&z&9Mt3UnePoO6Lv;F(C{rh{{ -zSqRlf1A-K+fplRHSPX^;lr4MrO&TQsitOU!voK1nwakST@ifu@ -z3@57KH&yiAOZ44mj{Mv24Ez4&hY;H^^v9pSW7y~a>;E>`~D`*&miZr$IN%dxY6_xA6T{d=%~pY7kH{VUwxZ1BHkkKf#n#km7; -z&*reNhpBXcENEhD+La*xS>h(64$Rq6T&j7xs|sBnv4pHbbD3F7h>jS72Y=W7L?NmS -z1?%+;_vzA?6-~W^UWQq>3QHD-- -zj@FG9YTAA%ENqXhEr#xoZC~SI)jj1$-&gDV#NU8@3-mJeX@ZP+mC<7cGYu7?WfWRmF*}o6t9gfsoZ!)i4fAVWlIu -zVX*I-wXOWdTEGluIfaoK417FT;N|xpe-3v87qQb8^&M8q4(@l18GPr~{r3fCw|(<{ -zTa9(&V74JKG};isZiyCgefC2+8NlpJ2F5)GWEY3vEYdzbmcUjm-dXzH_4Lme9npb) -zqHB=lL3@^k=e_YW=yC+vUV$yk0#YfI-!-D+?`d=3dQRBP3EMegHzyqCgy%WIvijek -z%C;MRqt&OuHG^#xJ{xV#B7XgS=F9IhtUlbI31bC+o~_5vBYnzttu4^KzHd$=v{%ZN!B6b-^d~Umba@`a8--L}^+HEo7i_aNWT}9l!7~v&o -zHWebH6#HyVABiE0R(FKWoUmnt7zu|t!Bv`XxRKvnAx}+gFG^(N*M+goJ2)HwX9Er~ -zEXX&4(_FPvxBjAxEx;&)4I!)_?aG#rqg#qwlM&ud!fS{zY+hkeHpT3W?q_Moj`)@t -z@f|rrk;{Xi=;(@zJBsD#7*g3m*k#C!{g1GX&x*tzaZ}&KTwZfz!;vjR*!Z9_)((jxV6Y600Xm*>1mNUFInA>^LcB=kWV$X9Y+c|PB8DNKLDDiu-_kiU*jR6 -z1us|=w#v=T35Nu|W-;4_K*;jUQ!|M*gKc-hQnvtWmtWxk*nE6(yIB2r?J%HxH#nSD -zKYA%UDCo|)wC(Xd;hszA8@Lu^OBUtFx#DPpEdOKE4*#2mlpOxEOOWyhsm`Bi*l2kd -zQu!T-FK!*lnE$9Ia9+SB`(0gV)z%AhX^%fjw0=Ly_B$=wTBw0)3oFAH^k|T$8~G&g=*HvhSGtk&5RXz``YjE+1Z6p2tJV(KIAH4lyNo-Z=8kGZ%$5Ml -z*#mBkYmm1_xxQ9T%2t7>>oAgrff8=C+KQZeI4C^6EzI$yBg`f{BP^7@Psizgn!7;4 -z4&$>-Eod&O1-f_n1lDln^qZi1hQ^wvNIY^RN_9Q8rmfx$gxWBg9WTWta5a;*R3K0* -zl$Swbb*(3HPW_^%cFn`8SH+XUD) -zz;=YO#?H4070Na$kS|nZZ|%N0oDFEWrz+#7KtsZJ7hh@Gq!r6b;{(u|z%7BUFU4sh#W -zjLBhP_xr2?Ltokg24O`=8hT&&wD?7j&N@Ul4*i`n0!S-w3izPI7KFR`H0d|)(4aQo -zx+ibv@;K|Bi7~EeVa{M3M(vnr=1l+6w&z)EqP2&fHXhnL=qJ4BjurUxR5{vbZ>^ak -zH(OA9ORtZpwIj}&!X?KkQsL}#Pg-=qFrW_hgm1c#s8eHRG+Tcal*UP4t%VlCJ(hp7&bE^O)LtnVMm4$n|_Ruw7ncwDB?07!oci -zLu6uxAz&mkkG!NDR)j<%z?4i|j#~B5MNKnVb6XjG8iI4jv_=uJ8hDtD0JE8LS6IE^ -zCuH^*MTCe7v5@%~I{*BIfAGT(JSh?(;ub9tm{RMBthgvcAukHe4=$=3hwV34OU0+M -z^i5Zd4KB03YpAoDWia@;YjI_5=v51fnLYl%xNM@)%f+A#Zf92xN9}fBfL_vDw43)mTg*HQ5fz50;ERBT8d6KtO%o0pb>Bo5O?3)v`WRi-} -zPKY#pNzo@+SIaWM`@=??(0j9RKzJ|b=8o`Q&h4DAdyo@PIp)+MW8i{~Ba&iDjqg)Q -z_8}}>I7lzWYRzEZByADIXASHwhP2uCjwEgk&^T48zOT|?4wDe{o8PR-FRrLa->SPt -zn;G8Ar0o30jS2H=QK&tGPK)r&(NR&1{IP0V%Xu8>=O4aXbNrWI|80(MX84xlPToTt -zue6m3KH}reEcfKiWAgSfd1uMK(l4nKqBY`GRKR}M7Tp(j9t9Nij~+;tbi2PTY;w;> -zo4)qPYUzY;Gg}i-I;px6X`ky7!!yI9ji7@`L{k_~4pMTaWnfc*d -zD91r5UR;QUYm~*2BR!ZA?K-d&bE%yb7`Y=PLN_704N+qo2xzk!o2L4BbQ?N}k>SrEvm1o;`_k+6S> -z>_i=+u&LyUD#Vya1QF2-iYPDa=OYm!D!?Yfcs`d6{b?*6KzquHU}Sq4VUxj}aNFEv -zLz})~HUVX8C?>v}ha(3!t}=`b1wF`j3jYynOyW#O@0D<V$~IN0%RyFt6hAdH-v{1x^6K)mB;5FMM&rs&n>W{bxHz0gp3ei6Xt -zQ$Ja3s5S?>bRAf0vLH;P=>9*rivdx -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 -zoTfD&1{7Ck&J0N7g1d@u^4c1K<< -zC-xi+bxE{I(>0jwbqIET+4v(+rOzDQ*bIT#YJ!s*z%|Jm4)Aqbg2GP0M+EPWWQU^n -z?i~j9VzEU7hG}V>KeFxGuPfh@v2lOPfuIFyrLf5|%B)(N=7R9hyE!hU5^pz#a^7mr -zcwI&APk8mUPG=cMWTsb6q-so|s^QT^E+M)<*c5h^U$~P$ -z@SFTm$K=-jL>8YZz{&R+nai3X%v~Z_5L!;)vjhqAIpAo1rD_UySJs4bRxY0%_aSZ_ -zm3N~Jc{?Yu$)ZuuZVlS%w5|>NmTC4O~+=cQ*ugZsB6_TJXDBw=#iS -zqkcXCLT7)7{bgQ_JIPlQ=i~M;)2z>#ZC0Zo?=dWBX>`{cIw0_aAMx~HK4@w#^rft@ -zq9w>4q`_Ls@4=Yrc*1jvz76+y*7#Ju?iihxJ|mLo$*FNTPM$nl6hyz?6CZUFOA7nR -zCa|*;PM!^*Cx6rn+;`bI*M#ZWg9_XYiKfoho+Ag^Rgge(075{$zf4GG&Tv71Xz`$e -zkB9!9u?=ReCq63Reny*wdp{qZI1@Bk()x}P?khz1=hTe$-RwX%NV>1&cMs>~cMqoD -z&kv`}-2yX@e=%u~)8~wX=!;ilPJl&NxkY#7`bMX>a?ns?i1rMlfk$&$1<+3V)PtpQ( -z6nizJe$FBY6aA-jNZahcI&VQD=YD#&I$`wt -zebpx@j?S(YTPhEL>WS_JpMc02nI-x7DvsjAQ8=7#YCAiZNT&e5i=9bHc(8-s+WN|3 -z_(Rbg^IN!~1j()=D9)3I$@EDvo|a;uo8|^@YxR<41-7tz9snFlwhOw -zX!0cVw3=;^Mm(MK7DMG*&D(h)D5gYge=FvJYN80k!Y$yJwOkfQ=z^w(?~AfBndwfh -zxF@JP%48@t9~&!yTd9ID$NL%ODab=!krbOg#4I-s{PJ079dlUY@8?oV(4R#1QU#IJ -zS)v@uLi6Mz -z>tQI2TF&zYpF&%MO1@BUMXX0<%6>7YzRrFA+@;qkpO8k3*Fj#~S8aOpg&|B~yEN{8 -z)_FD>pAhLMTs!z26sD38&lo%*oRFT(cIV)E35LD%=@epXhO*e^j%0T!CWlhuOUhyP -z>p>Hvpkh(TE^HK9^CA_eg|Om?Ra+cNgM~N??!D9@1sJ3V45y}xS)_rxre1x;t`_J; -z<5_^Y@a%r4H=#}KUCeL*l=!u81F<*ulfih~%n(IbM4^x!g#}7m#*-6+683k&0!$b@ -z(5E!XUE{Tgb!$ZI2fE45(9j5h3EtUSBj?+9^n=O)Zj6$7*9U|sa+{j94kX?*>~{ZT -zVT1AV$6AmI^0;#0kP?v$qaq2)ffgUs<^ -z5RvK!GK-At -z94YTym|>pNmx8mD))DC06eo0<^kePxr3BjHz=3ndG4}naPZ8&cA}qSYBKL@^rl;G5 -zj$KLi)Knynxdw&?O~<>)&bc#1w(2h)r3o_|rHR{!UBnbqL&DhAXd;GR+^Ow0Wf@>E -z9EpM?cUQrjc=$prVty?1g_{?Nf|c^{l_E!VXA}li3t7i9wNWDU+a=T+{3R2Onb1G< -z!}BN}_fHSaN%s|XAr}y4ul8!(ZHfB%6p_zc<7`|GrlgnD1OGNZ7sZE&SSQ%ll%i?t -z^0SVw6J|Fl<^;lQFKK!17eUx{MOF208Zpd`Z#yJ@)~D?ld%j|j@6p%8Ry}y^Z;2;) -z+L^%V22vlk+d7yQFFQD~pxh -zBWH6yOQho@?!6;d5TQXb2KW4d6C#(NJ}q;%VgjqE($!>X0Rnatk^NW2S -z1)#fCl=)l5EL~e{2*n_niy%OSGh5{A`$>_D7+0AsE}z#I3I0t$!Zrpo5q87XX{ipW -zJ-N0l1tI<9l~;=MN+hLU6?s#;{d86ronW50VR-|aYu>*2V{C(a`;0X>ZCu8d#7~bb -z)=xeTCJ|>Im%+1T3=3l}zVnthQ$nAvX~>9c;sBBTTrd*OZcGOxBJkh`)W<2Cco=iBFGUg@9n-)xK` -z|3X`Ugc$o}o{x84=Ocn6_@m!>&0By31^w4~O+!bo3&x(p+06#O86>1G9~5c6D^k?smo4@;Ut%A5}!Dh|&Ezs3Dw<3L|EgaeR#^fbX}oGynqk31j*W9So>^PDd;-1kc7@73B0 -zl?zdKXo#DgvX?I@1*R*ptxm!5j}qz<^&1V7fyCWv&_{sxQ$~|b9n0DsQUPQEw=p6R -z9JmJr-W3$o)aNu0Ax?x)hVV=OM1+SUu?f*#i0(u5DL{?Mj1|D`)SBYJ6Yzf*OFua8 -z_lRG_A;ni+6J6N9;NyrR4sN{ktKsjt9jRpU7`+w=V9%{S=AtJxlV~nGJH!tjytSW` -zNx)UNa~?sg!%nZGmM*pF!2Q6-kQmBQ#*JYgdZE3jhIv(T7TDhd(&YMF08_oE&Vae9N!w=Hq%Z -zcwCen(pPL(xqEMPMhU}R&(dbnQTQxrSc}*{amoqN-A}rSNe`bn(34+Mg4B=3>aLI9 -zFg6Z-!axg|7fNTQ3SvNP*U_vW9I>Nh&?7FeZ -z^TKMy+m-tI+Nj?6^vC_AZ5>lEP`FqvZ7}zS9A*VSM7g+x_(?IOpTTR3jI1v$a$hT; -zM^-vkjAZY5dZOM=Txs3NP0+PtNjgNo^(k}V`tODHdWyu5MM0#YTKf@@<2&ML>s>Dx -z$3mjLG~)?$kwz14zf1S9Q={K3bZ=@e18*shgf%0wyLam;QRD;LTUuziYS?p71`dAL -z!PA06dWpm?iLw7 -zvs2QJU<0ARVY=5+%@~}U77VHrfof2$L+M*fVJ*I~!Kw|rN$gB3S;9CS}{+pm8mJ3x4-p5Rq&huM%6`rdC$ -zbY5m;*__1+(!MO^kyhSm$qHjE{LO#)8?EkO2+Uvq>35xIeCOz-x2v%uL8xi*0R|8Y -z7Tp-T*eL8CfCZIx^A--yz=LVl`Xez7nqzIRKszRaX>mzEdy#$FxUuc}sO!tg -zMx`TfyD(6o&t^5Y;5dR3js3)tdwZ@HtwMBdQ0Xm8zM|$0avkhE8~~Hx$}JhNu%(q4 -z4to*YYOrtPx^{a^&Cnns4$!mm(e`I%vM;M{UpS~d98rKsjk7Pj-=M~Ds?Oe`1bRoD -zQB%g)uV??ly7VY)4t^BI%$@66(0hUD&&_M+`>bhF!hq)8ch@q5 -zx(3VISld;IdEPaD89pS0&EU=qhJu%p)FSj}=yMOaWy}v|{9C+X2U_ZeBZ?z#H5okc -zNMny+a{{|%VhChEHn@4sb}od{)9y=p+TDRp5!UGUZN(Bz1ZGCyjgNS1oC;K -zy!g-hXX3S-8jdS}AKoEkVwXw`Qp34bK-=fR2xBPTj(sNS}Z1ei?%X -z-SOAp;d+KCjh9_byX?a%Zn@S -z;)pcoEjSwwd)tb^ZeeMZR0!qYTtx_k%g=+rD+Dh-E;F<7TF~CHv6wT8@(HbB?QFun -zBq;p(M=Hh497!l|22yCTTZ&oI4&f@R^6sS8^x*(~=Id%1=Y!rqnaT^UdM{y}ZsD+Hbp%{no9 -z)W+zpjwbS@qSw|R_BMv78qid0}wm -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 -z(^>It=TrithHMCPJ1k*5@=< -zU(BN~z}WrR7|Oqm2k{Osh5V>>X%}%^7^LET3wuQ;%DnmMk&5TO9s2Hz^JS>}FSXq) -z_(4<^aF&bs!hE?_k4?JPi^;(u+>NCvr2l9L=%iAsf -zLe2j}_8a`P1YMyoCxLvW?ygqRc)#VKfR%WsSWEBI&?D#7#lOR+F?L)7B5l~KPNRA6 -zM_vspvGwrN9ZGp;o|mewKHP>%^z+GEyW;dcVrwyw{UH;=yj@Qd}MPu}@LqPeH5-YZa=^Q;f$)T)g^)PB#_Y;&|` -zHN9Vv7O!Wbn?wH*SFD%Xp8M%zt4J--7i=gNN?#=Ss62cY$ZGvkyE6yMAZ+Rw=1%L1 -z@XPP4PhLnqC3oxe50z0W)t#%4s#;%U3?fikp@kyL7RHwP!559tmfS{+AmZIXEbGfe -zd~v=v>9GGmYir?4V2>a1iFS%X`Fba@ix=jc`~C0H@y;BKXamWoZ$JO^!#i^ivm#fj -z#qd#2bbYog8m}@sX7~vWJ=s5gG?m`_5~POz@Tb5BF(TEMzsE2o@ki4auuklbtL^^j -z=>tQL&h~abl~+6(`XC!hNHD`XV3I>R)^XswbC+L9xje(ftv=FBjVLQFwKsZvkhi<# -zLe*ciQv3%`Ld>VQ3%S|yM{Egy&6(vqzq}IP`vcjX!_LQI_5jO5KV0$NX^G7Q<8uBu -zOWqH+^21*$Ajd}wYY=&X?B$~@f5qXG&JP8q{fDwK2+v7jgthlAXhXedvkW;o@Dk`P -z%}YKi^oyrnI+x~MUpzRl*}iO}H5rE%bOQ0=pzC~>d||y9KgfkM10VdI`(QlEon@(b -z{ZbZKYWDHgk4@r`IY%vcfsgaWW1oL;%7Kp13PxvXoh=n;U}I-DCMVjyv-}4IO@kS* -z%r_$Y@Du}&0{Rq|*avw=Sfyw(R=UV{jUX3+Cs6t>8ah-~Xl41J)C+3z;~+mC{Y#1W -zP$XV(DA6SJ5nnMUm+CBKCqK|*9vyHp@&CgEP5(V~n>hr;y(-lvB&2;L;%lcYVO#Kl -zmZ9^>Vf(b7Rn3b{AAR^&3(?y1{I9Ty=>uK=z(hZli525a^uJFcsovX_vqJpa(l}6s#tEo_{ROJoxAjd{H)8dl9{Q=o|LsY4ve2tFj`oXU-wk#6oEB^;FKR#gh8E@{2hxbzXBLV?_+Kj0z)7H6e -z!{;An9>jUnbI-E5FV9&c+~ZR&swlnR=?5R^Xm>hj!5^DIy@+Ex&NAKt@Ayu+%&L%b -zs7F;M%u|q?6h0p42cQ3ekI?Vd2&87){$rC$UEsG;X}#*-&o?0#_v8Mh^P5|n3&_`1 -zw``PLOY81$;ak6Gb7fuNT^i?z*uyqINPB-y8Lve#WGuP>g_TnpoBkc|U7M)9-~8=M -zs`NKVcUS0uHry(iMv;%mwYbaVUhqxb)2Mej&gG?Kcf{|~DKM{3a#!wH{LgukcL<#) -z*q@n^-L*MJ!ZX(y34KQcl6CjMzF;Hqw~z9;Qv`d>GRUHD{iOlP#zHkO8O+km;}0OV -z2h_S7*8!n#E7;L|2rgeMJtd+k)pxri7t*wh!VGxtznm6#ME4@(U5bAW^sXS3FYdBG -znvpD7ZT71OUu3s8jqlPiF8+G;ar#H!W9*WUnDj{bcRi_t1p5S5m>W9>?@HfO(Y-gM -znnx5dg6mx|)`1uA>&_B7eT_LJnl}<=MfAzzM*0WNXN64Tc&_AqRc^w@8P{aWpX{X8C0KedxDl=HdeghdZ%Y+APmetGD`Kb8$qP$n$WbRKT(}%9`r8{ -z3as>~Y62g$L~ucGMZ -zpT9esT>6=pw!fKZtHZLJy|fdKxej(X}(Nu^dX+5Zga7 -zQF{B=Q80qXpOQMa5gu%eKF29-*{EMVP=-WyM -za>Y2pb*Xrau -z_kq9U@}3_KI;(>+W!IgNeBI5~_oa5cgDTbFzQAh}Ls{di4Kl%phj4j(D`1;>_pDP6 -zAb9neDnxJ2zMLPnllK1J3vM5tIyY^fVl`|L9~ykxJ|FR67n}D>jWp{SG~8aehJK*S -z{gtC-^gmb=P1d(YnVoK351)RkKb!d(e^H9XXxcFLdhs`S{T1{{^@p@CKJ+usW(C|T -zk>B7UfSJ57yLFf#7t_k&VQhIFA4R)%744-Vs(tdoY(elFzvz?oe=fPO0%Y?D^lxoD -zu;$|RlmRC8utc#;C%AhrkYuGUsE_Gxzxa~E#7@%D8BCJd{qN}T^UF-6@~7qps5IpI -zJJ>4V|Kuw$5$G3PVo1|HPa~GFhTg{RE#y{NJ{`P1>gM8=TR(v6^`IZp)?9Z -z^1bDWzyAD!a+VQgvFpPGy?r`9?4;+2VqGn4%xxEI@=vhuJK;Lg5utdHN1kZ5Q2YdV -ze%#}uJ>lzJo*X_M5ig2%@^FX$xbPboJ#U`bL<6Mgf4)>3l3fKv7WU9YiH%&6p6R-m -zT5|)3c7+c3s4qgVQ)}=s2297=?Z;zZ1;W@L|JIp9|AU{?5C5SL|K@-Ho23{B6MfGX -zVdVhdU9%ef@e0k4xc=BzZBygaL~jH5cqmF0UZneSF^{Co|6j_*-fLsap}+hif2{tKCU(sn=8g(JQ7upM>5;lySi(H29%40s4DgrFbt7A|$z&q6+ -z$>YQUo>#vY^ -zGy;N_&sk@cm0{O<8|T%0-7cU<^TzbXJ;=H$q(m&F={!Y^v5Vm6e>}`%6;l?9 -zU)g75uzU2sPVfO~^clp1@8EZo=`0ALLyk9{#>dPRMplp;o(1~MX8*p?Rk`H5U -zH3`0@hvjNp_SZ?;x3xP)`&xEo5|8NJqR~RHQ*6<>#r3u9p@Cr -zYMy_MS9@WfH>Y@oG-0(_E&SW-s)fy6KZNK~DU>nl(urHF -zEeX}vG@9-eUnR$0EVJ@!eXyYXulvWxU?kf*hAHJz+@n=J$aZ+UtrkN|edpet%0(qw -z_FjxnXHUqmpEF)aI)0P;VHALDd@jsE!7)V*bFDE$0mC3_?Cne>62r{Ez?gf7UzaM` -z;Kch{yKm_8AOm)=G&6(O<*=0L_;o!hSnPT#X?j~-vAbB$DNzpiVsF#gS&!nXYBQV( -z`je^b^RmI9U%dde*;f0(wf!%S7v3#ATjz_r8sFE9#`OJg0MJh^A{fX>U+d*^6GiKm -z?7i~;@OB_R?zYt0m#Msd$jQ8xH)tn-ueI+ZD&mzC`RE4k9n(6E-n@71H*=$?Xkh7; -zuo%rO(xWSywz=t@UAL;1UyJTsmwj)J{J&0NttkuRrjJ`WPT801ff38-$=hZPgrh0t;2U51j=hf3enu)3@yG6E$>x}Ru&UWkLHujXK -z<3_G`^6AM_4kF&|pECLEDbKs@VYfa!?}_r1ZI8$OhJO25WGlJbuC|_XgdFMfF-eHB -zPqv%&^Oh*$Iek9VRh)HJonuPpLdgYGnpL -z6Yn?ARF^E>$sOb(%5}AFHr>#TZ=SYZt&^SHi~X7?Ps!76vrSkYDYA5ROrMC-O!8F3 -zRZ$3{y*|lfBlpWxYJ9yFVzWsP^ws()mSVe(Goobc__*08J5SlH*PHG3X$f;;fh~qP -zX6Wf2hJ7tJKIir+O`o3*&s5q@?2{Dw>6s|8NaOwbxF<@|wOO{=xLWSY=b?||E7jm> -z0Xq#Uox?(T;^C02_fH}_ddf32aJM>STSlojnM!(B^z-fjzqDiD9Csqw$156=wGi9Y -z@em(kqP&*JZC&kLDKX5{m6SW^00|9AjzX-(CfmomO>!`|_)NaTR_u;qO(n(kws}@n -z>Pkvr2)9r1k?NCdV0Ena>E;<$5zPOTQpD~ccKbD_Jnb|1e=0xSr-v-wKU3Fb>2cFM -z4bScu%jaa3t=A4cDRnNpF?&{2?71oOU0uJrJZ)MYPCHmG7Vp;bwZqe<)_>Apmu0IV -zweAl^zdpOngIXWmn%b;ZtLJA}1AfMAR+|;yxYj# -zE{1ab!0xug9vUm{%-B60SGV=5o4QxORAKXe-ibKg`r7Ue3lLvx+@B=X=m70G9*=TQ -zl;duHcsf3_4^tuIwG;_avSYl?;)K3>PQ`AuI>z+XQDg_`vh|TD&EfKTYl?P1I!3z_ -z$NiIhI%a;Lcky<8SRM8&Kdd{DPLAu%F80eBgdMSa-mZ33HcZz98ccjAWj`(DmfnHxmr6(0;DWh!kg?sjY@YoPODWy -zl&7ssHtB{Mm5TlTX?>I{qNFR>{Pxe!M3Ko82oQquz#5YWksLj1*|*Q)vJm& -zfULM}o(DgbpVo`UyeUr4clChtjR!J-lDfPt@ -z%ukq=n`gNr)&ffw7}7SAl#ZNlC(w`* -zxhp^+E}m1+3qc|G3;F4caX(w%&xb`h^bM$180g3M^#R1?b)15f;VIk2Y0;HUqg^H( -zakt+9&ygh9A9lw?r0W%_FNdeYQ?^bLl79{$c&F<1yPGvOVce -z2iSIC+uP9geK=n0w=D=#RA;d|B%3|#K14ZWzKGFxDT=&sznp-= -zaa_gJUodlkT}!qC4-(ej4!YD2${_=J8m1L3gF`J>N~Mn59O@eMSj!}zVUZo4pLWvM -z0n}C))%BJ{_~$ih2Tv=i=QC&zsRZV_C5nKl{k5r|@7R2riFc(jGj*l=&k{wm)czk+ZACI&epM}7U;7G&pEI_;8rcbnf -zpcvr60@#tKq+94jvEF*|;8}t;y8-@0U7cgw#Ulj{wy^ZB%{(!q(_$IWK9 -z7weQ5D)i~$5I>_92BPgc-fv-71gU(pdEQ7i|BhQFCbPjTYERs4FMzPH-=)wA -zzGp$CcmjpunI`f*nc?FCj54Ik*IaC#o}ha-#7YFH9U#&sJI|8DcD-Ataz`^#Y~$xx!r=Si -z7Q5|smn3VFY{Y)Mecm4uTG(Qrh~p0AHs816DS27}>!*zl6tSnh5F+#QK>*K?#{E0miPWphkTmTZ)nsT+=W|+@uX%B%d{;hX@d}s)?14L?h(uh= -zUUWm-vwWf}T2-oLKK7%fs6xkT7+nl5OU6f2D#Bxt7YvhPWLVzcRNS6TI2cQ_*JTZs -zxVxi7l4(3@M_387wj6Ghk`-y0O(&W9#>RR2nvLVBB1*A5nXZjbCR}V>+1O}?dTy^( -zd5+&$+pAmFj`jkhp)`1-qtefq5U~|)pB5$dlK(Y)YprO9w9Q#Qd`BLgpYv+08F{Qy -zj=hbI^iu|82Mk6~iy>jZ*yG8R_R1idlCm-f1`cnAL0mg@qT^JIA0-9P*j6Lnt`eQB -z&_~BPo$^$DTPh$7exz}i+UMi;22`((TMO6xF8FfAyfzvX_xJQPd -zw?|kwZ3Q2Ss&0Ad7@-B0OV;YmjL}C}y7(j^x=CW}e|;1?Ft!9)SZ|+U&lF1??#&RY -zG8gXc6iaFIQn8hmR^9m`FI02$!o<`#EEV`}EZ?tz*r0bjUX9kSs5hPjjf;C5Z_d*s -z^fL%;_y|P;Js|TSd0@O5QP>t$*PfxZ=-*KDylosHEJ=q6&U%Yn)k2kZ$9oEBA>s$G -zO>pb(>`1kzHm;;%ncHr__lgQUer7d=zQ&9?xE_d{mN*1;?Ap{%8MPS9DObjK -z1wdiQLH)Wy?6rKu$$fkgr3y(yskBQsAD#(aXRd5ifP)I^ -zI*h(%&!hplK26DqvR=&;VT8C$S+8D`mbdk4pTJqV8{>xjR%UD)e52DRA(Os7$Jf|% -z8kuEdmbau!$#Z(0hK%GXS&wCNsV3ksG%6r9r)+&lWd9)WX%`?SVgp^tO2qgI5HZ9I -z1lm`cZCTQcNpZ~?B{S||4nwZpp!^EF`zEVymIPAbAaOT_;gBF?c1A9|%Z2YY$sYJ7 -z-(@oM@)X0XQNKagif%?6fQK^WD1&8)7YU)@+=dM?^rEWH?I^43`P`A-meniLsPPUL -zs4s1n;hSEZ8)cmurxPiZ*=w3)ao&j&mGs&aCv~dxq%LlLX=ME_cLotaf)40Q{tM_l -zO4z^!Kz#Kc7CtU_5Jo&X2fa+9A6d^xc&oMKdU7r@3`ZG~a=}+;E^5#N)4b%QPRKVI -z{2J`97!ixHBz*lTmtDz=e(Pk{p~n}>pN7U4VlMS%cYN^0^;|AnCivtTh-|O?hjYP` -zVN_B4mRA5V1_`TkiMLnLgAseLgd!ZH$xqoS9aKDKeqcaI$=}*n`nVEf)s768oAp(0 -zM3dn|Cnf(K=<^Hjs|MIoce&kID`B68A(g;>hd|iLF@lOzqGG}~s2ljQVpf%1hnf?p -zCV~8)_a&+TFk+%otnP1pP#cD)Hj$;-m^-S0>&RSpoVgyAO^i&4j^|87n)vW4x(N|tuIdlEZ*r%#*^|4 -za|$>Mjed!b)l~z1Q;ox=dOe?O>b0`MccavR{I#Sel%eUQto2*zv>LQHJD%&73VJQm -zOOo|uq5(;<>~mHf5GJL2I?qzlR^SV#DI=k1_Bysk83NG(Jq?3&bjhwtkU@dHq%S=M6WU4yI{1NjpeIA-D$^$$+M+``J!mTz{Z@b{5q-rb}4A{D=$TP -zX0xKaK_R!QkW=G*;lydZI<9Qs3rpDVk0Ie{{S*?8t3yE8?2h}8u-`m^Dw!G#)=$f< -z4<{+(JRbavI%P1#Q%UJrBdM{cBJamuyiV;!(qN*#0!oR{F*+_X#%seSLEWxhk#*GL -zr|~9|Ya>sBzP`lgT%P*twI|*F3=>qfOffm*97@LoWMY{L&e_lPmFMeaQ#Y@$enjaT -zbso|_%|P93uG7u`2FM9z>>luO6d3$mng~*3(^{(9fl6Fw;z{i4F=mscipLrQnrN-6 -zm#-r}2u{viH>JzikfQHnxTCU9*?J5)= -zdftLAujHF(FtRyWeX9&+Gi*P;J1W>jO4vw8yw{F5WDT`wnO&zUfur;{QMrfWEH!VC -zPiG+f4qSByIpcbR-Wc?qU9@yM@*7CUtbocGe@?Ir`M&PxSnE>q`~cNxM`lJ|B(_x} -zFK;sv+P3(&sK%qX1zQ1B7RumU3X+>-?1)QM_$o8(rd^NbmISpqG(QCTS5@g#miZ4A -z?SR*HI0ZU)R%s+X$faGO??}99C29zG_trg-Vd-s*7dX2Piu7|8+BkM7IMo8Z(M1c5Xl7fdp?&S9bWM_l@@-?sRy!g8wE)DqM8k -z(w=M}0rvE;ESQ+HCgZcWvpya{&IhreiA4kJY+xyu_A>kY7EGa=y(++j>#7D}Z^Ka# -zNV>LW6x>_kOJ;znYP2%f_!uzjI_M%0dSoiY;P5svFIm010{0bXD19GA(XqFlqFB0q99(eKN26K>xx{fhAL7#~J -z!eknt4!C?4W2XjfUiHP`AycA7@=aE3eb!hYD=&E+GgyCZHhNbIAP#YPo&?R9 -zTFM&^->Hxt?HM&HlK7|s8f+6p2d(objD^0(MyT~?qPgG`?c%c8BV0RU9oQ_+?(xed3G -zT5}r8w@kjWC0jRbGJq(K^UED#)v!mvu4nI-7*bc212BRMOqPbJ#Wipz(D#arsaUm| -zx~iD2=%#({h&+P0C-A-av!nypdQ>v6_yI_LOPJ-ZzR58z;%3ZGV@+k<@)Yfx<-m=w -z^$l+XDiffTh)U$e*bn@4q<-t(Zq*yL5AE(sCU_Z~cvX{>vdLT6iryq6zTvwZZx^DV -zHA@U+%W6`5vZB6azP^o2M-Us36;~WmKgH06}CuU$AV?s -zNPU%wtn*FVK+tnLLh|U=J%n6j9bN9?Z|FL|L(u -zLy0>bz7@=xa*Nya28vIrO3CD&<_1e1H1=gSHkMGc(+9-HL6XV<1Q4FKPb;3KHDPz8 -z7On8=9!rF&1Zx*mZE55QmZY!!jkz@+`-E1grc9Fw<_9g@7WA3%ln-@wAx_qwUQcmF -zek*OAzryq-LtI8o($Pz`}~LDg)J`6O%gEw{t=a -zu*;1x+imh7;0XLJj|1z6mNVart{iW}HNA>tgng6>f`tyc^#DJ{Y0YpOF2o+Y=8}LW -zn2}k!)30w!1>Kxh`q7^dF) -zNd&3@N?JY2)3C>ljh>9Qx9+nzm7?lIAF{a)ZN%jjg=}2GjE=jgxlPQ(;0`p!7}mrs -zWxFCLrUA7{tKh5-X|U6&k?BD|lL~%I&qq$RvC$TXLw$QdSLmS5=q)G=3m4te(s}`1 -zuWI)Shoj=IE@3ZkZyAO;N&%o{G)_el}M -z_Stqi@aX)Y5mG^Wt3=*nhzK2aS+PW|hXbc$#ic486>Otr&lm+zD-5*LQ19dI_DcU4 -zy4rx|o`zBcr03dii&0=xLJo-(XNBzx$<8r6v#5g -zInDB^nw3;eFsic35^W}}(6C;<%?3wjvPM*72`r_(q!RR$K})qzhVe}dziuzM!@|Bz -z)4hkyY`U?I2EEkzSY*r$*{ciaHzOtx4P*wiGB5(h2toV7xo-LV7*IHZ`n7xo3-5l`Dpa=eyl4Etr#wXj{@!jxKMrC_9>c?C3s -zPetHLpi&d}M7OiNRTmTQui;{@Iw$SDD6T-1H(P5!YCBlN`UEyDYaIX#&tfSHcJOJe -zZiS#@Y*nMD2>(T3adBW?R_)r0GZ+*|jZCh@sDi_YX1RPeL<-MOlmuK5b0y?iU6buG+iv6(dzNcrpJKu -zLHp>!mJ1t2#gj&mJ*mHe7d0(t;w3kHD$rq5VCjs2BY*}tj>ow{|>ZSe_Bo;3bNjhHf4b=2K@#3fOoH -z3?|aEjH$#EsfNicLwZVXdDW%lc;(*Qwn$%QG4NGhI7XgByF*Ql0va$3=(ZcHudGw{ -zOH#$4JE7YP&BviA2lx*5M>a*!NfdZ_%Lpy%y}i_7u&_tj>hg*1Jv0nWDY>y}XmJf( -zFfI!lOAvF=%eoeva%n*E?-FbuG#_BY9?#_u@+Z6Z*ZeM&7wqvP9& -zj%^Dz*+lG8F)We6GodFPqYf>Kj!S)J -zW=N?>%nPrbV4fNyEJ7H#ieFs-S}U(Yd(fb{282AGhP1NLeg{?X5qfN)XPVTn^y&yZ -z1JBSyy)eiNqqIu#;T&^d?969k%qxMP<-B&V8E_}q5%*S%flZWZkTNDlhu+Q-=4LvO -zN(?j|4inAnw0)1Y7`v8zS~&Cm1yC3VQ3=>BuCwx@`T^a8rPZiX#4*8-}N15TJB2x9aKC -zl=&p$f^?6mxlP$?`C67K)qiSBU{uqzStym=e?FR4{WQ -zsGTV3w2W}mF16aqNj&M2^vtQ`A^{Dw?~5$2ZS{I8x|&@3F0zhU5%h46#nIl^2Kc}* -zz3-p3Cox)!(=xc-a)FM8$$+{EDW_CJR$Iv -z1{HEDNP)Z5F)urK?#+RPI1ES2DHE7wZF;w`3_T!OBBCWp&~X8LXEnqW|Kx6Q(hHrbgA -zwN7onNm0ao)1R7GuWh4i*7*{5)K9m*ozM$H$4eyYl$@qCBmd7g0lPc%J$b8p5P%3p -zUc(si+qLaqPiJ5rjubEU3-ff0r>vf`BoQn+P`os+L`jYt3@H&4 -zC6i)zkk8(aGG1@8U9#U(44insI*NE7(=Cs9FAw`tnJ`*A$;8K0L|ir({p}RO9FUMsA;06p8 -z{}Q(KK{6b6=$ID^8%I~T4HNP5+!E_V0%$;Ze8@=n!Xvs(62pweS@w9xsU1~@w&V+A -z;yUprk-?_HC$CJijD>!ZF1<)`=1P66na!<}yav@-B~U0U3x2X~bkti;L!-RB7NzzE -zXzG%EP{*QOR&C|6URxa~LnHE5yM_TTc80nbr{_kzv0N!iAfTcX57)#_`z?ZU&Q2`x -zc{%)#yOSa=Q@qNS&uAU?XGprBk53OXt`GWAn}9(HICBzkaCVy+C@89AWsWfq8~*Vb -zbsl{Qh-QiQ(NPj5be0o|W1~ANN70)N2nwIc80&YV0wU^aHI942Re)G@=lrbB>2Nxy -z^s}HRrg__@O&P2rAj5tq`!TNtr-Dd$F3KL}kaeI!qKlcwGRo=}m$hV@DiTR72MqLr -z<`RAd{oN+`wpzi64PNd>&5Ad^Z?w4vhEY45@dVKNOHM%l#`3CfaasK>*2dpHk-dBK -z%Te3Q1y?;^N4;{7@6xUV+c-{jeKK>^=Lpq}C#DI^!8F(hfQT=%ae@)Pv}bonR?6=6 -ziqo~P7$X!7h^Xwkn~vKB3`~{ip2OL`3Ne^dDQGFfm0XyBs#0JVpz3#cPls0s4QYxW -zl*eeNF~PV8OsrJPRH{1v!swu8#O5Tv4)qxTLr0Ht-<@5x0kF-v)=i -zvABxq%5vQ*#w6lgKVnMFNRm|SKj_r0yrhnN!{Y=* -z;mdTX6V+ATun?zm7;cyB8YeN)&M9=wjc{1bS#uo=sMwW;95{+LgK>gPL0IgUbaaxcE(W;Ep>dlLmqy^7x501Dd?Es -zr+WqS2QOjPIK67Y-3?>(jT)=GgeE?LL@pv;cE>*&3uS7j`U`KjDxylQx1p1oc -z6??W^G!5V3GVQ2%!Wd$}S4LKL(h6K6h1{|K=qia3dsu=UfBs^=f5Bm0a_a)`2 -zO@Q^F;R#agfrM|ez!))78VfN@X~HP@8Vp7<7~~b02;USz5}Hc%^(kTSSe$N_Xm0%y -z4e|^EIVfv1=$sw)6Q_*1!X2NHP_dK)tC+r1ukXOzq<$%rCFwg=XkV==USHWry1Ew2 -zyXXTzf(70cpjq|&Gli?ZeH+=dmy`X+DqC -zAs_lODM8;wXHyZ3vw2}GhovN{31%opXrR;_uLlifPxlRgmgA{zR#y5|>$sQfa<)qa -zHZ6zhhL3#mA2W#;*##fygC`x4f>BGnLSNt|Y^Z~3=oC<=b?8zy%$tny_3IJMjv%n; -zND{24i}q5%N@7z1CRRz<8J%fbw)(1kWS>{190Ck4;h>XyphUr>5cN%<6{Bo2^d6t3 -zqFuiimss#0s?a;WO>win$Ut_IRXfRafqqi{a#<{Ed(&=knaL<z9lMrLmjn~3gg$?a3e^5 -zi`h~hP*?I3Wx!=PwdiN%T`iFcy7gHHlVKmWcoI@cUKWTP)yN4ZPHW(|Zm0?bMy6kY -zdeuX9bN=lW-(ADC*^}u;4sW7MTgBTs&L%tR4%+64cbaNczI)cU7bQ=xNzAHqy$(%N -z+)n-FLWSJWS7iXnj;`d#_}s7GTe9u``M7&dNo35PRx7zqnJFzhPnWT{wJ1c@B-mtE -zbS3PVK$_jg47SX80>)3gC*OetxEc2}*m+vYTUpSSl8+!Ai?e#I`zqt)W}jTIMG-W`?#RaR6Fs`(h#wnahDPzI4{8Hz%F -zq^C4@f7fYhcvy@MuY_m!N+14LFu{WDv&`F^dMs}TkguDPALIfRG#?mSH+{+z_npHq -zgj(6m@#==UaDzdK*WLtc18jO2Ehd9H6_OV*dl=SG>rUiMVJ%_vxGmbw1gD|7U20(s -z6k&bo4=tIJJ0M{?G8sWYPlri+bfyI3;Q{ZWo8|n{gF7DHPK-7=r -z!mjOX8$e^?csZc$mPrBSa3?WpPd?BSi=G9{Lh7w&ff3^JZGpGg@N(Ol5s_BvGZXeB -zZ!L)OUBT6s)6k?#nzi4jFaC85EN3jpQ{4%1y_V7-Yk#XSO~uc7)1XX7sLF(2iv__+?V*dq{X^4p=F_ -zVr7m0T76;PkFu?~C#R<1R^6NDmmN(3M^Dd86stfkt6LT@DXu}sS_jxBz_tOl3otsz -zsS6Y#Vfe{yG_G&)SrYqd_C5?(+-U1dM$Lr2k|HkYfpj} -z*CIW+Cpu!Zcd#OJwgj8}QZcMcWdZxR6gAn8o30*O@s<-)X!?|?@=dQQrhT*moeE2a -z_vH4X{f)K#1+AN0{KkaJ-Zat=@G?f-ilNn!98FwRuG6=%FuR9|on~X`#BBl_Iq=ku -z%c*Tzlm%Ksm>k%q?4pzj;C5-zg^eprEjk)8Ots=n+^;RKjjGBK-MkZ`Ho&Eg4>Q1M -z|2IL4d?^hY1$unVjnn!8J!Q&dz3~bjr*3KWaPp32&P5_>bzp_QVWoN`I38b_+`#Bwgt*b_M*(Yv$7PAE~iBbEw7YbgP%H$hE -zwO4h9m-akOp)?p8(ecL{mA0^(z*q-e!!L5+3%R&C#LSU5MypJTXGZ!6OmpCpDReEq -zAycrQx|myZHC?WY+iQ#C4KgVzAr(6s=uTsOQcaO}xsMzbzgDN~FkCL_)RP*}Z^c_# -zZMVB-92E6HFY*o)I}`?5yzjz7O6hp+3#$KRS!w9%O`~*-)9WyI-nVX%?WKU -zyFqCsnsjZ{7n6e5>!dO-49kjECR(gUwcx7~){c-I12tKcDeRBgz{$BZZ*&tWFBc~! -zZ1s3vhMxU;hVVf}-4DK&sbsgT;`1u>3$U!?ejJ1mNBOs--j^|2 -ztSY$_1!K|nXW0io1cD=SuYl5GNL&`G1%3yFt6C)K$k=HQGrrJgT-r#@yYQByR_^g3 -zZ3Ky!LuanY2LzTJj^}U@&I|?^-^ByA}eT7jtQep+^RQ9n-Uh6@QwE2ux&L%x*8e5#}4v~Wnu)ValE}%4H6F4lO{}uJ*h>yP9;t?i; -zq}>5sZnJ(Yhd|pKVP~muGSnU8J7dGg34RQAb>>ttwm0Zj*swv9Z7#_}<@zcy -zXd2m3ZW!#KYk6I7cx*OIlm){pv~@)SY?_{7 -zEy&l+t?mk%Wk{tnm_$I=oe9fZeO7DdNg`luE=9}m0S|2mKi@z}5fo)7!NdGUUw^`S -zxiyC58WdFw9ZW}XNChzfxiz=!0vR_$+*gQHBeyGT^b>1v=2Tx~UAD=EeOGs)q+JIH -zU8~PS6Xr015@b?{f!ft9@X2+p1Dl|!0g1A~zFG~Uy;4bdJ*{Ra#)wB1%m>PWPLOD} -z4*Y$9*ozSjIMTaPV{bvNvN=u1!^SvH33fA;&}$)_71^Vkk?3GhN$5suR@LrdwgmN) -z3+$FT%aEd`D%p7Sc$sL?;!Q@&&K}+G0vcq)z)-Iv>Bb5Ar!*}rL%~L&2O$H84wU$o -zec$8xz!;|`8=8IqF&yI%;I$+jDOR#6t^~RPGot~JKz+vZt(_o>5*yGy$t#eL;^qWu -z{Q2Z%7v!^e)FcWu_H_J-k0#*dG_?OTm7~C7^M^<{29;3lg>|`pY6IKNXK*2U<9$$< -zT5zq#ntAg=@`z7Dvtq|{pO0sZQmt4mvBM4mP{6?IuB#gs@8Kpyu6=FErQdYS;z@mEOpo=|7jV6 -zT)=t`W@yu1bSUJUt4rEMpdg9Ks6eYLVViT`e209IxolT&<8pY5hde=;8^8lU-5#}a2BZg&_XS$Ll2B1 -zPPT3JbgfvoS7qFGw9gk+$(x9~U|DkyTtu#Cz@)o>R2zqwos#L*J@4L*KB}2tI=@+ -zE*SW;qIiE&Q&gm08X+j%0 -zJLS~R|A5@tOz2hOnLA7FhZ~wc(FK@q(0Bp|T3e%E0|^txoPR%}qch{1l>qKqw@Tiq -z2dm_)WiZ!Pv|}&x+`)aL_voIMZiSD>0B12qe|GN=QlNDwU7>k~-ZTUK-Ap6kI>eJkI6nOQVGuP_OqZTC<=;o5i)K#16r<4_=4EiM@&{@!2 -zQ?n~A`YdSynBuS!W2jbYb<%~jvIV%Kq!HgC+87jy*cS?Ix} -z#TcxB+p8~#%cdHJ1oLc4_IL7E|%6)B^pg{qk)=C~OoyG*ibqNCtm^ -z0aM9s9R8FA(-O>k*67A6s!{s+fWm-QC)z${dG!*JXn3JpwMgzI2wf?;%kVT%?a|?+ -zYX=3DPWW%5;86kbPW-`?zCndppX(4A2OMOhRJRg+JS0y<*0<1ZM{g_@Rb1%BbCCH8q?l9swgTn#rh<;1WTWFD;H5mao|*}RZD=EmAzU8K!HZn>8cViWUAcP9qI3TJNi@F^>~cENrwOetPu1321tmir2^^~B=mn^ar9wug8(QdHa_%a%3x$Tyx -z0@r{YmGxL((?#M0PyD*JWB3UsL8F~poHKLMcS%3qn(LKje?O+^2vssIu^$U@iqmGK -z%@?Ce*DQmAT@}?O6>LoX6+Q9C>GV2I6&cCYBu^q9t}01rNQNZuyZU;&BnPN9!;nz&OmakNnI)U5?6QpA&kI8UtuQjtsjj?QS -z&mrzQCPkM`iX@UTIk)AT-!#WWn;t|Qw-`PgcaDa+pClk1RTvqsxJkBP@twpfoX#U2 -zr{+xP9nTn7qUHEV_8MS`be;}%7}CEiW#E59}|23^V2pXofo5S^HL -zW@__cP_lh(D(`-qT;!=yZ{j>n6KQjoLJ8GhC}wnWIXADb>XgUrEukoO$)(B8aY-}z -z@>-ps0TV4ejNR~hk=M8!8t)R7T-)iAytRt*-SP{QKW=5QlDn-KZe+^5Rq^c&!woSC -z?$PLow!k2p#yj1yhZ``4;&tjz6YGN8P{o(5h}-TJ)-EH%o_LnSNLNtO)${AFRokMi -z-5c`hIzGnh>svc -z_pF)jIXYs8Z)8O{1PBlaMCrhx9A4M%d_+Me)z!=Kz28JD1r+Fz%Hxyu`-vA`z5mks -zJSHnt -z>R|g^hO{S{39y^|Yh$Uz6@ZvB5K5|3LPxbuj_R+Jr(-wPFxXl_L}rb+h-76_Ujyv9 -zSq?7Mqa%_&umNZMl!2>^yrfQ6T4e~w_l;qCD@FXfOA9|fc@ogX=g(TN5=@{{ONy?r -zMx^AC#CrFhStHQVXX1SJjl`99MPB!4i**#R1 -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 -zfZS&Gf9gkJs}R^Yrw3GOn( -zX`ojp*K^TkJrtgEV}Eh1)$s6vhbx`+6=K!*>G0k#n% -z{!i!na7>AiQ>q87g&-piUML?BxePGR#kbGcH@Vj8v3#A&cD1Z=onzsGPJTbR>7NI- -z+rfn67k&ee0y_6=bRThGYL -zL=hW@7=+-K-o2^nlgSR%ssW=fUeSlzwX_^*BHWq&P1hDB3i4?o54#coS+Brr%s5f!-hwE%xg?wybfTd$ -z76x_U`%u)XUQ#b8rpIkS);b8o)rCZ)k@#WR(;lK#+|WYCUN)uhVeHo+yZA1mXiss7 -zCQ`g>>}KDkju&rI?YwcR8l6h3c?+bH({*%mN$Fsd7funKat&zjc8~ZO>`6PK?CFa~ -zjxN?|zIEx=^T)xm-ac525pwmF&if%tycpNY$Y&&Zh3DEUIyo-ng -z(X&gd6U%y02&v{lS@QNUJdR7JdbN>S$G5;VL=$&jvI5P2>)Rv-Wkq%+q&~}_~N&Yxp5l2&t*CWv)M_Iz{B0x`bM~x@i5ore* -z&FJCp(3{TKHzkShv{ouBi)Lt4w2aA*g0N>~(R^=ow&y~E;&V12H6X_rpoW}&p*N38 -zsDn+t6sYccT)_rN?rN3s587JaIc{CwyS7zR>G(J9uH$jJlX~r!l0%p4?|(+!{G1*# -zTK)dFuGFu;93fBdO_7e9WNA58i8r>_3};`sUc -zL;d*kQT+XPnj7k0@9Kvte^>vQ@~i$;{Lw%8u3vxZf?k2KXX{^@?)zT-IJ5EV-yikI -zk3YW|E2IAN{a^X>-|y--Q~uWfs*k#SXNvx-)c3#d{N#T~WdEsu@EfX+`g{39f7DDV -zQRQkm4!{~|LRpxforTlZ8e&6!_8B#V4Of8i7_FJiHShb7A-nQpmWgr60c=^t=2|6-=J3b_6V<+{Z>BFV})jJ3F!++ -zLRRz!H^q&=1VK*93cDgmrrs>V4+L$CT^+V+Tp_}occa>FE*xHw3f(4IF0w}X9;9ld -zZxbEF4^kw)7FwSgzRZ!PR&wj@4D0UUKcqC -z{jKEq%(|==Uv(?D*D@8cC(Y%QFzf1@sl@PWsL6}%gl8ZEU_yt -z#89KOC -zC_b3p8@O}^$Od0f4_S}M11T_w>0_jcJ){}+7xBX+gChiWmP3l-(MZSMWt^7I%aTs( -zOVI`z{{8sNs|jYQ4GE(h}8LTSUM-NNh806@VOyfO?JvO!WG;~&+qhh=nVRB1pA695mMd+qK|LSP6n -zpd`@xkzLx0(q6T(NdDi8C0R+<5!JjWCrG4O8;FmLg+#yo0Bh#Ua%S|LnS&I*sDlI~ -zpjlmBC+pmYge%C`B2RUOJk(XCwt#f6BIC4)-hR`h6JK6qRAY`*|4cbJ4^ti?fI9{8 -zDM`KzHd{r~v7r|dVP3V7>9c5wrDFVmswA>avz1{3Hc>+bbKdJ7uvUUZO8<68WGp9q -z)Fk8P>KMFJV8+@5Z@m*5er-seFM@cn71pE|Fw=DxW6`^nBbw`8-}_XGpY6>JVQaUO -zfXHrQSmM(x(3udblvCnQ<%a07KHeG3^zmWIX~LLZqMDc*;Cx{+V!f-bp0tu6W(SJ8ou8R>XuG-MeU|QtC~50^KYGK -zd&B(HNG1fo+7|!syNS{j^6*S# -z#2+iE_q+DB)9rZ4zNkHb!x^g!$fZIn^4p}w0tv1{z6;B2!_qc$$C6eotVJEA^P*UN -zgVs@Qd#fvJmMvoNv^J`nfD)-wVS8=Gq@_w5V1jhC?*$$66iR=9y%v9N8>KUM?_dk -zJ(tU^?{7nznbfRxnxrte4B|0xkk7`Rcr*3A=V2O^*JQYk(BOcC4Q46!)l~sbYl{H -zY(F@T6$CgTthvE96}9YeHcZ60N@gw%%Jq>Hu^W%j3QxhmnHH5l!XVJT|BNC+@z6SR -zpzUsk7F}I&^Y^y5;(_Bvr?$&gY%X6sg;Inz?fGAbk{6UBSUrkgM!hL&3~9_*b)tjh -z%_(!OQ4qb3CDQKU`Ad^Lotli?BUJ|tkaOwv -zo)^hoqmWNq?Rato@TN!Z<*)5X>lR>UDSCFCD?JQ2-tdKDUyfr4V~w$bJ3R&0I7nLvJc8mHUZ|2 -z-vAlDsOBXE4WbFrwUO{Hs2C`^OdY`hE()q9cVl4wj6N0DYi2!c$m)1N -zrDuunQD0rW;EVtRx9z9?acDGs^r1x|;bX8ZN^a$_AeN|zXi2JDM0;>xPmhEVK^Ne+ -zs1(|e0QG=@p=K&XdMmZ>#%`HYi+eO6e-~PmrjW#e^seXxrIvWm)b>I3;)P)>cH(+7 -zAoYc>&-q9gkz6S77!6um#GKe_L4-T;NoJDPDZr_Vc7eF+$z?hE)D;n0R0YQEqc-xn -zML0cCQXLV4l*F*+0`R-rgPtshCDpDMXQoZQ5`dJA-KKV-Q#D>hwq~$zjc2wq!rt9m -z&H!!3u5DV|m|>oV?R4li?j8GDa1QtGc(C0&F<-|1YTWP8R{G!Ay&F*!4G@}|{X>mI -z9%V!xa-DK2%mWyeItmgbVP_Ufc!NxjVQk$(3iP4x5^U@@kW$o(^>tco;0HYHx_ETNpqD)Dgw~G$)cYIsfAHZAi#Z)4=alfRh}2chBl<`F&Oi%PysHbka6=&o -z$=h$kV)EOJG#5FeIn4n=lMz|}%`|rXm~LXK -zr*t!S$J~0_?6Abn@Z)c(=nGPLSVY-lnL-GT=1jsQqo;SJMlnu7GXRmjv`PE)4X3?= -zc6V&11uGa-_8f^QKjfaVCZAz2Q7`6LdkEz7k;Ky?$uhuA#>49o*u;6XO|B3_yV*+8 -z0-#jV_?bkf!DqPyR8#}uUq<0)j-W+BpV4j^P^aas0y93%&~UU&5I}p4&tYPZpcX-m -z?S^8zoR3Si<(2>zhazi}%K>zJgCTj6K~bsQj7}}0pVZ1!@vFl68#cgl33lT#LrF}J -zL3Qmk!J{W8(m<3Go58gT -z+?wq<4R99Y%HKyy@`6(8rs7uw)PBwTGm!*Kn|l%BTT&xR@@c{7Q{g7WiVK+{Y1-?k -z$MLKHpaWd$?P8Ke&B}&Eu%%f -zTS0@>nG^(@t_XBZie0Tkzi@^^lah)zJEXu0N?Pg^ZoK@`8dklM4#RiN?Lfy^xtu{} -z&C@KdmEYiUbE~Qre)P8K&gmOV$#+wwyE@I6?T`1j3piH$u5|y~&)hz|^bj?@uHix>+49fzI|@Ju275)cj#xL~0i -zQ*U_t`KRD^DqFK8Zf^sryoD}zeX@Sc$$iT(BP^P<1?eJp!zG*AqFD@yBIPMKw8)b& -z^zpn>%h)!lJkOrCDoP>UM@e5JsrBHcr$PB-~XJZb%6dWFW=|UKEHm1TWm6HcqWoZ#s+-`DH6Pu -zw0muk&LbyYhgvA%urYI|@vTVwKOu7@qnkWJu`{AC00x^R*&1pRkeEcrJx_2{ -zQ)E@B1bDAk}iY!^N-Xx50IJj5c>7}<>2wmoN}qrn3R&=`&-XyKbeTKyz4 -z6kD3fjPIJIx2Hs*+?nw|U?O-xH^@#@A*@?3NfSI5^b}(6D17;4kIa>N>aAY9hU|Wo -z^7M4g^V6f7WT*j=fM_AwmbP*>GD1+JIblto`Yhe9p7H+L(9|*fA;S -z?U|C%(ih&4A#{W^x1_?OhC^VHh)B8^$1b^ne+aH*sNSL`6%jX -zAR^GJ>4-Hl6t&F?|CGi;(MSpfpE`QAa19pJ>obkI;*dfo18QQ)SQu+Vu^%PoX7-?r23(cW&!E?YD49iFrhfoBf;wy&!irjJG* -z5Xf{KfZmI`%u)F%p-dpcS(ig|xVQ1NzT_k5 -z3Nzl%$XbL{$s0T%E@|Zz-8K7;d#V|wQ=9y97S6)URY5=@QESpxMcU_ASQF|aoJxF{55~} -z6H_wlb^{{qIX4K$oXnO~)2*==RODD@&o5&*1FJv-TAO48#l*O|8Y%kS-+!B4BFen- -zivwyju!qFd{Rp2(1sq)wm|$v}t-9XQX#{{J4d_>IX%xFDQ}=@NLr%$a;^Z^U=7)Z? -z(;2U4+NvCvqGY&o)3&#Tjuy^3F?7-w!A*RRn}~N|^)qSfL)*o$vSesXJ(u-jZiXpi -z6Ho%%NVB!++%POtIWu9YH{-d=QP%sGA -zx!W3+g@9Dw@LG%#o9y7+@u3NKvAYVhDQEoN~n2X -z05F&0HId(kL0Fv5a6aRnOu*Y@tdtkSR_OxSdvyMl^2|mDBC=_`GA_KauX-{XyU+=9B(NW!UME9W7T%5bJyUPoo;wc^r$u=2&^MbZ -zDO;)8h+zg`UnI?AtX#Dm;ZCFjBAanfi05nTT)+vyiep5^hv+e+#`>*rLA+{hY4+|a -zn`Q+y`&6}D7!MNQGzF0)@8Id|72z2<(@7^$GHG{yJ2?p1LxrHt%Xqe`5zDhhNiNtS -z%~h|$eA045&^K(U;%72_PeRc81sSq)78Vn-7#FR?Z}&M*!7H&}dN>v2V!*CCS>)($ -z>9(#qb*IQ)OnWu&T9n~7 -zxuOsqv?5FhG{9^>5TGi29Zp|2!jOT(MV`GmPw2dg4rn3VOpf>#aRkAi9!T19 -zV(IlJ -z7-O1z+X-nTEu?_d<96#Cw!Hu++vuuC3dv=ffuHTl)(bo&Gp8!h51oTKuPd>r@^Mp)ioLclG1E-j>XCWw9o9nN$Z(>uxlbs9NUW(Y#Bq4{<9tfZ-H-VF*V6w!ymZ}f -zpDMc*)wyLmrCQ%d%V=>#xiwX}7M-BXqbftSFonh~Y<}Q+#2ptt>Quc9W=+E)Za~$D -zw+$Hb%duKOG$dYnQyIfo8mq1q&uBIPxeg4U?eyNE?8Ha-{ik#Pw(_UAc0>gVQfm0Z -zT=iU)rBC8AnLyJaKj_YSGPSq0a7G-uow~)v6iBDzt4PI`XL_gZci1e;7J)>{i^5l3 -z(GQ{Tw9<3WsyCd*mj -zonEvpG)_f`pI56`2UrJw*P3*Xx;IUC>Rw$-td`efdw20hi>x_?=+4v?F;5znyCBuN -zUAtwToaPYl4l1ePeDaRO4n?EZULxDNEYCuA7T0ykshATz9{j31go*I>gRdirtXcc1 -zv3GHEfKo(f2*-?dh#F6<*LOLJb!!cW^>k(}Xy*^f@}e{MJ0M()2tm$PUI(Vwsu;V5micKS>4vGS*S2SaUN`vc+B$xon$x|QZk&kS4Y5|6nF}#_W1#}d -zGYqGDwR0-R!qR*5We$a>RJnTbZkE?1h87@P{X5FEGGOgzEE?NH^xy940oNbz!S-ng(;`4@kwRo^ZIk -zREb=w^2TS -z2ySUlWvL_fW^`DRY~O6- -z=@Nhy14*y+y2svKHWWs_+liOOmZ3EE&(%?idDJUq7Ps2dsNJio3nZYV)pcvlRFmF@12FV_7TufE-ydV#s{!R~Jwi7< -z$2O9r9uQGyFj9Q44=OE&e}TS95f7>adne*d?8G{@1N17oiVJK|GxaKs3brdIE@?De -z-lQ+9ipG6pwA>7}is~uIemvel(}<(^&G9ulM~+o=`Wn7Z(|>G5pvDNW#z_#S;6yAg -z38mG7h=P_WBbG9y0g*1QP2>Fxb?TW3I#r*tfc0Qr#>C516SACmb@M -zI6$a3Hf|fS*^w0}+DOE1XeSk};f0!kYTjza;C8UUeE3lQarU47V5Wc&aWnD3(3|+E -zS<)&X;~XCVEkx51UhBY1!lY#aYvkUV)-b=BLh;g6KuFvI|k0T6Z=KIu&k9szhq(zO| -zXE5hq76^KXt+sT684eo)q}|&>1N0WAO|r6F_-bi$U0AkjfIJ?xu=(1sfvGlIed_3R -z02T0dpZmknGDw0^0H{+e7pI#dj*)LCCONpC4u$ilofYUUy_02INU0>DhWHZCA>ukb -zBZpC&lm_{O4o-)}KS*5KltIJ!!WY5D1Q|zQg7ipf04^GTnom#%XWn2AQO)-U2y0K{ -z04yu+C2>5}`p#U`-P3k2OQW`iXJG1^zAsLne}8MuzdyD<4yxN!jYHqhiQfz+kbzsq -zvg+LXZf)mnyEA_Z6+KaHu~i)l4}Cz1cG{+l7SKmUf_cRVT7B$AJ()gYDzhxWqnX~T -z5A|nKe}{^{GLhbqMV@b_Ob4Y@)m`y@1?Ip*T0XC7TBK{8qfIQ{g(#kyi>~WZr9>}( -zy7>Eat0HS^{akL&aJ+RtYgS^ZF$|)?iZC_SRW#VH+Rr4wFPj@W&lfBo+b=P}cR9+&1`iyLVZBJ+2sU7wUvA^5E@4nugpQ@srxh_J#lGNrJ -z9~c~{-%Cg$CN@!590_e#0mb4`W#M#g -z5*chf@@+$r#5)a;Yj!}?i61pg0hp`tzAJ^v@tsGA0Swsb>Vb>DIf6%a4BbgkNFNh>X#XQ&KY*3OxmKu5D> -zsLM!_%EATZEs7HYkk3|4u4*CXs7h`0XXGQw7$I1z&UWV$FObM}#tt(O&*eG=N=F8d -zJ%1l{L+Ds$AuVHyMZMB=+O0H_Op-Y&4KNQN#lofNg@G=oJ&=gcZ%Fbt+uJQ_@NUT1 -z6^MEkI0Sm&QF>LLfQWHK0QRnV@TWGd5ibNQS>=Fy#5a!pV8rJEt(;qrf)wZLPLbq% -zjT(TG$-~;{M!XW#&|^Vl;za5;KMuL&Cgc8{OE6;-H#%+;B2~OTOmpI`=OIp0b9XmE -zf@OyoxCDQ-K-6`_f^?&n%e>Z;Fkweb*b)?161|nU;u?%QUQRq0KK4!0Y -z!x=hEyq2YRLGp1EabQF-tr5$_l-XYy_W}!A&`CWQ#U#_OATr8cz^OpZpnD;M`<^R+ -z$dO%z_EN?)S4|GNI&K9Rck!DI6jD>=s*9)97~Tc|qDzKh22{l%z7MU-NA<~B -zJQ&88Su{}~qXJsl<(ZQklK9{uiR!PkkiP%;R+#G1(AAVs;!O0DP=Hb~8mJN+Y4oPV+qd7>2R; -zcR^0oCR?QO($UmB4cM&TkXtDynv}u_WR#P&nKcJg@%wd~>Y8q5%p=>^s_2z9%V}<~ -z{X~np4~q9me>=U5B*KjmWj&F-q)x~Xi-QEfq{wY&+DyC>!5}ATm_7~^13MOBFxBJ7bp)k(f=D8b34qUeG@2r1s2*LiKgY#!8HW57O*?bB&iI_v!x&;)Eg^vKZ -zf^UNp;(#lz0OQu>kYAIP#0xWbWh>@4tL+s%PVyQ=R;gihh@=k8r(7j)eXXnKepR=y -zFr_heQ?t?6-=o(r44so;jt}q@n^!$dLL%^ohz*I#PPC1DQvfbZCg+16XAsd4oemgb -zEw3DJNk}=QNe}vwLym@Xaz=6poUoFkRC|D>v{$_NGVG&fKIu{~OE*!QWU0G&bu4;R -z9v!cwV$Z`9MBPk -zv(wvzbZ33SWm}T`hHf?6se@VnCf?b%s%-+Xn-EX%B}9Wf%A?swSb7EEYfsNh>0RL8MeV`7Rbvv`Dj! -zM*ISuBdN&$ic1GNzcleE0iQ?2?I9nX6cn(~kyM(!)Xzf|8~`9l%50V+6+(s+3Xccz -z5iny{qZ#EI7(3OIY;|Yr0kk?Kgb(7)5a*=8UzB_gV$?BXeaYWQHED`q&qwh>%(+yt -z2Zc)Meyj?BY{(Dr>MnoO=Tb6Z;1hPhQK1_;IBQhwD5c{LeZchqt`?mZrm|v@!pYaj -z@%R0wB5EM!99i)-9>KV9feR7>SB$)dK8{YdDaX9(Tt6IP{o*fqEh)Pbz1udCc$==T -z4__fL9|dWK8kA!i)gy*IUVDKuk2vI3o_*A{s9eN&kXwrsdrYLAl$1t>3?pDjuCBxb -z0+f!o9M$tUV~7@OQfq)xgH&6&|KdJVF%>e544)3zE>!YWY>+$18TmDb-y>GlxKH=x -z3-*9$C4a2VOWSWjz~+NYzayJ~gWFKP28i<_n`VFj;HFbj0pu^tU!s4Yqh&@JEHTZ? -zFaKxz7yh+~lMtI_m7xX$5UkSxw0_d=vuR1Z`8v{nTfK-cU7s|fT(RYm=+AFdBm`j> -zS*KuSxBcmAz%v-fRWxP33qb8)C{#%LVH -zrw4V&we9k-pgNxjhe63n!9QOXh8^H&Ge8BGU`zw@#a#uFMUag8U1=nSg$psmH(w~@ -zkm_izS53+eQRw13k))a*7Yf5MJxDaG@>tf@reI)_Bwe^#9I6^VaE7>|b_7aU`b;>M -zn$B@r0G~X~x4^y1J9?S?vZtP4r>mkZ^aW10$)J~_#5o}=Uzq# -z2dutBMcms2q<3q97()GN?8>>G`5`0BoI7@`5H^nbd3@)%XG%D6XM+6hX}7}PN9%$n -zoUfmJs)Fr!>uOJLR62xTip#=Y*K%>az7PQ>AQH3(m~YA>*cQ08UNhJapvs}L4K9h_ -z!zmJ!j`A|3jJ|C+zt$@?Ty|70X*H_2n_o^LfXLCB$)GrlSU&f=3xLw{JY03Dm)>*a -z(on~`pO(N}qd`vav3`I~hO867o1lQkImk_1t1+%Uziqp&nsf=CL8As3#&}FkSxy&!8v+3YGa%|=KBIpvXDqk*MnH^q{=Aq^bj(B+&5BUQ`{c3Nb(~>&G91$^(RJSdvOo?_skfi -zdQ>>zk=`Y*An7xwDhnFe!h(Wl_B1#X6%J|?IHWZ%UNXildvEwCFeFu0b&>=astSSf -zH1wvX8Q@FcvGmih-YPy7`hK4L68alc9BIsNKX~!m4=#K)*dtXh23zf69*4L`($Uh6 -zezaY2YSM!p>ahB@2*iHMN{}~KwESvz2{-6I#*D4uH9x$SjSNg9!V^ltFqCw(vv@sL -zq6XVAj;W3Fn2PGOX%8q*D$W2`n8MIMl2F_2a)H&q0!bK5Dq;4uY6ifgT-pwD@Y|FX -z3uNdVYuQ!KyN}=B`3a~hLFbjK&4reNBPj!A%a0}D`ruY4UI*ydx#XQ7WzYy{B^(v9 -zC+E0aSYDi+nL0scBr*1MR1(>A#B?9~$qfJzDy>is94Ty*$cIHbMO2sO20hD5sng{+ -z$;rB_Vo!8LK%u;_*3(4*ayif(;mss%WufGf)ldDT-0Z1?k_HHxC~|Fx=7@*Go0tHD -zQRNWhtL*MjG=dJdLpp`X!(7^t&XLEhx6`vg;dX039SK@&*uSj7E7Zs6K2GWVn -zmH#^9a -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 -zUOG;IZMDf0CB-Z9>mzSs)B}R9tkD*%U5J -zI*6DzH`7<%Jn0GHRx?PFo988sYT;~BH?LZo)OJpfPP0C-6sW4?a7_D0jg4cyEqYPx -zg#;*xYy5_##WV|aqhaQET$Y(Cq})EQxsQ_8n1*Xe_x^^IgR=4{obe8(;hr|)}&zb -z#QJX`p*h3mP?RK6Y+M0YF|je?K`MpGu%wBOnsi!{vrc|Ov=kI48%?T>r^gr#U0<55 -zY|`q^DV(m0Uvaz5F{lolF8i@R?J9xWw~2}p7UKNgy3%^o*TPKTIjO>kMyEO -zkozhPG8%8nz-TDMYRc@F6dlOCMS*8#Fhq2grfYC7DCd08*)Jx8&fs#-qJK%_yNFRD -zmljd!2*{s=z>3~&RFhaC9(h+IBr{+gk7agVJa*ON3HzhO9DDjfzgHIB1xS!w>TCJj -z7)ECV=H;Z|$`mad#N{*@BeIYr>V6KiOa5{dRz|wqh-x;72NB9Vs7|E8(GaxoPs$01 -zrqHtGP<#p1lOd*y4sTpk8Ei2~DpbQ<44$|EDa<9Ew|urtIqDYyJ-zsiBm%Ig1wR6b -zABycTAR_pY1iwP?<4Mii;P$l9^Y*1jfnYkL#3NT#D{}^|O-0H17E{sRNFeNB;(h#B -zu`;ADsXl#cLyutDV!F&J{3(dOKD*#0$(4QFCcPk2%*zgj -zuAmn1*$$BBPiW5*0s<;TzMU@#ZOm^q+(q)&K(rc$nsaPVL0%(e=e(bm6E733djmEo -z3BjsKw5>9nkV)+cFg9lQXDg(;jsky?`l0i>rr88(Rw#0fD9nzL2k!pvptL1}C6WV%o@>LC~ -z9(1nBtB@==MpCMU@nAx1s$P4@xMCgn986B*ROwr~tS*Elg~F}CQ>dzI6lTV%_ih%& -zBA-?DZ$qw4;`ctplniDFv_VfLm8hgm`BYs6#0lX8uBuVXU3}D{bwC*kFU8x576mP! -zGpBc|qZ(%5iQQVUs_5C%;^vB9wh5f1Fai14sk>}PlJd@r!CBluQji#A6vkB?Q!uqf -zQTs-sN=|LHtRWe`L_=n#&t+sFq5)j&6x^uY+DfgQ=0p@Y1jSP|Di248NG^HRiqYh@ -zDaE->ts#wkkdc&I%WLiCl}f!R5=}%;Qlyyi*33@srZ(reh-bRe&|WaPh&u1w*7ZKo -z$Y~BZoDfi1A+pxW)zG4{c`C$J5tS_H({lBf+6Ws4l*fgZ6aTtLQE?lE1Al5$52I}B -z46=Nh#)$f>)QMdBS_H>UsPiU@Xin|62ddGcD>4$S?6@VJi}fM}a0h@B-I4l`{}oy2 -zHKcyi`>_VKQ$i3>Hxu4agp{N0)Y$8Blkw|B#>SdR4BJ@4&Uid!yA7s1d}OHqrz_Gz -zbB*ZB@oUPF{>upsQSN9wtGMT=LbjEb7>rSK&2S*&014kw^04E1x_2@(t>jWqn -z(!KdQ;8$9Rk`>Rx2)~*zk54fA!*XtuI4J<^LR>H9d{$j`NsbBv%0+rnF7yLaf{^G9 -zu?*3oSGXndlR*F{P6ntZbT(8XXlgQxSxE{wPY|=#DaTnHd%&z_J^)Q7z<%FPE8o=J -z%C@YR$cK4%8&=xAFVK;$_D&7VA -z1Bptg^jx=ia&g?_Z(A5e-Hdlmm?NeKw@xse!{cCYvQ>I`FJ!%Nw#k=%-5+ -zNv*i7e(N@32nGd#iQDq^z69zwRV!-OJ>d4TP3^n`cs1X$W9iZKZ0(#} -zg@h-PVTIc3s?giJCW&ScoZaaN>q^B5238JW8 -zjuud=0;;tmxt$J`3)TQ#U~_h7qq4Igx=EBIquxz^9dYnY)fsx?yn@!C>xli8k0$uZ -zdBcSLCz>c#ah_MeHTEUEwIm-l$UBhgJ!$4L-552Mc9274N?fS&oOv!k+DLA{!(jBbd2hjlx#cAIJUXn3h;+a5L$x^ZA;%LA{!C7uWXGH)$s3D -z*aY$tuX7?5lOoNPO+2Rb{eJVQD5SoO9CVtv9cks!Dt6$e>ov5iAKtiWD#z0(Jl)o! -z+^UH;t5-eTC1Xt|1P`EB8x8lk>v?J1Awa@YcP_!q2bZrhq8YdKPlTm-{kLjsLCxz? -zEdVftW_!FDbvR?aTkts-{s#~c@!R^LP*j>T*)Lu5izh%K%vy>I1 -zA5rkH9+G2+Q0NW0rds}VhAzNxN!Jw8c@RUe!{^wr$qv+HjqnMPpvA84DHr)j!N`Zq -zIlddz1_~ -zSEzSIt^t{ZzPo4VDR_eTQH~~4!KjKnMWGf@$8ex1p#h|6oPy$l8qh6{R^B0&66s-d -zq@5K-N-}yfw5cwq;bQAJJ05ZF#0DT~}d2miVI^+Q38?#pMww-P_awNpO|7A{^g -zM(+@pry7Kb^B6-SD!0-mITeF@D@xHu*i^<+6g1d?==oryJQFY}V~2>S{Idee1&$+A -zeSy3$-k~6oRvJsmxON9s1v{m^JT!d^?fG{zB7$oO*NyE$K@3#M*UmCB3Qi`-YFQA@ -zh_dn$I&$TvB;B%+st*W@e8HH-?nz%}6~y*}wD}-r2y1}vAzK9Xon*gzda}!=I7N($ -zIQ8{WPE^>0!2=RK4<&WxuoPu8?&GjadGdM$iWS5hF5kY`8eGZJ;a2sz%$OXAmG=9N -z4#dPsq_a-`hyWC%Bz0R)x;{x;v^p#OoR*2sTpyg|#ET`xlODz~iId0SP=Os@W;-a; -z2L`R5a`-ocil7~IGoEXo+Cal)xWfrrx=M?MVq9z-YIc*;{JwV`lswU -zGc2nHYC53~%a(3QXK~0qhpP7L4%|X#fmMO(d8$q~$LHvQyZz -zsJ#+zJBO5ZT8@-G+q$OR$RCpJ$B?CYxT2|os2@P>Iy%e3WrX*P69Xn#$OFgBO%W)l -z!Wa{Q&rDkx -z)Xuk^*IC^Q-SXkFHpD-iWs}BwQ>|~4nS{$_t8ceb_hrN8sjY9ul)5^xM7Ry%)|u6? -z838pk#8Ys#LL@~1&iT^Yd~?caQG#T;8&#ID^q!jj?Z;cJ0*m9fAHP~e$6hK{-PHR} -z+nMsGVG5m{?OgI0-_$aha!m{-c&k)nTFxq=c2q$L&FH3!G;@DLV(+|=PTQTD$E{fl -zo7&KDZ0F4seQ(_DwlJlh)8tlm7Tx+B4VSgxo2_qsXA>9xyA1{&1GAnh;x?wL?0Pm5 -z-o_0D1l@Wv#hZJL3~+PFB;(6-o^K?wRK=jUsO-&e#kAbIrq_m18*b4IZYk7l$CAxrf7X!Nx|dn -zf*Ud8nu|E!)=J;}8rEXG6$4XA#vtjHF74RD?tlLl6*h2|R%(a5KS`z4j$03e-w<=a -z3p+YV6R$>CLqxGJqS2w-o`+~|Crv1rv*Qz>$fp$s -zR72Mf^0JKtpfrpUDTws{mZT;x-j1dXst`n0CJru~CSd?c2l3z$<;qZPdSu$vvhyFv -zk8(6UJXeZ8mt;y(=0lmR7`FiDz(^9DR^nyD&BVs^x4R(441ZOL*@(16NOtZR`}+&{ -zF!*sC!s|;e3+GYl=`w|Bc8cq=dv&j7RfzAu(-}4EH5-;rSBo!Vo6EeMzeNO+v=8xu -znu|NY=zUp#xU&5FNKd2nGCshbk9=ic&hV6+Ke{)0WU6XotXf~i{&5Dwp8Ez*Q_kSz -zT4NunB)15kx#Nnurs5D_FS!Z9Xkm)B-34jRg$ouo>`mh3Zi_%LNe+ -zMpR-2yG4usrXdTx+8ncXBEqFY1IxJ#@O5Qy*v1`pE(A)9q=EwNM%Dz_11J#VEWuk~ -zhT>x!t?JT8QcW7i?Lx}2ieTCFCWr@3;v49X0m>pInwnlflpaN=hX|On#&hPxZle|# -zpxzt_D2wq%J~UX9-`ZcE;=!{de4{ULDyC+N{s-u5_P!6K7a;a)lCk*whVlr|aXf+DGpJ;MtQHw+% -zmvQL@k#z4cq{?0v5sF=)NOI0{Y#iQSU3;_T&zsr6*AwXIQEXa*oTFzDZ*1tG -zL*a%29_oW(L -zVu`G1*|qiwS(~R2kZE8I?>~8UWE*$Yc%x_9_?!4BE3!1Hm63(smaKd7OZUXMdNH8Z -zaUCACLIgk;lHeag2c36FH4u^mDq|bO#Fcu19WIER3F@nA*@8ja3>lpckx!2bHIkP& -zq{wFDEidIs$=yXV8`9`TVK@PCjCh5Np(Zgg_O8On*{3ax6ahBkWS|e7Gm8*-eUhP?5D<;N%94<={46XQAR>ZLFhe-DVgV1Q#|j<_FLUnDPoGI+sp;LNH0?8l%+6!zBQL*wpx5q=r)K5Q0$Bk|?l$qE=vmw5ng-u;as>Rh)lxtun -z2^+4{99ncG!weiG$wqDK1%cLwXPBs=WT79a0l8*bMQgAbnd>1XMB;y)Xre?aT87pT8!-@@8Qv;$&oD5R5%`KU}-N@0)h(RUWhF%!eBazAM02US%Pzz-hvpd~zk#|hgCAEsQ5j_4$P;O`*jLI<=;?Uzisn`@>ga%L4|2W=o_qNYeS- -zQVaFVm3^JPOfnY0Bb1-c1cV<-&B?)HO6(38^5^3;M0jFUlc*@4-Du)148RJaYt10G -z4pLS1of)>Xd*uKo3^4jDz5%HgrJBVpK)UvoBzV-DF0Fe-Iv+#=O0TT$IR^9e%Si&# -zySeQfi9m{g{32C!$f#ZtH`Ia<0UvOB`Qj80kqA|()-~du1Ppp*WU>gN+355aOU5Of -zGh$4WluXeQD+7vhW5uz95){~sP{kI62#TJiRYK%*^C$*tK{-s~V1iw{)y21*ox-FI -zSZ!q#Y~`l6wbX8NT~V^8O$;>k!PQ7rbb}ygd6Z_>kZ#IklWWuMIoV8&OQrsuKNOx% -zuQ0}vW@_2iz{@-qwb -zd7_dU(j=ONDKk87CrYM(3gMzrV%Aa-qBQNKVuLdxj8Z{JB|>`DGKu^0W?h9Om~tK- -zt-Ea`SpZHzvA+)@OW5diMNPiDcz%t-$)^v(rzYbUL2Sxte0-tJNsP0}#!7P$fs&=8 -zzwO&IKhGy1=Pi(@XFl%IP}r?=2`)~-P|^SkWM -z@{PVMm+Y0-!xn%Dl=JL{$pCq4f&kIj`BK;l(zuYs&P_)LUme=52^|v=a*sMEz&Si$ -z#b17&P8>GABZX4~>+qkT+QS~1r>P>2EeR}A6FGnpK$cDHWD)28!9WqOoU3NeAES{?dm)W -zY(dqCUj@*#An5{j3N9H1QpO*G?Ozm!2K`cS8U$J_ucBGdMZ&85oyLu#4pmUCsCj_a -zSoIoqo70yE_$L%9D2G!~4M>v|=xags+O4D+*&KDk)Pzccj)cjHtqs}v^W)+ILZJ-j -z+Fek%PKQl<%2FlxUQh@*E>TfV&M;!cV7z;nx`_}IT;vb#h2%Oq_4HV6sBQaDm*68* -zp6;y@3_zFPo{Y-jegkX00dZV=ypeRa;}P{#CDBI8AaapltrANq(<{Jm_Tqa&>KsX3 -z0>_P3pb02Tm5oq2I&MgTg~k9ZkxFg3K2w;CoKlhka&~D(WXbFU@i5Q*WvfI^R6vk) -zKu+v-sy#%TqEo`ZM>;<0;ROW0Zr8!0rK_5T74cBev8&<_ZmZ7S+s)m(UR)$3zjMKr -zdt^<`iOT^vua#)|n%*E+gb@Kopu2h$M#lg|F`gy*>Pq -zkR4L>aUEikG3!!u3S}x(h6t#HQ!@L4bVWO~KW!333v%253#f9jWS+aKue-I&a0Af` -z@;EikQuGr^ZPghMN93)c{mf!UsOXBh7|+v>ghf=r9&oMBlgIsR= -zmfOT-K2?|2U9Q2I&NSzG2 -zrt_c_O<}&H))tMLX-Ru_fRGG-*Okk-RC%)CG!uL(cOzla(F_BROL$6x2B@ld^L|)w -zu3O8_H(kl&YHMVeBQ)f2h=GQa2RY*7Eg8SX&9j1o?p-X5g>#XI9pNz9HOeAA%5Lrf -z=;NN8SZ+D#LXE=6M;9T`tt&>$&cBdF3DH7A>a05?0FZ!XgX~JmhQY`qC>sIjAJPJZ -z%Z13PcDrQDw7u5ZTM$LuPh#YB&rB0>N7<2Q!{S0=yjV83&G>;mn*ke2B*uh1K(K#` -z4NgY|z!%bpofKO!G=Bd6pmlXySQ!bPCHqs`$6}v -zX5Bu}CWl#>cS{a+t@Nzfun=fJ=cH!X7EFCAK%@{Z33zEW&qj-oZPQ5iC(#TsNrvqQ -zfliuXVkIB`UJZp{(2s&VNXZ9VmorBveP5U}2q3osC4T)e?^P3kK3NJMAkh&yn}Vp! -zO0+aY24zEgit02^QhU|S$UCz|N>N(|_7BP@aT;lGz(ph%=2~Kr=aYtZSK4F%4pDV+#xmRvO7oPTIh;Y*7~xC`w|h)TWBjjRC`mY8vZJNCUm8a9U;0T_vb+BB=-=L7?^!-C7+dl;P7xP!SOUUp{GN -zqa=q)*8qkTxd22)eH~~^LjLH1B#01wU`<}WeRH3dz&Rg-(r$MRODo5Ik@g2eIP#R^_35T4_`#&;3)>8uM=BO6SPVx%Jp)O| -zFov8nYz?3{fcIr5CEUM{jtz*?v%c=*V7BD&>*9=nsbG$NSi&`n3T3?>JK -z@>`Dyn-c+{t!6MVBGZD~q2k0(t$LYOQZbrf&j8jyLI;kTbDaVF-3K>2YtCPG2&$vS -zIjE`S{heWSXKC$pGQ=%Fe2GOemIuLA;H&MWZRq?Rdn2Agd?-iH8!L%e3};Z-&JJ{i -zpaPF76>-anft6HVUGJ=TUD({bE^^8+f10ffA|f8ifvUm~U*?id{K3e_7?GxoCPJ$+ -zGLZOm>qLz^;0G5t{Y&BEB_i<;RFPszE?#U-IQHPiH#5Fjwd{oi`NDBDBt{h;h)fs$ -zM?Kq-nkojuO{q65_PVJBmPfUT^$8k^xx$nDmXmvrec~nn(t>S9A9@6jKK_~vJ2B}xl%_*98zGEON+2*%i-fjji&iQoK$WwaW(*E- -zl+S%LZ|~oKu@x&{u!m!mCPPaeLk!F_4deLbd73f5cHiujyoe$Mjq`A_uWPUCKAtv( -zODD;rd;aCI3?9S`8X>NPGJ{n^jzc>ZAD}l{ -z6gqd6m{~W{@~r`TaV1$yV~&0j5gw1ei6i`SR6H>3koN?@3(axeS*Gx+QvNB;C?FZX -zgxgFrvNwpU2v*wLm;Cc=ok*g!;~dj6XPJCT`Yr${sZED2z+CBkxlGok%rdw2Z7BJK -z2Fey4&=!91^9i?v+N03Cv%OT(V-&46R=1{^C$>lUzAdV*S+^}PZGL}0LDs1iJ%{v# -z&<{Cv;Mf@?MRtoF`<9a|La^^@+=x~FV$y9(vzi6Z3(3!Vd*3+YF@$9py2+Ru!qHev -zBo1I~4xr{a1>>6B)azc53<=Hh5^Lc%DS^Xj1$meXI(}gr6yaV7zw=uGUmr^#M4Oc~ -ziXH?;4u@;v4WTXKnwV9?>xq9-ftTgL&E=aS%0C|#d)ToR{`&w_s{mD9e1k?1ghgUi -z3X(cxM!%?{(Bkp%vv5HY1QJ@{ukdHmi@s&sHT?LJ9DNh6Em5}-KI77|RE)SMiiO(z26TqP&POfC?&9+a>Y)0v(s#kieBkUTG% -zl?Ga@cT{SM>da+EdqRYtyn;rPfq4Up3J~)?!K(L?a)3oK;!~U>0Z|M-Ju`3se-_~1 -za;>dLVu5tw=X!+Op3%>^=%C6-eY9Qby?o|Y=7P53l1LLLzlCJR#w~I?q3$P;h4xm) -zst=2nlMnT%!Fxv7H4!E+%>zgG1D#Nf8O&VvYs6tUZ_u>{VywTeUAc~+C?EzKGHSQL -z4g$s@4ussZ8=nO&jSWDeNU%lV$K`rBmB$BGZv|K6B)L!y_b(A-Dil($qjU7i}w~_PD>wrMTQd^hxfPG=>7kwI_#lyohpf?)fpPXbgaBlu*smUQJ4` -zJL;04lfDT#3W8D0wvkIO6u5|L;>Z&;g%=^8)Eh}w3%TNtl*Cen(%4Dt(p(4@vx(yE -zImKZXqnC2EB4E($V8Re?Wy$J5hi?vEZxs~1Nf-g($8Vr`)Iw(gFsRl&QfxS^H&Zvb -zMHlmo=LhH<0m*3*X`|6OS-Rqam~D -zoRcnl7C8NAflsX}#7@tV@52V1H-1~66)-qtY!2~lfUHx90u}+Wt&lq%;wj}CPD|!` -zy>J23(XF~gS|{du*|zmwbi#`^dt+zs=VfDK<~;j;xNS2FC3MCj+x6MTwy2gP__B41 -zPUEu78Ml?xq85d{A=o1wm$dH<%(BQduwsQTNGB03ONRm-JWhuuNozN9baGA_5XCOk -z_R=D~0>ETm5K&OBWyN+eaIGK;22WxgZy}jJ=Z>_{VCa~}F)OVo%Wbl=t(CvAjJYD+ -zY~)Yh)W2;k#}Bq~Y_OK2VmaK3r+sZ33KUJfCPoqUMvUy{lV)=)J+4q=$GR2*_29?y -zKsh?En#y&%O`#ZPSF@9DyI9A!9PZu24f3?0Hc$GAeh>QZxTWv^_zo=D{XE^i5fcG1 -zDiqKnku8_~X6${U-&+4$t*WfvncLB?UZWw-f-eMxEJ*3IeLn(C7_EWABp= -z0IMbOFCjD-dv!Jf1D@pOT+WSeZO59i&uA|pS45y%5d}e7nxBh^t?4wdQ2VX`MR~S6 -z(;JUE&T{l35~BK#Z+mI^2L+b?76PlkY$Eh*IV=gNaif5yi5USuJOUC(;sC3aU|5d> -zrF1dEBY3_uQE47pdWljJUF(`gq%lXp#gYWd0x3}dM=Y9qPV});V#Wvz+>iXl4c3BD -zj-ihdLhsar;tF|l -z1V9JP$7w7AqK-?0<4Ihmtp}Ipn-+iPps}ddMXhb}8K~_v2}gCmtDuL14#Ufg7A>H) -zGh8eZHBR3`EGAN9c>GJHs)c{F-0n3O`Hoekhm7Ijct4Q*)}$~prckW758vr?@ubnWIUW`XOnUtJL -zRR0F3!eE}%WK`dwJre|A4XJ+?zvR8Z0D(>z#Lu>(xI0>Mq>#VItv^FK-!bEOGobJ9uM)Qag7tf -zP~g_ejwF^xVw*CY325xg&9I(-$Kui^(ZmWnU#5kM{>QadK*LeWHBh-H -z0E8U~-)$*J1llUxG;r{f^1)o9b|OzdqI?PP_GZD)nndzwRS=(yI+50J=Cs6_&*oH69i)Mc%jGFHffhHvT9L!ea2sv3|H8W7SM22x@sXn`xRL#O95kMQb -zPBT-)T4;9+@*_gx@ZAu7aZ4={!g5`sJ<#5BWz~pSE1YBEvax?CR7YqR(Y#t*W5v(` -zt$G2Bf*{3U{MKvn@O~x5)7F)41P=y(sp^cgC)Nl_!_Z?%))x6IM5dz%`KlGKlgy;E -z(!e8g*>Y{hsvXbJN4sYViC{BaqJiEZr^P?D!sYTMBSwhHfXGRVzo36AamcqhYF1Uo -zWrRk3#Q>-7C|@I~aWDfdHZioR6W^Z(t?wKEY6^i5nU=Qvs8JrQyd2ero~n7TnL>#a -z32GMdCxC8Clc_Q&+NmaFBODD;X=w)FX{p2wbg0%|YT(hpW;l!HR$7exIco;tg^fh4 -zfwd0WAT0zDYeCe0UEOU;Y340&>cg(G3Auq7C{T=YjhKlakOLjEEjUL3j=em#O8zAqz6(8>2Oy)WBB5GVz6Owv*lctjpW!329(&@59{h=x -z_Cq1))m@3l*c@2p)m>;LM5Nt6&@>B~3ciO&VO1IcoKb>}p)l_Q9o1xbxJq=<5oh;! -zxXVY<7XcYVybBcib|HO;)Yn0f>99*UQ_op(D8;Ep5itcbc1$)$c5=F31SurQv8U -zL^}1aG)##mafwfOw^S2JDXj6i)s*zBz1##_Z?=Bu3Kmc%S&AY~St)tT4lhZ+*`9yg -zzh&X%d<1YqU=8J#_5d3^-S?mgvD2d%maice0>osmwImiTP}8?b>Nhxe$L9UVl@cF7 -z(?d2e(*=tW1_@LItkmt&CSG5?6=Di@V&(cL3T?ljpJ*2bPWl69cAyneX8<*6(&fhC -z$vp)U(m)sk29!Xen2wx23x7-4eU29O_q@1x%%1UVXK6A9(1=_Y9A_fhi>{mWN*V}k -z{DZp;1x!p^|#T6*;I;C`;O`w5Vhnf<;n9y9(qu{DXUP{uv*QPII7Chd(%Y9!T+_b+GSBBq;QYY;Z7(RK -z7!C_WP4Y+b9A*j{{j7Mu{u`YhZ@U}t?a*PwuYG_2;EM$wGbwPyPz&eoml<|Fpo&DB -zPQa}KC^Raog-b_(6HZVDl=1@t4k^lVXVGswG7<#)@v$?_6hb-7|MaAPeCO*^PHw%( -zNC>koh>^-Od^K;ERraE5*Sl$#!7J-N-(`rT^7xI9Rcstxjhs)}TiBk_uU -zsZk{_O?qB=Tf4dO8*555l(}ZZc@+^#CyFNQ1V3Hcw2OO5K(zJc5jb*_kZp-{F(XlX -z;4F7EM}7TGSvojoNV4tHlyXc0im_Lhcf9zVK@f?9Xrc~>d_SjFVFF7mGfS@xGuQ=9LB1Tivw;UotLTQ@pBaq+Y -z_u@xKfSv4EP?|{3>JlavQ>@dCIa*pt9Y&Tfuh)6ik(P&J2+W8IdpIOABbHAiUBg!b -z7HlU-L)A{$MoGYd-B{$Z_gZ#%i}WOwIIEP1!0$p9Y!nwlUf+!8oxac!z#+VGy(@Je -zs+Nmd#SOugjdxaRZ#Atwoe=+!_}bMcX;Ey~uaAQySob-xVahH6d_oX_b??>{QPbietSOR67IU6N|npE=M;&7tY-vWC+k -zM@n6Z4+;$<7zdju^Ylak39!~m}ocH$oNh=oJuZAklN1U -zIqkWHlF8qHUSJl}EltsAu1lA?M?}14b7kscud~Iy%@}?sosQS7PN^3J5&%gcV1n7) -zrUAq8z?yDTz-mAPAbA4xrdWK*SVEs}}L}o-SGF*);gV{*XqxD!VAMm-5)Z -zBaqKYcGFgTUY4VkecRK}M8HuR>D27^3TD1YoUee6QB3yK!Y6$hp^PGu^BGu31oe@H -zo~;x7Gd9u61E_i_p0ERUs2ph#kv}$y(LsS0(b8575^$>CT5YZ4pCB$3QH>+#<*DPs -zWVbg|=)Hb5$QR$?gXDH#e8wL*nNAe{%1lO3dVdgpgOyBnU-)U05)R)(oDg_S26~J~1 -zycx%DXF>*<-h=E;dR?#KH{aK^!)%J?lp=|eEUJ`>UjwW$0H91Nf6l_8;s%=zSL2_$x=B%edALPPq@F_u1u*)ZH- -z3c9&(Rap4Jp>?ii8%}mGge8}HU~Wf;2I9{FRk^T`L>!Urwpf1^zufD{78vMAC8k}; -zUhWI+P#!>RV0clJFfpgN=Ma~~#YF%h%EtGFhci>kped_bOUrd=QmXECagS}slqOAO -zw=gtlN?k`%d}vq3+)T4`v&;1z&Ku`h7eimfxl5!ufO_YgaA1Bpmh1^lxL>b!aJ#;#k<+-+(*CCXV%by{ps9D*++H7;9g -zoFwVbB=?C#qc^pw5gFmYPwht8;>;;(MXC19DhL^gTG?>)?fCc*cWe^A0Kz>_brH(O -zkG(7PcJA)EtV;en(RaD2A5W_pAn?AQjFFzbu3Z{VEp65~GI$@(fS}en&j6Je&w0_U -z2p6BVu_2WxMQ|x+M|6~atxm5Ipg&5<>@vZ`?Ls0kYjDN4$v&F!vYq5#|sSVZnL -z^AOQNW-a$(o}J?Zb=I!X23Vyym=3-{)Cc$oe<}jnQNGhNUMc`!uzKIH&L0E_E>*6b -zsmDauXRHc|&M@n}QZI72vbTdDwv9i;hN5;hNoPmPc@gw`+8YJ%KpqKXa~*HPcym+5 -zGt~~Ap3A0Wf{)F7F9-Mr&Yv)EyMB7MA!?EM>;+|X@Xn7MVNK_(@RiY*wW1!x47WBz -z6z2``{3A#{Pz8@72qc&txr`?*?1ieHd{BE=##z3Q@Q)^z_~Qlj@84I{fBz&kxVp-Q -z%}AQW_8{gG0}u4l+2}=-e3&z$^kc;vV;U-E0OpNf*+Z;42u0^R>RrAJ#S`o$cPw>W^DKfJmUEt5( -zckcHH3R?m&j=jjLn2~ZuYx}Lfq^{4j?Ywap`I%^dWuaX>0G1cwTgXpWB3%WSz{OI* -zIt$rDbcDSog`lK+%dK@-Ml;9aCT3-Iq@kUf`rK8eVgA+=FL?klG0g>aD*;@2l2B-= -z;Z|?w?&ch+-REPi-+tMj-LIzLmm8Ac^J7ht`|Kmn^4Q;2H7{yhnSqXDIgZ1~&mhHg -zxHcY(Z`{_}R&6*Wq$)o2ml%3dB+-PW>$W9`vOLlhgCwJD5#$wV=<9V_Zi{Aa7?qok2+ukC -zaZ36YZ#^%)q}#S1{(UR!YHv3qz>ax$rk+k@pe3>_kZhB}v`IC4o_pi!de&;;IQMy; -zZKrQ4u=ukyu^83hXWkI&+%=)OiK?yhhRmz2cE~nk7PQ&ABgtSMPHWP%izq)zVs4rh^VG0KON;2 -zMGGJ(Znqvn5gT)QXM7s2P?dKYU@;_Ndi(MBy%2iOe5Zi$vio<7w)+Vp*{6n0*K0C~V|c(sj= -z?V&`EIWNf`^;OS~0)Zr_DU{j|mu;4F16voUX8?YLh;tzlNho(@^E0W`t}g3gjTOJ; -zqjV6kXT+<5yaW+=N~DZq2jC1r>+Qzp%CU?uLGcUXeZ3a&@el$?z#HFalMZ~-Kq{w* -z#a?o9g=pDGo-&X{$yT*u|+?GkyZw4+b*J8@vq^WchN-8q-k?SD|>_A4#kFvF=oi_@IRp5=H -zFFJ8$lM(&B(0vwTYmdUEh?A1%qCpU_2Iv7Vp!=RxA1;5oi7wINJCXLFI=2YMMKqKNLIn;!-FDE*2OuLx!U=|8BA3crNU`!acN)M_c -zqPT9dilP1&r*ifk?XzQ0NC|X`@x!P+Y8{QZW6W6sXB(Mcp535C=vvY1>F~n{o~)Xt -zR#!+{6tWCxJ}3W+r3mFn-G&*3Y0fWlFjCc;M>kh1^8(Lxf$r|5fru!LY6pO4@I|l( -zC~5u&V?nkkY5MghiNIx|-w00#FaYW^xj@2&*0*l1#Bh0AJ(61$s+Yh@j{+PVaue} -z!?LB*qumA3>Ek$fy`&LVVetqNLbOb7F}J?idR|FW?A@)TLB5S<;v;QJ-$MKNi&oje -zm2O=@-w6y=C$`t^zO5_Z=S~WoC^Zz9h3!3y*YFXOz$e0)7bL~CAtT7KDwMN|_!3ML -zQq83i0#Lcc2G!_BRI&|?P=v5|!llJS;QhVhH}|V1O}!bFD$lLzHx;ZK7CxUsPIsfJ -zXl{FZaD|NHr>R2Jt|#MPgl3yt#ca>?HUkkZztZm8|me< -z;>t10)|$GSl;Fd6*O;ZIZNrpg!W7s0tvKbRl}-BeXKzZ?w}OzdIk^o~ZBh|=Y*w{c -z_7ASby0rqOV9gQzXORC|&TZRN#dhoYiaAvNra0MQt@?S6sho>jdj@f>Kmrr#6Kf@F -z@T?jVvIrMl>otU%>KWE$ZIw=`;Bp#ko0e_T#d>3}!D>3!5kI~&!QR@`b7hVdr$9wQ -z%ejcxzA_#CU)PCA3$>SZ(e5~JskGRg=ki;p!kXByWnjHE3+?YS -z2Xws+n=XJOM9)7px78;%P6MKi&Krqi+$KcG9@pe_2#(fSQ{gkf`)RgY(`ZItFZ8hO -zc7_J5>84^I7JkRMXkAmLST>tYj>##=!sF|5o41%u&sQv|Gxf;&?z+~xqhpo_ZynT) -z7$htC>$(~vQn%24YR=d8wMC45_kal6{QShr6Sn*J{%2F4a>VxY2M5P(fA7D>`FpVU -z@4x5nz5g}0zg0i~sk-;_uj+ok-`nne{&VmC&eQk%?N8mkH}%h9{(TR{Bd}v5v4YfH -zg{Y`2)cb~Xl?qVFnoArI(apnVIsb4|G9hdOfE}GI+#dT$At%vVc@>JvLtPXP_QM`M -zTQMmo)10m3x7)1Cktwr1m%&yHG?gZuF@jrhn~HK-#@lIh-%35$gG+7Y-8ZJ$0*94u -zkdkQ0*L3=}9G$so1jRWLs-Vm4NR!+LFT7}xhVr&oPCpLXomf~pp^YGr!h&k7$7t8%#A;2_%NCPE+09)?t}X?zOco -zL?##FxwST5IY18$@~W#j01Ro^Y$yaEd6puqLkqLxskaYb%Rkb^<1mt>@lH~D6ZRq3#G -z9aBg(5B1dZIvIL5*tWSBlVJnGHr!fcnu$fB%{9Qhm@Ex2tE5CVV;D&`7S_QHAyB6V -zvAGfE8d5uh2qM}t1TV^7iPV720pujd{_@?y(0UBK_DNpLB}4?lXLO%ZOOmSe6Z9vj -zNQAtA0)UtUqRQo9l~SBjwTaNihJCt|^qiJai%H|9TZEwPnuOJ5;~T&9`wG -zhlxWtwn>H|ZPV;Wx(XP(Wqsd6z#h50QmWSQ$;N( -zuW`D!kcd%s$cmYGo07;l0$-qIGwhaV-kk+>onje!qe&cCPT7(Koud|v5}fO_&4UoW -z?y5j>jpI%3s!~ay7u{7HUCS5KaHe_V_Fd8OY#4dzUednhn4vpuS6x-!-0${6WT6v9 -zm6U&k3CtbbL2M^R1g6e+rbXyNPOwsd0jk -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 -zaVND9@+)bm;I;bjA_sZ)De@P -z!%n!Pd8F|&$tpm>hR|z0O`jh{l+r=B9H!?Ua6n?IT7~WDvmagI?Lb5lT{N4h!1XjW -z#SpXg^@$4D3)<@JZn*R~TBX&esV^L=rnXOOiIzXAlm-&&qN6dZpSqDGOuOlMnHLE@ -zc(()~Vm-fe@Fm{G&~_ue(;&Ox@;LeoMK6sky{K{SaxmYo_14XN!2QJ^OU0)oOfuoJ60x#sel&5DnnB#vCZ{ -zAODAga`S(i>VI7?2pmFnrGI+ygL+v~JC*BRT{}di%t?36UX)?bfkf^j=}7bwd)oqv -z3JuR=@1}MGj-PuzHcAI@h!7sJc-Ov3Z3l`w6McuuiKjp2q$i;Kp^oHs)RaE^juhYP -zq*o|y*EG&m5x9IiqKoKV#*Q{JprvwhG563C0CZ~(pEKpt2a%#`*xt|7T4&y$LAsyb -z19hjbbAx0S_!C3VAYj~ClUP89!Dhy%2boFr>PFVHPb4VNnLlRWLR6GQT>kXTCiF1Dt`dne@7Pq_GXk-zc)C2cqbYILxP=%~15~t8 -z*QPwfRn99{C(Kd@wbq4CIUlu3`Mg(%*m#<)8p)l+sp)(%2V$k@9IF$m=DBMwPC-6g -zMYP(i8P?2|Wt!AyNu#!@uD20@>Yua-8o;;inUp+$`e47y3G>gdf>0zlRi4*G?S1uG -zV6A;BNrDO_yiBNjMw(FUMfWz?-*(;uh`=YdgTNYV -zkBGzP`!bp!N>`1M#&s-Wc^z5A-Lx58`jeQ@pnBRXM%TD^*IrkCwAoAs?NGQ4!ZJOmt^=M1KS3oMS -zBiN$S^Yi`z(Z{8EK~0~2j<^yRvAnn-HA>a)3>?iHas!$*4Ziml<}F@w2n^HCf7NBq9?!x(p@IU)NlUtdDN0XiFKWGnm#T5 -zHiY-}GwDhCY)LXDc4(fra+WCIsK1hl(b_H7UVoyGwV@&OTj8F03o=cKI|GLRZtPFJ -za8kcROI+x%vAlX_$&6VH -z>x)N9{-+CcmJ{9@`^mh}DK(F(4At^XH&(rp{7CPMiz%SUK6U6t+X59gJl8yby2P3B -z4M~`v%u?vd&T#ul$?s{gm#Al}BkDZGrlWM9q4LgINb6-8*WO600r+4ffNr9x2AvQ*aVW2&B3Ja()qj$q>F -zKBVi@W=~V4&+2!g+dfXiA3xUTuCZT~@7?sXdhWR;Qz6v$8)64#$BQtsvvZg}uIH>B -z|3AX6r0I3txbENY@WOs|HE@t9tz4>8!Zx2j&P$TB`l8kAYKcWC+fq -z34h`@sFv|`HBoSxSpKE=_7S~jCv7#TcrA@prAE^FE+5TSQ0WwD$KvfIaW9PVO(}Ss -zWIRSG$l=AJ7D0E+@8Wz%M%-M3uA7?xHQGBgk9eH=saJKga>s6MFpyQeZlq(%!X~N| -zk-`G0yAxm*oB0|T!e+I+!b7SB8)PSC5i89(UQ5s>@c1#oq7tSIZVMt}o|%TDM!rF? -z)fL#x2tkALqx#pQZMV4|F_l)=kQsuc%JGO_hKB0ZBkn3f=asW?04qS$zbC@#c!(p7 -z`)h7sTa3O90rlm`M4Han;yaNLVt4GjwPQGQvfOP$U`0nRA~oH}A+SIS6w*WpNM-y~ -z9LfrbH<{?*Uh1{ld+R_;mA4TiHUl_TnqNXH6%!{tY13Kdb;zJgh-@|P_F7^MW -ztVXP=4yKg3)us@91R9dQtvZ4meV+H8Z6c -z#_ph1$f|nyel7}3PL09!Ne@D_nBaaP!tg=4ATn=pJrOjKAw8v|CMs%5SRQY<8w@|Do6}z+hpPAJ7q#&i&k(`hLKqIV-(K`f)Jbc -z3?aT+um#1<&&mw3xC%ej)iH|~A03=NVs=tS2iNJ38NYhv#}|Mkvt;Ji-dbgZ2sflY -z?A~zMa_wj3%xpzCdtv;rJ_-A{_^VVt2Hjd(h*L0)T{C^fO@)PO8`#j+jYCAhSZjI- -zZPb+?_k&5OHMkAN;)PHiQM}a$@7wi0_zdz=DpqTf?z<#9Inc0i(2gk7eQpNTtvV1- -z^SV}aSm^()&C8L98NC4mXxF~|l -zE|gc@yd>!L!G9Jd+!V4cN0a#sRbJzXiTQe~TrB}}uHs4`xa+{)@As!tU~q#>7%;|f -zGMZOxU^R)=X|N$+A!r5+a!q(vnlgA|0^aYac9uWFK#)Z_QfTR!5M#bYYa32je^-E^ -zt+4?kiS$(FcD-N{OljVVEg5_jp~{of8tr^OJZ8=cE>}9$y#yV)lXm$I$wrGe?P*31`+6N{w??ByD!0xE -z5LE~+@N^P4x*KB7j*d>#RK2-rtUF}tYSKuCjRMxSO0o2lDK_I;6}On3sgkMC6I=nXCwZt>Oo;S0F{**NYbZBA+=U74j3ywV4 -zxpHO1+k_mC*Kywma|y8WAV&S2owm;r(|zN^xruDMF*dVJWycg{E^fPhO1^NBZ*m(8 -z_9jhIbD(S-yF20Uv+8ag8P@EbN_5stC&J45x=KGNGk2{>0CvJ8ki+%9(@O5U{3|-i -zeP6YWJ($fFBFUW;=_DiMcd<*RFA{8K$wAFN_#?O0SkY}YG3h?X1&Issc*7X{w>lM# -ztIuFd(c~$D>GaV5cPQ(2z2MGTQ_&R5+BkEjBCyP)$zTv>-%Tt;h(+d*8Y*Ff4zMXIA7Wy*Dr#nw-Z47 -z^$EZJI6H^dM{o|-*2`aZ1qgriZaelkO -z5O)vpwOK)y!nk|K=%Igw<#Ti`$^^G@#SSue$gbBhFYnr?J{b{?1PU)Ia0FJe&kuscL(3aXxljBkRsTg-} -zeiz&&A)HiS%Foi%iCGIs!2nQnTw_>!qK#Pqnxhf-CKF`*+PLdB*q+}hW6wKb2Ls5l -zLbGGPQ`lGIs?dh$?pW#w>za_^3ot^648q43T=SFCYU{(-Eh4FW0~%!t8m+Ze(=iIa -z2EMYrs*z>&m@<*AMNPHU#bdm6V$t2zll0~1tjP6w69Sy%jxw7i@ii& -z3NfBI?i5%mywl>?2b&$M+`R8Kxba|zdjNqz9Jt9YL+ru%pS9qGBPj;Dow<>S}o8LQ*;aEiKRaAOsK6Hk&RgU1*b*IJSqhq -zblQscu#OP*;p_YDab>G=>+I>-7|S-Z1K0F004hK_4!ZKV>TyqQNg3EnRdQ%s6e7}3 -zZ&=|A!_iN$a1{M_(?`iz2LZkI6OLI`RmqB+y^Nv@=N{br+x2-5&Ym!kKF6M@s`1udDEi?b6`@Y4-sex<(U4J&MwUQ*~YP=NU -zf(h2R-BSqNjG+%E%FmFi7vn|mdd%!g#~$K@j9cuqZE2tLI?acLdjox9l|mZXkttEG -z9;}52Xt!Gy1am<|lkZpLUo?KR=*|$p;Op0HtDyPkP$jXhluv8^;W+~xi%U>Wr6?K| -zm*^e13oPlJxuo#& -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 -zrMqgTD>c1u$D()zFw?QK2=+X|&9QQO5y?c;z -zqz_b5V#mKE2>Mw5Y2nF*U0Q7vBKZ6Bf9vW$s`Tscc%A&azxls#|633LY*=6n&DA9c -zdtQ{Y6Tcobx&0xsbbvWpjaS{W$>}3h>A-0TjvNRJ*^2G3L%ndb`34FyViJs2GQ%yk -z^;?A@m88HCn+!lY6Sf_?a^oZr=eI9EGz|R@re9~q_m0efgyUUHJ>(m3i*Hb_WQ{$z -zNpNd?*%|>;4dS0PEdeIKg!TN2zlRPn^lPuxDLQ|8>Q&LUdTwY1#^Wx94}!23loK>S -z7KI+l*@(EuYQu&MtNgbLl-oA9G -zQxgL4qzh47H8PRSIJx!(Us3t~+1r$+Y2a-+xu?E@@SmS|-x9Mo -zm}GSKr_1*t1fr4*1S9=_m8aF3Xv?mU=~_2-lToZ}fD?^k$n?NN2b^weAX!&w`tyb2 -z7F{3?@YPDBm~HXrw}z(Wb3?DC+vEYS?j-rqi#11-rO}bH<zfQVP*Q?MI(e5;%WAvZ?DiY$VG5#s(mw;v%-E}oc?Oa+ -zJD%d?yx(lo?ZM38Yje$qw|h9VRhkXL@Bkfec86maox&`h9@DeZCjD@?pi93>*1~46 -zusP2uBF7TATfZ+0+;>BujWsE+c&eLs81i%LFp-B83RrrMz*iKCVM1O$D49;1`)Z#; -z?FzvFOX2){3(eMuW7A?LYPX$BU9WSYWhHQ3mh`K-y-Uzxlo!6SVA?>8damwIfYdjlR&s-CM-OOeHEZAFZC#hJi-QwZ2KWxM!7z>^66y;7B0S+0jB#s_6oUG$ul -zGU%I?O>;iI)z?2bziovt0h(*64CSUP3KtLFn;hd%satu4TiNlZ3H62=%1((_U+(&f -zvqKZD%xKn)>>qT(Bul!hMXVmPqM(b-Uf`F2-HoLR+zCT(3_UbcEZdhUR06C8iwj8B -z76*fI;x%s6rYD}DHNvKAd0k}FBg5CXrcx8cohZ|V4FXKOjlqh2H9+Qj=rK4g2vq0{ -zcFj2m6PxOpEMzcFB;r-rv$ds>(^!_E{j;S(Z~Zj<2+w?EY_d-VO-JwD6&RMROoSrR -z{z6*gS%87@0{RPn`9shM#C&cof*Mb+ok3Jf2ONF9ih~)tHt@7I^CqRR!^NzV0qu{66tG`KETN2xx -z>(pH5eD~X1U@9F4oqB&E>>PqMNM6DjM~ztr5;DjLiU^nI#g89d_8ZrLV-sOcQpQB_3i*r~jC3>z70)=e(eBs>4DWvW -zHJCNM?=X-K!;hOe3_D4lu&EN{+&gN1i>l{J*rz7)nM#?0+%kWg%KTNfUfaI}7hx|I -z{B1Y_G*RnYgg$8jxXy^h1eR0TVMlsByYDLgB*+F#9E@|$2aT|ll(CC~I-gmBXu#Z@ -zlc3gJ5kfwO)R|?1WQnO(<5O_%V?MlG=r5%BCwipiG1V!X(Uq{w5Kba!oL -z-IeyX1dO3X<<(Aop3;ag+W!@f0CWy!lIAi^`oqd77{GUZ-~=?rhBX9gWJ+ph?uWNA -zWm54>f`tLb&yx8X%-`v{>E~;ruc@Tv@;YVXT!f``*Pv2C$6CsGkAy|TYYMysipK>b -zAcYjHV|-66l&L{gfW3jzjsX7dJ98s$7h}^r8w{7D9LVd7dMes67T@*ha>^R)UksJg -zl88nXsCM^gOqn%SC7A@JgIh=>(KB)ylbv?uvM3XUqcp0g-qb?f%){rMh=Zl#)Y)JZ -z!e)oLF>#16B;-q7qh*{kQf5(v#PDPIemE(#bK&Oc8VG8-hAEX^&JySssRh7 -zm>vl{**vkq%~d7_q{XtE8k7nKH9boZD2ljaFCKYH6M@@&MooL=)PLWs&TRF-K&pS* -zSSw$-2~F^rt*yV1E&Aqv824T)vShskbmiFrZhi52lTsFxW)2AZCvO -z_kbOODRqr%LQiUsc9_5e6a36#H%6Y?U6XWrMVWt%#K=u#`J42Z%3z#7>8#9ZJ@!`2 -zMx*!(*Ci>$OK2gWBEQT5O~A;W{QEK}TgW2#JHqd_pnoP(mTT316hVqcF&~^vLMiR4 -zNjBM`()t=ZGWfkPCkNMZpY9XQz^$g7ND-hV679 -z1GZ!3Zu2H@Q<7n*eSHwU2KKZ~Rfo`~F&MY@So%dM;}krQpBE@v1s*0Bh&kbo0^p5p -zc~UoEqy?;y-8^O!lpKNb+zX+YAlMKfHoQjI50nQu;rfolFgJBW7k5DCi0|^Gor&?Z -zMrB(TQDj5Wt`UlMHW+?`Bd?5H!I!SMtZWa_w$kOJhtdG@vsuTF=@PcibV;L`OQ6F~ -z1vy;;3A#%?)e>0PyQb3YCw&sM8uwDDc#twd2Eb_O!u;H5*Bx~ZFcBr5po8{-S+XUC -zqd!4L&cIHx2PW9{hVQ){OFU79A}$7xZW6j}T0PQ7pf?#gz%LrvS<+9wueuOeLP;My -zXGLaZ%@@=EMZK9yctQnBg?L;QFKGf=4y{Hc<{;9utl(f+>0B|BTIC6YVHR`J@;Vjk -z+$t%rdK1T6s-^zKFt#2w8iue_-&LnD4KS~Bl -zRw$y=3Q5k7bxsF+ttIwigfI#Yy6T0_ZJ%|_S*OSMdS^MlHITij*=YGX>4Lg76D4Y^ -z<{^eXt`)sC)sz-u{!_hh-SGLE#DPy^G({~JB{wiLCm(7Tv*l~aVI!+g+U6PXwVG+b -zmIu)&R`tq8l=Jv -z<+FTtwMo3ax=TYIUE_564~qXA3>*C%%r9k0v25(cKIm=}H^en^ruKA=vx5b@tx5l1 -z$rWF9wOsP2zT>C&4ha&Cw$53&_YU+hT-WLKGE32Ya^}<$j2XOns9i><@d&m|C@LRSVkdd+FzK@BqGgN|yO^uk&{E{~#;zjef -zs`k4+>D0gVjXiUrooYxg{ZUu4!bPY_{cNNH8 -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 -zD%;madlkI(oI0k!ZbhqWcfll2*4G0@BUM -zJr-;N-?fvj36`5Ki%)40HxY5y>b$$I4Z07igbnhZB3-Z~CPAx-h0n)LFsy%Zj!ga(jvYihwji|91rIy-lhA*4Nz7`aBu}I8X9eAqXkEk -zBlO)RVIUm5_a18eSjX1*)5%S#wW+JI2|I3L@Qv -zan$G-K(9(g{xqY8LNtoD7}Zyztu%K3Ah@kVNC>om_~>fOBZQ-GpWjK(RV$cf9yy!P -z=A6Xp>2a4YAEWFzf7ozD#{tbK2(sXv58s#H{(JMcZ-3wh;(bWaFfE*3FK+csO2RN( -z@&v<-h9birb7|V35ruD|pL5nXJdl81b5er>Qd|yk#r*(k`p= -zW&d(Hf<$}nq)sHLk!o*9!%zLTrvqBv+-ef<88XWJ!h*V(w{d0O2$>o$Ae|ru^g^I| -z*o?L#7BNrf3+!1mOi`Fhft}%?56+o_(LmuD$Z;l!u>>al5eQ(VWJ%r&V9OGQ4EDif -z8&y@mip&Z+xdli)aa|gUh!tf;pO8j`Shb~uJ|fQq+nl>I;5PX6fwGyhn}aGs8%6R{ -zmw+XrJZQcVS1RZEU#=c>j}pXgM7}t|ZkUubUbU?c{s!*XiFg8~Q>#&wp6~-s_j6vg -zL`2f9iI|?YAZR;tmB=D3Rg652;VwKsEtcl}H;up$7COlfd@3%wo!klrLHmhofyn2( -zg9X>w>K#J)hK~LbrS+7u?}XSrIw?gORz#Exl54epu~!{(uGBo&+aJ$yS?~ApDLPV1 -z#3Y!&F?X_$Ds{4??F-FPSv$EaxvrJp(8rRq>;R=Te%L_u>p0fQ -zceEG0q0}wOk(pft2{5!Y-UAVdZT=n5eWgezG|~KkHa*f#kZp(Zrx1?{OoAt9VZnzT -z(EG_ODqyU*_MaBdYm>Zl@9#Jsyp=a>#t}Sb;|HVPaLd)|6^hjpErMXW$yk3T$l4;^ -zly%#Z)tnW?Ofp4wyIFNqt`cFnorvQN)s_{eD6?ZUkW^+do3Fju082o$zrw>MJ^>1j -z(>UGbIJk$FfB2lJ$Lv$I9%xd+Q|dHfVlz%kqg&vCtNi6Ue{(?U|^P -zZFR=?(FS!sK+np4K~Km)Yzb7FYBx!Ed!=hRE`)M9g`j@U;&ACNg6U2-moh&0$0oq! -zW!^z%-rP$YFDkRW_nt%QDdkX+oM8rad;%_=`SLm1i{(P6mC8j{owsgD -zy-QC-cSD&NDuS02O90taTY9?T;enD)driLEXN{6a-?Z$wkwjtkcQ}>waO%@$kpn&dF_;CxVjad0I&WaLCCETt251SOU$qj6 -zCoX^AmVQ;%7fSzwSxrIMr<}r}=`B}k;2>bqRCRU~tC$4#0Y%f>$2+Nt^Gi@i_MRe2 -zd9m!HQ&YUeNxvagD$mcRwwVG=@v3mKisz53=wb2ru!@6+^)h%|KP(ojnIFx=U@@Pq -zmk+GU80DHIAK)x?Ws(clzl>| -zR`_x~om1+!lj4&@BUX$X6HZ#QxOuj&hi@IK&d`0|PUn^ -z2$hyo)8%5li6h%uZh`Z=EI!`QNy}~f@Zg-4rB&7lGXSmQ+-81~aHtYLqp)1LBWdtE -zE*B1W1O`Z7J(B8*FfhsZZY=i|NZEvAeNAfP`%M|KUY`vMEuJPLRt^%ODmzKB_@reZ -zEf$pqb7SemSjMrxVZh7Qw!^*%BvQ9|DKIfO$S^P=*CZ8(na;h`O6rc03;hfZh~kE6 -z;nBVe-6pdYHlpBl;U7DEn94Dpl&3mO(6VAGF$!tRmJCPf@Q`Z>3KLcKllCNSRGJ~( -zS2Pt&a9X(KmR`DK(2_AOkX6q$l{cENUK@3e>SC+$RGqCjgwV(UjnmDK4i@8ZEYi>{ -zk%WAG8 -z*`7Xj-EEKM*}h_e0g@n#Dw3dh)S=b>_suU809mD@duAW@!B*iQ2m;8=FB6G`J>xr9 -z=}7~HbIwp=obvJ3T2}LM|6q2t+8!c1=`_#SdZn>s0CGC7f?GKfAd*d)^3d|soX$CQ -zNA$jX(Xf-w^iR(}#5AERWqksW_Txdzb39rF5Vv+#Xs)pnWZDFgbC7Q6&PDCl -zdt)c{XzdcbMl54n;LR%cxgN@X&9NzMFi;#?p*KjoMc&V5vzU#L7!_6*!ocPh2HY~k -z2adr-j*JOlbk^NR9=oOS^5d|+^*}i0A!Fu#T9`C$cPBe=9z9t>f{xsdR6i9})G-m98K(W_fU$Iob=BYe!Cs7Q_SFl&vnGeo -zUi>4EP6+v_$L0?`5(Laudl>#=9y@|a((|X;??uwF@VxY5^pZ3P`y=n}y-D=`Suj5D -z;1g%-Uo6zx8fw4DO~a8prep6m=lHa{3&c0IK4sDJpK|{|7yx%n9}T>q244L8)8}Rh -z(~fn&pusFv#lc9u-SqycF`WkS*@3FzyC>EhdcEz#Ge>wC*0cQ;XDrx|y~3{J#NP4Z -z$XRFum2Go=^_O3MdG+x+K0iB)e~w?BojoXd^ZonxZ$4aodKVzH2J!TCBMMW -z+Hc?PUtZHhZ4PfBD(iq2TAjHhx1vJ*f=&Qfy`zAOt%UMtpZ0v|fHttaL?nNew9$K=56@QkgwRL<^h6l_w0px(Wk!kR -z^2w5mz@3SrJQba<&Z3uR0b{>J%>Bq$StOTiM9XK&R?n232NzH%AV*M;q*2-oL1BDM -za?EMp4mr-gp+*)+=o`qTupX2i6ieE$!Q~Onrav$N@N+F8ebr>{oJWYg{6eeQ&5M-P -zsuK_aI8HpKui{THnRt0LTr$&%eFN>)oJU8BG;uzyzToQfH?ze- -zYs0|hrZimmmb1oQ_il@fv*Wanm#fwC>(>{rnG$Hh{9d)!tIPOnqL!+PXm|!=gzm$n -zBe18E&N`HaY*kt-gxw?6hEa65DR*U3ZdjZxn!B*2QW9upm|j&77gAM>Q;WN}QCp%1 -zray%M;)v6d%xbG)T?f$qT~IF0&H6wi)?dGNRL|LKodxH`YHX{E_V(3g%+rfn0tAJK -zu3|(q34yDQULQ%UJca0Yi&BRvq2gM#HfnoF6u^fNNZ-m!omqFtFw>j0Nn{MNG2P&w -zgis0}M5PFE`Vf6*Mam9Qm8njjzPnPU>>p%OpX;{Vi;fqvA%#6O4zq8$9m~553yVY2 -zLsPyFf)FZc)o6t9s_tk#XAuu#DHPDt0;+Gu#v3Ii*Hq&WV5ivd<}zn)V^V}@uAj<} -zu~{8-iiX${MJ}!JCG)+G#kn+Ke@S?u>pjR-;$ej(s5l~1LptaDDK_>!nEF{^1jg5n -zU0Z?t8Y{Ax)Ek;x+#uu5WZ==9)@unRCCIA-Ur*yo`W%bBKICdE&^0^>loj&qaX+dJ -z&A+O8L#SVi0R!tiGd&wqU9>Gcq=$7hJ9Yw!QC&?-JoDrMt&YS64(Em>`FqW7&ZP-) -z9AE&!VU4eKF5R$)o#1&h<36prDHA0hP9^GK5*z%3ItwcvZmY4lKit}b-JWb@{~=M-+J~Nb?jO!IUy~i0)4O*N%5Q#eL4L+kk)7qJfWjtaQJ%SB2@rKzjALQ(YaDkDpvW} -z&(?U7lVD@G&_hcn;y^q&ex@uUKFJY5fPoepICacI7Ro}U?v~E+!R55XmTX7-Fu8Ef&jj+=Thkr9r4`vm@@KJJR2UlXYW}9OgCnS|z!DX_jqYB~pta -z>m7*|J?jM*MYw}0fa!N6&{L|)_mf?K&xz%yhqN-@)yo$R9jS^qDgv025(lekXj&Sh -zC&UW<%FBH~bfsms!jh;IR&SagFNqUIdUk&<;QOt5Q|3aEqB1KdkR!YQ9VXb<78 -zhWz;o300^~268KFu`QsmGdo&S_9b8Z+ZS26rT_Ul)d2jXZCx|np5#{9tarDM6zqmw -zRo8(v?OxcT^n#Z2XQE@G;c<`qV5}o7%BWu-=mUu=f^_V9%YSTPR!1Q7=0-*f%KB?W3uFB7BRi2@WdVUqT#dG2jl-@e`Cq8{r*VF;_ZNy#L3MM|;NWUgBcE%QB&t5HWuwmFEOYc>yN5gR+>*qSNq1mUyF{lW19 -z@tAuf-;34B9;$x5Nbxu2-quh>UfaESsY;Ohu&vVE##LfC)j6*y$6s -zJpdme-qXQV&Pr_D0O!;J0RFu6%A9B~!Iq%VNDQzkx}$;!%N^(#8i)2$X`x16Mf3q? -z;@6NE76YkzZPoGz%M?6NMd -zvg{onT*68Uvd)wlqrzIk`k+#i$4S$XI{aMe>eoN;W50PaH+Wx)5iGmn5ktpd)R*;O{D -z)2?)=uu9ZP62gH|N@mR3Wz(WT4^k`@xE*<^A9A==(UbbEvB$wlOQ)_iYi*S@+k~Z! -zV7a12tOjFwD!~ShHeXnTG_<8$z!~BeP>W<~c1Tx&4&blq;u&4^8-YLcbtFhRO0AkF -z7}+1C2};e=^>K;_nla@eBJDw0+GD(i<97W{>y1?%>CNsETBaRb8#-(mJ~QC&9p&?O{^7>7je9f519Tu(G(QMnu`6F*>C -zmqbN44qHn-oSdjM`staNYn?`E(XR3CZ5zpe3Sw`P^r&w>9UXCg)g#iL>Os4=^E1|gd+C_iuFSRN0Ur(5Qbl2RK_PFrF%_`gUBX!7<|ZG -z{i2X^ff)<}XtlzhU62}&BxR=TtBynG)?6%^9WDFQTpHN2BK@<>_#Cp!E;NwIN!_wN -z$sj)4=%a_Jehml+l(nUtFUb?fW^ClJnO5j6T#xz_l8+EhVDL -zi8fMk^bulpj=EYwY%`SGYmA1qX@$6?rNv-3gVzvRhw`k}H&-ZIwv^Q{Xhgyhh*`x; -zg1---F)q6WJf;RfqAhO0AX({4tLSVg6vE+B0Qe`P9oOg)rWHKXt$;pL(GMSf3}7ZlKnWY}J3KLII*`9IsaAw&%Ea}j-;_-N -z|HL|-<#@i8DeM^flEWjbgmRte!TA-^{H(cVSWnNvw)OyjLExZQgzt#^9HQA(*5U4) -z_@UnwxYM2C%@( -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 -zv{qWESdut7_K6${&OAY8dwLHsD< -zRTKvJ5ZB94jQ@m)=X*teEIsV>F<`r%McTWL;^9%@)NqamNo$Oca&) -ze$F<)NUkqU@S$~uP3(x#p0DaqIKSmiXB8d5JGsoZ*;*VuyE0mqmf@nsk6TZUPi%oU -zE9n3;28SX>?%=&noC=+fbO!9RUGPJZBoNF-apy?xG;12%0MuIwoSzv__9Kjl(5bfn -z9WDFcapL`6^}iF{|6Vlx@63BnS@pj)KS#taJB)N9SJlF(#z%+YD0+bCbm}y-zVGA# -z6ARTF?(%ET3qjjtm1hXz0BiOsF^RB9D(tJ+QHF>c+JO46n{jz8Aw^Cf&xGGvwlaTf}yq9>`Gu6L|?Wgnk*%$t!2d^0% -zfYOMeR{b8oiS;>we#hN5N8}CEx&dGsT+2C~KdPBL>4*SZPv#kL>k$@~Lw|Xo4i?Ki -zoZvy$1)5j5S`o)%j=(a_ca8Or-O&sxmbd$-@KS(t6gY!2>8vJ&&Xd%ff(Y!6Xjkvd -z9v2%s=cnnPQ*CXS{kaJWvlfdu3TPqJL737oV_~+C`4$Syl^i4N2FN_4T+)tcwU9wE -zwQIU5E6pL#$J{bw(@p;lH&Wh#F^C`((*y3tj={A22V_Bvi1B&P#&<7ZbI~B -z?G`C)!|obTY$x -zv}bjpn^y(_n3Ygi2kesrAr9f)y*6Fk{b=(+@LNtrh>LcRxh3h+6i$@s&c(2ivL(G1*Iz54aX%f!SuavXa$ia2+G6BUUO;0}?M0+;Y#Ff($G>qF0dg`kKT2Gk;jUsUfR!F2_P^DiB`@>Lt -zcJ#MiS!tRtiycXM3cfJJE?cRuza{}y(ATEBt|)dKv@m1m!-`IZstOIeU`?2;`!K-I -zB<)2D>ys?E4WbQ8u4~t(ibRe*TW+kworwk+E0@cd^@o#9e~le4=YrP=A}@#OpgV5YTm!Xoks%8Gu3OI27a3Yq3nBm$JRK#%h>MP!1eHya$!R|&sa|sPnKecvjQ6m`l@Y847mEY63*0P1 -zWz203LxwmB^bp2Hq$u}32(sAaVuQqYqYLlK$0*7NTy47?4hr(`l%o!N8a!Mw;>Qlz=;-d@hb-y% -zLU6akO_0I@*cSGRy04Y(A99pvZ^lTbHs;SPUohxU#GZ4unvIKCfmy9LL`My&4q5r? -zGBoFZ3B?rsv#9cwr9xqa4k02Bus>h@?AZkB_qOw;aOj+Xmo2hz4gM#GpT=@2mW>2mDj -zC%b5(jQv8XrWOKQ!cjZ0*|ZTzNyA(lMHy&Y&u&lEw(MI9=BjaTAg-oepFA*xnPsuW -zOk6Cho1}zx?QUL1rRZKd;=_0i`&*)XlH0&TIO_Hq6n$?rVd$ycJ4Y7oM8E#{9WFoeQD9ZhUI-1VkJeLfJ*ZPhrZJa@5h^{DGmnj -znitcOoqdxY885c!d0j!>f2>XP>aKwwXt{H)Dqoj&REy}n -zNOlFAy~J8&ojGuLS`afe-Bg}^!-rsFw_09r03{k$2C%8n`? -zw;pwjyPh#)q?+AmPJo^86z(2W5!hLQe$oMCu-(;3a55pTPV1=hTOvSTCPWf>SnZh{ -zaEk<49Aqg~RYdgXG=!_P(K$mWzz!e-bu2&FIz~T~)TXJPnqO@-O{=uB#oTy1VFi0{ -zLqlou*;{|()~x)z{QDM;`4?`(U*`7PC{lm>rO9BE;GRW5r&1AcSoEYpfUq)7J6vlb -zp8PNZ5~`ElYumMeGexebi_L_{SXnuT<|XT0vtVtUX_Kgv7RU=q$q$m)-lu9V!xNo=G*HtN!(_G%M(F*q2M03w1mR2`Md -z7_$LkkvZ@k;t^^(G|dZ%@mnRmZi>imts;*d5}2@N=|p2>ZIe)YY2|yEij$2z31QiR -zV5op|-TQPuRMWtGAR|O&d2(WKAg~T}f)HU1d*s7km;vD|ma?^XU8;PAPBxeDwh3+V -z3^?u!Lsa>MmTopyCx!EXvtqinxgwUPa?bzo>t0&iqM6F)#GNmzc!EQF5LHWcxy`)F -zge>UsHHHhZP()5AIkbmvvz9^Kg%cHPU&T4hajUxs;MZTU+>z&7<(%nKVG_GFDNY(qLQ -zd(}C*Hn&|%Q^;FRt8%+?PTS=SG`mhFd}!;W -za{ek*9ZsyG&UnKy>uM_v>NMiu8R+BTtVmF@;kRj@F%t&q1sNTYIf5 -z6e0rrFi?I%Dp`fu6=uRw-_Rk*PL^Q|D}%uUU38knL>B1tjJ_#b!Sc|0NU&kn6vC&9 -zq74cv9L`nV8#=-^vH>+ryHv2qcg|y9We|ya`wB-F8}S?w2u0MfOu@|jiDPgVh6n|Nblf%iNhl@?0Zv) -zDzvAE&IfZy9jBRYRFYev%u&4yRrfZD*+o6Qa1U4kv>w(GZNY1!Dld6%`)_x$np7aZ8r=Tzjz`L9Ht-h?lH-)ku-$M5b5Cu5<%Y6jf6jPmn4!zR5;-8+a#c -zI$EYK;E9!EB1l=|y3?7_5NO}1?kYM&20@w{ssiZ|yV?Y@8s^&Y);0~|v|eJj_Tw+; -zR7Uf_3^g2j5pFc&PEQ4>MgWldz#D8b-)?t)0EIv -z*OuAJO*=G>d}i@iCcUaycOksB&0Sql31Yw$kZi3Ls`Q5V0p?8(dclS)$US$Y6g%g4ilrIq{F{);YvB+L#*!0ev-Ek%#>g -zp{fc1l-KF012FIi%~nKiVxG#Rk4b?i9zVXqPM%i=jRsQAthK -zNla_M8@6N#DVFrsN$1K>CU&}A(cIzF=(4JlQ6(`vBtX&Fmva+EsV8dGMtAk(l$P>J -z83W2`v5ZigeomFr#25swk;VS*RXOebR5caPML+9X~bz=UAUL!2HVRi -z`)rsTA2vbs6eoXeZdf2SMt|yL0mJO5qA>U=0JJAjdw87Gz#YrH+2#$FcMyWb^PhD& -z3nKS)2Bf_al3_>yX~*0Wy54E*-Nuu1Ww^jA)DuY(0+b{d8f47xj^pUf?LAvlcezur -z7ev^a#Ar_ijFH$52fEMrWnLT-Xru0$R=m~3I~$Kn2EEf0Cy|+g`8;H+!UX5|;A?a; -zfXbs`bT1nNAH&~|LGs)d=kN4O@W^mM6O>HgMm<2wLmj;=3;<*kc-St0$;x!G%d{0> -z!!&?j2S9ABbKl?+n1L~2h=61Pj -zBTo*L+;Fq7Uel~>MAZKR?t3aX;0X|}a_)h!&goE?5Hr95FrxSnPc8vfOxyxs%yi3_R?ra%f`5#Uf}pu_%B(sJeNV;EbD0Jwc#Gjd0lWY2(c3!#m~{TL^q0P+=?3j;!6GWkW2{9PVrr -z_Akg14X0uI97aU2GW#hN7G3F(NoQQa%7DNDuLP$hr$AE7fla*FYuvDA+0mVDtmouN -z3fo|_oh=((hldZyDEMq%F=r02mAajXXd?tiaRWNKVft!kWooY1fgo@XCwNH4q5!sh -zD>EN>tO!*Ti(xQ}N~iURm>#_@K$fp?kf8OUdlY}vJLU!m^HFXLE{wIlch4IvbJ}^O -zZ|wl%O)DA>!cqSXk^ZqwUqc@P?0pe?o$ZQkIPJJrc(Edi39P~PikpP-Xcp|J~ -zAHH*;W$e;j!Pi!4-L)7HPsJv-M0;GTkFB44@DY@fHBC -zBnT&r0Oe^ETK|e~A!0l+yUdzj2G8ZITGdUqQtp~W5@pxQ9vb3|^9RwKTL3Is&hu8$ -z`8Q`$Cs3M^4fF62spzQa0c-ZLq50`LSP~Opk3;ZJW=Wf|^#LLIE6;6ZPe;FuCDqV*C$MGW6)i69g8*qTf1cOoo^GFJ(h9;Q -z5+GAob>qTB4WqwET!?Yk;QJ~E3;U$YK*WfDX~2-AQ#hn=#O2n7Vm8U8i+De5E@-ON -zj1g53RIB?#m}jfE+e}AkBP0S9&cwM8bBD&we)4efLR5;b%*DPsok@)q&9u$Lt^ -zFfhdH$_g9KvSxxg0LwA3loIy^JP~*inh?9hIMUFgV&h!G7;kKBx0|^FG9Z(~rqT&d -zr-(0^^=RZ)c~Hc``6O30RcGaeGNrmeZa!6{-39R_7G+`JHLZ!k+ZhY@I=fK2mBOY~ -zE7d=}qVr8n4#leta=YMPsJ>vYW3(>f|Kl$2HQ~lMCJMEgRYjP)GL`!(bC5`)ttErY -zE;}3hJ**kx8wD;Qs^zjku?K-B{_T(Auxm*Io`2=@zx3LdC*znUZd!6=!|RVHz~T|| -z(AV|c+z4&KR13yi;Gk%QUl)DKu$i`O3$LRI+*_hqr%eM%T$71xxX9P1Pz#5w(m1*2BRu -zt`*q5W#eZHn?+9o#>j!KgWa?Qqr~t7Qj^7s69RxV5F78%BDqDo4tx|+_R_Sc{4mw$ -z)aazyLD7YE*LoK%JpzG;Y8{-Mtj-?lbT3<|RGub_s3?7mR9ka?nxCcTlaKYPC_N5$ -zmp8mBez1Iy5+l*5%bnQFy~^di^2xE9e1z|`cWjCW-TB#po`?G3-K0C*31X&nbYY`< -z2h?;Z_eQOnD7sAYoh#}dbkS$CRuM!UKpuXOtFs0kcBoYMu0 -z|JJKtef;Ex0HIhBLnC?Nd{0QOSy$S^(2Juv&RkIxqdvU<;4E2{as1%qRL7T4{Z5Rb -zTd?}gbAU26HmEY#gj@bGF+zyA^-;ZNTo@R$Ix#ubj2eqUDM(3HG=ZrjWEs8@9;Jcq -z>N?*|;BbQA9FIa6#?%ru70*qH7=Itd2F7tdSMzrF*~!v)nymYKXUld?!!p(hjK%$! -zMMxj{a+N`W*&m@`fJpk7r;L=f>tWb4y_)TSWGKwOe~qLEGf|8NqCz9dL%s#UajIU? -z9bx6(K$NyDl6BLz6A49c)i&#EaVSaW=-5jUisS}r^vTBQ*pjr -zc=g&gIje!HCNRH(v&FsSL44@kPl_<+=!W>{A -z>1WB7j(AP`v+i6vGb*e**gi;#N`OOsQ>D1y&QB+Gwna3LYr$$M;;^9%MTBlrT44U! -z;`Pt}(l0$agc-VsPLsR$9z5_vI5~xp?5R_9-Y>R_O0-7i&;;z=B2TtGDE1t-)~-w^ -ztGw5~*xwv2jL3N9-UfYPKquHAL%ziWf1TAl}Qqs!3Kk$sm(7$-}B@y1|W)Vw#W8&aadaEvEAhtYo2R -zLB@j{=1pOgM2+_F#I2pg=pgJZT`9%}^L0;a#i8X4&0emR>kx~a8osfr=)p}Fjp!JN -z+8EUb*yAefL@GqlEG#{QO(H(2=OE_XBMhttqcS>(kTD=HcqD5l7@7$$H*#&Q9qh(} -zz;Q1D+W|!ciBP@gQF%EC;@(65y?`=b!WfbvC=G8IoPE6^56X$c>CdRV&e|5RTj{dL -zsfNmd1VrOEpG8YVv4}g4=QTretLXY<{i!vrFtzlZ3U9y`Mr?oqcbti=j$B91^^NtT -z2%d|rU6JNFowRhwmCh3`eIyw@l2}!6kWF%@Z4?Ou$vs(kM>KWQr-7QKe9jZY%(;qO -zVd43>zQsTxFWgQWBxT~XxX<6xwJL9&e&+Vu$SL70*nA_Wnq|xgBiQ1kGbomsBdpSq -z9AV4EJGPTSd~{!L)4H-s%XKMf4s*=>|Gd6tEZ32AE0wb;TrDLtQWG+RV&5`)3c;2u^v6)lnPA8mP!khy}dus>< -zTTLwtGg4g#zMz#39P*J&=RgZ%QnkGG4XxOE7s*qiavK0WuFvU2Etb@CC5v|iaf)hA -znajpaKMTw(-FvtcBVgU#r+Z&o`j&rgr#%|RdLhH{lxlKIu+rj}~6 -z3NXwD_#vake2ENz2iw7UpOy_r)*6wZ -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