From 77373f0241f9b52271764ab12b1ee80cb7090fa5 Mon Sep 17 00:00:00 2001 From: William Durand Date: Mon, 25 Sep 2023 13:35:12 +0200 Subject: [PATCH 001/238] Bug 1854935 - Enable extensions process by default on Nightly and debug builds --- app/nimbus.fml.yaml | 8 +++++++- .../fenix/extensions/ExtensionProcessTest.kt | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/app/nimbus.fml.yaml b/app/nimbus.fml.yaml index 3481a8b6d..18910af46 100644 --- a/app/nimbus.fml.yaml +++ b/app/nimbus.fml.yaml @@ -277,6 +277,12 @@ features: description: If true, the extensions process is enabled. type: Boolean default: false + defaults: + - channels: + - developer + - nightly + value: + enabled: true growth-data: description: A feature measuring campaign growth data @@ -444,7 +450,7 @@ types: variants: feature-ui: description: An integer either 0 or 1 indicating if the UI for cookie banner handling should be visible, - 0 to hide the UI and 1 to show the UI. The actual UI is composed by cookie banner section + 0 to hide the UI and 1 to show the UI. The actual UI is composed by cookie banner section in the settings page, the toolbar section and the re-engagement dialog. feature-setting-value: description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled, diff --git a/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt b/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt index e6c80c728..17078869c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt @@ -32,13 +32,13 @@ class ExtensionProcessTest { } @Test - fun test_extension_process_can_be_controlled_by_nimbus() { + fun test_extension_process_can_be_enabled_by_nimbus() { val hardcodedNimbus = HardcodedNimbusFeatures( context, "extensions-process" to JSONObject( """ { - "enabled":true + "enabled": true } """.trimIndent(), ), @@ -53,7 +53,20 @@ class ExtensionProcessTest { } @Test - fun test_extension_process_must_be_disabled_by_default() { + fun test_extension_process_can_be_disabled_by_nimbus() { + val hardcodedNimbus = HardcodedNimbusFeatures( + context, + "extensions-process" to JSONObject( + """ + { + "enabled": false + } + """.trimIndent(), + ), + ) + + hardcodedNimbus.connectWith(FxNimbus) + val runtime = GeckoProvider.createRuntimeSettings(context, policy) assertFalse(FxNimbus.features.extensionsProcess.value().enabled) From 4a31ce1b52a5188975789b6d31d84ba0a5fdbb57 Mon Sep 17 00:00:00 2001 From: William Durand Date: Mon, 25 Sep 2023 10:02:02 +0200 Subject: [PATCH 002/238] Bug 1847172 - Unconditionally enable the `mozAddonManager` web API on Fenix --- app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt index 8e5511154..4ddf45707 100644 --- a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt @@ -115,7 +115,7 @@ object GeckoProvider { .debugLogging(Config.channel.isDebug || context.components.settings.enableGeckoLogs) .aboutConfigEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) .extensionsProcessEnabled(FxNimbus.features.extensionsProcess.value().enabled) - .extensionsWebAPIEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) + .extensionsWebAPIEnabled(true) .build() } } From 2105050c262481038f67b7d05dc3384c1e2a3868 Mon Sep 17 00:00:00 2001 From: William Durand Date: Mon, 25 Sep 2023 10:09:12 +0200 Subject: [PATCH 003/238] Bug 1854123 - Show the "find more add-ons" button unconditionally in Fenix --- .../org/mozilla/fenix/addons/AddonsManagementFragment.kt | 2 +- .../java/org/mozilla/fenix/addons/AddonsManagementView.kt | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt index 54a2a69ff..d3c2bee71 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt @@ -274,6 +274,6 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) // This is locale-less on purpose so that the content negotiation happens on the AMO side because the current // user language might not be supported by AMO and/or the language might not be exactly what AMO is expecting // (e.g. `en` instead of `en-US`). - private const val AMO_HOMEPAGE_FOR_ANDROID = "https://addons.mozilla.org/android/" + private const val AMO_HOMEPAGE_FOR_ANDROID = BuildConfig.AMO_BASE_URL + "/android/" } } diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementView.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementView.kt index 117c3f8e5..edb16c46b 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementView.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementView.kt @@ -7,7 +7,6 @@ package org.mozilla.fenix.addons import androidx.navigation.NavController import mozilla.components.feature.addons.Addon import mozilla.components.feature.addons.ui.AddonsManagerAdapterDelegate -import org.mozilla.fenix.Config import org.mozilla.fenix.R import org.mozilla.fenix.ext.navigateSafe @@ -36,9 +35,7 @@ class AddonsManagementView( showNotYetSupportedAddonFragment(unsupportedAddons) } - override fun shouldShowFindMoreAddonsButton(): Boolean { - return !Config.channel.isRelease - } + override fun shouldShowFindMoreAddonsButton(): Boolean = true override fun onFindMoreAddonsButtonClicked() { onMoreAddonsButtonClicked() From ab2d1ee15b6c3431815673e780fbcb214adb8352 Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Fri, 22 Sep 2023 15:00:40 +0300 Subject: [PATCH 004/238] Bug 1840103 - Part 1: Add support for multiple links in LinkText --- .../org/mozilla/fenix/compose/LinkText.kt | 132 +++++++++++++----- .../viewholders/FeltPrivacyInfoCard.kt | 10 +- .../fenix/onboarding/view/OnboardingPage.kt | 2 +- .../shopping/ui/ReviewQualityCheckFooter.kt | 10 +- .../shopping/ui/ReviewQualityCheckInfoCard.kt | 2 +- .../org/mozilla/fenix/compose/LinkTextTest.kt | 76 ++++++++++ 6 files changed, 185 insertions(+), 47 deletions(-) create mode 100644 app/src/test/java/org/mozilla/fenix/compose/LinkTextTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/compose/LinkText.kt b/app/src/main/java/org/mozilla/fenix/compose/LinkText.kt index 0d3009f84..054ad64bb 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/LinkText.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/LinkText.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.compose +import androidx.annotation.VisibleForTesting import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box @@ -45,7 +46,7 @@ data class LinkTextState( * A composable for displaying text that contains a clickable link text. * * @param text The complete text. - * @param linkTextState The clickable part of the text. + * @param linkTextStates The clickable part of the text. * @param style [TextStyle] applied to the text. * @param linkTextColor [Color] applied to the clickable part of the text. * @param linkTextDecoration [TextDecoration] applied to the clickable part of the text. @@ -53,37 +54,21 @@ data class LinkTextState( @Composable fun LinkText( text: String, - linkTextState: LinkTextState, + linkTextStates: List, style: TextStyle = FirefoxTheme.typography.body2.copy( textAlign = TextAlign.Center, color = FirefoxTheme.colors.textSecondary, ), linkTextColor: Color = FirefoxTheme.colors.textAccent, - linkTextDecoration: TextDecoration? = null, + linkTextDecoration: TextDecoration = TextDecoration.None, ) { val context = LocalContext.current - val annotatedString = buildAnnotatedString { - val startIndex = text.indexOf(linkTextState.text, ignoreCase = true) - val endIndex = startIndex + linkTextState.text.length - - append(text) - - addStyle( - style = SpanStyle( - color = linkTextColor, - textDecoration = linkTextDecoration, - ), - start = startIndex, - end = endIndex, - ) - - addStringAnnotation( - tag = URL_TAG, - annotation = linkTextState.url, - start = startIndex, - end = endIndex, - ) - } + val annotatedString = buildUrlAnnotatedString( + text, + linkTextStates, + linkTextColor, + linkTextDecoration, + ) // When using UrlAnnotation, talkback shows links in a separate dialog and // opens them in the default browser. Since this component allows the caller to define the @@ -95,21 +80,70 @@ fun LinkText( modifier = Modifier.clickable( enabled = context.isScreenReaderEnabled, role = Role.Button, - onClickLabel = linkTextState.text, - onClick = { linkTextState.onClick(linkTextState.url) }, + onClickLabel = linkTextStates.firstOrNull()?.text ?: "", + onClick = { + linkTextStates.firstOrNull()?.let { + it.onClick(it.url) + } + }, ), - onClick = { + onClick = { charOffset -> if (!context.isScreenReaderEnabled) { - val range: AnnotatedString.Range? = - annotatedString.getStringAnnotations(URL_TAG, it, it).firstOrNull() - range?.let { stringAnnotation -> - linkTextState.onClick(stringAnnotation.item) - } + onTextClick(annotatedString, charOffset, linkTextStates) } }, ) } +@VisibleForTesting +internal fun onTextClick( + annotatedString: AnnotatedString, + charOffset: Int, + linkTextStates: List, +) { + val range: AnnotatedString.Range? = + annotatedString.getStringAnnotations(URL_TAG, charOffset, charOffset).firstOrNull() + range?.let { stringAnnotation -> + val linkTextState = linkTextStates.firstOrNull { + it.text == stringAnnotation.item + } + linkTextState?.let { + it.onClick(it.url) + } + } +} + +@VisibleForTesting +internal fun buildUrlAnnotatedString( + text: String, + linkTextStates: List, + color: Color, + decoration: TextDecoration, +) = buildAnnotatedString { + append(text) + + linkTextStates.forEach { + val startIndex = text.indexOf(it.text, ignoreCase = true) + val endIndex = startIndex + it.text.length + + addStyle( + style = SpanStyle( + color = color, + textDecoration = decoration, + ), + start = startIndex, + end = endIndex, + ) + + addStringAnnotation( + tag = URL_TAG, + annotation = it.text, + start = startIndex, + end = endIndex, + ) + } +} + @Preview @Composable private fun LinkTextEndPreview() { @@ -120,7 +154,7 @@ private fun LinkTextEndPreview() { ) FirefoxTheme { Box(modifier = Modifier.background(color = FirefoxTheme.colors.layer1)) { - LinkText(text = "This is normal text, click here", linkTextState = state) + LinkText(text = "This is normal text, click here", linkTextStates = listOf(state)) } } } @@ -135,7 +169,7 @@ private fun LinkTextMiddlePreview() { ) FirefoxTheme { Box(modifier = Modifier.background(color = FirefoxTheme.colors.layer1)) { - LinkText(text = "This is clickable text, followed by normal text", linkTextState = state) + LinkText(text = "This is clickable text, followed by normal text", linkTextStates = listOf(state)) } } } @@ -152,7 +186,7 @@ private fun LinkTextStyledPreview() { Box(modifier = Modifier.background(color = FirefoxTheme.colors.layer1)) { LinkText( text = "This is clickable text, in a different style", - linkTextState = state, + linkTextStates = listOf(state), style = FirefoxTheme.typography.headline5, ) } @@ -171,7 +205,7 @@ private fun LinkTextClickStyledPreview() { Box(modifier = Modifier.background(color = FirefoxTheme.colors.layer1)) { LinkText( text = "This is clickable text, with underlined text", - linkTextState = state, + linkTextStates = listOf(state), style = FirefoxTheme.typography.headline5, linkTextColor = FirefoxTheme.colors.textOnColorSecondary, linkTextDecoration = TextDecoration.Underline, @@ -179,3 +213,27 @@ private fun LinkTextClickStyledPreview() { } } } + +@Preview +@Composable +private fun MultipleLinksPreview() { + val state1 = LinkTextState( + text = "clickable text", + url = "www.mozilla.com", + onClick = {}, + ) + + val state2 = LinkTextState( + text = "another clickable text", + url = "www.mozilla.com", + onClick = {}, + ) + FirefoxTheme { + Box(modifier = Modifier.background(color = FirefoxTheme.colors.layer1)) { + LinkText( + text = "This is clickable text, followed by normal text, followed by another clickable text", + linkTextStates = listOf(state1, state2), + ) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt index 4edd382be..26d72f5ad 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt @@ -58,10 +58,12 @@ fun FeltPrivacyModeInfoCard( stringResource(id = R.string.app_name), stringResource(id = R.string.felt_privacy_info_card_subtitle_link_text), ), - linkTextState = LinkTextState( - text = stringResource(id = R.string.felt_privacy_info_card_subtitle_link_text), - url = "", - onClick = { onLearnMoreClick() }, + linkTextStates = listOf( + LinkTextState( + text = stringResource(id = R.string.felt_privacy_info_card_subtitle_link_text), + url = "", + onClick = { onLearnMoreClick() }, + ), ), style = FirefoxTheme.typography.body2.copy( color = FirefoxTheme.colors.textPrimary, diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPage.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPage.kt index c2a3979ca..e590f1f35 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPage.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPage.kt @@ -155,7 +155,7 @@ private fun DescriptionText( if (linkTextState != null && description.contains(linkTextState.text, ignoreCase = true)) { LinkText( text = description, - linkTextState = linkTextState, + linkTextStates = listOf(linkTextState), ) } else { Text( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt index a448a9964..2f1e0ab34 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt @@ -39,10 +39,12 @@ fun ReviewQualityCheckFooter( id = R.string.review_quality_check_powered_by_2, poweredByLinkText, ), - linkTextState = LinkTextState( - text = poweredByLinkText, - url = FOOTER_LINK, - onClick = onLinkClick, + linkTextStates = listOf( + LinkTextState( + text = poweredByLinkText, + url = FOOTER_LINK, + onClick = onLinkClick, + ), ), style = FirefoxTheme.typography.body2.copy( color = FirefoxTheme.colors.textPrimary, diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt index 5ef298d8f..9ed05c9fe 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt @@ -110,7 +110,7 @@ fun ReviewQualityCheckInfoCard( LinkText( text = it.first, - linkTextState = it.second, + linkTextState = listOf(it.second), style = FirefoxTheme.typography.body2.copy( color = FirefoxTheme.colors.textPrimary, ), diff --git a/app/src/test/java/org/mozilla/fenix/compose/LinkTextTest.kt b/app/src/test/java/org/mozilla/fenix/compose/LinkTextTest.kt new file mode 100644 index 000000000..34ab686dc --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/compose/LinkTextTest.kt @@ -0,0 +1,76 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.compose + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.style.TextDecoration +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class LinkTextTest { + + @Test + fun `WHEN attempting a click on non-annotated text THEN no links are clicked`() { + var linkClicked = false + val linkTextState = LinkTextState( + text = "clickable text", + url = "www.mozilla.com", + onClick = { linkClicked = true }, + ) + val annotatedString = buildUrlAnnotatedString( + text = "This is not clickable text, but this is ${linkTextState.text}", + linkTextStates = listOf(linkTextState), + color = Color(0xFF000000), + decoration = TextDecoration.None, + ) + + onTextClick( + annotatedString, + 2, + listOf(linkTextState), + ) + + assertFalse(linkClicked) + } + + @Test + fun `WHEN attempting a click on clickable annotated text THEN the corresponding link is clicked`() { + val linkClicked = mutableListOf(false, false, false) + val linkTextStates = listOf( + LinkTextState( + text = "click1", + url = "www.mozilla.com", + onClick = { linkClicked[0] = true }, + ), + LinkTextState( + text = "click2", + url = "www.mozilla.com", + onClick = { linkClicked[1] = true }, + ), + LinkTextState( + text = "click3", + url = "www.mozilla.com", + onClick = { linkClicked[2] = true }, + ), + ) + val annotatedString = buildUrlAnnotatedString( + text = "This is not clickable text, but these are clickable texts: " + linkTextStates.map { it.text + ", " }, + linkTextStates = linkTextStates, + color = Color(0xFF000000), + decoration = TextDecoration.None, + ) + + onTextClick( + annotatedString, + 70, + linkTextStates, + ) + + assertFalse(linkClicked[0]) + assertFalse(linkClicked[2]) + assertTrue(linkClicked[1]) + } +} From bc4eb8606965482d37602b1030de5b0dff71652a Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Mon, 25 Sep 2023 13:08:32 +0300 Subject: [PATCH 005/238] Bug 1840103 - Part 2: Update contextual onboarding card for Review quality check feature --- .../shopping/store/ReviewQualityCheckState.kt | 17 +- .../shopping/store/ReviewQualityCheckStore.kt | 4 +- .../ui/ReviewQualityCheckBottomSheet.kt | 23 +++ .../ReviewQualityCheckContextualOnboarding.kt | 148 ++++++++++++------ .../shopping/ui/ReviewQualityCheckInfoCard.kt | 2 +- .../drawable-hdpi/shopping_onboarding.webp | Bin 0 -> 19342 bytes .../drawable-mdpi/shopping_onboarding.webp | Bin 0 -> 12078 bytes .../shopping_onboarding.webp | Bin 0 -> 24220 bytes .../shopping_onboarding.webp | Bin 0 -> 13304 bytes .../shopping_onboarding.webp | Bin 0 -> 38366 bytes .../shopping_onboarding.webp | Bin 0 -> 73394 bytes .../shopping_onboarding.webp | Bin 0 -> 112736 bytes .../drawable-night/shopping_onboarding.webp | Bin 0 -> 112736 bytes .../drawable-xhdpi/shopping_onboarding.webp | Bin 0 -> 29788 bytes .../drawable-xxhdpi/shopping_onboarding.webp | Bin 0 -> 60166 bytes .../drawable-xxxhdpi/shopping_onboarding.webp | Bin 0 -> 91614 bytes .../res/drawable/shopping_onboarding.webp | Bin 0 -> 91614 bytes .../store/ReviewQualityCheckStoreTest.kt | 4 +- 18 files changed, 148 insertions(+), 50 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-mdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night-hdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night-mdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night-xhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night-xxhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night-xxxhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-night/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-xhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-xxhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/shopping_onboarding.webp create mode 100644 app/src/main/res/drawable/shopping_onboarding.webp diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt index d3abc7d89..32b6ddcdb 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt @@ -21,8 +21,23 @@ sealed interface ReviewQualityCheckState : State { /** * The state when the user has not opted in for the feature. + * + * @property retailers List of retailer names to be displayed in order in the onboarding UI. */ - object NotOptedIn : ReviewQualityCheckState + data class NotOptedIn( + val retailers: List = listOf( + ProductVendor.AMAZON, + ProductVendor.BEST_BUY, + ProductVendor.WALMART, + ), + ) : ReviewQualityCheckState + + /** + * Supported product retailers. + */ + enum class ProductVendor { + AMAZON, BEST_BUY, WALMART, + } /** * The state when the user has opted in for the feature. diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt index 363f1f05b..c7d44ac1b 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt @@ -51,12 +51,12 @@ private fun mapStateForUpdateAction( ) } } else { - ReviewQualityCheckState.NotOptedIn + ReviewQualityCheckState.NotOptedIn() } } ReviewQualityCheckAction.OptOut -> { - ReviewQualityCheckState.NotOptedIn + ReviewQualityCheckState.NotOptedIn() } ReviewQualityCheckAction.ToggleProductRecommendation -> { diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index 9bd65ea76..71a07d277 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -25,6 +25,7 @@ import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore * @param onRequestDismiss Invoked when a user action requests dismissal of the bottom sheet. * @param modifier The modifier to be applied to the Composable. */ +@Suppress("LongMethod") @Composable fun ReviewQualityCheckBottomSheet( store: ReviewQualityCheckStore, @@ -42,9 +43,31 @@ fun ReviewQualityCheckBottomSheet( when (val state = reviewQualityCheckState) { is ReviewQualityCheckState.NotOptedIn -> { ReviewQualityCheckContextualOnboarding( + retailers = state.retailers, onPrimaryButtonClick = { store.dispatch(ReviewQualityCheckAction.OptIn) }, + onLearnMoreClick = { url -> + store.dispatch( + ReviewQualityCheckAction.OpenLink( + ReviewQualityCheckState.LinkType.ExternalLink(url), + ), + ) + }, + onPrivacyPolicyClick = { url -> + store.dispatch( + ReviewQualityCheckAction.OpenLink( + ReviewQualityCheckState.LinkType.ExternalLink(url), + ), + ) + }, + onTermsOfUseClick = { url -> + store.dispatch( + ReviewQualityCheckAction.OpenLink( + ReviewQualityCheckState.LinkType.ExternalLink(url), + ), + ) + }, onSecondaryButtonClick = onRequestDismiss, ) } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt index c92e804d3..a9fb8eaa1 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt @@ -4,71 +4,136 @@ package org.mozilla.fenix.shopping.ui -import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.material.Text +import androidx.compose.material.TextButton import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import org.mozilla.fenix.R +import org.mozilla.fenix.compose.LinkText +import org.mozilla.fenix.compose.LinkTextState import org.mozilla.fenix.compose.button.PrimaryButton -import org.mozilla.fenix.compose.button.TextButton +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.ProductVendor import org.mozilla.fenix.theme.FirefoxTheme +const val PLACEHOLDER_URL = "www.fakespot.com" + /** * A placeholder UI for review quality check contextual onboarding. The actual UI will be * implemented as part of Bug 1840103 with the illustration. * + * @param retailers List of retailers to be displayed in order. + * @param onLearnMoreClick Invoked when a user clicks on the learn more link. + * @param onPrivacyPolicyClick Invoked when a user clicks on the privacy policy link. + * @param onTermsOfUseClick Invoked when a user clicks on the terms of use link. * @param onPrimaryButtonClick Invoked when a user clicks on the primary button. * @param onSecondaryButtonClick Invoked when a user clicks on the secondary button. */ +@Suppress("LongParameterList", "LongMethod") @Composable -fun ColumnScope.ReviewQualityCheckContextualOnboarding( +fun ReviewQualityCheckContextualOnboarding( + retailers: List, + onLearnMoreClick: (String) -> Unit, + onPrivacyPolicyClick: (String) -> Unit, + onTermsOfUseClick: (String) -> Unit, onPrimaryButtonClick: () -> Unit, onSecondaryButtonClick: () -> Unit, ) { + val learnMoreText = + stringResource(id = R.string.review_quality_check_contextual_onboarding_learn_more_link) + val privacyPolicyText = + stringResource(id = R.string.review_quality_check_contextual_onboarding_privacy_policy) + val termsOfUseText = + stringResource(id = R.string.review_quality_check_contextual_onboarding_terms_use) + ReviewQualityCheckCard(modifier = Modifier.fillMaxWidth()) { Text( text = stringResource(R.string.review_quality_check_contextual_onboarding_title), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.headline5, - textAlign = TextAlign.Center, - modifier = Modifier.align(Alignment.CenterHorizontally), ) Spacer(modifier = Modifier.height(16.dp)) Text( - text = createDescriptionString(), - color = FirefoxTheme.colors.textPrimary, + text = createDescriptionString(retailers), + color = FirefoxTheme.colors.textSecondary, style = FirefoxTheme.typography.body2, - textAlign = TextAlign.Center, - modifier = Modifier.align(Alignment.CenterHorizontally), ) Spacer(modifier = Modifier.height(12.dp)) - Text( + LinkText( text = stringResource( id = R.string.review_quality_check_contextual_onboarding_learn_more, stringResource(id = R.string.shopping_product_name), - stringResource(id = R.string.review_quality_check_contextual_onboarding_learn_more_link), + learnMoreText, ), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.body2, - textAlign = TextAlign.Center, - modifier = Modifier.align(Alignment.CenterHorizontally), + linkTextStates = listOf( + LinkTextState( + text = learnMoreText, + url = PLACEHOLDER_URL, + onClick = onLearnMoreClick, + ), + ), + style = FirefoxTheme.typography.body2.copy( + color = FirefoxTheme.colors.textSecondary, + ), + linkTextDecoration = TextDecoration.Underline, ) - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(12.dp)) + + LinkText( + text = stringResource( + id = R.string.review_quality_check_contextual_onboarding_caption, + stringResource(id = R.string.shopping_product_name), + privacyPolicyText, + termsOfUseText, + ), + linkTextStates = listOf( + LinkTextState( + text = privacyPolicyText, + url = PLACEHOLDER_URL, + onClick = onPrivacyPolicyClick, + ), + LinkTextState( + text = termsOfUseText, + url = PLACEHOLDER_URL, + onClick = onTermsOfUseClick, + ), + ), + style = FirefoxTheme.typography.caption + .copy( + color = FirefoxTheme.colors.textSecondary, + ), + linkTextDecoration = TextDecoration.Underline, + ) + + Spacer(modifier = Modifier.height(12.dp)) + + Image( + painter = painterResource(id = R.drawable.shopping_onboarding), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(all = 16.dp), + ) + + Spacer(modifier = Modifier.height(12.dp)) PrimaryButton( text = stringResource(R.string.review_quality_check_contextual_onboarding_primary_button_text), @@ -78,46 +143,41 @@ fun ColumnScope.ReviewQualityCheckContextualOnboarding( Spacer(modifier = Modifier.height(8.dp)) TextButton( - text = stringResource(R.string.review_quality_check_contextual_onboarding_secondary_button_text), onClick = onSecondaryButtonClick, modifier = Modifier.fillMaxWidth(), - ) + ) { + Text( + text = stringResource(R.string.review_quality_check_contextual_onboarding_secondary_button_text), + color = FirefoxTheme.colors.textAccent, + style = FirefoxTheme.typography.button, + maxLines = 1, + ) + } } - - Spacer(modifier = Modifier.height(8.dp)) - - Text( - text = stringResource( - R.string.review_quality_check_contextual_onboarding_caption, - stringResource(R.string.shopping_product_name), - stringResource(id = R.string.review_quality_check_contextual_onboarding_privacy_policy), - stringResource(id = R.string.review_quality_check_contextual_onboarding_terms_use), - ), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.caption, - textAlign = TextAlign.Center, - modifier = Modifier.align(Alignment.CenterHorizontally), - ) } @Composable private fun createDescriptionString( - retailers: List = listOf( - R.string.review_quality_check_retailer_name_amazon, - R.string.review_quality_check_retailer_name_bestbuy, - R.string.review_quality_check_retailer_name_walmart, - ), + retailers: List, ) = buildAnnotatedString { + val retailerNames = retailers.map { + when (it) { + ProductVendor.AMAZON -> R.string.review_quality_check_retailer_name_amazon + ProductVendor.BEST_BUY -> R.string.review_quality_check_retailer_name_bestbuy + ProductVendor.WALMART -> R.string.review_quality_check_retailer_name_walmart + } + } + val description = stringResource( id = R.string.review_quality_check_contextual_onboarding_description, - stringResource(retailers[0]), + stringResource(retailerNames[0]), stringResource(R.string.app_name), - stringResource(retailers[1]), - stringResource(retailers[2]), + stringResource(retailerNames[1]), + stringResource(retailerNames[2]), ) append(description) - retailers.forEach { + retailerNames.forEach { val retailer = stringResource(id = it) val start = description.indexOf(retailer) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt index 9ed05c9fe..0d44b1855 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt @@ -110,7 +110,7 @@ fun ReviewQualityCheckInfoCard( LinkText( text = it.first, - linkTextState = listOf(it.second), + linkTextStates = listOf(it.second), style = FirefoxTheme.typography.body2.copy( color = FirefoxTheme.colors.textPrimary, ), diff --git a/app/src/main/res/drawable-hdpi/shopping_onboarding.webp b/app/src/main/res/drawable-hdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..f73288ac14c3500fc5ebb46b8f860ca7db82eec2 GIT binary patch literal 19342 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 Nbbud8>t+8B6#y>W>&pND literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/shopping_onboarding.webp b/app/src/main/res/drawable-mdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..925d64a93a634bacafdd5fedf0733ac5bc8a4936 GIT binary patch literal 12078 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 YNf$7)X%8D|7Q8D_%)ArW*WzjpSS*f`Qvd(} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-night-hdpi/shopping_onboarding.webp b/app/src/main/res/drawable-night-hdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..99dfa5d60560d1be3508cae5c58a326afc5d5f88 GIT binary patch literal 24220 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 z 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-night-mdpi/shopping_onboarding.webp b/app/src/main/res/drawable-night-mdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..9972cee8ed39a760691f22f67fb4fcbe66ed472f GIT binary patch literal 13304 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

+}5EG+n{-Q&@_ZFoo|xX)`=GHEBZZP+9u@2 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 AzW@LL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-night-xxxhdpi/shopping_onboarding.webp b/app/src/main/res/drawable-night-xxxhdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..93242d9fdfbb8a7cd16834cf9aea7ac9d672e9ea GIT binary patch literal 112736 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-night/shopping_onboarding.webp b/app/src/main/res/drawable-night/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..93242d9fdfbb8a7cd16834cf9aea7ac9d672e9ea GIT binary patch literal 112736 zcmV({K+?ZbNk&FkxB&oHMM6+kP&iCWxB&n!)5DAqjW}%EMv`FP;)9j`3!Z0Z_8N%j z{{*OwTEL(0xHCZ?xKlNC-#1`&0k6o5cuJ=xia@sEX9lW@ zx*N&KvY1|c#WNJtv&EKe6Y&!<6I6=lQF_M~b#ppNI#5Nk_k~VJ!vgC0nD`As8%fH! z#Ze|Ep{jb4qBJb1L`$JEGkNqFN$bdxqf;eCQnZ??sw~iPHJ2~j+PF^Vc}lXBY^d&< zw$9tyNmT)Om89B|1gPt}*L@P|`KRwrD5G;o3`!Rwu-K+rjyhE zf7^LHreT>k=d1q{0LQl1TIyBBO1~vl|BVYjXzPPxt9O-F$z|>Dtu}9(+eFefW39Tr z4$aakt&+=(jfZmDdMM`=w>AGS|Af=EExC19hUS{n#!YjryjxLi{?BO{wpY!y($rsSyH(?ENXy^+ExDp% zb8W6AUvRBPNwun4)yY`$bu=NTJMJD1?HvE!jNH`m5XYpLWN zPXWOviM$)4sJdbjQ{5=B<6%o~u`^WfWcs3cVht@FAM_jY)QY7hsj36R6RNPCB=ew84vCU;Nyb$=9(5 z&NGiP!j1^Q6!e|0D2rR*m?JIg?w=2zq7#AqzkhExyF+{Apc;7RBJ%`yvQE}9Xg%J& z-+CmS15g;(Q{KSFB7n67)df1sEc2$4%8jhPuWx$)KTmu`86-J@Ft9ZO=rp%AFCd*D z07%QS_-@&>u9Ee1@#f(j1vNGG+<@h|;1cE!P|9P+BKKJ02cBAHUqC z7X|QaoK=Eib6a)cQoH8;^(O#8MC5}uOwaLtbMxd#@Km%)P@Bd>eRr?mPrzjxu9iiLRz%0N=yO8p)@AD^*lPXO zyLY_b+&sKbZW5&>oY`}c769#mmjCDZ_~r2U@cIk@2*OE{Bqd5r5`ri#*lp6|(H9qxb z0>KlV0G^~aeB!IenZE1!%`cpu-)sT^B6?)`i4RZ9@1W;5JS|SkZ?=8O8J}9#($n(u z^S_^dprhIsQ47OJQolaY2I+fYLaUABO(mnDb%3|EKmv-4x&~frZ=Rba^L|&Ps`_G z??RMJG1wkuhPX1dep|GLO>xz+gv`2xiG>NMM#S3IZ%rOFf9N&&q#=(?ZON_c*2J2> z%s{W-tw}Kz=mM>4$bJx` znpmkvC}$mbk|arzZQGKN#P+$xD**mXV*blZUf$XldY~a@jzw0%63&5732p6 zU5X_fD05*ipkYyY7fcQ1;9J1Jl-B|phAeg^rUlGNbm1(ZTDG7TaOE4xCd>uM>p}4z z*iha+*b5jKVgqGTOBe$moFmjGk5EB*bfKV2u{>IUzp#;P!rZ{H2WJ6&1|^iY0mp11 z;GDq;Wsrjp3c7^yUP6B;@4ed4ffvf7hDn=0C_Fy-lmuq(5KN`L^i7h z43yY5k|aq~?tACIyIbM5Z6iUVz0t?tf2EHfO9BAMkesUSo>>j{Y{a&0+vXd;xajd-)5I7xobhvtRW8c)8{_9`$bt<9^)hNU1$9;^ zp-V7+Cfej~Wi8c41D&wZzEAsp7BVl?8k@yvVb6u?BB966UDSbUqt@DNwsWBbIetPHv7o$Y6S@A3(XtiWt2Nmu2VzXST(Z_jo48O7sGtfq z8lugZ9JKDJQ8q|WwO$SVv=MBbMODxy^WqFtEhDWHZE{RPYoJ|RC@$0&V{)K6*>h0| ztM%%EY!eODFgboW*|zQ4b^~XOxzD-xng0bKZcv%VS5n_pZ9{>$-5*5flD{vBDv( zpp%g&?WETl-1SCAc38>Sh4X}WGS)b=mhJ?1E3DTV4bj32=T5LY#G#T-&RQq!q;Yqs z1nIPcu}(X^gJ)#pdY+(=^Aco+L?)~LSyK=)k!|M%`QeM=Kk(6$ZZZTtyeO#l%1N4g*A0VCiT zumUu|EnrzJBhUf;a^Usya-a94PZzo2A)S?%kP_MEz6;8LIx_^WpTzUTEGD0>d8nFyTN4S300lk3&;tl0*)l>r}{ z(~UgV+1I~B6O>*sf=A0jEvfoQ(84XrHwG%BRR#k+O6Uq>B?Pl2LkjnhlCbT19OV<| zG&M8QL55Ard4becI6asnQjjvPtCMRcq4cL|E(e||E|#S}k_`NUj1 z9It1NDmuN+8hGW+wu;4;_c$aS@V^l!_s|z+csrEitc+WTw&pZPsEAmtQAG`mui_CU z*diR=oY)>?!GHyK4-o|93SmnSW5^{Wg)A8B0-E(@u#P)~vMWg8^u+9mHGM8&^`2By zaG+;spQb}=CN(*{%^r^w$PLIIxkf79qSISlT}}>p6QzC8ApHH{t89ZGjW~#2L>NYO z)pzu!P1Nha7dTTue2)>a=w4}Iybr&VaHSWVh;{f%xLOTF@B&dNMIsj}W-#~?){_P4 z1wO5c5WZCWj36B&sa|d~=~T>hX#}Z-OGDDY#AH$iLuHg@bfDywWJHhTtyE3nCkG{8t+L?j`IMMmquL=8p1ZYJ`c z1d(sJiZ2ZNF;vmTO!q29DL=MDQVESvC?L)>T);wKK`j z3bBg60E?lp9WwMunJ}eDG9pPm2)#&3g@`DjiIv}8yK1hz9L<4&a=7gKsH>f!i;Yu- zH-6J6iZP9NPn$WV8dSWM0SStm_-9~hcdEA1AOZ0gd~l1n>Rb_7oaImmMG={OSmN^el_i62okBBUWhnYC`L)(*UsVq7pj%eSNePxBdVof>kTk}0%9K87S?Ars z)NQUVbvHoYOF&CI@`+z5!M7sYEN*0Z@dD_cOd3-h!)suw#wqi1QY}t!SIV&+hpa|} zh`d_R<-)}j#>W(WVF1@?kKMI5x~Pi7cBRjtx(LDIwY2zHQH!4BN-=bdYb0nL{#mNl z)M`ILGX4ljVb_2bJ-jj$z+b(QL!*sGid)%pua*4c7wfn+RNc#=(TDBQsvsB?PH9Nx z=F`*{&4a1dR<-6FSNpB4azopLX&X3`;6X!5^YCT|5mUH0Ce>2vmN<;wn)_eQ-sTT@>vVOxOiA zb2{b;E&l{7!??0=?E`bioGEh7zw8$U%A2hb=T0^R6j8xxy127zo@;PaD{{(v$c00>Nis0Bzu*YL6;MjqZuz z4j}%}@gH4aN7T-$p4d@!c;}(x-*5;D4*g`+Xry5vegMBE40aKD)@DHG>Jeq8bicH@ z^5A}Qw4^kI1aiH$9Q7g`G%ZTuRiht#Z2P(X%&|e$s+2plX5P7qDG4kUwoueXLMi;D zQIs((BJbS+^^kQtoSggiE4|);qdb6&D zf6VUDs8E=Au%s$wJpoYj%jG7G$wuQF_P&m_JYz=n$ifl1mkTaY7?Z^7%DkTu|2W!ADf;JK4dD)xHMTf^fBNHotj2-DSm z`g_I`!);t}pEG0KxO-MHpL{(pNNO$Eq~g95cHG+1D6g}BwDB#4YYKb8^;*9?jF$N6=lgIGX0 z3fH!nJV_)KbWv2=?_!Om#I!E@){(UpZUm`GS&-7fwsH#Yx2l zpPH3@J`>rCf$P`h)>ZB>seB75Q05I3Gy_jMYJg{Um{?bQUIY%$&g^RcymT$)$McvH zc@y7xG^`P8G_@p3>>|yh$Dj`>iYOtnGGjC2S$nYLkt(g$;@p!aHTMY=A6RVNrwRBE z<$ZvU-))!4xzc$Fth0|4AeR&_;y$`wP03IQDfZ4Ny9vKMLI?X&JM2iTjlc0Ji!iO5C?tZ0TJ(e`)N6llQmGRm=il9xf z+P0tJg>ZrDf(xB;q4q$CgayBtvYBvjiyQd3Vmd1*I~4bdqIRKPr{8*SuJ%fTs}pJ{ z*%humVnaepYB?X2n%OF$gqM^8vYQLG3)~og!RB>dV24A2y*XaF$?LURb0zc!tX6Ms zZouJ{)&`f`_rPLyp?MWFj?K$>q@pggLZPx(55#j+@g_#y)u4JDRmMe3F@2Uw)rVDW zs^wHCM^P;*&KeyfM2fIq8l@b?-@}z;w~px*eQii8f#&}>Mo2#p`1a9it$WkD%83QQ z`MToGfoFn|FRQ-adG9^;3gH+pj2H=nMDSu)Nr-y4dNGwF=A&!#UX#) z(yXdudMg%mjqlSI%dM`weQ=*B=N9$kUOL^pifyU77KMqsuM&*mUUjZriMMQjYVKYN zTTxSSHR35sYxh;%x2=AE=So?0zZ>waA+l!m){!hGGAv2bn_E14;(?V`l(DbJVYNPc zW!(-ndjc6zVx`W~f;#mu9gU_YJX?8mj{ z1&f^{lS+!hil(>F?B?p;ynVk-V`_m~l4Lu63_AwAb-9z9fU3B;`6Ne8WiD`S;_S@} zZV7zz1>V|fJn zyU6CV`vfY77u*im830U%9(K24;JkC+9WRSSy=eeyT6yq3n|6LW$u=yI3q>Z@xvcOy zj)B2UxdVw%lJU)zqz2b>t#wEoHm|~oqdGX@Ral=J?sda>M;~FHAQ2WF`kCg7Hiw6Q z#J%X!Q7YS&dzc>mXpRefiOORSu4!x}LeVlK4j-k}dkmaX zIv-vM-;6TG8v7}sab|(mG78#@owpx!#yHH`d_}w3) zl5;n|J4rw%7eL=`b82NFj?ZZ^*~(lI`+1#ryai5iLjneOZMQrir>t(a)eA-)5oYXK z4wD<3PCJxtTlEalmA=VhUf9m&WB5W4N2ofH9yT7NdeU$&qgukQ7Sc0(s}wIGWWcr~ zVJUn%_B1TDVkw6(ld21bh;g|SwL|1_AIa2)Dg^FjXlE7o0*z`gAW-YUH&s;5pipEj zg=uMw_L>w;7RFiav=%9t3bl8ol-^L=jIs(w8goES2Z|rWOX3!X5D;pW!a=j zd&=G#2k?A(Q@{fZ=1eRY4or6{F89c9Eo1M^fuE0SJ3SqYu0uIsUB_E?)5GeDt@~8Y z0k(kK<$=JFJN;a@I}-S!wJs5qJ(VCw^k2Wh__cHd`W`k)x&$fQ%zfP2!b?ytQOpDm z)J5nJ3DJ_og^ru%kIxF)m7uLtUz(ptD7oxzzg1ntN-s8bY^j6j^!F#Dw{~prsJE8+ zwp7)54{f=huf*SGF*enefi}H=7^5X213U2|5Fpv`PA(33JdOfcDh}j&YRV+EdZqG7 zubjKipqRP)ICoBW3Y7=Q#X0~L|Kc4OuQ3O zE&$T&L7ZJ#BYSr6TASs%<^tf!zQEb*&)LCI4m>;2vH9kAlO`3{J>A+uT6X}`Uw5EP ztRO36C2~q4xvN}A)vW!^il^&Q| zIUtxgdv6db{jgnciBJG(-Z&^5QcQ_zmO+IzQa@sg?#CL4*%N>BjeTR)7+g}n73236 z#mqy>EabB2@Ye7pnckf3%@pr%tNUKh_}0XIe+Dc^N^4l%i0?YX$riH9$db)rdyX4) zXlN~e8xm=REdCvQdaxFo!|EMw1#Wq8qSp)j^^+?1Dc?d0^r_rwV)5qII`7&q)Xn3s ztBrnjwE%nVh2S*3D#|=>T#<#(uwAGUz$@*QO}XJKu@R|=R0I+cWn?H1mVq}TdZkAz zEB#S}5>#xMYHUdvH3x+>sr%@dNzBoa`hkd|p-3ontIpr(H!;--+0oF%=pI#;!qAfN zLSOySHw=zNJzZ{XtdvvUURRb`knDdx%d|^ty4^L#2`<5}g>OCmZ6qXYu$7PG2*^MW zrP&4LPuKUro2~-u3~9$#kZro$4RbMMhCPSGxb*oZHM{!NSPi2u!IewQILuvvf)M+ zF(X5xa7xR7R8gBy2}%fqBE@)ek2~AN^i0cR%=S=qDo$|jhT z+;?{IE^_&yxy3R9-`ev^z|+7M@NHT4_I&}w$!mYux{-O`^IXAVse#EAOnlGEJvUqd zMx}%9Y95I*?zF#Xhk4)I<@EQUadU6tK#yYBNntGV`7zUG7x4fUN_%%2^AgFHyM#fY zAUee~N)#*RhW0ei(CBZ36$()VMNuBIpf2W~ih8zE>@b3<*7Bv|YC!zx^YnK%du*RD;3r~Y~4F5(bhI&Ks7C4~1Q6kcPg4A)BWt`qrd#Z2e@uZjRZ;KvRF?)ted0$c;2w8JxDV1U(YEw1!nc_5H0Noz~E z3S6qB5+E^Jr>iwDFxhNRn7|ZA-V<5%xFW{Sn%Y(F(-9q1RP|bWF=NI70TKnsV8ST@ zYvoev=cv)Kj@6n?{lzI19*gX$Z$QKj%^K9_otoE~nQ+04nc40W+CYq#{8E@& zpw|h_Os-Tvw_?}wwGqf-ZRBwSv#iTwGLE>>rHZ5O)bhQT?`pq z=}NK9)d#BY{B1^_`6f2bCHiq4el@T+1>qXYiovQXL8Aa*kr1u}jMZLi`xuo4d4i&>ymYn^(vTZG$uP<>=%7c8>_X5 zW9&0*_bynBhvaqfmo>|pJjw3U2*u5g>eaXL_(VIli4>B5pl6Z zqcK6T)P7oGY*C&?BIPkXvCtwIEqvnc#H+Kdc5ZCfqi@z+i5Rk&XArUDIXaIK>&6Vx zE=c}FcBUpv*#t`7;k%R|3&xhrvgETyaIh}_ekRN_#ZXcrNM;KFdD6VKCC z*>ehmkKl_|P&w*oxpSXcwmjDtw2cTxWFV@ERE-4*haPGbr1Tx*sy*z)6JAYuZ4ot! z6UHxeKNurQRON3glCir;;hHy!+yW%omOepJo0fDP@w%A1A-6X(bhkkcS$0(Nul|*A zt90^*AQOg8ZHG*0vuiZUX~=m8Rov^=a!rzUloscbsAhj)=_cH(6fD_UooR>v+* z)O_9rF=dNl&DVJ-`bsi_#d*p$)eTr~U;E;o_gwWm`&}WflMrj%_;~z`^FF$=s?Zw> zRTjGV%H1g13te_ZJ5ju9U>55likKu-M!q;&6bB!>m}B=uM%BSgMXE+B&lBPyMC@_@ zMpe~cJoAb+=wkP$GQ!wtU)+Cg$$X`Bf97AxNC3&|Onu$gl*1m}K`zT;A|ZPu^vE7b zrqGZ=M;f6}j3d33!>uS`9s}>!(*ATY{cCGy0PENvE%rg;@UpA(M8^VxdWM*+^OSa8 z*e{!F60r5aoo5)-%elK1anT81S$1c*8;@c=Vdj-$svyB%8O5#g`36bFiY3K6LbNBL zIa9-Vd=)c|VbA$C^79cXimbs6T;m2~VQbM!ER>i`qu7Q+IMGR5>sbOr#S*ay2RW@o z$$*Hf5JX0>2o9RlSkhpraATHjC|~qviX7AySY0~9AO=oZ>BewpdZ(M?VkI|Y!;pD3}#45vPc#Rn(oul(Cq1Vxzt?V#cw%-+LetSwh1ru|Lj4 zL>##$Y=M=b_6}yHYZdOuK`EM|6fuKb%@P|m0Floge({h&6dQ5?#*>a+&laO^VB}Ne zK~EJQhX$ko=z|kD5Tvrf%b}&_Dov?ItocnW{-se(%%WnB@e+nhAD(J-^^6Nt7xE!7 z#5Eqg)t?zq?Gd#_1ff?L{WutS#pl`)w_2dOV$F#fd`%UfBM#rFhNw_}#Twd`1pGEI z6qA)YwpQr9OIqEg>ylkVM|y8r^r*;=r*f(H8EvLg@9Q3m*Y}Q0(K}5^@f%kqMATxv zhlHrT)OT7ho(vPs*Tp~T-iz<2dr$W&wzzlf=5G`wbXDWL?&E}o{5?boz-nfNNE$n( zC5<#FPz@n^xR5EOZP-)#hECZ9MkN3tSvh^O&eSkPDiVY?Bp07G=iKaZs??llE^rtt z48(h)RVS}nGvFpz{vmN608Z_Ox`AQit>q-*#LKaONAcT~zAhj$lX zx2z6023(c_ftqG3IuK<^lBHtF8}M3zukSG6ZgYUQ9s0^|I&t_5yfW}GusuH0BU;Kl zQJgk2?b>^0?fThVF{^&$HW4B*pD~^%|JujJSNG0dZ?1lDA-+n&5K**~2J`0X?!0ys zB8wO?e>&G}J&TrbRhE#tGDmccQPmpFlz*^7TzBum8ObRd%AVx=2#QtI9Q7a8LYy|W z+y49Nh~6Zto5F|zjABxBN3k=DLoX1d8tNjU&+&VYQ^vn0C%iDkypoZ#vijq6_Qp8! zCJfWWDOPLgY+_uMg)gWpvW7PH*wJ6n{6>*4j4EiSKKv@=o>1tuaLI()1~X?$cTb(w zx>OoH5?aK&zMvr_4iZv*jU)kU;m@3xg+RyIzCdeS=0;}1x)5G&@!8?)(K-KLXLNE* z_v4bWtP%;BTa$+80_gw-j!6M;vvu;M8p#`Yrb=(66}ZrM^IhsD9eTl0eK)VP&KWS^ zf>P6**|Rez+Lsh+24S(CGwm|p_IIMyIqsZWthQSH#x-Ob5xuFJlO?70?WaRCff?25 zJGzk8RN119-WgW(R>y;C&B}q_U7glkAOWiPC(mHkWvbNUi3c)@K@^b`m^wm)IxtK` zbZXDyxi!qPzw7~3H^0(p(d z5z}@KWaNm{E%>oRe)ZsY{J(j3kC$Uz|8hx}lfqKN{E)~LnDmu^>ga+!f!5kodBJu1 z$ddKTm5$!0soZNV^ETz?9-TY8Z!U1-Wr62_C#565++7aMoDeB33D)hn6I-Nz3#Z(c z+rxFZ7-a8W^g3gw8d-~Ud;|v|6jiAj!KH)-l-w7Zv7@H-SP!DahR>8G%`twP(n+P6 z!-|V}%iTK%2NlnSRd4s$GPfMi6{RWzALy<4O;#Qh*UmY3rc-T5l{F)WZML?TPOtxU zW0~S~$|8c_<-bli$t;D`0xkcBMDkY=zT^Y7%RqRoIji}pd8vpj<6r0T+dO)`ovY4n zhv}j(u^J=JTkx5aZ+oyD!u#Hc>`fBdD3)`iR9tE5fYmE`JbfJn2NruIsitheP0M%j z1}4e{xs^Li8eZHNc%h&M_^+O3M__i*MLg)u3~=5#ielUs)6&1hVL_Uxn>d{Pz>+0q zIIZtrwhC-Y$*Md~A;?_rvtxRqX0^C*380V{rI1R`DWSo*;y@t7T`n`Sl)yK()Z<1L z33su=!W#3BsYyaHe z-&5rMsf=lqrDbF!kzMI$4-qOR7gt67_}b z`Zekh5yGH8aAGc+j@vpriZbmMp~|=LX3(fg(?B9{lZiPKG(?Ij&4iL14+L`%QAA4f zNFY?BZ8YO$b3WY28r<4gNK*d!RDY*O zJ7(5KT+0|for0FpPPbHC2_yATiCyMQ=5>ag`2SXtveJyQjDd*-%~D;i*D(or`Xazt zSqAPd-@MqnPjT+^oiuUJBZ2q4GH~51)eY}+lGh?97FgZ$(B0j6j*Nz1Lc&^;oM@70 zIT~eSwJ8d1Yt1DIC8+_%>a9AgR+g3sNA{Ft(G3Cw2lSYD7*R!wK$*n~uA>tiT0&VH zDXE_$%h2;lrbUC&%d;j3mwBrRA~9T#?VDHJna_*qA%{MuwooSfBqkZTne{@QG+F~A*7IN4HF0yASKzeLvant!#$M&3D|WE-z68D zn%-#QY#IADH$Ppm<01zh2|NotGr4Rs%96#5%q=lXdoeAe(e69&S+*W=sY&4=Irtkj zcj=4>!jj7{u7RwQ90f^AwkQ;~b3->SsGuk3&y@YC7mqIZ4?0u%*DfS-y zewaS?6Z&uP3$o3|e@DhFoH0rr&eEV8)CpCvf)OM4H(V%s+PuGJDNXQwRGSO!tGv%A z3x~S;l#umv;&6aBbW9VH79mhfz(?uQqxfVNXyTRW*K^{*@4< zBBvN?7$k@kyYYL$ynzz^p`!Uv6b-cl30vYPL<~r~l<$*k_0-hlS_2Mgwnu*9${OH@ z2VVBApKkNA17+D82*_AxwN^?fCD8}VCG?WUb+b&7bZ#QZDQ%fo+SyNBlac8_&vj4d zVx^dx6MywlKRLG%;$^lejE1HNQr%I#<16HsA~sa)&ozznHt0_PmBP8+===LO48Dgo z@f*X{_()2sQ>o2^;pF|3j1rh^(5^&)mb#(`NCjQ1C_GRFgFPna0B8cJ*7m_P&F`!n=;6>i& z{IA4RImbue=c4P+TQ9QF7x8=88^xYz@Ev0$i0X<#7<^~OzZs#4?&DV#dP4`#WuYr5 z)598^H|0$NW}5(=2%#|QYBHGU@YIh1GlhL(aF9Xd z?_NQtT-^T2r{N^nL3G7bp_`)wQ+qNg)+?R5-OOKuCRVXol~IJFT89)F z!=q;mPt1xYqOH+vOP{0b@$ZxYT9x{dLPH@gG>U|A#)~(J7m*^LG;NA&pWUn$Qd;Co#gqkWEw2r^CXml37WWP#W0J~ZV?ml zUyzHn2wDAwD;@_78gvNPlV0EuGoRF}mOn##Ej3u=l)any~D648;A>R+>Ui!6_nzmJs=zhS9S^KWhiL3M&&o|@8Db;Pq4`9Jm8#$R`J!8E3s~CsAnR)yE?@jo= zg7A`!Ua%#pNs^P$>XCtz5k-^Ecu%XXW~nW(oM_`ZJ_Q+&HpTist%I2ISEyLz5PhMt zPG_QnMo2zpVzgMp%v_6+LQ)`78>x!&5K%;m2$>!gumFG@0Kln2cS={B<6#olmvdZB ztiEMOhC<0iYwBEt;V9mtn84W(IV?-&6x&>8*^qhU^@-2A_4{`P5GA65Rt=V@BlaaD zSA#`bt8T+dJZ!WWc084!12yl*Zh=UBLsYF1*C>oJhp%!R{*vc95+XuzMI*l%DjG#2 zjI69iWJ(eV9D@j@Jd?=3WEfWk#TA|AfLmS9terF2G8&jil{PA6tgUJuZk6DA)&ueR z)4uTeu!51gtLvmFjj=Jha6RH~w z>Kgm;g&xnsPkzSEKvl51h{q6lzjx|Ei@J|dPy1w_D!ZQIu6w0juceB*)sHJY%GP!~ zdT^5i@#R%3$O=Xf&uTjAmZxYPyF$2VR449%AHYhRz`0=-UH@ZdCn$U|pAgZWa74vg zG$gV>1yEWjq3hBUJ>e+cAi6xq(*=={Qg|vucgzJcxza&2=E6%?^?(Wh;2E!~IawPS zz9(wOH#2VrBKBH1E|1-4LjS?-6S5M%!-y?4Dmqj*M_4LS(?>2UVv1PAUI>abtDCrs z`^Lpx`+dMbg(}D=x|7#dyq}RfMFo{dU)Tqs*&Ohh44@4 z6;dQbRj(-r^xwN}F~NVz`|!=WE!4iP)FPsVc&T9Z;Vl>D_zZ-FeUkwov6Z-xVgC5b~Jt&@6Ky9h6qDMtPn|1M7F5#S7_qyGX|Cl7w-BNm4D&l9--lHF02Zb zy4U%__EFynTQyLsi0Q_L-XpB2S6(QEGD53+9CHt*u$=S=%bb?Cm_$ciO+i9~8kVHmIgr zMun-Txlc&7yqaLY`dG_JD()9~<<9DOZMC#rFY~U?Ji$u0d->PlBzw^3OK?&X3jh7V zZR0QDtCkTFB^eO|vTWUDmlpu`E^?QL0{`~)fyWC1z|QsO0FQcVfTs^UaEBdo2V4+= za^RfF8NJT{yc_r}yG-01SStrU8_4}~>&ojY|0KC4sbe@|IE*EWtW-n7i(C6vcBN(x zq8%~EjzxLMEbtgaL|Yyr4sv$|mmi-Uce7Eq zPW;Y6Ckvg+xf|WM@BnvpA!gZTm~bn88Tp!xFY+Qd(?&}2QstbC8-PU)NxZyp?YR4v zPxNlt<$LAK_xgWBp;sa^zR5jM0%^fAP%KuK7XY`*%Vnujk_r&5#l>a0v&&}hQ(kZ& zuq|0<4=*S<=_KI(*+17#Ws?Q~H!d=<@5IUs)Jp^RJ;hFC2OeDxJYuc9TU~i&CGeyb zy@-JTT4$G)&6d2yQnCj0C8fno0-Z$$K1dzRsm2_{YD{U7H)7+;gnXsrJbbKKF@=lt zbVs;S48x(vzx067+CqEL!_nYh`HMNKWDdWWf0#pV4~ zwXs!bMS~(TN8ou$N6*WsTlepunvtprLb%rn>CVowYp<*L>~u%WUUir zLqSMVGND)Lh##`Qa7m+Axj!vK;DZq*Nvf=zSXp;;O%t#S>`B(LKIH{F0Xt7R5x6#| zZqiN{JhW`~#9~CrDq&qEO2xASn@ipd4Dic=i$`Aq5fS(`l2?+Oz1~X6>-Ab^_m$@W zPwjp;;OXMr%>&5-uEXV_N@q5m;CXzI`r6^9cA0%JNw;uOH7&O29`Tzq9Un{;?RTE% zyC5M{+6&xcJ~YN=5LQ#aQn|*8_PvI(f#?&D$-xf~z+8 z!ZbZy;xnBE4_ExYlZ?P%d}u9*0lF4^ly_vLQdv^ovEUT0lx631PmttW>b3N^H#As< zOzl`#IB8^AL`3u=dNA3`!(j?=iBy;?`$Bq>vJDmBHpaoc`Q%K|`zNc7EyzVqbYoD* z@i#&f8(KBu8*{G9^&^g~x`6h8=vAAwUHwS0abATh2a&ldoX`rv=*M0?eb7D6s!<`0 zs_0rA_X`FUJ*6D%EIOlq;1{j}m!V7Oi>ol=$!$m%r|xst9-DUeXo^4eEaf8jo-njp z#9fglSk0YaIXSKoqqXQub}#ILKf`< z@Ts`O6@g@=Fo`h|qJ)U(K}klGdbWC{vNFkAcDIwh+1%XbvJ2+c0oz9(_F1tB*qfNK z_yT~ZE4_2u76vH-#ibxMWIZP#jrpaF3<#AhNwSO*q9j>8%~r(9;G0J79PWN4KROx__}CA2nr*Y}TS zUwvo!o>0-c=ZKA4RzKC!A~NQ+xEh9*+ZYjJKDVzv-p32N*M5o77EJM7Do-)eFjW5z ziIsK_NFqvJS?(#N5=sZo`2xzy3i<-yn^OkdSm!B@E(WGsUXpzxQiD zFi~FRue6DB&b{gOBO@(8m;I}3q&3DQnc%?_gpfBu2jXxUNJI%el2qwwZU75JNe#}8kN&%>~Ru|N2vNwSDVGn#uxesRz*eq4}&~PbsBn9UsA2zUu8shW1}mN z*%*t3enfVRpZC)lHwnewBb7z4396>K?lepFJuMdtcBy4Cj_wX15dRMnRcWk&{jr5b zacV{i_lmo7?s&@1ssqARc$_nNtAp5vku*}VDN0!~boT!>NxT6p6_C=$LCIPy%bq%^ z04QFo07*c$zg**x>tsi+=q)viuEI&^j7mW&@~@GFML!83#v*N`OyB5I2f8%4V`O!nK0+wf8d zvUv+4#t@55JRYpT#8dzWN~u~91QmQwEWx@$7z0CHcp@`cgewn$C^V>~T)!grK#NP1 zHQR0Yf~hp6J|XxJZtiYuIHUD&5r1emBVw)uF*B~oek*;<+sIhx!ua5-?Od!Wg^rsyi5zh-fj5kYY>=b}7tVVZDMm$`&qGf)699 zx&`wdeJ>eWwzNm_t};r)$^uFe=>MysbOD$OtcNHAl?NR)K*2u6bspJTR$T5ae*NZL zS#s2rOK9~tddBw(V|B+F%Wt*mq678slOk$^z$6BCxDrPMO|2Uf+X;z7c*+r+<{89 zYEeKFmHD*M^mpC!+wsuf)*Zj3Ki>@;o=THUFhg^4xU0rSLsc7(52iO=D}87q`c1z# zspZwQnf(ranK(0!5k)imA>A7a*>sWeyuTcX7@NTo@EDpv+EYtRN+!7Res z@m52HM*PY2Ds~P^?A!0w{f3jGD)nNu=6RwU43EWcZl*`8S3|-p!)n@^-;bSdUWyvx zKBLF#?!<|wIWdZ&+zMN}*n364)v>$2iY3(iilCNXrT-@s(zE_54vz!nNkB@?h!T2G zYLXCmcpXH!p!sOYTUXO;bva*nnrWp<3%dHiymN9Cbc0yuw_d^s|Dyo7-iPQE>{X#XP8oXfE#@dW)Gfg{pZwuPmR@TgZFBLqj| zK(cTHqam2c^5>DLyW6KIB{FJ#S4W$S4c7I2&xtr;{qhj$&8E(M;jJ*PlXis z7z?JLeYHoov9gIjB`IU^m#`=FGu~V6r!u=6JNOjO;E(l0_9aXl*eMIT`b$ZwWV;e| z{~hYyG)8R5u2LnaM;Mo0bh3jQ!AKi9toFgD%_Kk)z~=oxio~do=`^_nd(gu<8rk` zrzr(sX(-nIn-oX^W?Z+A#35((x$R?>Aj^GpCRHg84k@b+q!0>x><;BX6+l(0L0F@$ z?iHf82^G?gA7rfJ<^p^y>WS~ChhmzokJ`$3X9;z9~{ignjkqiBHKh7oG`R*!0 zm6wr$Tx4j~tu?4i3$!SfyC-DRBGxQ^rA@kuRU^1^#aHdbCtbAit1eoLAN}-?pyF7x z{HEKZeq0OMI!zzjJ|sH27I*#R)TJx*R~_G9;rGX@{s;f{YZTYY8Ye{KwX;UlGUC9& zERmcg6GcYBpgpWaT-Kc8=+giA^-taYj^8S#Vk&k6)#$1B5y{odk8Z1!p|~gXoj3c`+3Y>b6rmz)h$KFlPW2N) z(P)$f#xr#^X|&CKzy^)_uXLEVUQwQ4W*)BWQOEX%>i$9j8>s9eB42gf#P%$Ok4qAX z)?wF^a><6Dw>-Ymi3l-}6tfGtvI@p<|IUO(AX?E>|2hlo9IeEkyS2+WNA?~^_CM42 zL9a3rdq)s5LlI3WTaYB|4I*VJFw1GRGe!49^7)GmMqJZ*t>f+DYw5;URv31r+ZX|b z?h)M>o=T{Kg6%NHjkk(%Rf0<)q4B(6oOAZf-2(%8(YJ=Md9MG8eQKQKV8REMS##dI zt)$Z|feroxC+p+$yBrllqC1znxbWx zk6{4quC3<(yyz(oJ@|eBaM~X6#P$6C9sJoT4c@X7sHjlY!fu&hEJ6lNPDzRcC4;4) zKbDk?9e=`HnwO84%5G%E3AGd}Tuc>Fh=&`CkMIapYtdR|9nuyTFdm|!I@SWyVg8-E z;ip4LaJf2?*K$yYP0|YWOxliZApf`8$yN17Bd5xDlgdY?!Y1yPlCq!_qye7q?kc1u z5c`+20n=d=>6noW_|#L1mDhrj@~`xu+vbJe^Ts2J48`AzYhXfI%%D!biC-#wU`fzXxlX*Zsy^;CViYL7g^xJ?|PjhhMLg>AYF(he)T3SzrqjhB2U9 z$EjSj5c_Vk?-9>iyPq+f9XHbl4-kx#GC~OV9u%n?OAzgt<3^@HW~GYh2^+ew?N<}V zUO+JK^gsS#d?dVi=l}7Km}A7AL84&lQ3}Z@grjzk{fQ}v2UgXj8VbV}c5#*q7{MS>87v9s8o8$Dvr>8d46s|{kmeydd)Xhc*5i&JbU zRH-Pb9E-V~9Pu?fM@*qK(dtV(i_yi;%~ftyA(kSdXcLhlia16@lo3co*;`rT3FOXc zb`)$r`=Nag^?Lg{JaX9_;Gv_pa5$t&V5hPeIDh>u-n!<2zz3h{5+?yKRC-ejc+)L` zKMQ;U`1_mt-K2nov?vWgd-Mx~+3QQy$8$y_#_9HW!B|uYU`6{k?H#5W7J`t4I_{?w zDiehZycSnDJ35MmKXy#<@0C5W;v+7q+=N|@k+&=sjkIW{PS(OB>HTT?t}ZE+o} zHNfeb(wpeu*Cpq+57$ajTlwM6C$CqD&WBIYOc*INrCcXspO8IEeV=8~rso3@yzWD| zO}A?7vudxNbSikhM15QW6p}q2WZv@wwrNT+!Hya7^f-0(7MfLJbdR=((}C{^xUE54#d2T&vh zCJCg~;R#gcdOS6K>wxLRITBFHnjL}4*}&-L)5B-jTPd9h-R!TUqBrQmxGZK&Xb3Xt5oVsd(MK9Q3 zM?Ep6G3LGl1XJ4O4S~ChV?dbbXri4K>evWzmi-)whkuFd3dJ6K-FIDg4!WI;aPbBa zk-Cu;Zrg{+0H5y{(I~?j)sJCVQR5sDYlI(>ykT<8`+Ad_l*(Vqzxr03rB}f>YViwR zFSzItMAaLc?E4VGH>^Oz)xEZH=Jz{}52z4-2yCRR(HH6I7v6s@(VafD!#YnSFH*hP6MNSk1f#U}&0u@N2tBVfQPo!1fnsYQhVC^O(i| ze&l@)`rzX>Fe-9|g(o8x;>qYnrXoduM5H1jqW6OWDUs6EG}l?Jl~Tar*ae8Aiv!-_ z!z(>~?gng6ET43@+@@W20QQ=WF8A(o60ikan|#4CYao$=KEOKgAn;3pKa}j&v#=2& z&2iU8kEl-A!ZoZKsSUY>C=4HIM!+L$K%?SucwTi0#*Y2sW5DW)7N6I0%YK6pR_|U9IR~I+cc|y#Ia6)%P9QM4`sz^*_urha+wtqEauOr4e6D zw;9P7zc{5+k1`gBq=-dK)uxKu&l6tk_@EE|oo#X~37z0}u5ohqR>1;a3=v651QI2W z{HutPBuTPdDSJ?|Iy_cS`Q*9+DUd5QRRX10mS)#ou()`0uN?4hK55dSb;V^nOuF5N z27c{2xVW2y=*~%VQYyki#68?uIXO-uj6uviVY69$GomVPGn00H=wlJpwdpoi*wQscB!8}K?q-0zvp;h7rbf}VR=>WZTBK8A`lzHh!oi& zBPyT?QUDMY5~@EZm>QBS%q*+m(I=0*ldx*}9YeEj!YjV1{dm!M_xI^;R_*j+)y&qo z&l7!-!z<$sxtcyRdsn7l@42Xxa!_3)8UQqU-%2!UZ6RZ`J35WOA7v0Z)<|C;Km|I- z#J@aFAjEZDYUsJzJww4!N3`!p{+aHX93)e?JjZ)3v3XWtb8x*xW&kQc1s1@>{(*@% zCmghB2P;xi)5wnA{fp>zT&!8EmhvbOjYWFm;`6_X7(?2B)qQj`_i^v_RvVD7Y8M>5 z{f|ou+kO=8;osnUpDEdSF>@%oZ6ZZ-PmawB5>PN(0g{v+!^}#`inSOha)B%dyjEbZ zY!}2bZ1M&+AKvF8mASyPC)EIJ-kUaONt95MFdZfWF)PPO7Q{H6hUNmLU-s* zqSYn|)sY#gAnkMA_~x;ymI!gqSRC7;>fmg9xx?e{5uN=$dN!LuRyRNR;4ID5{&QxW zYu8%qaLig1-JUhBmi^*%23aU;l=;ksCpSIQ1E6Hq0SQh3fNvb>5b+wp)8%XhS6OX3 zba>JlkMu}ad`D4TQDTqf===?(Ze?-ltq_h`P_UWxsqWJXmV#8xe=)r<7H5hOL|k?3 zF^+cVdeu$zh{))K6S52&qj)QYA>YSm7nuPSRi-?c+o;lgB?+|;l4I=nV3be_c%;f^ z2g-8aK(j1+yp=VMCa-k|?k*Kegm8~IF5M9k-RREox!u`)m?4QN%?buyjUZ1;vOt-*?08H~sk8T~jytG4*i*LI9lC<*uo zL82-E-~uj16G3F<^nFvBNE0MY^bU*C6@w8JIx_WwZ;X4^xF^`zztept1nnmlRSA6_ z@{p+)pVsk82k%bTZ<=w#-si_u^) z{wl6wWJzS!^xdpP;-+>76$eWmi^4P3?>d?^HV-47%&LrCSGMQq`8WnkL%h-FdqxUP zHde9_EfBKosRZK4#Z$Qbd(|Mc3M$k)mniW;L7AQi%u+fVPuRPQ%`y>_Qw`kLnkPi( zYSvC0o$%4#%dK?#`Fii_v-5(lN|?$v^t<|TKib@wE2X6%bQUB^Z zLzgWKNgbI-O7hFXcq(4PC{-h;HABz)KLe{iAxZ@v8D-ChUi#B}E~B?tLig?$O?Oi0 zLv*?~+v~O+%@Gf56Fs3_n*oLR3t7a-uVKf8RZd&%#GtEhFvYK+fq4Z5e(?MK0HCUV zKLCIVPy$fyBUDDFObqm4m4k_oU1f+&9@@aL;2K$WTst?I(YcrroB;qKOCbj|hL6a? z9iABug(kwH`WqYyOH^Vpxi>?kULYT4E!tr&%(E^(FvmT;a}+9-t_U>*+Y8_TAOlmL$v3AJ zCEP9r03J{8y-!Ni0yPoWq0Oq+kgQ2C#;ycw2rCZeHf^fEx@Ko)NQ9%77nG^4vy9pC zBOLX_5f*R#y0sCccAlf?RJ1KV-rvkG>?f|!71z3{NMZpO`uDKmdY2!!`q$rqS&H^7 z^+PYIm6|JYYestbtNe98Ay5!SAQ9y+W9mMfq;CdP2u8c_E5RnM9x!u_%tZ5k3 zPFuntzyHaCg**V&pT1Wn#P?9FLyr@Q#X&wnJn&W$G9gh&Gfr>$4wX>W`8!jDkwtaT zRLa6lWWtRsq9aQds#^*AAdu+~P>3){*C#|Q%;;D5u5wD{mw3)EtEt^Q;cE>MI^tRO z9W_sF%!#E3fk(q)D|hw=p{D}YT`x$ZddKmh4NH3#KCv_9ny9<5iUy@hkODT1*q^Va zc+xRg3sg@!p#TC90tmy`HqZKkBV)wDXfC`XR}oAA1XQ32vD4laFU8CYnoOVDNn!~Z z6O}F{QizI|vZCw^mvQW2aw7XWnthX4E!0COGjOO+WZYf4#zJ zan4}I7o__2hjR1D3!(UBM=vB1fqDzTt|AFd>cV9i-`SBSBL%pudk2$gBfRRJ3Neoh z#kf-b_V_9=#B6ebHj#KnL8G}Ksu9PCSvJ9AuZpP>?$gb5jjjY(j))$w@GKp!U~7fU zN!bRen=6ObGAp`mMd_ZICUz7BHkjI=p{fsCCC@NeQwMzGghfqAK@lENsO-X|RrZIt z0)+r@dt@OPpE~J)$goglnGzurokouzk+E9TAzCr0^gtX1h|%@1v1_O`en8^LUe&p2 zgxYMXztB}Y&C)gE{Yh1Ylp;3dg##<5%EfKFjipkUqms1zSe=^|{aK<|PW78CA|jzF zQVYyJCTm8VF#Ey>(}_beB^$C*sDleg%C}DT=r`l)T4o*YEi@f$mIx{CvqGk;((kP47Cs0jHPC{F-D4kXz zkqe1pj@z&m_O0SzaxPlN@Wr1``U7E(l;>rt%y6uwjN-doBU{VvMW}2IPS$wzn?zOv_be}S z3T$+DF~n39V-yE$L`lE$07~FW@j^Nd)kc$hujN5NQ6#Fll+rRcq||S3-Jw}UppW~e zJNFV$QnB^1er1JUC(dn1{N+VeBYKjW3PofqIDBBL&cxi;#sE5Fl49*i2W;W6cKVIX z);bseb${NYi>IsZV<<+u6j#660pS(Db3#lt_D-4&6hHMQ10I_~PS@liitEbzUV|Z6 zF%PKQc<`+M%f8J6xk0RD?Kmio;MI9tgb>6dQApwgt0fVr-_eI1R!?16mrHbqhDe=A zQdfNJH8(=-b9|Z(ibMc=aJB1e?KPNbwPR9+}x2kbsQt zEWr>1O)7+-3Cb#-L`CcjWnC!3Wno6X$mo@ll{Lhc`h-f56+jIotMZ}*L5nR8-E~9> zA&4TMaF7L^$jdJVWTZ0W^CRw_4q^?HP;k}*8v(_VL}2fQXCt1lXth?O-LVpl@2HKV z%f~v|8fLL=oZ%8z;|aysQlu1AE?AC=F2)H&9T46XQrSh)f|6LTX<&U4>$t4Ssy}%T zGJ{Q+gcj8WJt&7U3iwhPW`&C7Mmt16FhXge&fZ$@228Fy9If>ex7uih zOGx4mkyMwVvRcdHm^$u)^`m~>|9nwij18CC!w3wBwmdR%LtDTz%nQkD@PsAO7TS?B z;+55K1?Ml$S0aJoNuM&!*1DU%>!ZH!;et>Gr5xI3Qy;TJ*U}^+2C77`qWfNjB`>Ez z>mz6}At;iFSsWwQGeR(kwHxoGC>YU`jlgDkXutOnH*{ZoDI?%o14S*IE~h9cW`I3Q zbUD=#@5-9X#e~4gx{29kWBegUZ_-301r9<+#2iFcNzWM@R8U-xQoU`2V7W2PusN4(`j_Eh*y5CsW=8*NzcIU~4 zooh$Cc}f>&I*btpQ(e*Pn{vMiiJS(vQhgh}0Mm#3vEa__2id+qHWZKtr~R1Cvv2@}($jTjoTXD6MAT>Zi_otBvk#7+|wVC0V7x;T;!bWN7xZX zrYiX%1{O`=3jRJH;p4NFNDqGb4cU8?7ePaR^_-7XR9s&3Caikfkm~h74W6}@4D+Zk zi~@lIWrm4bfo&_gb>^E}>twERQKdUxu*ZS==A6yJO4Z)cJ|c~aADzvJ0k?%lt+bm9 zC~vMgVk^T=^iW?YMf^q~=EwCjNOc1*e7s@fL3yQXYZGtGJWEFyGjLVu98G4#`$NT~ zi0H_~(X|W_=OT!)A3+?|S-RlGf1StHs%I#pMSk&ck|Goq*dhti`py_5uo@Bw1qjQV z8j<{Y-BrhN5GUeaMVY%+>0T+-A)N*(_=q3bS0(o#x8Zy2lwL@Ha{{S8$@VDHJW82+ zoLS>a7WxW5SpDlT-yf=-(f7X4X_d>Rc@tDDUfn`bRA`Df{9rG)Z^h-WiFiIgxf-e5 zxjfpk`m63)3xsGdMIdt$JM>2a_9TqQ&uVE%`G5gWLQG!waa&DvGu<}la=MHsdOzXf zVykR?wjQYP6S%p-im^X4DXut~AuL^fJVB(uwUyPi*f$vmm9B|(Hr6CCWlP~kdZ@Vm zwvW1RhC~$U613VlG}@R=Oq!%$y8Ls*u6VKN+yqFZUkLP1?MUv$5Bg!Mbj9kM=;GWE z?ax?M)$7kUW`rT0+)#DAC&xAusfbBaM3I)9jEIGHgsQ|fA#Ch8>MfTkcGPS-6e2#1 zn3X*y1Y3$HZ&lbP))H}Q8hUCHlVwC|+-z&1fmJOdH1Y<9r)ne!sVZw` z{6ZJ!&ms2=Xmm1_YnbzdOOc2l<4^dXaaHX{jjn#inZz(XHn&ib!X_dW^A=+NJep;r z2-U||T|Fqcxq7QYDcHh^xP+hyg$tJ`(5CGX;#pZ!5^}{88;U!6sw2t$jV9?WITgdWpTu?F06u~#>6G-9TB-AYH9j) z@K(cJvz$k@B@zu^CsiYr*FE5)8m<1oyCSg=tN&ps05lie1{QaV2Z9| z5N~Xz;NB0Uo}{pQp{>3j5jKw>vFLoyl>BY8xqE8GiY%LmR78r12vvV+KSX&>L$W=SnFZT?I?A_$-p}K{=axR}#Ujg&KVaVTQDz7Vbo$;r^gbU6~6a7iLb~ z$AVV*Qf1;QLv+8Vf6lp`!(;Ag%rfkpki{2BjcUqP>&M-*5vQ^T+GE9xy#BTgN{Te^ z%qVGOdfF8GO$#r0F%SFSn{^tFn!1y1;1z4RriFs|mRrY#A4au}Q;oF{&!Q89a!4td zDA1M#B>Z~18OzV|{Yx}mH-9`Q9{B!I;)=$(D+@5dOxZO^Z!X?9v_=z`7u8WqTiBh((AOZl_3;M5gMGBKpNQxFa?k5v-PP{*KS65QASeGWL2$ z;$iUFF4jT}h$(E|0Fa3wN)lS2MWy=QxQwJI&#fvcMJPxPlm@bf#;v7oXsy!)E}x3geUH+7?iVi< zd(YWN?DzS(M~>X+^;FeEoF$?S5h0BAH7&FzWA4I^p#D${9Yr~?`W%QaGULn;woH|fJ3(CZv??NgOCK`)m1kd5gX?_ zRX@7-F*fhMId)5?xyiR-x8<>dqk3g=AmeB;MKmrC$a<_{V?2cGCW@#~;?K9wROksd zB}|p!nQ1uCYsEx?&Fl6-sv0kD(OUkkqX%8bqQ+lXPwesi-+pRh)H!hagvav>lT`9L z0zMpZ)#F%}rYfj2ja*SFRbT`K3A=m+0BRl0`0a8`shAsl=zg&_=%;Ib@;&I;?1-)DyuFgTMSG{v>w@J5TMQ}%=v`!2mv zs|gvN=;$I)b|ePe1U?4rB3?AcSk%^Q8YKlzf^G~IMSqDnPo=`qB-nDjZ@JRGMv{lk zNM0i_d7q&?qlBcK35>v8WN)0Et)&iB)KmreI52QL)40&-T#Z{IBYWy^{#c5&fA6|P z|1Dn6-NQ4)mVn}jO?B0|J3K?#9l%s0PLjNVD+q-7%+oBqI`>=Oz&lXe12H$h|%sW0!NI^vDax0A3 zJtV_PJy8r1AcAjNKR74^H_9+zb=D`WNetKnzBL(09Ffpi)Rq$)L#;v(5~Fprp3^WV z1mjz7v|c2vXt{<;iR{YPQqlFz;3B>I)}w^#uqv3EpH)bq%{D-muF(iQSt(}7gsTuz zeR`{5gs-=cByL~Y>!YGBF0sKRrBD(cX@C=S#`9kBD;#|v)i-#Bb`ch{DmJEcl!?%anIgw)k)hrbKdc?(6!#XMh(0En7ij~$OQL{FqmP4K%3}E3|M>p z;Xn{%-`5h?UPUDmmc&}g=v>)5ytk$kEs#tV*Pn<3)r6<375s>&Pt9~8vU+Da5Wdms zz~0Wl(GXAs*k0-JA_}$f6Ngf*z+v7hgk+^Fw8nL>pVaj?`!+t4C@!)hH*p7I_?|2D zyK2S54W=1iOsI078^WS+E1(y31-J12!ds~qDKs{M5E`Aj=QH+tjA(HuLcEwxT>Kyr zSyLDliK*cA9syDQJc>V1x<47(6+-TmAmN+_!D$TqqgQBW@0*f@wOMnxCo4n|~w)U@$= z>f6<>@a+(@#6+84StE{p$g8+N+F<4P|Xx#IKcwiLP6Ul^)k{>NadKQh$#xXyUw^02j7+0oL8=PB2o^PRVgX5_Zg;J) z$P{RwiH+?AhJDqxI*^iTlf%_2 zH<=JLVpfNYo$u$A5I0aP#7>Pd?g*ZvDqxCY6lM9|`;?N=F+uoMOpmY`|H(qGLUza% zF^k6o!^1VsQjvU?U_?nacBTIaUFoc()W5e9Ta`bj==$K}PjFMH3h8LJhpA97wcn_w zcoHhdy0&Pdz?zheL|3&~RLO}>nDx4i+antv!MNe7k<{*|0>+=P2u?y58x~>48;Ns_I1=ecHIKv55|Plh08tQN7o3oF{8|_p)dDlY4v2$aD5J$j0Y%zaV=4x9+Kh=Lv$k_5a zSr-T{M*fO-o)-?))!+#ms;c1T)+0_{6dPVA$eD1br`bufun%IIyflC*<_hoVe}<{p zQmjBG;&FHo5vzn%CPm7-ZO)&th;gE^<~v_ve5|q)J$U09I6`lFES^iD{`b%FMvLIH z#Nz8=&Fhrzd_NTy4G>iK!qw1aVT|zVL%m=LKk_LPpS}pu=kxK!=sY^dudJ?;AN~tw z735T)G9owOryLuGjOxeX?j3f*KNpdH(fTFB+1Sqiz7E`zjO7G|C`<8agV>>=NvVU5kGjFkx`hjMQTF|AFFw9 zD|*m`or{D{G(vi8pYa)E#mmn#;Ho2bAVro-Uwl_#qNJNcq1sMl7m6!aNEpOj7gGNL zLa2wB-zfTB3-f8i2_iG*)$%QFW8g(qU|MfsMJs zu=+qD_h{7xEuKYe^ll@8fV!+IqpHCbVRcSU*eLHs+ zg$rgu5jF7TbN3YaXHHfP@c_420a3j*ExNPF3>RD2bHpJoz6pvTPyB-JR88%hj!6i1 z5q3viP58M7hk!3c71*B3XJ0Dp{>U!5(dGRS#oi~VdsNQMf8T%jv^#^D$|Q7p1r&wM zga?zB5NQ!+n#UJ*lt5vs=wus9vlg9tK3`(7k05U0UUz7^D;VKT?`%{KbZj`#CvIaS zCh8;8sh6W2TWEsX=Xg2GR*f^(^SM(S%z8Txzuo`&fBL5+45all`O05CDnCnU{K`sS z9W#wa+i*_wW2TKTdrQ z-f}L~=jJ=Afj&Y~0J3OJg*LQex1xgQ^Cc87xA&zdYlw?y)O%Hbnox~Pv)rXKSe4p> z`2E1<9oD!=*qku+@@$b%wLhlQ{r`L~-#r$59dFU=J4Xy3z1V{nS0Y2iHW%XKkE*JX z3y~9i0}Ev__HdC6(vbMuQ08U~yNZqe7=J~lUdxWO#9370qHpH2Ph~2$$ag+!bSgTF zKj3|qt3I1|OwusxHrrsJ4#-3t&4}pg9c8x7v|D(g4dWYLceSZE+MJLAC5ZE|pu0MP z-$;*qF2Oa*CD)kmE&$*2WKPgV$);<%tDnK7UZ7;t$P=8=y?_xPdXhGZJRnS5EOep& zY8h%*cS-8UzdlDJKIT?gA%5!DP#3;Pa>Xj50L1u?=YS>)9$N0Zysa~3-PQm zg;{v7Oe&wlx`_?_-Ubwv5=LX9(B%@T|A+u?s;Wov*4C?Hu%TA1r8utr{q`o&7*iCp z!fJ&dxaar7yu&$|<3&1UTEPlmb}^(9i&gi01^rEF_vYC@f#D{6B^l0gzLis>vAGx z*9Z2>(8({3=U16_4VLT;Df%_`T_Ry25(6W#%Bx-KeEW}em|&3|qi0rcDc<6$l4~FN z0@kAZX$It8odYbY6dFlFB*x$lB9*h#wD&gvH9~_4hR9{%8Jd6&%8^1qja;FP>fRB# z6tN$aa%^s>CdG-!@AekVCGjoUhVf%*%fD$GAGn z_j#op@id!LT$#v+%n*d2OJLudNb&4SE4rON%-mlzBSn0s&_biWu{AV=N&QIYxg0yu z|LH8P)*u8?E@y)Ut62(~h!mYV#gF>!D+?J}fva)Yu!2dj_1U_2rV*XeG0c=g=@OGk zDE-kYF)?7btP-8>(aI)sZ+SlQg-+jk47CwUoDjfbT=tIMrn4%eu_4%d0Cf-@ikiUR$4)D*nKaKTqQ?cT6qNAkv_?Q{@;-@DDQF&begY6hRj zQq9P|wD;{7*=mkXzU5S7VjQdO5_YJMmLHl!rB?VG8*lSHDk8L@C6*$-h!Wo$Ukzk; z=(*on;~mr3`Zo*|h1wNMiFgAAlMvl2kIrLl1a@%d|A`K$$yBH9;wsrSR^9y}IzrGh z+8U%VRJ@Qn7VOYi#vVL1X7}QtuDHM^NR+$4CX-0uFYx*D168EOq05{={1bV#1rxO% znbBSjhhP~RK}xBc38AsDq}?|P@xiV)qylqV{vwAc)zySnisFX*hxTYNe<};6vefX^ z`!VcrLfl|n%c~X_rpXZoys@dE+zK#D482XmCB$E;^I~lT?QWx9`P@WUf4vqB8I>Qj z(?d;^^?P@@I@GE%qiW*7srj@pH+GuT(+}!kwRl}okl_Dg1mDNdVDKov7}7i1yC@_)lu8oCI&TERmXhHSo`_ZG3a#qIqgEj7+~ac_R7KVr)w z{2tTzN_{Ytq@r|nm}upkiFJrHdK2%gO#yz+jN(oJnF_&IB}AhO3{IHCiXJ_=qY1DJ zxuc}%j-(DYH6^a`#QW+ewiHo*-^^n8OSmj&Vrcq+ew5`x{a-ZSxY8;g_D0`pRFmP$ z+E~Po%TyXcOCpNGlhvZWQLRQ_d%d461{tgw3nE1kf!kMWn8aqODBRWI>utBwJi!c2!A*RR)aC`7t6D#E&fUF6DX{Ffc8|^+ZL>nGnbX+>7edj~j2!DZ}^4^8JSl_v~5(J)%ee6?G#%;ni9hM=34}iNeyuDg=hZ%10eh z!De^ath!`u=tnO`Fk#UUceZ0ltar`U_e2z?A;b7avkCobSDHi}u;oQW-{sOosSHHOsRc>G0&fMd5BX$vE9@2fs?cA0( z7uZfPIWwK#l+V_i5k-jCxree+45raNNR!jzdtQ)z6#q;i(X%`aM-#a~%7ggAascWhBC<6^6yyFp@9& zY(8gyw|kGqirTG9;~HUc{D=*%8DAWJ&4fn}6Fpv`iK*&hxy!^GB zq|jGgh&}rd5#4S#+H<jEl{JEjV#?N7h{>WOl2uakug?{14FrzJ5p5m2T^DkVV?Y5(; zQF=_{UXSZRl;xxf3eZ>jp0`|EOA76SY>4R2uFfH*)M*$hVcjCPI5(>}r>hh=s#dJU z2d!K8vce{;DYFrmwJ>O5rFaQtteI>DQ9~4D1wM~o9Ta2;I#pWKJs8v=r5L~w9szl) za!OR7gvO|TL`a6K5Q(eLejlMkjRm5CQ1jMLGi8EC%#=YRiXc;C%k&l%kZ5IyU1(^< zDaDUv>_p>m(?G?V{z8c5z=kJ@KmZYI*IoNe>WhkR#TWIb5?S-F;Sdfhc|{6X+`aeMWD*#0c2(T6cR#R ziAS1gyu#r7QQkpL@GH}}LR3&ZCwj`|Bqq*A#O|wY*Z$KUvs{kW=duK+TacqJi(bbQ zcDa$Iauj2pL>y)R;A$QfVYC*2>Hz@N18r5I#IJgB3W`e#b%L~tb6H~Ual zu1y&S3gK8wWF%$z6(ePIHUBM!NeEY+dMTF3asH!{J>nVPS4)&E!V_!RMq6T)1>gbI z18sFfrs@V-5Z2gAN`w(>o+wTlIkIfgUu9ShBXh9%@IVh}DCz zI@GhbyCe{qFoFn_2yAMe3?qo1wPXecp9>HY*S}5xMWg^)K&8JKjv?FaJ7o3dd-c83B-Dm5>?NvEwPd5QK6jxp?pXuiGXp*2@t8BqMZ&x98^1EMg!S;no)X( z9r0A1ghm-#zoBTH2*@oN>2r`>*g!s*MGl5;ChI+6&5I8XK0-pNRO0e01!g1&t^cr0%s*g$vNziEnxx$Zx}0& zEC9gM4#DDlk3y&rP*eqypa|i!Q$!pzlD+PEF)!Ays!!%2F4nFvNrc!K_8$=+Jk|bOtPIdEp{`KGc z4S(Y*TKiX%g)-Gj2tl^244dV@8P4dsd5H1<(e%>8Gb4Dsj#ueX`M74pg-Y!{&s5_Ll?aq#Ad@JY zh#OD;zLr7}uFYIdv@sf?Wr+I|-^qyy$1&>5X%V(q?Eq{SEhF zTtwdCl`*1?zBAy;3pv3QIPVS8h1@vT5udyLdPqj)db#5Z*3Oh#I8kvAXh>C*r})Ol zL9sgUm_tN`at%($f-@po)z^)dHJWzJzMmp9xQz23LY(#HmQoCFqUwh5*oesvewfEh=z*mw7pq7j(Is{hJN8uqN_toUT^p))T zKjPy2x=T9VG(FzD=GzZka=3ln{UJYuZH=ve^Wno2b9hJ5Y8+&{ftXWY!5;bfA;Aa` zqU@gKtm;owksu3$+8NK?SUvfL8xsl)Q@xdnQR$11Z}w1#hcWE}_Z?;$VszCB6s@x{ z$uj4eqc9J2C-70sL#$>7`VgzB4^dEu_->B8B4f&kw_E+^uopL(XYBmFcvGt%$ABlH zbA|8kuM%H;h&}JR@*+!h@kUn;zTn~t)l8IK-%X;y#a<$%A#(is13$QJSH>3MfhN)_ zl+1HQ5+ z{Hj~kzUp4}5RVC?C*-1g#J>u^nr94&PF_`}a*7aWR~3L$B++~0eZyBo9Edm+mOz%+ zTHuEoKO{8vq#;e|&tdzD z&zSFe&gV2uk;^p><>sWo1#k%PuHh#eIDpQ?L?9MnGGjflaqgP~P~y~GjR&XM>!25O zxnz)2RHPPx3Vu-iYJa&>^@&dBzlGlmpa6gXCcvKw%Pzi~@8%T31%iH$!`giHk}bb# z@zqGf=7ufriQAVKoBe)-cszsYzzVCoimk${_|b21(Y5Gu74k*!_n1Zy_j$4S3O&to z62MvGO>W;PVBZ==L_Fjs)wuN`G{JM_t{1{V5RF@LMZ?w=50WT_>XWl8ITBI_#SM;2 zAY2V6$}TCE8ko>p1-QXmpHNj*8C-=E-4#n{5REc^BGV5*Aky;M^01^RZ^(mMc;*NH ziePnn{zdRtPixuOqShHN#~6l$uQvvJNmgiLW1$%0t+T4?RlWolP>2*4p38t`lvVuO{(gTy$n0w~1FkrL6#KTQv=vja&=fnFOdN4gB0h?~q(BXh9Zxjem{kND5C27qJ2kR~04rFeuU-P)Vlt7OnxXoe zg$Z{dnxW_>!B!vl`)1xi5wuYalU((n@9G7!F}Z2#j{~2?L}Nv}rhmfG&~{89s}NGa z*D}Y+W-L8p0j*|%h6Sbbe3a6Bq-qgR$R}BZ#M!0Hsb#CEkl9K=qNYn5-@8A)3 z(3nx0HDWnDg#ZUV)Eo^!e52bc7F||Di0BICP^>yO({5<<9jC&4x4OqZQ?b=2OQCX# zf@%&zka@OxSAF)Yo%mAitBA*vitA5xScBhnbum3M2g4O->_I&z3*q0l0xFXzuc)?Y zEJANFCJ8biMVjlpKRn_aG-fQ{?D!5|j9KkP`_-8igY#F#)q9;0$6cT_|DYrGU9-$2 zUhp7aQEpKY6hV1Wk*D`Rxao;zE9QA1yds`U>e@%LHpGm@Q@;wBW54ab@0&d+YvkTc zWtt7C7JojrKyRg#1c-tv*1%E3!|vdb4C+}ON3;m(go-x8A_mzQmGZ_YE>Jyc-Cq{& z+*tet&%U_a>f)b%V+)lVXx{pv|84%9)*zD+gf%3-2>LYDp$nXmd6%!_4cfvuYH`LJ zmIy%T6jYRP@5CA~gTv!}$VR6sR;c2tc;!ZuE?O-z2EP{f{eg}qIf+b}^Ui$BkwE>* zxpN2eEr+ibDSkl9*zy!Ry*Q|=y1Nl}k>gG(?8R}JSTrv#D1ow!Q|;=1q~GH*io4&j z1X2=wPT29xnb8pOG(<-LN??2q>XDZWtYOY{5NDS$5(${G$MpZUUEilPN{0>z!AJNVPRJQPzW4s_EKhW{;Mjh zVH3Kmmpm3K(?s4U#^LXQO(S}X%gYl3%v8^ui3jRd-4^W^pT~YWFD`nSRXX4D2OehO zJIKp};{4`CpjZ;J+OiNH2KMWW?nW=q6tJu*9skWH4~cdX;^nZk@Aj^4(hJ>lu)bnTaz!5K`25!c_G46?-{L zCmsXM@FVzP2%8h~1w#rGiLm2784LpHZ7N6%7{DYs92hmIS8d(ZS^e<@J9n==IC8WQ zN|CAXIsWzppx;64Q9hXxh7KJ8=BT*m^19;WllAJ}{oJM@<^bK*0Zs(MQPZ55H6SCh zrXjNm&$@Ws-St9OMJ;~zDtD#=B2KwMHGlMb!CRR{Y@@wlgrN96tf*H8HO)XjG+2$Y z=dhKr0#-yUp_x`^U9G&j`+xzL`-sNXYh*UuAd6Y>F*8;iZXVi(`gn1oLd>r=&2(0Q zpp>EmI0o#oDszEEcWrhi6*G#ixZ_qrMe+D2SZ$lxptu=J3NdTY&ISl!2JjxDgd3sp z*>BNypA$`^8yDpl*-oESIlDQQBq8EV=S+8|)c7lZVt!!7d>qkzp)WEQ$OY!ua%{FC z1G9W)P*rt9WN*d=MT_qYF^y}SJ?G{q1p;m?lo9C$Rfb3ARKlbC;^TEK{J-M0Y0QgN zR&STNFi7N;bVwe%2)hc2M$rs<+=;xSzw>SEs8;QY6~jbtdkgjjA_gjf>ZeoA`xqz_!By+C4Zqd#+sN0n}+U-+hdhxHG-g+Fs)X2OLrN)eH|qfC_<*zK5yhxkH$SksHEm~ak0QG-!2{()O1SvE4 zxt3bNVrxXhjkXZ(n5K3!ga!f&)&UauArSrh^)UC%l=>U}vEz%Q<_QY7nx_zXnG1aJ z5MyK`d(3yfde_YYGq~sZ*)ZJCUd(F#5hbQEY_`hZIR~w?18z@<=&I_mkus$=>MWjC zzh|Bs^~j$~GZ%PulrcC(sv+v*@AYC&X$~qG5v1_`-F7!NiYwX3!B`jwv%LUQQFY?roZX z;gWv@GDQik1GX-`G?pwQVlD4vPGt$>AvT+T$XM6Bf9bT$1wOPDuP6!^?5I~N8=7G? zUWaLvVwOe)$3oMnmAWD-2N6iCWX5th5b>gW#hMK=q1>AtVkolULemMq)2hFe@sq9j zgHB{F#C^5q_uM$Anp{kN*%pW5!es^#H*cH2@%hFywoxwA_{Z(xbV`9@;Pr*E0@gCC z+J8TPy*2Ncge>gS zM82xJ7Qr!h_6UO6fNzo|HLWU5q3^_QSQs-5 zhF;zJ>n;aD=DcDy3M6B_5P`U~TFaW^MVi9**@y!>IL2p8>3Wf3g5axLn8BtN6wA>m zcSdU5!l)D;VvH;li)RCwlvL;S`3SONt8Fux@+z86tqA~>cwxxTA3QC~#X1Zp(h`vH z`YZizhM+{%71+WIQYjya8@5h3FsfNuND(~_OvXej`by_TuDY%=nILZw)~62SdUj_8 zsDW~7E^sxgtLyP;2!ng?I$-MAHe-k@=u&8gZno+yE_r&heRQU6R)R=9HF8qkLvtN2 z-*@;?+E$rOfT?1LJucssj#439)Um?EvqST>{!OJ>X$U$oT`xDw+m#HsAOpE7X^H9j zC~R}dl=x_8F5&3#X6GysMNd<5awUfgOBcE_nQ}X2dU6a|Z?3-&w7{T7(G-{$tk&_6 zhFDAqszQaT64p4#K{G@*Sr=MkVv~c>)u{{E5D{feTB<8QT3NE*)lGCBnM@aKRd_Fo zh^VZ8Pt^5f+!xS;YnWJC1WoeP=)6#^yflR0XbFy#V5COn@e>#GXPCp$BptjlxRb#i zZ*r&04)lrSli)~dJLcXuE zlT=iys@g#eZU#26-Kl)3<(u;8bRUr-CkGkHuLLNV%!$P)0E?VenM>(1WwCT%!Yl_; zDlH2DR3B?i$r8oKj<+1(__PCW=Mp7jT4trUxPx#l6i*gGC^woNs7#}4Zj9Bq2dtT# zz~d005A)sD1e(*#sOEr%snkvgn$2(D}k+iQ>ro zYcpzi2Z1@T5l^0~DV}9l(`X;ss7ADTD}hW(ni%k)ON~xrH79eag_kQ$sSd)31fz0U z0Cg53R{)5vHd#(9KkYzPP9wkAffP~65l40qd?hq=`~D?4KAUOCfruz1_$&tml7TXA zQiO($;gOkiJp9nXLrsF=sY}|yAV#)8vLNjcqjWc97RVMAP^g2jk$VtvgOlB8 zT7|mfAVg>wYs)a{=G_WVz)^9{uO*tMjcTQE5Gtfo%E1;umy{Gh4;IodcU)#t zmwjy3mUXW#6o&`YTv*# zN5=JIM?^=toD^DR47!bDvANzK-2eF$ zdyJO92>`&Im-qN#QB?F~y^@3a2Nuag+JQ<{gau$H5?a%*LtAwaB5cSN2_Y(Wr6%gU z=?+8`sQESnp0_52vx{YPJNMT_CX$@6_hO55#)}R|2052ELnvr#9@C`{9uE{@>!o#| zsDm>L+&(uPEL&Z=KUoJsp+fBM@^84SX+%3B+5=WhIxyLaEQ#4IR4bKvly$-8sTQsn zq*Gy3ll}o45w^s&+SX~aSTF0S(D1-Q>uH}(nFWJ;49=fKq5k@WHqk*aJ?x@_HZs+v z!UZ)=XaqNuQdT-f3nmA64!AW@Al&p^W|f^xqBX5iV!*Rnd3ipg+9uSh<%6p_hhrdF z0FViwh(EI4LhQn0Ktmr+;TNy&cvv(~nFU)q48+oekZj=x?}!LM@;& z%~8A}VYjPjRdmTZX?7hVesf(rnM6`zO()AGKI*939X%={;g?&2AsNutEG7}LMyN1Y z&^py%)uKK%u`&x3!HWV=RaFMtbr9Ei@0f%6IFg!1=uo64lWSJ19TjcU1d*W%iLC5L%xxgMuFm-%=&sSo#@%lvCatudu_ z>S6Qlcl+~mrcLa~3}|#5mcR(8;)Y?w?iW{xZXLwZ#VLzNz4~)1D;yTuA53K$)}bYc ztR$069`FKi4bdGOA%U5`F^fOw4`<%IXFbrU&XcB@T%lQEeY&3$$%AG;DsdfKEEhRz zGC-|WU-0eeMC<80l!e(^dGq`Encw^SS>1^?mcI%8)G{TC<3c0Wh;)QCItXls&wea7 zf)z$of6sc;gx?bujU;H;Wnc64IPi1(B&QPCMZ_Z4W%!YqgB6ZIq(-*MrF()8Pk_KQ zPV}CUsxE3$wYlg}IkY21#FMYxqxxz(`@eyI1LmEZI@RYtpVX*oa4?GOO66043F1L! zHFM}FzTpbx9h{#3Pv2A8fY1hh>1&3&L zR`?+P5WrRuBAWGurs`7DDeihwVfoIA2&M`u&d`VH|AmD}ZS%SAHz%FrB)y9v0;zl( z7V3{1utKfwaf8mktNX)D&{(|8R2{lkZquyGjRwT;KH|)v0^@|25ZhPgJPzTg5^yyq>A{eYmcG-TkE~} z#LrZ(#~h8>z55)Wufm8cr|v}*Pjke^ipJQGk6AXGxj@B;xyDWGMz}If?ar_mgnU;E zUDE_iff1s)1`)}qjWw6atWm_(E;!(W zx)~U?LIAtKYXP8OchhyVZ+)iB_y1Qo)$J)E)$n}SwD6M#001iyf6*lOhLpLHWD%p09#uj5Xd{+0TGGF$y8BL_PI9s?ye_UjgCcv z(GfjNAZm*PWQK9p{yJ+zTGUhqzK8@hTM?k5{XsF~3)fsNIQZ`+qf=b4wJeTzI?vpE zhx7C_ z;Rq}4)mJqdH9F>w{Es$lbv zzhJ=v6`mQ6&mg&X(d+4FdwCYSMhFjWHlEfAT5QBmwPM_yGG=D6qE%i1KpuTv;Ee6& zSMbq;UvY{{ujZ-B%B@M@yXW4`+M7qcQ49aE7Pz@glf@t0k@_wtyb(e%wZnH7^)Y2lC2W15~}{DX(SEW?MwcAue4w%5b&WS3F(Ze zu^RJ1!gcD4(Kr#T=IqS9-KHb??hzWN~D6K#1W6#JY#;I2?wx zc-2pR`o;H(ClZRRQ5_xi{ta@pQ^SH|--bcdvPM}!Q7jq4DwlbXiXT{FET;AInZ`a4 z5nI*WkaH+`O(>TAZ-fePEnVFx69h_;$Ww^c)q`xk(D!@FmL#U8%utYz5&L|t$X9+p z=ZK1?SCRXoZ)Khl@(}Zqv)s0IJkesK#v3KRJ@jK zwHX}bM1TEBF4bbxa#j+u5%3=49>M=>+E($%Zrm|6lwv-mmNUibVmN(51s!2rnFrD= zCtHzw_^Q7teA$fZjfmafZNz0P0~rQ52Ry9ED{OWF1cEU-{KzB$fP}^-gPVbuewa}r zXj(KwPn{HqtqcAMlSb)|o6YWnr4)Zv0eQmqQ~StE4c8h^d$MP>A>xXb)%qvCjpVL# ztLIQudXLfnD@Jq@=UjXp3GZolTrnJj8~m0t)hcY|AEXhzT-q1gnnxZZ8jZyS+wtTc zQ*bwin<4Wl;u`(VN82WP!(9364na%HWSB);p-PjP=p zu^JuP*kUaV5~)98VMkVa-Gr%^dgl>4tJ++iA}?=wq+C3Xq0Oo#b}c^fusf`+t)&*J z43?~9QKujYScUX|39pvBSv;05PIs~R{j|VwdqI@+vYfHaHY%Y|+ZuyiDeufRkJ=BR zy^=yykkSllip{pNZ*4~!v9}xC4uO=y91To_Su1x@7ZzonB);w0_Y(zY>%nFvfkus? zTPJeRy(mWA<4G=@9JLQbuXXRQPj!9g9*LBC#=wz4?3t9o8;y9gRNpNAe9>sXa55?{ zj|_Hd3YnO5R=<|2q_Ay7^n8@lnwHV75FQsN%7&J63ib10B@+rUt{YzJFodgV&Mf7| z1wCj=p~$x(Qe;z@r2vV^k%1bhJk|U6?z)NJWVZC2NbF&t9(XDNG)AOt8f`Iua3SHCog;E4i z#IIaXe`Jb&U}G@8y}f66C69Q!t$HI6o`D8X-Mas&nnX-TwQ2&i^Y&^WSQ#A zC@AefY;2FRijAxgl$b(a#1`2^6pCo91J1hSIDn0zM_YO8E+Y))p%MPfo2io)Mh%LS zcRkc~NdcitO4X)n)3L-J>~S+uZ9jLCIlj8jc<5)biUvm=X+-yX>E4KYLqFSo0UxC5 z(+xw#f`B5@yOo!B81v#bFw}k2VoK}#@(6gJn?lvN_m za1P460r)oSgHzAtHH_kBeX#9ZM)#Z5h^VPe+Y9!_Hdv}<@JVYRo<{xkVi}RGIT_Oz zF%7B1l-d*w2E`?!}{fnW=B#$ z0=v0D@enFP8pnREVe%-HouO+8cSvdR+OK~uLK|f!S4fpcmJuJO@wa;%5 z36{@%>MT7>x%u2Ds<*TTqy?(JoGjJrl>#}{Vd#50Ml=$x?tJfU`5sf)ojE0nLV3?% zL25xNuk1;x80Z3$BoIziDp#fsUAV?!vFEPLdnynTV~ z*}&XM(5TzgX6^uBVru>Bi{GErV1zOf#6!(*_-c2B28hU99`GZ5qnF;8>Z?8qQD55r zikSOmead`KNE%LS1?i+w4L!w7chPAky(4fEf9)mJ{ z0QQ-^M;(sF*0FZ~ZGBU^!n`bxlkf2uUg*q$xq9<>X$i5S9x=y?=mqa{g%};iw65a& zD`7UZ7j>H=zNbgHsP>+I`D5~AIVoxO?ST7l$1tS=vcDjGlL-VQvQQ1Oz~ygf0L-h5 zH^_;0ajYRE9{R@$5r{8*v-J1^=cCj4S%Mccm4*NlPMD)kVpPk~4Lgi1W5s=+I}25m zSUqY@(Rx42;}bP55i1KfxjGpLhbIY?90eXk_a2RI3)YAceDLEkd$ag<@1L-E?|Da| zD=k~Ed8)y>Ocf(3za?rx6QO}`IVvD!U~cHdYMEy*4{MlH&mxJm1SlTs-9RWh43}TA z!8;GQ=Lx1z_e9`|T%p-0i-pK+fu3Ywb9rTeCEZh)ffnpe=72co%j~>aTG7XRKdXti zS>Yg}$73A1veN8i<@zkf(eEKRf= z!s9?L)L~pcY@_U{AaS|XH%?RJFD)Li=gZ}U=Ka(&lOP;5&B*}v4n=xv9OSl8eTOS= z<{QW7yPwF>qanudBJK!X&>M6dpD`vL`#qoEIOluLibq?#jbTr#SjZx6a+`xjYb}wB z#R7`o;Fx-O>q#$`W0OQ9nZq#)@mU~n|NG7+%sfEaqG!WRWK>$&Vf43?MkqdlBFOik zX&=SJR|)U@;lIalMN*Lxa?X!^Rv>m4#HSWP%*FMQw(^Fqm){4+*nXOV{`r?~Mz~TIW6i_9b0g{yC!&YYm<9#Bm`xQDVsjZHU%Tl(~__HNWB!P0@{RhjS#U@%+x0C2fe5nk7@m$y1-SRB0r((mA3*3h?*B#wke(>X*1;phZ=e4*D1NOQEu$DrxLMV5Kk^KHy(ma>=t3wV!d z?8e|KAy9S{v_kX+wooPnb#0?;EJ}$T3(oik8}qwn4ekTncWTDqE5C03sxmh--oJ-- zXgb7(V2z|2^p2!nUe3x<8!(0>NL&{0896#@f^zqCT7^ws;b~NXx9Mx}zQB0Kv zfm3G?P}Z0U6V=uHidQ!*H6Es+_p661MA>6Q$ewZ;5yW)Guo(TApW!rf(~^~pY6GGZ#Q!k{uq&qsu3C?S~+}LKxwJ^LjGP z5t5({ieT5xfXY*R{#>r3mC%&}Qn>l_jjMag(zqhgiiQc)Zp_!?bLy)Hnj4=AOZG)W z?qD2%6bR9R`_-F)=qijjQ4dIiWJQY}Rq>S#9B3YNx}urd<9_1d`yt|tY1rzcmGA;( zoYV@@T+p|iVMHL9U+{2C(Spc4qb2xJBCKniedFl75`EF)e5LRL^_ba@uAqGi8$(J< z6~paOCh>li)>L_%39abJPUHDF38aw2fJdv*IyEr5#Ado7eX|j2P?2ri;v86 zSk?TN39U##e)${|^Yp+X3oIjBW8AoL@N*_6D)Zn(y*begNP{dawA=fG8EPIvGobf2 zjq?>^+C0-Bl7c`+xmkyBIC3W;I^&I@u@p7yaJrIbgd-jDF+$&A;0CQo$_sLChQ#us zFu!!9lmVWRrPrbc0G=$|(U+cet;{t5-aD$`3S?C4{*jK*j~rbBtMy#$4X0?@SW7{( ziyN<4s3a9l)Mx;JlQ;qZV6Bu6MU=pd9VhBdTEzC-!$2g$W*+w1idnG8Yv3EFsZQ#T zGI}J$Q$Jsg!%f}Vv7cq=HO}#xW`wegAmH=$*Ks^@_}fQ6=IKAa!Cs&TH-~Nj(gGlB z1Ub69_IkRxbmHzn^Ypyjb*U;#cz-h#O}O$R=ebB0HH8_*9yL5p=vQVxUft9EE2r3h zVDamVcq&dT1(Y6Q$9=4)6$yaRn@3ewR`c@##wiQ+=jNgJ8|%OX?jM~P&Cy7UDB_)S zI#HY6d~k(%@api`5xuB4;D>oRG_~SF_0<^k0Bfrua{B^_NL6Sjwy^;5$}(}vMl2OA zOladf6v@VP>lJI5db8ww$JtVL04A;lWI=c3hwSgX6vc%a<=YKpmeky@X!h&|MGO z{qU;~D*VOs2j%6LcH`F#ImjzJUuoW1B@by{D072*@u8XC-^~2}V!_|Op-{G7 zlF$@g5Jp8?D;DLmJ7Nme<3vkvmz0quMlCrO*)L>u?${n$Mw&#zg%;d#OvSG38?*Sw z$1EV2LV;PmOS_KlFctqsA1KQh7I>w=8bJ5?en;OQ?FtLfE1me|4PaE~sN9f&$k6l{ z&fb->tLc8nU7)8fO}Ge_X?}t0L&)_V&A$BNFE!}q`2dAwu$=jMRjLb>SUh8 z{RVhn$&r%qjKA&N$M=w33D0*;sRVSo8TzaU^$F4l7Tw=|F#|^c*0wc7G|q0A8*v>3 z5!G@3b2r^Yn#BF1zfvgWP-5gjv(TIP`zw0$P4QxPCW4CYetHbkh}rXuASGlOxCN3S zfCGmYNTgx$Fcn&St>|3e@`gRj1DXtCGv-Dsi?o3T)f=G= z27$XIkFOTIUbLJ;oo|nMcbHHxO``oh=T?Ft8&bfr&@5K+*SSovM|rsJ$TmY1E0<}Y z8X0oY;sOzyS|JdDePD_Pa~aFe0*yt$SM$V%<*TGCjM(!==ZNBH^7)jwpLTlhuT{f$ z@@0pn?|yMOf7Vq5FJFLYR|${*OXTaH6Z`&`&HmFrA~Ju3@w#Dlusg8Y`S$t%sfp0n zU4yiviMV)vVvtwC5QUdhJ_R@$YfGx}+$DS9a#%`i zpO-1YH~n-CMTI)iEZ9AtEc5C$3d6$6!|*+$lS7Ks0L}xO=yY0o_I8Qa;Mk@ol^T8SR@uT)yu~?=UhiU2*F^6di zEke;%RI%|qDL>0B2Hr=1h?V%uG`?{|`as_q9jGd_rdyyaWB5rmNU5c#m1^mz0ahW! zb)|k0{rcw^jvo+s=MfI%bv~P3O><{K2a1%Wkgx>fyFP`-;UBW@AB*e%N#V&xEyKEL zuN47+;_hB)$)ysBgpLZbs1GhKg=s4^g(6ypFBLR;D?%wQ9162Arp?QzwgWlC*}i*p z5EVVD3Q-2OffMTJCiMF)J&R{7kuak2Ju)qi-*HcW{-@3G_3vlA|2i@uFDali8U6E( zpqvmLir2>#Enkr3mjfb4wcB42KmWJJ&;Nqd&#r#TS*@+NxuVcn3kK&}9Zk8Z-kqSdIs-1dx%TR;A$Jj|(Nb1NAR_QAh=-~xMkiTV zdYY%2IWm|ImIyt6UGk6rn~_hn`-Vao$fxLq2({<5Y0%-SRhFfoYiW>5R?hi3(xc7% zAN&%v@YE@~Run?3I*d^arQx#pb@Q4YADKJW5<|wZX^f><qAFHRgAPfx2GRl_OJ1@S^ zl@@d}K(KV9d~@dJ`O4*&(V5#d5J+!%9?BX(%o}nO3y$ZBPPWF(t$kUBE~EN-Akubfu?|bHk=9WoZ&+^V34oNqR7{u#9eNo?vig?0$qOUY1)l#QJvT)yi$<(RUvouZ zmvA&NyG0KRAtF_0v;{kI(wNet7Wn;W`6Y*Nd=_nGEQA}TQQQnP3vJRj0~-QzPfyB6 z`hpsbj_Uio10s;Q;XEG1?Cy(OS#U(52%<6kY$sS>@wDzca^3BE{5JlKY0%*lVuC$V z3SwhCj>3;W;XdAeN!134)vK9xhGIqFjl~c&HPq7KDg>lZv4cmB&`_8(X6i9dBsz$F ze|=HJz|vz-J-&+GC$1;R%uINnQ}@R*7iRIy(=!Xprw*49sb$7e65WhWDPJK1VfCTP z>JTyhxUU7Lh2dhTYDSE&`o!_jZBG=7LGceV(^(-p_ zRja6#PbsVcB;eH3j-zQz^?+`RHGV=7GpFuq=@GdLE_gM4UASSJ2D7NXdH`S|M1kKX zoza1fU=R@jhXS5E5HY*QoBxyr=hf%UNl9fek%JqRm6q)0S1 zc-(j#(dYL>9WQFES6BG|o^q;Lu_7?a1d4~njl>o$ShY)7fWkC(P|T|j@i?yrb1zhZ zmR>WeYZ!4!w5v6VECqHL;+omwy@wVlQC6| zS`nR5e?LtnXD~C4b}U#{O@kF8fxO*_%8o|lVf4+;kWY>*`fn~(JZx+072K0YH|Uld ziq;<$)mR~vCT$_Y9{HZ*JH)0tD#B&)xq-1VdXCz?WaA#I*jHxp0Y{uRE~4x%-2Bs; zrLXQaqM zrJks>-drK~Z+EqY2UlFdaVmS7s;aO`h-zE?@6#5iuZQ?Sy1j5Jj2{|{k5F*U0mcgz zhLqTMH;Y{{DsKjmOq$zQev=#>8=~Zu!T}!#t|Kanzfw3XHYuoyBa#~Xo($`ialKgD zU*J=P6w32%utHJ2DZ*U@k=Kh?aQju!zHndr^i!{Vo@~_$ZcsoH-6#Q7^(G>!*P&@k zHW`n*c;dy`7Rxou#8kBSzD$q%jEBYb8X6wuV#y1$(5RCVQw0LWK)jsVX^#$3S?DcJ zL2e}?Giag3=J$08T@S(~H;gMx9?g%Z0rC=mEN3J~yjYaL~EYEkycdr^#twAx}LQpf28IkBFJBP2&lo`gVJ7?3%t{|Y4trK$>8h{pw` zib1O)#L+9bA!?zH4NGk;#qvd~NNZ?Oht&_VSANz2UZJIT=lH7+598&sZa!;&vrydg z%jTbO!pSbx4zfjXWvVKaWlTQs4d6M%0Z+8)G%PmuDq*UY(NiqMbx0Zd=R=mX!gVbE zsAmYQP$0{BR#Cytu*F;#w(1EJ!olbj9I3>p#XTD|i}2&kTNT$yW9);@zUZ`Yy-j<> zE{wwR6Z_Q(B`Qxy5%ICYSiCR`^8OOu5i0TIQU;3egE*btm}V5kN?_NUJm7XNA{L?L zmPL1=fembxY(fuoUoWS?1Svr=A<%@e^8mk|9rz#c|_^RzpyU;WipF@OT8l?z|Yey97rrs>pA2Duw z#OW{Y@1G!eWeT_c;z~9I3eaNmC)FSw)WiHT7Moi~DvOXN>?|}7Xr9F5jh7x6XM_>3 z!d1D1!jdRyK~Bit@PPLMQ#bIh;9T|BVX$-CYIzY}X-r!4%NRtLh(T%nO;%fcD2vY( zbP5FAY^Awq_o1k6Viw9PTb$E4i*k|BGxRz;s^4Fxu!#r-2I_!JUJXzqI^)gVEjIne zY%Pinh*_vliZ8}dJ1(zntbho?RI)WKy;O+?Oai4Lq7@!>-GnLd!foPMS6X8n*>U4= zp9_145f-1xMkS7#cZsl%A=E7VOr@)Yd;I8}MlMQ%_QMvYNYq=Lf~VdE-CF!%e&!s* zVv|wjY<*I`T4H`-$^DI&_b-0UH~Y5{3SqDUQUgI`5q(3=EAh|(nNru7MKNdvckM-k zh|TDV)uRZ1b=pE=P{O$8nHRqrJ>qTK;Rs95P_Bso#m=^fc&~4+D&Q~+RYT*!?KC!4 z-ORagr|Xy^>f+Ix&T!)#;Jd}i>)CaSUKX38A(j3BKlL&pYZT{Y$xADsB3T6J4zi0Z z3K@cC_^+3QN>^}*i=r)}5HVUBOk-h8+4gwd!nneNzK$N^?v|d(S+8*n;y~2}MYHTL z+OnJoRSBAS>njTe5ol*iDUpzAS_w^IvB~X}y%pHHY;&o892D|Pfs|SSWnGcu=!bJ* zE+Oj*8Us?Qrd9Tez-fzB#~Byx)RI+NBLw$|?reL|0)LN1`^6fI*s%2EPZq_F8!L4AO*JLP7!E4s0=EJwmQm%BK_eigaK_;5T->@gMGS+Hbr&Aq7q5#M{Lo1z;l0;l=rZBGBiV$loJ zR=Y3;XdC|Fb7_DB{^wm(4`tyQMHE*I%4sa=RcIbdRZFUfA|hH`VU8`&KF?_iXM)2Q zC^r{i3NQG4z%D~-MEmh*Z*;;!GrDY4Ut3G2WR_-+O>=VaV1?7^GL$G$7KSB9i(KEa z?#p%=(blY~-YWuy?Z&S`s8xL$i*>W-pP zcpw|hao`pjZ8CL*l5nA0*oi=I-!_X~-)ho_)_uz6i6i_g0_f5dibYYHl0C2UJMoBg z+EpzuI0O;l!V+T~XW?m>7khQc{Fu>Wb(u!_rs< zSv=dD0xPg@B{1OaSKq{%p_UnUz6KG>(UL_Ug#cMVroTl1hT$oin!ZAD6q9rZd}INl ztL1!=I2TLn!0cfw3RE>PZS@J8m}bP+6JhFy^g7m`Q^YT-EIiD}(iK7_CKTG3%O7U4 z_rna;_s7L3W>NNP0@GuPiyxegQlJh~I1zZU&bQeuSMUtTvdj!7jarR;8&l^vhwJ(U zVjbH1N3H{w8Ff63lH5mY}k$AI_KhZ{~h`l)#icN)+`&x_F^hGzu8WJDQvJo z1S+fqG6jJ$W!j+DEn6*Cy+jpSX5A%v^xg}2Y6I8xMVWTJfc2ll83|F*3ZbY{Eg}NK zLRHg${I}xfot9MvqfB58|4uu}1Xe3CYIP<=2_4;Ir$KFg{bynQaGl-nKAtbKEIi1> zbMLCzGC6*{ErZR=Q%8iKSatbPUP|ZA4+SB(rb+yEmzuGcWqAHEf zr|DoC8&n6$*$A%=X8ye%*|8Eh8`G{0W}d@ zLg)Q@th8_mtBPzXMADM6fVz45&0ALo7yZRi4szC2QhAh%W3R3>^9)0~Q<_t4CIjI! zn$RDsb$?iOG_sBxk3cpzVG6Cl?O-_!k=b$=i&w3x`a;W$nqO7k0O`c__=%QP&HE?1 zCybxcJVou1bo(STe+6JWexT+1Us3D(e@8ptVD=a1F|XqUTaFc{$~(rOTYVQ53kPTF zVW^^!$*9v9Wpd@Fci-n9N-3JmFc(`_rp&_@$XF|ak*Y(27vaSR z>Go>l;Hsh;&Gbs&^P-1=jW)@u52M;}A@%}4MnF!9w-_#+D&^`I+83u=W&r#HmPDH* zp+4A{`Sm0ES=@7!lnLu5{P_!mJ3MK<5Y`8xcZT^n=K2h=9KgYPx3psHgA6p)eF-vOdr38?mLBAy1!6=|ABdW(dVYKC;iyOM6wsF zv1hz1g;#pI*S}8_s+6OSx{9eks+l-u!OeIxL(4iMKyad;I~^^H@V6t;rH|6717MUB)qRD>X9sCk~ zgB*z~L|(ak6Y~5F@;fN#n|S+UH2o~}^LMoH@>-kwuC_<*;Fly@zH-$ij@UB-m2H)r z*tV6(&-v4{GYs*OI#^Q#Ae@UXYPH2!>@gfuqS!N64))>DJ4)3NLgE`Ij9SAG&8Gd} z4X>VL7NpUbCwLjS2> zjogRz_{4s^8r(s(xc?>Q`wwyd_|IARqWStv$-#MqEoid1b(p^1y}yuam~O=c8z(*^ z@pD+V+*-u$8kArpsm57GZ`zv-0yc2sHRWP73@C)sDvg+a{X)d5RzF6F73<+wZ$1znHShmtZF(v+FE|l(e<1QsMTgYxbQYof zq@%aUAwA`ME`Q$_cd8rNqK2X7@LGu#p_CF?o#hxK+NoUom*ezy*1ZI>Sqy&!9m{y(@~8lDWt_Zin+ z?AOmS@j9eb{zZwGK?LH3-$8pG_!B%w{O>n-0~h4RnarqVaQ2RN7#A6W51gW0*5NcT zt=O+O*LCJr-W+M@g)(sBMse2nFZFV%%Ib}GM1fQr2V>TuoWjBSC z*^#3|!ho3wl;T`Wp%gIE7_Im1UX)sN0Mh4NXroBsO(_yVOPA%m+?F2Ud6l?+h5mZD zREHwxrdzZ3zi7$Ff2Zm7e~Dskq30>~r=dG5{N>`>gWr+#d8qn3lD>toMV*6AFx;7s<~%`$N_zCjEb#&gHCcR^5qlG62UWM6Jd59EbvQg3#lM3yi4+ucOu6Kpx!F zxk3&#y1p^OUY#zIEvJa$I6Rh-YIDZ1I#`UpxZjrTGnXZ!n$3!0!My5H9~(i5(WH%8M>YFDR+dvuKOi1NTnwP5Ayf(Yp@9 z4qe5(l5%HR%XyTr01v~c_&%1s5MdHiEO}eJZ3Qo{$C(l74Ug7*o89)A zy9jQy79tYFP`gL=lAq7-YVf`E*N{H(3ou*EHCnv=K!Yzo#OJPC2Y^bBe|hu!Uy{5= z{pWvf=I3Xoe#Wwl_lo(VuvejsCIA01m~@Fd{4xOmYojS5MXd|{)4OWNS4`_@`PXt5 z=2_?I=&ZC8WsD+y^Q+^R44SLgoXbzX1I%#5{p7RO^M7;f)v7OAd1v+jfLZ$xAwqA* zViT=T*W2Cql6QV zn?!G{#|N^5q|SI%_Vu;I*FP!r@&BUcGuLlFqCfAxPbxt(81LlkzytjH4)rn)+WH=_ z>I=jw>U>A6KUCxRnsdVTQI8%sx^H65;ptiSea*oKj*C*)0u>-P4OD1I<404UHVR%wGeu7f)taBK-d{$uAa2f;;L$Q z31MbpN4{{rl+aTh8x4Wmto9)>$}(S1dHTC+@HvGseY62Se8ea2eIfrz8>8sJ*(yMgmFv%{X9JaRvkWlu%^{z znL}|v+c%%d3%QQLXPB|xf9@B&QS&H#MnogVSZ4H#t@;H=aDh|jQ?toOPQ#8N2-3Y# zY2-r?B6=%lds84uPQhr0;o)?rFGdg+SqIPagsY9B#6M!Kf(H`-P?v|#JwK7IW%;kZ z8ca=SF0j{;w0=c{mp{X{J~D}0I@d!9G`HzC*Ws{Z-kYxVdMnH9p& zIvArz%5$~&_L=MP3DKLVGhDNdoAFPJJ+Le?AXf+vc!(85-&N@T^b5NAAoBBz`kzB< z*4*j1>5TO2%RK9Ty6tG2W?aInaHIiyYs7T9gu7O~IV4qSt$N@D&;SksG9Q5sOyC8KM-G_4R_zZeGVb9Xq8v9w7r9nBw}$g7+eXh5?f87@ zQ5HXV(`{pLbb>felj9CI4g6cHWibgxT+&f}T!f$<|E(Mq9XK;Kur(x>l@LUibB(k5 zIg6iF9_QK|{(=X^V}wQJPC?4AL)?SfN^{J{+oDrd(xSnrOqehfMW71+nGy*ooCHV3 z$CPYX*wdBZfsatllwd$y@%X>dTCj3brcTA>MH;d!R<5c+jUHcoF7LmN9&wCx>9|<$ zpa;~T?vEb{eSB8^^QYR2|d(&aOQtHqB$MN`x~5P5{A1qcxZvm*T$xeX}iMYBdo%lZ8?!W9P^ zSM@6y6?BA(R{hT%^qP9PHszC>s7Rm)EDT*W)cxm}4}FXEo?k$_zd5oxff_&VA9J1* zQ3Yow+;eANMGS#*13-TW%Yi)N!kTt5+eGy;QF&>oYV z@z+`D7i=>Wb1N%Tg2-^2W$)iUObx~qrYqT3xk@0^qNy?Ui`GQx%86lZsLN64p#~Q$ zqKTq=d;MAxPs}~gP15ZmEU>$%QRK%L>@36c-GNGq^g^{rE|I@Kv2*#aro*F>MZRLV z@*?s4zW?u8MedO6d#e8VW4irdcsyNKl~r=l!kUGlk3!J4;wbpCp$)eZ#H|az-&_rM z*o`(9tPNs~`OlRJUX^eZR2052^)k>$jJBeL;%Ud^c4QI@PF%Supn0aq6YVh16Pd;mqjpwtkm!01wbWoMe{g=VvE{9;H0(rS|gy;6xR8+xskQi{GvkeL$G z{S?zxceayg?X4H&>-x%B72;B5nW4{b{ocCg#p4IZs^n2* zppWkGSCIvQ7($owDwfR>3~3IJTqRX+JWz890Kl8+0aDNu?m=c9cPn$1ThNg?SNSMQ z%O;X}vJ@%ca0WnmXTmV37%^jx8TQlcbAk35+Nx~?B+=Tqn$y5UWs30|9nr#=piz3% z`FTu^I{-kD8&XAG_2|SrnrAi~^wB_(7MVn;lmZ4KdIOkJN$*Y=-5GqY`!u94KmRIk z&bq&vvcyC;c=dfc#avnx5?VO{@Ul_j-i*(7K|2TtRPysd;}af4zP_MFYPG)yy}|Cq zpRqlE2!Oprj*!dpCMkgJrAYS~#_O}`zyH5<*8?|CEMJgCKKBS}$K9=z%X&~NR*jA2 z&{rX;*2rR+6bB5|2W5=#&k=Wi*5-cK^yAkkR8ME&*f{ld%zW0&C!np=60=J8`O0)W z_|2#_Wk;KIER3;Wg!8ViVlJnfvT|uzEXJDN5d(76(Ws%xrOxqLz4Kc!d3XPYwxuzq zzut9*_B>}sY;jU$EpD{LeBk2Xd1});J4al?-moSX%WCHF5FS+Y!m~}pqM1=RGNO7S zHRQ3t3xiOFppX?CQ?p?jMbmYhAH%CqWs(EVFosnl0u@lFjBv=XPbtOpl^qJP@}>d9 zHWCT=<{Hdew7UMv3xK%l_XrpDj5F!buv+IUCZRiS5J8~(%dcSy?bZ-1gcXX|URnjz zKn|3^Ur17gIlF#OsAKy~x0p&~o$jGGM^-ftMa-xfMG4lBmoygT(5rJL^@1*q(B1~^ zJBD{n3*jhC2_xAMjO0<$#7xIx6nH>I21!K!K;-d`0?yVaO=z5}W3eD|@pSQ(@n92-^{AIi+L#v9d-EsL`J!pRCV7$9xV~J7L?Yvj%y?jP zfFi;mh~mh{5w#wu%8t4w04wTPynOf7AM$6;G}eg(0GT-(_^MId@rACJ8Smd>x(*{N zQBeB{h!(W>+fX3fh#(?R`1u5UBgs2QN5gruHP0a_wP$>EtG~D1`aR|~Oe&U`Pt}TW zg#n~;-m4exZWxqp*vfp?J)A<&Si}jFgoyk35IqhDrc^dC;aQ)Nhv{sKv4mh(3K{_F zAL*LqM7v?f$_!Ak=s9fuVD7*nMo+ppFCy0~N-;*QywQ0W&KK-)Fy~=>eG}>tJFoV; z4!z@oZxg?PxkCGdc&MBGj^BX2@Zi6TNreQx$sW~jGDh#!I^m*PcAPS6DAlk80w|kTLl!VP>vFG5f;2F zSH*Ooj7wtzCscqJ^D*c$!To%Y%9-!0Hs0_n5a=_XYF8r(R7cSJm_*UA1vwDKRKVG@ z(Jh#Crpq|9vp=W64_z7%uddbD_<2`;0Kk#jpe{oz9(t-im&SuVFGmtS#^GYU48x!l zttdy8VcivVweH%UJZ_8~YzqIVQY96=!syMpjR8l@@?M?)&8@*fm(n~I)p}MXAt#Uv z2ZPDpkc?S={1BNZ`TZwa-r>x{)`UTz79+9vsI?E6QcB?^C$#&}83V&pHNeawT68SJ z@Urjvdro)ZY&Gg787wkum$NU^I#+IT5A%-2KHj{gZheSBWH6nhE;^|&b{Y4j{S^WL z*!qUfnEQHY;ft1iQFFbJT!~qSWdlHN_Zn#Cj2V?NNcB*`=ZpP`qu3}x^Hq=i`5@8I zqIxouv@F7rj}0CN(3evnNi{X>q;PTr80kw9ojQ8(=9>*yr=DtGPFKYv7g`wt1u|u0 zwW4f=6(kgm3tnOBhH+JVt5xN)j_aiE&oJnSQN^ytJ+?9;Vu7CVC}b8*R67-xNVqEb z9Bo!8Rwi?S8Vr8VeU%^w31Z^rYp@<6&#%?_{wFzJe;0rIsQLOSIhy7eWs3%5m2r_0 z$xDgvm-wtBoYnvL2&vJrKy*$0mSP>D;;&&Dw6=s+C5c*2wQMcJ+Jv7YWi*Uk!`O?# zxHnKQ$9=Ulb9ub>@)S5hUrSyguR#xz`eL#DHOojCH9t`^Rl_H9Rzz!*s=m=2PfQTg zm~UwwMvZ_5klOi%U(MYA)Z6878~q!f*{D|`%1N3*`_-DHdvj1uP7cs`WK6Ng10_)? zFui5RV3ktql0Yr^CK^py(Xf>xpq2wbb869ngPOE$(}||Vl3mYYW(h?u25PV@{rG#J zh6WWAsWPGmxmH+06WKNnOG$XTlC42`%F?)lapF4pcYp60Oz)zee}r)Rj*u_R>!~PR znk74w7MUO`1|0n3I*yCQHEh^U!=`pTXs;+02DBi?SSzI^rO-gV^rI&YhON5R)>#1e zQO%a&Tw@}%*W(d&8)c0is?ej!yx}|e92Qmxm)ozYma7n1R6re~hH+1hnNorU*FqP0)S<;UFVXOX}O^U^)7Ua^VSh|IYu7vtI{=2S`VBNFdaWb65 z>GFXtG4F9B4wR_{p1=&$b^Hk9k1vEXwing`$dVVXO7E)Z3*;X3q-PW$_>uvSYGf5Mk}edFtyShC@0bSx6r zTM_6)9429I&Fq*ta#%v~gs*yEns?b(R4S~~fqKTti+h@<>1MSTYOjLk_fMMcYEqr- z`W4DC5I=?Z7C=vJRks4Gcz_*qp*{b@@AgK%D?=*iITlJYEJ&#f{ZM|<^4C*gHgPvS z?gvf2dsQ`}73icCVJ_Ir#>D_%`l7 zL>-m34*WhI-lr6wX)1-*$fP`uXxxaal5!Wu6Ku8oY#f_BvSi6#A_5}-2CW-fnN%p+ z@NuH5W`U)!C|6`f3{WBUlP|82C#VtnFbWDAexTX96tE-CA88UqtVRi_YJf%8Ax8SP?5)jFJm^@KQhf$dUZ*z=535KOV>lYTy|sWypu*qof?SVLzYf zE9h(Je*BtPexO>vZ^@tkJI*}C9ZznggbPZ-ORf@n6P24N?;>-vz~~_+Ug?YlIvO@Q zJ{pP>wL7L=@sevcIm+iF9B;EG$Nhu3)g0?#D_H)?9yZ2O`y#9*xKw~q{a&S)d({P%D!h0t2xc9l!`vybmyS z#v^LOBVC!NYqX<+Fc=YXMD&4~&sF_^DiSu(q_6_86D|T1D{la!;!aMgjd#g&$FkaZ zbF%9Px+qpX-$i9bx$3?I-&pclVkL?jzXxU(xrHqI+wtd=7vB9-F;glra=nPC$Q?J& zl#lULZt4Qt@8RYv^MC$DuG<$2{q(K4L9%d8kruO7_yvw*&hu+0eg9SW`}K!rynUow zuNLciHH}x&qd~)r6xERdfOSJu-4$H*s$V~Q8GDLB7OQ?P4<%|ezR0sQt?hQ+@t5@WPM#{P}>zs+#;?M>v)p8(qM6MMd?aeh!OFSI!XqtQg;Q8Qqka5Vh> zj*X82F{mh_BRQ4glPm;bwVH{D!Iya=92`ux+HJj*B5552mmC6-j=O{x6xx#&!>@0P zoJbXw6&#=0HQ_!=B=u&7SA-uU@(}r~zaF=7lxJ5P-LR4%MU^;!-4{S! z!kV4W?0WGEIfJf7GuOg>A@vjCxF~B$yc$g960+WfBx>bVfM{qPdSm;PxlCPhE2&3o zZldy_NmXa59h)hJG5@a5@zR%gVTO%xln%ZH`C!5MXo2~P$Y_`59!cQqxsFzZT@C*} z=Ie`D8?$sg(h-K%jvpSp&84(@a%k9WPz!wYVx($u~^Z$`1QE^f9GBQ<}eAI>OpB?>5YmvUrmbw*gEAN|zOJlzgLP zb;BJ*E8eTd&h_%tY#r=$8g|Proo6Jq) zzG$-VMAR;yu?2d#Etj!@2I;^IqkEd0llHEq<3h_Tog1%04dN6YRDG0~4OESYuu)Yi zn1He&UK|mdJwO36MTauHL?)u%ocm37VR`~4BNQ}mv8pB|aJ1|(mv zg<8ylmHuY+EK3KCMAj&6q%o>@L=tcFW>~V297QJ58S)0J7+&jz%5pUw7mkoemqp45aK?l}Ns=6>uha+`feW6UHC!ZY~@*;u&u+ROvlx z8!cufTgm+jvz~P8TebF^2yP;u$76{pcAh5a*G--GSCRL_`uR}5)uiz-^U;MKXBI9B z(a`~buj%cVe68<4@cHbRqcWnQt>@<99$!m3ZXD-W4q3#ln+Knv|D>i zI8NVS2|dxDYc0R}tt61d@>bay1o8KexgQZH?hq)%40%aTpe$^tSQIW&5Qvb*p<6gF z+ifE8$Sb6EU=HLWSvSTbx#d(kf=SVWLTqk0|1vGXHcATfJsxyoe|Ez$coH)!-9d!8 z%tGx5aVQeaSw#*w0I0%^zFl$DHr`lzSIa>{k);DQs(E@d<3xWIEV4J}l}mtDl%jaP z)?Z9Fo5mvC9$#;u362qSau5+nNlF=T3^+qzzzdez)04ee!CJ!9FEhuX+Fl}3>{JAo znb%?{NVkZ%V5MEx(uOOlQh?o{deIrNz=-0`VczvCWHBN%NBGA7gvQT#h02NbA$VFZPw|}s7$aTAU z`~dd=eF;5FB+Ny~Q4@Z6j?i)#eW5+%oCm5HO-}Tck6@2OYt-0>wZ&WYw-Ol*`yzt% z$A*B8kWo}8UeRcJwV@9?Bwi^DOh83ju6VMEMJASEq}OcB!QCs~$E-adm6j8FC}CXa zL>1av{EDUjcodD<6f%k;K9_nwCLp3zI1Z^sl)QnIRRVK{G*~`Qtuy_=Kn5*XZCdG% zR9($-sAdq^C-~v(tQD0qtx)3=4WgBH%LHcde^VhAg`irI=`Q0@2EU*k?0nJmfmVZ4 z%`h+6g4rgbidh(XgK4#!9kgmJ$|atvwQejOiA2<~VvaG_mmAW^C7vKDkd9hgUifiK zm}g|_9ZLGk%#57p5T(1j%j1!E$VNQHpJQ;|8x#;vv4U|P%#1z2sINB9i-F|O0(aClQ(RV0d5(NaiNx;Tni$I|{0yt_|Hb z6ZF%Hiw{L+R3ng9OfhhS;RmQi*Uf#2Nk8%qTA)=2?D7fY*I{e%Ye?rEP%Z6T=FY=x zYf&IY{0Oh~z{6%)g`_fSE|8)Ycm3NsSId|gN%!Sks}&)BUPf2@X@uUMLf?wN!qJ=N zzefDWJKM$spVdt^PCQX#%8=20IkNiLJQlWI>C`r?VLDz^zsHPs-1C>a=u=6L3l9WQ zkuFEn=uooyWWovE10B8Nx>#C0GHDcn*`TSHh)fB$u)X6>w=sS%#})QoTHXSC!>F?x z94C5)XkD$z1w4^n(wEtVtZpbMR1N2y{-)~Zn1RnlMq;C(aXrcr4fGWk1OT?)AdYG|`ePUF#axlDQ11-uX1erD&vTWnS6TxU8IPG;^~f&_|oAQX9D=#|bN(tDFgTpete-e-$mV29IW@s0VJo zUl29kE79=ug|kQp&uT;y8><%F5c3Jq zV_B_=CJbk*6P#pjrsoDybGNFRIb{$(G>eEYD$Isl!3G6z#S`GGH9^++W2&*5feaKY zkSPMDgbhhB`|(b8`jID7ZCs|t*_DCcg|gQN$cyk27OWP4rGjSS;)=+q3Bs-rD*uyz zm>=daqD7CGLw8dMc_1}(chHgMSn`Ir z!p>q?(Z^kAZf3fF@OLz=VI34G27zGQq4ZYO2zoI@*eWrtCC)s70$B3n^Jy(+pgs7_5l3lDOCfO@m6R#nqoyUUb%;=YJ#r0NW) zb=r_07mB!QFq{4&Hr76VoH>U6WRq8UX! zFw?5gE@m$PnDtn5ucz63Fj>%WY00J2EPRBFTKc4EKrETBC-W0EPKDl3^XH{rEAe~q zGx#l)I}!F)VK1e1WU-gn4Q5bVNohI_mZjOIS$1`06CcRK3^n?p z!8coSdnduR}wc)0^dE_EL7eU0j)vcOwDSY9!bzQ#DL%J{FyWyN{@skLLR6 zm(6{?neBX4woJ#Xoj6&K1~cM2Iw}BfH>~wJO`K@t`!BVa(dOf8{Plw9fpY;^^~bhLifFG&&mtOyc8&rF2#v0EDcFO4VLva={a&fWOyq88tDr&hw_;~B9ua$@b}G!yOC?qT)0y*-NYA!llwX@DfUp(cQ={O@>x=Ryv-W5@w+d(mN`u zZ-&8l>f72y*ya#B5CNjHpjN19qml;a<^ZJX+63i8R0_Lsk!3beF%_~gRtUjdPH+0B zmajAqaS#H<8^9C;A-j2O5ItfSgVK%G)M1*D0rZ?`U07y0+mCX zs2)7=HqBZKxBgR!Eb!69%(su~oFC0{|3Jva>*^vYYCsQ0xLtSfCk`G#jzGo4BR!P| zg1sRD%eql6Opam6+d)uquoayn;i<4eSZg&Gqh*!U^%9|#_LSi`LXHEi2#RNI&mW^Z zvqKGzAP`xcr9`DxXx3fz+b46}Ke^BI?iv{jfkwgUscU4b9TR|;H<)9hO@`ohv92&+s8Qg?60<0@DYRB$gMe;}{SX4by+BZO}9PFR<#8dHm1ors7- zSTbO>0+}MOgl++`n>bUHPGC`FDdZ_IqPx;Fbkz{|vdCFRp5{6qBE3L*3Rrw;$!Mj) zDWS@UnUx^^;^C-g=uIJa7++<7g1<(}53TQULt8W5%!1(s^xXYD60gN%b!y3K3>KRj z<)u*gc^7@Zo9?GKzb?H?WR0h0bUPj|hzBn4QRF4#=VGtmHkd1@5ox(A-m(Z7WO2CQ z-~pmK*oJUmfj}j%nmy&5V6GJzgoB8I+aB48O1w`Q8eT zl%Y~o*?!uQF?Ug4KB>9JT*q;Qqgr&2;x-+n7h-Z(S3#$w$7dwfc-EMgm<}n8U3_Xsg*8kR zI8^<>*+KNURy?uvK%p|Vj*HIJk;>yQ^!WzaltplXW(x(vMrlS<(u^=v29sJ`Y&8@S zshk?Xup~P>T{r1PrcyK;G#nIc0y7gcUIXU_XDkZ_X`WB_#>3~8r)r~+V(VA+QVr3( zVh2vG1hXRr+|hu@48*%fp#u3TT$RFdXS%5@CKtm%@g{-0h4xok?l*CL5xu^EAQ#ns z9lARVM=bN3Qbx&uAmI3T8Ug(f9;Q;(1O+BKU;+coPIS1FSb02%P(WGF(KnMA6J;Yn zx5mB81|Of1yI4h`u+~5J?>~A-l5!Bu<|*ZRYWet9;=VY$!q#2Ly3?(}U5AgL)O>me zvtx~)kDA!eQ$g)W_&~$CS=<{sFKQaMdgUEo`^0OQXw)$kI;!=iKJSij6tn=Tcf|Fo z>wP}v-O(RB7GHha7M{f-LgZt^gx75GMTObGn-|6UBh;ee%3Ye(Ben7k1>B+RLixjV zpm6}1vXY#ci603dkxn3kR8H!n7WABKxPPI!KOvrouC@To+{?YOrW-`Iz#IkU6DDO) zE5Sf@?~4lO1#$Ew+7rYYgWCasFh~{|$cDokTMw6^bL{{j5xXMdF2^PNCFfPyBgHjF z9yQG%DvAOUe_QQZu&@x6)PDO9#RTC}38dzX^AVOp_=2_{55mCK2jlrh>xdEIDBQ&m zlgy3G()hv!Ze-gR-sPAYjb~K59c9?@%wCj5RD2`;ZwRIT@i}a>F0@lg#-$*VxM*hg@woG^C2_*jU#+!Gjlsp zt-|g((EY~u@0D8BC4)vOf+<;z9-t?uNDF7EjrbUpP7p0{0DG6828Zik-f7P-h(2X5 z$IM*recnx1L?TGBO6G|Mg^877ZbFrB<=7!@h!ffuQLSn1G>u3+Gw!mlSJu985ddI3 zph-oXH}+ljEyp9|Kncz=K#nFDJh*k-avs7A6VRGdkoIQC4lD>NsCF$WtWvYwUfYi+ zah8pDx{Q6RMQ|!VC7weYn=d7O6$&_s8B1V^A(nSrZTl)xa}Xd#B?&?sP(N$Q9pm zRsPzCX3u5%^NVQT!E)aNak&p`eyaL}BzDphkHMf&vC>P|q6`gkH6-vT_Q!C1l;KwF zQQCX7i<_8(n2%ifM9x>RUj&0-Scp2K=Ifw1mVPY9L-wbfFXg`$bBU^cZ%uTG838y< zn8nD#Wy#?Q{ z2KC>g9UwE7r)prvEp3%;LZ(P2W)v&E22M6n8_1QJ5U&SeVl)wPN41l}jkNEiwNNS_ zz_8+O`p6}eAmu6CAX-?ZW1^~xnyA;emyocRkV&*e3IjP!rIUvOcYeA;RF(sYaEfS9 zF6ULkRl>8#2-f;FjDaw61!8Lm8{DN|h#2x~B!cxWx0mE1SCN3>;FgGh+e7WUt6vV1 zo-5|Kq#cw`5r=E3zfoQ@6|Iq8E9Ei~0&&>Vrnm^1jY z{_y`Jr`iQ(%fo#RzQ7+h)qBKM-*waK^wsCNw9+fYh;7x$kyu$lBg*!Eddj*pL(c;2J@ORu_AToUc-yFurdC`wG z_5bSR!c)yYAM8`&g^0I1?GaHQFBAt}i!7uCAz0|+vwvI4tkTyiv;^w8HDZ%lS49XN zQadgHH65`92um)o>R;9Mr;xtGJMY;PExKaPpHvx0{TEU+Xx3|7JocSunPQJ}y7-w= znmR*X%Eb)iS{O>m4u_ngl7NH3^Y|CFM%dE@$zd;=&DvVkqdKeZ^L(Nc(9X0Ek$yJY z`EH&Kq9YC*`y0&!Hi=RzwS1b4KSvZGh-MRZvevDk9JBwVpblb4uN%;OtTq$S2 zh{(4zT@ZO!$WquVtUD4vVSC`Y4$Ugt>nszcHL}DNpw6}OXeXl=XZNH=5z%2l!p9cH z_Mk6D_Ye&^kSdL9Y+u*oiGM!uyn25Om_uo^5+)KGW&q2sTIa6!BnGwuHsut~fyi>S zlnH4g;yCEzLLEAo-%6RMmd|$-QYfWJq09v*BE`LlSX4u;Lt4Rsh+1=Q}*61Q@PN^XEjDmAFb5N zXDY4nawPQz#DQ42_8?}lrv{^_ZP3+veUIGbS{K#}K*$n%gnk8ISqI`%QiDXGx;ib99_odDAiA4S)QJ5)fWd+sLI+0)wM#0omR3~e^nh{S}(R5-Z738ba69(hPZCtHY{lC7meMaK9nC|6ABJbbQt#@rn z{QQc2ziIUNiq2nvn){{(cQf@3Kk@Vn|84D_w4>PTzkqN^UPTYsEqcoBJa0&cAStJV? z?SK;i09(!J()wGZ`J4K)sME$Y0t=E=60#$G)L&i61fT)^VvKXy2XU47+RVFb;<0IQ&g z{BZ?+96o#kXA4t4Fd-IIOYsfJhK}(zdy@#O^gUpczjU>9F{8+`15Nc3qP6fNy_7R|!Sqo;dM3#!%B`slo*5*DL~Zs<7ZOlXAtKme z&U3|P(Op|D7f!(O0D08D+(+NddOjJRe+$*Y5Xpqwg&I_+2TiLs;H}Q67-R5CD815w zXO8no0CCUYcO`!t&Uw`*_Vrtwp>dJ3MDEOw@3S$47QB_1sn`pw!?KWaX-~@)?o8=G zf&D%XPS-w*8E}`bpvnup{L_ES!clFiBB^S9D0J@v;OV?R4HY2PQW$xeZZh>37kWwj z|Nam2a8lx$9 z)u-lq|135SdC<-{0RYJFFnOwV{)Tz@ZTISkVboTg%!IRQUNmaFnWkM!7Ca-cjnVK0 z2dxCcj;;^eO5m`APg$pf;c38j3C|nb zRV|)BmeO~Lhg`R~)JVdjcYr$wSp*^&zACTR$AVG(q7h;cZ*HeYK%{^@EEMmcj7Ad5 ztlB&PxVm=p|NF-rkHyc8=}pYS%ll8jw#=yYz*0Us4GpLz;B%;x2!otLhgk_w|+}g@hP~iF5!8;owB|pmfx#TCbw-NfP&^H+Fnwrw$(HQ^oP<@X&Sc4oQyJbV5wpL~Us87o^N*Id^ zDAkdoLH~+$DIuU<1$A7?@}pWkRecdOhE2BFY)`JRXB#4tLRaW3LnWq0R(=*U8vJb1 zQv!M1^)Bm`1s8H_d*0r|7XqcXOS)|GEZP{#n@hS@HxG@I6F+ z%S5@qMd)C}!uy7594Z+;1Cj}NrK2!V9X$Mm(8OIbAO$H!>!KA(0qbZ{OrdiW`pAqr z=daS_mHzgXKG=}vozvwwa1asEIbPrZTR^10+cp3AJ%29y?Um*0uTpYDva}DdTO}j2 zZUei@QR#kt``ju0=pKkb%LZ*C;Xq!;N?dHEN~3)PaB%NKC1r4cchE6lpp!m=EvVLXSsGFGmSoO{a>^o?`nVBf>$UHHtsNJvG@coIO(J zhVO4HkohelzeNSVUj=m(jTS(c|CF_WA+eVy1L8m8y;~>;xC;k-r~q$X`1**+!5&}9 z_bBruM9(Fxc>JoWfPH_fz;)gU_fO;;dCXux006HCun0ow_CSqnN4%6G6MctH8$uT1 zp|8mV+w4&Zs~B0OkeMy)<@$I+>!5;=7wKP0e~0xWCS9++s6IoZXN!gz9N`NgYJzYP zKVxHTbj0?pgLDY!u-0NQT7LaXvA;s}4l3rG&B;z5CVC8OD!9#pgSeg4z&uez<0lLf zKmsLzDHUVnyz?4dn0Cu3k!aXRsJ^}(aal{BOB7H}7{2>?yqa_Lh4vusKZWxJEMJ-! z03e=l-o?y_BtG{wVytIS^1JfXS6!X+_kZj0|NLJ}o8!aMc10WfmLddyEPoMZI9-Gt zoZrXM@qzkBCW1~_5QT$TRyJo)=-70F3zI}wK8j~&ecI=M63%^uzV>d zKTl<%;YnR7ITBjoiOBa~@C`ymarL)-_>1LDh)@@_2s4}l@#|PS8s9!hyxk<;4vE+v z`g2w&paw6xb|G9j|3MIK&etwabba*x=%=g zA0}m`uOI4umX}IORb1*$*E);K#jQ7vxm=+jM8qR4DjiUgdhWx!nkV^#ytB;3BdVp; z=oy9Sm~+k__GjF2;M+viQ2GVZ{FYgI}QnYJ?Tb#b=LqcF{Vj3o+w)kQF607XI={)BBs`<3$iPfV1@K zXSz)t5rRTmF5wf`A`adMeQKd*@Gl-Bj+9wNCAz3GV6l+{AW3Ok8*7JW=A#1$sTbdI zq0fhNzdqfFPNDy`^B&=l6ipP*!|p|Md(rIkTh_grSKC;@%&Bnea5eQ1?OT7|J7H*B zEFq5l_?V8{^PHcD5)`>K(-?!KQeVpCR9O_qyY^1+V5FlFot)fxE69Yy_e_Wm zxh4@>C>=b1WMLvJj)yyqgNF^#JNxZ-mKSo~Z(8rqUaIL7U;XAagH7}eFPxFTs}f>b zKv3h-GsKF$K5#u+f`e*RpuEi2!8pIEtI(bhMZ3>XL^ZKRJW}C&;muaNhaAevj>W)k zAO)m1wjy|wmLj}Ld%A6xJ0N@5s#mg7LIpVhgDJzr(x~aEnnewVem!yP@_qmSD)Le- z3z9NiEoTPTMJF^w_^4!2af(>+>YYZb0+CdO8IBxGY#@p^0EM#QSD6N5Jd#0$Woc*Z zJr1FYH7dk2`k}+8um&wMNf#~Ki$Wl8In9x!-p0}B~>000%x{>9@+$oM)gM6@EhA{{31Z=L6PcS`)$ew|Kl~L`bhyCHsutOs$dn1JeGD?_AeAmh_Kn=**F3;J7WYy7^NSXb zi@28nLaS9~5s_J}%Xh{?L?31j7Zx}S7hxq9Qj3Zuto1sOoJOZJsRm(nt4`nP`2C~; zqW+HI8&$!+2NpoF)}=&cT`i+fV8DeljTw;wQX2o8rxdDCO6!qE=o0>gN**w|%#*C?*aE%fa zKSRu#N!&if10TgQ>O@i0jb#@MU1LA0F-}>kLd1R!m|<06(6Ra8^uam^9AcYrBE?=9 zAy7jP7NJ;BGtopl+3BNe;CyXb6#+5yho=-7@|d{ex=T4^a}nN9bE(u+MH<8!3_%i* zhTfg6*n(Ch`tL6S4(mXSiyn_}iY7LSB7d`PCv;rcZ7Hgl&%B2>x8m=c?bCSe@mw3<}^v|*3RfNF|C7iK9+a4p%u$l$83=8EPN;d6lwak0W|Oz7;* zWQp1xp;IfyPlg%PVG{8yhping7(yGM9+P8(YdlXb5}rfJ27N`vRo@xPqDCG#l1TK_ z*jtm}P${6vAQ@7qP2*4+T(CGdND7@+&tpo4d?^UJ7(-P`1JDh2@RZK|ddxB8NOOOs zo$Bu&oLG?*4M>!hrcUV>P%Xs&by5f7jDPS0lN^OUu8G?dEimPKFbeGk(MT~hLC)(m zCmS--n6vG?>xY@pfX?MYBNr(nif-r$mZd$vHQ&q6)Hyzz{rp2W4Y?lvVd639DaZpH zRq*S`(mfyAhZFK3Pg$|BFzI3bF9Sqc;clmi2Tq z-QH~Cpz5TegOJx4qzuTXd}x(?=qcz6Dt*cMGO$5!M4^+bCAH!Vk`xjZS+N{2riFDo z*`B#sXdyX3r~C-S!3b5G5aHB7iKA&>FDsF#akK}o9QUAS@1}|DS zYfoQVnrSfeWBrBlyPK(HL=zDwIt*pB`cQvVBT|Y;;KYGKbFQ0}Zk$A=D52@mjH(d6 zA0fdf9Ka6n&B~NW$@spCcb|(FsyR4~IhTn7{o{#AaECw=n!5WY1C+j_sf_xcUqgkw zFZAtB)0&AYXDkF%m2PE0`>n{Uh<8XWC+J_UMd4eaJ(Ro}<6gu6O@9+QnNc|S(`0%k_9G(Cjd#o$ubZ8z$2LT0#^pLR234O3DVXxUbIq*D3uZX z%~Mo|fk-K$&xeS<9K?06tiQuYiuS(IgIuM9w#LfYffR@?rFc*&J;=4vT8@QWr7_)6 zPt^+=jIPx6#$@VR<{6YLjJRK6J@lKM@`=cdI=Km3rH^DU z`3fTUpeC3LCCA&};VCoxs6&+~JUS$vAA?3;=E#Y_k?SZBp->Gi+DSL!QxIq!)LGhC zaA~Mc;zFU4HH6)mGFTM)K!TOkd`Q_6p6|ZhmLs;c_-M|QQFK<*)Yu)yL5@f;idGq0 z{9ij1cK9*5I>g;id~kPC6ne9m3c9(}yoEMz9q@)X1!dlJ_I{=EfRx%^F11awn&~li zKQQc~1>Bld>!OIJ1x7@vNOaP*j1z>qxC<>kqfNCaVga<=uTKB?o<{ql@I0+2wrWRD z^&rIidAgW+T300sXiu4O>o8|L#I@=HFQax zxOL}jX(=nJrkYLYkQ>t0r3L#D={_UkRE8tvR2_z(ZY-=uQA#NyQjMBmH+I(Vu!?_A zik4rzTby>a)XzUC3O8OLn}J9H1vm~=jlv^0Ff=h^)fe3y{mRv{i8!_%yr>vgJ<5)S z<4Tl51ymOrOvAyHo+scQqi$RRlN2;YAoihw%&^T({M-pM7}u~TsK!dnSSCkHhZ)HT zqtVcQ-B6U`IESP4Jl~SB3Y242v8L?m;>mzuBGUzSvd$pA5JpU+ube@ufzcjCG8W4+M8bihlqgV;2?S`el%-61j2#7ZRwQi0E|rv7{FwwfTCD zj;J0^JUu=2#k-4hZ?5&V?z``K#9*IH_yJ)4ppH5*+E^Ja=}@S2JFC^IGptL>gb+N) z#N1+@u6tdGq^7^#wI{rmIkE6Y3lQ5{cjNgVH>SoJj>}TFwe<0H-=BBoW*1~Y{UWjS zD2_<9BGC*kBR4WP=De8qM9nDf;}@JpN-kw1LVgqd9Q37>pK$z-s~q*?BEeqb9xC~9 zZSNsKTZSZ^+;`<=eO7J?cOYSztlq~G1FJU)*#L!*!i+Y}1<_8B&5IkO)8eNCn%qJx z+0nxpU*g{x`5ja%nkQ##Rj0UUuxBuht?KXoD^rLUuF6idEFQV9%^Y&Bl9iPN8V1*( zF`nm%qK6Vw(px2dO^eU|`z!cn7zWCKEpG})5C=Jss8Ao!ATX9$5)y=pTN-rwZMV%U z0!gqSf`vaAixlAk+Y~D_Q48myMg4|X&&qF6)h`GWVPkvT`$n6#YBb`-JBs=zxkkRJ zmXlG;h!scE!H=>-IqH#ksEJQYo|n0v$LnfVoC=+C;>;)TsroE!SNrLdXhcviD;bpW zTPcZrErXgOReV+{tOQNpI;o?IDolhLB#whTioJ#SS@K@QrTh_B9r0Au$fq2Tk0sm% zh5I4v_@7i-LwG4N`Kl;IX;g{WCg3SuwrE&$f10QbjGF&82=di??n+F_q=O~nH?*n9 zA^AWWt^EIAV!uM~<3Na2=~5+sAq90;)7V61S)l}@SyUnhR?%EMBa0@xuul43#onGofNgB;>0SqLz-4Hj#bk z@}UnYMT+!h`6D96NWBOxp6vgUvuRirW?HJznxf-7s%mlUwY!xQBzIO&W!LBn;N;Cct`mFC9fh-3{DGxlQ*#q#O~zWtJqlGI8OztBhm z{f{ofZF=*snwP z%TVWjau&@-17G%2`O@58OSc|uL!D|7@8uyI7cZKissWP#oiTz+lYg{!$-d1)b6FV@rzSlEHXY1u|n~#qLg@E zuT{}{wa~fQlWe(Y%;Ux_c1;!{79k=AM?iyEDkiEw@vlENJ!O6y+41u4KNWpE5XZYh zb@|E1A+E6O3!h;JY_r# z|KJidH1Q=der1@YQ|~c;vpj$|#&jp?sC3zQA^oG+EBHf&$SRaOTr69kgsoPe4;|lM zQ6@Yh$8xdbFwAV{sEA?^Dzs{22JK{H#r2{KbMRMT;mHL6Z~@lv1tUc6o*q{n%(+b} zAliiza^0bU6r~WDG}ov&tzb>Z;7Y*5EPaL^%gSg4;yLyfZ_x`r*dGHv6PPK>VGYl^ zz=%+@62vNj%1=;>)bDZy6}>`7j9Bn6)l6rOQIJoneeQKHRpUH- z2@$5+H6uo7hEiPbw#LQ&et$lQx%d0G->i4=P^+oCj~>0N>Ko%Q7TobsTC3*NULpRL z&+Y5KK(`(Y>kHH`QSC}2>lsjw212O=xc7k#u|*3obYWsweY zg(#E`{DkL6t#Es^P!{hW^$WK=cqT1C1g_sg1#1Zf4z4n*rV^{@}16h zvCHs~1eUlN)_rjb(>4$Q$_=1L;9(}5 zjX1Q^64&1{_w5&GVLIOF2FuHeEDgbM^>ECMlSAP~+hbl-I}wF^uu{}qe8L9nu4nZ= zg!f_8Og^9-_(#4<<_Ft$()TSpsX9 ziYWZ?6e6r(6=u4>fC=@Sh9hLDMN{nqU2!clsKgtAy1(fx8Ho z@4^r=F!r!?L@Jp`pP^MSQ%a{y8!ERAGT`Z}1zBod`{7yEM=z_&QdAVh)U`}2{M2GN z#W103K_*nmHd11#xJ|p7^@_yXGfT*u4q0QdSFqS7WbteIPOQSjZ_22XH`MQ_fU-jK zgwZOsj&C_vv|EL;B3`tdn^*Jg`{MVFy`!sU5KTp^4>B65l_0sTEqmo)Rok_0?>}FN zE9!pphs1FsJRZae*Ckz+h9J@RA{^o{OQ!@gW6)=1wkbMLY$m$%8&WLYU{@bX0g-02 zY<>OW;?V?y_XBn&pBdlPZVb>-+dE#WQ2!a3pcqm@4qgZgc`eri(xZyi@in#Wph`4k zzBy9w#iDGW;a&%Y8LQE#cXyn7m_hQ>?OJdg2$U0mAlQM8&DPkpIH&2KlcGG=C?Bvl z5zmu>`}zRKS>6m>6?ou8mJpc83c6+@4KHgfGbQ^Rh!b?=EUa|G(60N*kw(o#RHT@ z%g$H$!*mxxO7)E&uOh&xhn(?UKiD4sy)gp6WybZdm~p*(1z-P9Vxrw3>#5`SUBW(+ z=f*zaXT>(_OeR`et@N0bn^I)qiLfqTv39NDq<1?Bmh^;7b>SFvR*$ZDp#mhxrq#kF z1Qi5*7X>7;95!pN<|t>r-w%mHr+&X!biqwHc;mUQ-_KMmWJzL85`52gpqS0Suj$=j<2-dj*7^ zA{|4`EOl$UePu&gFz!KC^Z*Sg#6uIw2IWoE*3nYcAE=~f zYcWdGNkG6i#R;|Qkxi}UCU?-co)S(_)nM0wOF8Z_B=e`IC+H2b z=!-?)yuvfO_)=FHS5c3<~v==_8* zr$g-b{s4BmX(Qr6W>~8hz@T*K3;F4P)3|Ckv2~-CUCo|1N!M_7z%XpECTMA(c zp$i#7ST3|duR~xAbzM(HLF{Ng!fTy_K8swzPLUP8#Wu4Gk<)<)sHO`R1UX3_Wa&RX z(235^Bof#rsC*D6w!{AI)JSP;8aQR$ppm*kax{Y3f_!mFjxd9MikgahJjgq;jW2@} zk*oz%C{dUR&w(fYKEPv{YOya@%28uXSD1k`0EbC%Y&V$k0s4zWMRYq?H9uR5svDRF zfyA_a_;BFI?*`mG9OxAQQ(zLss|CP?NesyRx4C>?1 zDQexVH`Mi9dBmW3%dKCcPf!cYjuAJW>zZ&=PY~*8{ABozit0wu}b(WdGx&`EXS zdZ=gueKTY{Q;6}w-J5B+h_aR&KMcMNy<>3B3#E^wHke1mJspz$J8=X8x!TlQ$eufF8}dYIx!9X=1Fnb5p0jDwBo7gYiOR} zF5Nik3#`v&xmM%H6QMY@anF0nWt%qe)6BS@Va3M@rGSe}D*#i4T{mk8g8nA^9?yMx zrnG$Hq!Lalmk3~J7E}~Z7=KpN!ATi1Nwy^LG2mKSm%^rI;QPP|uyMO)6< zL{EUpbMtKD@&yy%&h(K30?CD=aE@q-N`Q{qESeRIAq|)rUkLA^W&;YO%3n;WtnV!v zy250QR88z<@>*xLU zHvbN{>aNHCWzK(@kMn@yxfQK_mfTL`aq?BqxnjqXfRziiLSHB2wCkqDdAD3`*3mkn zm9Tg545%YwzzL&0006A5MB_``Kh>g2p-iZy_%-y$ySRAgR~dtZBDrI6o~kQOXc2V` zdX0!43T5L9ry&H&<4Ez6P=#}2Sg3w3>vc$%QqG|qPz*#im?aKPG5H$dDF*A-Oey90 zw4)pg&JS=Pi_M{{&bccFBcEFQ5D`NE`<2m&-B@{pa`%TCe(^-fb?!!v$nR?HQ_JWnO*Z#^ z<(x-PH$LA4OA2hJh=o=y+?_7cOqT22HO*Mqkt|#d$Q$vf6!Zw@M7ytGXCu>xEu&MF zamzMSO7Ms;5*Fuj9&Pgn`k57uAQ2ua_!k#ReD3=Z%rthWR;T=EwP+dX&S|?k^$Z29 z&}3i^oWadfT=Es;3N5z~w;a8gR&XT-{_L}%GO6Hqnq5cDd>|chDBlMsTP$DRbaAklyv7Br zl_1(&YdQviAP>37OTN7i8TI3vCzM`~y~gIM1>cea?-NBct7+RdYp2WgZ!^zo4y;P5 zz&&2mIs}^zns6UKUVw1c z;TA$AFmpaXu)_`+YNp2zC{AlMS+;-@M3YH z7Ln%HbDz(1RY&3vY+SUsbPXSHIcERq6MmO#R-1W}_Fb2}+qAp}sVK&*XN*nsl6(vM zA=8gg=_^9<5@d+X%?)p&h01c-Fd(e6eoxQ8znU4cE-lR>4@lBxnKmd&QCMaaF&_G` z*MMy+PGLqEZ)k_P4rYtHfC*{A+~ojE9hc|?h1@I(cTJxa%_V6^UM5{_^gvhrQ|+qQ z3y{uRd~xt&iJ#GA`H#inYGn^V5Q87&0;1tUcaMme{}Y`p5*(Vm>7fxUU68bO#TkOn z@Aq%cA=pIl%{L1!Y;4`dhbk7QDgXd=W&McG1f>EL?FiU&PH*AqUkUnKv`Hz0rZzyxcr*2W z_TJ#E?-Me}gP!Nf3z(6;=wg~`{REUToC-%xh*w~U&?I#+1i^@QT;6DEP?a~bpd>z5vVAD~8 zS^Ju>KUtCh0O>N-8rXZ`s3R#lH?BU@B-gL`J-E;jUc#G$kF&j}!%81m7lu`nt!5#zAiS+mX^W#&?^{5^dmAHmMys8Fsz~FsD1w^dA>;APl>A(;_2m%-Qu20?@;T!EX<9iaH?V0s8FJi zPcC^!7gNFt4OX6{e1Jo(zyc}(&_d}?m#fGr=jlL&ERl^qX|Qg17@pn_7HvZ}YZ5SU z@JS;_;!&5vNQ%t+$#LO-uU$ihTi;XOwdmatb3rrdd<;bj(xs}PB2Ri28Q6W#p4pPW`o$&x_Wf`<|K)4Nh=@<%-!(E4eh+#b9!C%% z<8$jdd6PH?p4yqRTAvUgc z&i}&i*RuGhMW98oO~c=)f5z2D-i>4j;9g`02S{54j_XAkt|jL+#0WBQw#elMo_ z$)!uet?X}#r|b=4!k|clJO*M(E&aD(F3GEuCFwvRB^~5MPgW;JM^`{{34^Ry6!!GX zK8FOr20(NKZ`4J7O`36un-IU0=`bq>Ib#Xo&#=Cs^)G7iwc=mUIuFtz*RBI$b}N>e zE2R})$gH0ir-T*yeCTslxy9q7tDBBD(X2KjSSbbeEQ%r`+Owc)M0f0F<*S1cMKKw| zNO-6&%NAvB4P*!qJ8}LZz^yX5pSJoL6TMz#}S_O6ENGu?z{*e-6+1x#gPS47HN{`~C~A>?v=0iy9dbDI%hq()wB_ zs?e*2+U5%kyHJbPizSW~t018POBD z$x_d43S#dHIV4Vu^?3#eXMKyVKoc;A4jn8Z3?h#Wz+0-BDp5}lxa9( z5@i$gHw87|r&M2`0({}7QRxS6PQ2tKDTGuPEKobTQKN1sqvHDP8d>}PG&&XEV*-WL zG`su(1N4F&6p^S>;VR3gExKIQnusrS6>oA9NnEtk?GdkG5ZrKXkFZGwx%#8QgH4e= z8H7jA0C*PoDzGKtYT|RLx_+Pd0=LttRwj7oO3XD`UB>5v_P*3SbMg86buNL zfh!7Dwq!UVaN%fy^;dL^LFz^%1X4F9N!>`@=%+4M!(!qKcQ0GD7LWMFPq(CMb*P$< zRhYQbdCuwcQ8QmHv_4S-!H|WSZ-ZV4Vv8v>&yZIs!qp@0fIT9S!3a;;j<{j+eP|xK zF+GcWmhJ;I>|6B^Bd7SGJ@tNyWyIzme0*kkK77){6FW}4Dmt}R0MhKY>LI!>qF~<2^3zM+s~24Bu6ZLG+<{Um{6~tK>r-KtdeYw@?Sc za%-)3qzuM5sk6un)I{M3Uj%kRCmR(gAMX3dqZ1)Wr564;2R@KZu^}MA4+WlnV5@z| z)8A1Dgjft5=ju)+mJ*t5&#fT$laa7Lmo$-kT#Rrvo|qsY4ZnWNgjJlWrW6rrgYSDg zC`w$+Gzt-PF=HA%fC7XIU!36^5%k_c|0D z@JtAUTW^AIkyMft{q@tGR0W@Hi6R`~;{Asor?@)ho<*YiWtSJ`gbjgVaWu}InVZ{_ zh*H{xP{&+%*jDW+A5h)TU+LQMJz)n_aY2zn96Pe_2q;vk0=%?L3Qi|a1_xZ%1aQX? zrQD(m;}RcU*_)|WJ&6m1mUY|-4O_JvuLmggF_^QO>X z&oj2SaXSfDA6r+LhN>=dreM!`nCQX}!&Zn0n~TNVgHEHcB_Wp1)GbZC^e=g2MqxH^ zjpZiGwxTYX(oH*mLg374pX=i6PlnqvfgjUz9rzlaX9F9+c?IVkYF^`bRNxMQUuI>P z3!E(YpwI7MD6)L(F|JMAbdzj1QcAPY)vLE*Xd+DLM*SmH4X$^8PYbcA_$V#nB}}$( zK3T#~9xOj#=D0~1RsE&vyy1R-xij8svCoU)L(CR`FUO1QZ%h6N=?d$kB8XmLI-$`wn0`vv=c;(JjjwM>^S&>%X|<#!p;Yj0zWS|(idVXEsz zhz}fGg_)bU#!gj;#l=frd%C}^7|V>5Io-E38wokw73`|;yP|L7f71;{kgmcCw|z+> zBukr^Oe->Y6c?p1x>7sTy>ia?$B`U&^2vgvjw%O2y)x}GmB_h%-zg?~4Kb-Y z3t>*{1hT*$l#qH<$R>V~Qjy1tYjKWZ-;I)cBzD-5AJXz0x8jPO_sd5_AGspM)RXgL ztHVuGdS&A=1(Pk-Qa>Ut&;=H5k4e%B)fHRh0GqqrvN>a5J&@rh>z?6hVr%{Hc|!3Q zLjB^89!n;aLar^-+tKK)cvpLYJda9oxkPB?-vqcBUIgOSGNSbMNDY z%n_HH%^6`jQ0pCa-y?2IKGvO>E~3F*L(Pvrq6^>SXCBT4RDwBVDRS{1XQrn{Dv7hi zN^xMA$+K^E{1iP@SBFVcYUWKM6}{1)j&F72aJH`!TlGXHv!k%Q(KG^3nygVLA#3uV9k*3Fqc#Mz|UT`lcr8Z(nC{2H(=z_nfX&U2> zgMV&T&}7|*RLXl0QG0Pugo^1Inv+<`$l#(LflJQ@JXDi0@J{6OZJ~a;<<@G_#aA6S zo!`X&df=;V*wTGuV{R+_*Q93q1q@OIS>&rFZf46zR4pU7KG={UgcQ5$+rf>uZ2n1^ zeg9F&0`LYFN1Z8R3XdzX0A%@O7T=$#B<90c9Xh8{Vfs*jH#tTuEX;P{&9q>wiHb8j z{2lgoH{I(8)z7==V}wx=A_@I_3`9R)nqK}^af{d&Ifw``kg59L*@tUhoU1r@5mT9h zT?|t!C<#)aLMRJW#S~&sXrHwWQu+zr2O<(=B_d`8G8sYedU>L$_xaT1msB1i57DFv7*mM_&)EfDw(c`&D^z*yE*5kg?Gmj7ALqB zbzXy76&yiLP%NA=qHyF$$B0sFM55r?s2#{sh&zdAZI@3EP$NH!9aX8ACDo^gASbg8 zM*=uSK?+YrJJ6^I?ycq)y6BzFi?Uk|vVnp|E@^ssQRn_qOvVK$w90~2NGd-A()8!) z#Eq*cMWlXai0}^LMjtb3Q)LP`6l&lokz$?u6y$siFd&hgub)O&hY{kkdYVH2Q#=5V)KU+LcdegFG7XWX)tb(zE zKNBQ};b%8??&4;uw>4R&oA3lhH&X0b31_x{;|Knxe|_FfpRVJ7v_jR@=oWkZ!QRgk zzN7j$5VH`KIH7lP;h4oehvq5W=Me4}@l^6x@Ropt&tgY9QM!HYl(Ho~M*Np0E;(L; z*+E|s_Ui(2M4<2&Ofn>=O}c2ZX(YWLQ_@uK*-Xi!-*J~X+`^^65*rM!OoziG!xiD~ zSB6V;$jet7d6{E-i0rZI^%V~+TEhcSuI3HD5`z$wX6zoO;i?wdo(eIirz!oOk>5Hstryq>eps1N2mozDebG?27>c&|Tb_NKd&xDW2$z<$ z13s?-`(>C;HUnoS)u{M!L1)?Gy;-asQa+bNaI(C^VyvgeLk|{Ux`rJiKY^gY+2WF zWE8vs?e0axw)LxMCA;J7i*vt~_FG421v%h(ozH%{kz9}Gvd;$mHsIo<{|Czk!v@dv z0|*Roj0=$=PNYcC+sQ2`RSLm4Nkj!)aFX+=wv=!M5`{jzmb9cqFj$zu7jz0c(m9F@ zVvMz{NSZ*bKEfSxBri~-H+P)K?Ie@;tbAKY#|EQ}Ih5e8IE)bjZmi8?02(FMh>t;MPwb!jxzclQ%s3p z7{iXDy`T2t2hkPB3}mXFZc?GF=1(Q}7&j}KZas+WMv2`U5iw_MtE=Y_N&wqd;CO}s z*a2QP@^5%P*T~vDwk{s0&tui@G4ER>T*FW@cMIU9^e4H%1V~_c-KzmVZs?`2TLwJE za4*YgC96C`jmK5*tY1|~O|NPz*g+;<<9&Df@Rq4=}d!C?Yb@YGx5sO_M(jxrF64_E#L*9%_sorl>(I{DQt9- z@zTXflC6T7J$o^x=abNSyFKqR37A~X3f%a!u&lFe@{D+<4EF;oM>=F(!gQkAYl#a) zG#IZcQA-F*Stvmhwrf}m#>jwYpd8MC7@)y>&iUW4kGMMy&Zi{y0u7rorjS874w5YN z@uUr70VjH}#svt|vum5mG(nL)Kseda3ki*;J5!}MBln5@b}si%f7N&$dpki3N+ui# z()?|B*(lc3UmsPBa3!=;2_>4#HV8oQ^b^NAz30YMJI1@+$^+c)0eubnZ!;5 z?ounAGk$$m{PuZ%|M(wHODtVjR6|u$?3?yCh$x-XMOe?bfjyTXk}J%yb;jAROwg#k znYR!T$S?9|pm~fWEnx*zji|@AQP38|R513&dN5Ucl81#Ofh4fU+mh>>y$?q&^f#kk~7O_GL4iO9w{izf=bLdv*89pgYmp9*{T&tV3F$$G|f?#BcQgjJd-k%}ux*=}A3^S~-XxMCOHZc!v+TwC15OahcL~9*z z)3F=StC>V<>61btObnj=cQgJwExoe{{*FJy4?#BF?|DYuuKICu<)+*W11F9CZYH$} z2k5`HxdhS~gr2Vk{4|C;8IGamefAIea^W9k`xXVIo{~Pt$-z?}t6XsYztFx8-OHFp zp9pyg_7J^R>t7)gvWwd{is3YF76>XrGzKQ^kRH$NborrmtB^>L4<0JhOwO((7hnSd zcv5f?kyC1wawRxQ=uHN4v5hhkIU}VadvW~}@)gYM8{<1F&u=|=LVW&Tq0b9Ty0&W!m4*}G!ZjYaYQ~|>`MtbmI-!LK!dwxqOHFKc8^`` zU5`FQQVm5!QN($>M^_0V)m%Y4Y$c*KH@B}9czPe;zlpSfc7z1WfOQ0%n>^NTgMsB# zS%=EjbgPS31gnjje2H4VrnryyZq^KhwnAOXHelDzK-}(0ht}YKaS7Gp?}0YZGq@Cq z7@{n5Puv5!yng%EZHUNAE@^I(_P{LX6>bCwi$WSO6n9X-Q(y)+?ed`rpp#Wz;7fA+ zNo}Bz7~h~M-QSa1uk1u7{7H&Yut!yuA2Vn~rZSFI2!be*tCa6c|Ben9&5 z1NiU!sk%_Ezjd0k*YONdEt1 z_)_$NY0OQAe*wq$;2*=>%YdVLZa0-o1yQ5tS|7q)DXSul7&s+OaFh9|jg}dP=_->B zmXS#&Vf!(32o8^-;H8kOqnJ^Tot4B8t)XFsf{wHQvxqKs9h>3tv1YXmV(DC$%SX({ z%BI9MO4AUvpe>%}Co`-zI^_}8yi}*?vUta0a9q68J`uQC3zffOHEe3;)_@P_#2#;S z8;XeTMpn2G5$*OrsQ=&N`j=GGREz%l1St_nlymDaxtA<~-tRG)S{1>iU=xJ*#tM~*jUP*a)L^#qC6UJnc(E2|(c`glk}U0=E+6+bFj;26Jx+(aPqMo_mKm7q#t!~Lh|kgpMi zdU2~2P1y0vb}70o9`$1GaStoPgIk1OM2OS%^va`!3IQ=HxY%E_=*>2vt0I4<6EC(J zZ!bh2BHBbG6^e+seU~G4lP{(c_HrR9f!;tMSzI{^zI8aZ1DF8Qp|5!)a1q$6e1TzJ z%s7IiwyPE(U^5pdDx=V+33wB51#Fd(2wT0YSIhlH%fAr6kHee-XZ4|a$SF}MRj`cs z5Smg9>JVt(pgWFgzo^YW;rJ~1amYflcq6EHrQ;qfLLl@0iW+$N-^~wK>60arGSvlP zwi8HAQ<_q_N5sKtxVax^ZSr8msA4kZG{(3H)WAKcEMgWp<|Cmw5C(t->rz9upwmf@ zb5*3(u7H$)gnGQimBq;m9RRiw zfq#M-PBp#0(%N)fYtQvE3cxAgG{b$Q9+yMDWJ~-bgT7L3^8J`$N0qe25t<2}A+HOz zQvMEkhyH6Y2S9gIrt}OstH9AQkQLmFOwmDDq{68_ZgA#f%fk%9lul>fnX9yQNZx8P zgEyu~xKU#Iu6qOgV5F^H##4n{GD9W?lo(NEF6ux-hpx8vIR_%^EtHjM^xvs@y{&sm z>#cG&)VeDg)>YYvUms>{@MAInO+d20)F4$2CpAZd$V*_)`??GYi)hJ^Q3S5R!`fA- z-O%a^*F9Pu8qp$lg=TR@6<7>=hZpQ-M%zxXXd#vem5AS5@7TyN7EJpHr#8CCY3^rg;Sc~$=5M=wCDxuh>%smBOOVNEF9{)|i0RYN`OmS-yc{fpC?2Vf*0NEikI;DsEDI*on|1%#CvU z>fIM#8Mp>afl(+AwcwQcoQi(^kze|60@7osS^9eEB`{>^p+QE?<>W(5(7y;?Rcg}rFk2{=xn z=F&`@Mt+e!Li@%rlIkytq77mEFlURXXiOclY3%Q^0@>`zU~zuA+dV=q_JL(G3gwe_ zyNyEfbie*s`liiq$logFzrzS{Eu97Yeqq^9;)Itu1+)A+0WJPswui(^ z;VcRbw=Hzp)3uf?sNN9Plrw02`GRS4#AHs~NpZ!Y53B9zFf~ZQ*j-I6KgitarX3MC zZf;Q~D&3@Dgt0O3P)@OgIG6a}>Cf;NQvc$a9bYd{aJR#74gw#;B(*X=@@hu{Z((^W z!=)hU2{Pq4rIMC%j0LF$sboSpDWz_=8(m0e-J@5nn=cUm?OEBv0yP5h1M5UAG%;*h z@$sKN+aD&D`6g5ZEtb7lPALt|yfLn#uvPvwHbX>;i2V@}h5HEiER3$sa&xYt(^cv$ zIL9KsxCGdMl;weejF#20SGmnxTxJYp$6>%Fu=;+%UbOjn+WhrG^*g@rB21u$m&$Te z4aw@#!^^n%J#vW^ga}f{kWvQAD zRHjg{@F5dR;(%mIBL~WslN_oLS?RsJJp$>YJ3_S-+{oK#}iZW#>EZM6>K@1}jdW($} zjcP>#V;1h#@ri3k8{<1{P>hJ;!YvA?t5+ML4rklNlOt6`TcK0;Vyt5TX)!{KCjxzl zh(1I_5fS@~n$!i`w`2w`05+HoCUtPN%A(jW2Bt6Npi1F}`dcrc~_DiHnbH-&yk} zb$GScvj_pCqX0A7YqKwBZgtU-v&_Ci^FG%F-tpkDHCCwEYA5(r!asu@idQ{K7b(wh{wQG|Lhui{nUUJkTkH(Z>Z2Qb+%v3b9_4DM z4yo3p$0b+!-BLd-hm!`Gz!p7yR@XcvMu=Q!@DwI3qD48`K_RCl1tMdIo7raw+pu32 zYNbEq*|xYo@TFZ+4gU`wPcsgeiTVYqz9*Z1ZJx*xV$vtJpc#VSRZ@FzwoMWhsQAXBy8Xm+AE zA3a{Aj{0H|bWyQFntdoxGFo08E_z0$Qtl(xJao@KOi6Xgh#J4D`oVv}bnx{cizLc1 zLr9?pVacipUCPH3Kp*-W(}ZFPkMKPGWqS0$gn|?T3n&f}M9RC9Yq$h}O%m{-uxMuy z=))99ZZ@L{m{MO5N%&5&Sz)_qXCcsI1=m_K;J_#5#L?1iTO8T6BV1 zg=T1Op}hxlF8PX-Z-H~kd;>rrIY<|X;QyM;f=o=-6Z9`QW)8*>d&<>PMP{H94Z55d z=ZDNhypbz#2W%bl%A2~Opi+aVb1H_!HedtmE*vpv+E86 z?*E4tlpi;_?rM%2hm0~(84<_Gh}5qXzAtjV*lSXRno_)B&uC;))rn}K7d446klh9N zU(5^<7T@8{i3|+BcmN_IRET_)AJ*p*CqzbjocTB?HReTDx&<%k=z9@wMk~>M3Tn!L zoeaW8&xxS>lfn)Ugq+%O%s{#>xY+eO{Z55D3iH{=DEw~~R%kxu0tv!+EOrL4qW7}D z{EhgT_|KpXE;CNmEDLtcJ*iD0kIzkpLst6Hf!bQ6< z2K%BNwmG6rJYd30+-Mm!w>}l7o$-}TykeMW+1zheUNOzCmOD4!*pMQkF!UR$5F#Rl zK*ZZavthNNh<)`gMQYe*X4hJai_yZn;|&f$kOp!j9WAaSHNJpmVPg=;3owYBD13?v zpsy%0uhQOqg&OSAONG7RC1ia+f!8>X6LTCCsO)& z6Kso5UuZnkJ=A<(mjT{$QU~KPZ#t!l#dNwc8h$I)e_N9H*&R)g^e3{E4-x>Qj~w}k zxntcjkJ_FUM1YcU%-8z=mTxU1C2+c^y9HjPiwG5MhF)y^iNYgXEfZIt^<<02BgEjr zsbIuvfFUjxZJTK~7l{~zmV3L~jy=0?%SLY-B1J^>k6YLP9qmm*qz1Xi&0q0V04QF` zvV-8tlOkCCeR|DGpXYar^|5uUUtaO&2><&#?dLn@T9`w)!TuJvRm1-t!YzcGnCHcM z*3xgGH{28v9)&NgnGoOU2Ks`Cm&hmW=Avkyi?8&99r9GUsWk?SY_u1R4jj=7fyi`I zs6!GR?8eh=G)tJ8zy`yBiM$NK01?lPzRVQOhCgO<4Q}{@2mPk~|MMS0aT@l^5V9!t zF5WyoiG>}+h%VXyoh!qECjylZ#firO$I2Y#KuQi|z*1OJk2$mMAQN7~DB85^ct`?6q z%$8ryz3vph7_yh;EFw;;{@c`zhzN^bz4<`I>XA0wnYmFPaSK*GeS+v*EQ*x*xJ~Ij zYqt0W>MT15V#i}v$BMqLP%;Rs5b~5n1zwAsDCF-dB&+X~8vS}WF+$Dn!HlRmv_GEu z?3k~e8vT8uBj7|?7kbkR6(@^G0zu6TU8TsT2WveMT-KS$OhuB7H;BldWBo!r%-y&G z#>>s~4J8IP%Aa8_m=dy7XEaYXKdl9t`%6*zU4T*yOtBKUaAf81b#j}5a~Hgzf<2ew zgz;tLi&wF!qOXv?AS;aZnT(jFW~suciPn(n9hdUa{^o5?gs%~tnpsU%s(3u(T$j(K z6kpqMO9G0bR?%y|Zg48b_-wJj+W%q;%x_z~w~m{uFJFZ;8tlP#T!TvpS{2)TiB!=n zqwe}+(vd2b2i zlL6WG*R9AQy(kVPA}YL!ocKMZ1^OD?6YR4r?}ZvY0tofz_R#Ki74ekRmg=G1LiS+c z2LccD=hJv&5--@y+`@$he4$+%C#y4!+1RjH5TV8-ntt4Xfy(_J(+Sb|O3|3TU7}Os z!dM8#8T{vuqJ-=La<*y7$;Mu4IlT`)^e(_o4e--}&u;btj)K=;2Y5TMex#Cf3~P#< zWn{=sZxS#4PZO$3wPkoM!BVR&T9?5~sh29G=&nBB5iHcBR4umrD{c8O7wcv(d2{V> zvBrp7eZ(G%?nNhI6k4M<+(LzWg+~uFYW@55YAeXt`NH+i|I6YRogaH&?6bLNak0LI zYt$%2N+}{{kpg?Bh%GJHFXxgJo{l zh?%s8$I#t$QRZ3|a4^xJ3icsYye)Z2NqpQ2UF$oe(DR9@V~76;Yo<}C(35~86$~@1 zu#F7VTrkwp;b0P#0wc-xtc$-4E?S6A@e~J5aJV%|Q*@enGXN1m;b!=^{=2VG^5ICFrh^dU}WoJFss zVN_^@Bb#5G&%!h!($rFdpo^B@Gaad>+F#f7gh;hHfh*j*>$nwTaPRQD`ewWsS* zI^cc4S6;c&vhx-Wx#l$?!PJVR(2K!A9r1%#V1pVJlEsMp3dK+s90XBNib+v~u@Ve1 zVDG^lLB8~n^jWA7af@7L7Xmo49fNq;-Ete}%kIDgbV{N^_t=5N8x0zmE*Nu>a594* zk)Yb;s=hC8j6W#81HuNBGT?xuI(bU%KiBQ{>3yZ9-sKKp@?|UNE15DnW^BSUC9-0W z^}mfWwPtFTP-v^SeuDHvz?Be|iY+x`0ZZk7s!g4-#P#-%eax-T=bA6^V3jZq-qc>6 z9jZmPbKlEs8;*^Y&Bnbh#hIAR_ZU{R6|EPojz_#F#JnXx8pqKgu6qpLUsY_maYWEU z3sCk5H{u>si9y`IT2MVv#M1p0g+>bg}MM-tAILwpbIMipZ1Rz1bv{-$JTjUvh5ExxbPowogY)~1IybxeufuS>*O$#?z%Z^6WZ?09 z5e&f+TdF1FrmpwLHqM-Ex6{8r8R)FyO`LJ!wiMmyr_M9)pc830Tor7%dTcJXW9TA8 zEE-ExV;<&Wnd(uhBX+d_^-TARdrLPWe?dZ7pqL26LlQ)S;x2-k7-*DMsYURel*Eg3 zfLxb?=cO-;7Tt|DdJC(+BZF#Veb*&@3_P6A840e5TOy|NIuF#KZkr^9C){JF5SSeSu0bY^7oZ6N z7qKZ7#=G;si@Xx0A*#;Ig=D4weGET;Q?O9}`k=?-NK17}rIk@l0WfJA>L{-PBDbkY zLGQoDuu5cFK;#rKB{JEq2GUcrP%NF1V=6i|9iJgs4`!^-=qJ!D9os@7kzfrWaOzlY zpv&#N^%%@XbfX)oN)+W$dKv$GrI{ZdA!6+N4~xZA5!@N&##4FJ5hNb93KbolpYG`` zG$Zf`ra^b@eu(Zvh{u*kscZj=iWBVPgNwQ2b)w?zopv`XsFYl65fgc@)7Emkqb)nI z(UZbCcSex;*?eEwd6I-~-Mt{Wl%Gd5Mh;Ok&qqE3uOdb?V+wUhX2}!mfp6qFonE*^ zCwe$Xb>oBvb%+Y>%r3DPB6oM~+7#IY#heToEsY1*q?%+CBEWmP0s>6Y!S3b`SN$85 zy7@QU&$!uNpo~DRMa(Hw3bisE-h0nJz@^_)_%sN0Pc5#26zz_1&~^ug|d)a`y(Jx4@{U&B3ZilMZ{`!DK40X5#x!cQ6tzQtIFQ-&N2d1>I$pa8hnY~O_m)5 z-8B(xAxHp^%+bAj+~b99w2a@F z2_rL8|ExxJH<1Lpjwj8~(xz~SeoMpt=#5o9O?2z#t?r}qclDTtC*otAXf{3UCIYSWWmMb-A*15TkOz8^ws4R`D7egx)66j7f z03ee`02k*1yAg4${yO#&ifNveR%3q3M;i!A#O$8+j!jLKY@F`1+tKX?zZ|5{U|L|Y z^(2t-`vxfo0%h5AX-OL1ED5}_1fX6s{A>`O-NJSCxD}4Mrh=>X?q%=Gh z70Vti)S`QgMeV!X2`NUu^YT4LzWHnTU;p>N=C$nXd=Uh{xg~-#Sg&DomgGIP=PyLO z{C|=@{wRJv5a)%3vQw=p{femDpk9k|P^08aNxj5e@y0?j_9j!7Lt6?9J`xO>QpkXr zCz$UP1sE?mf18`{t6Ud_z(wykXwsxQ(}yMvvIobc zNJu81lg*d-U{~Vjl~BkkMXbXrc8wAc3$fBpP-?Tmpcr!S1h@kZrkSVgO8t=co25A} zeAZ{_*beVT7G>E~mJK7`e$I`J1%5WRo)O-^*XS*Q`Jba3wMAEy-x zF^q)o8!Yv`VZ4Y2KkQD5=L>zGWp7-5i-L<)b6sviN4WVTJrnS)XYv#WyxwLn%CaQM z5~75NG9uc2ShW}S%m}8MS{XR*Nr8Kx0(i!Q7TeXY2^T@|+#{koqR-F$(IhM8_J5&$ zYV_mJNQcGNC7<4ix{Es{FR>qk{ZJ*fWH{t{3QvSxWql3D87tB{H?q&qd`bjO?VvJc zABpK1eyIqcQ+WRI2KBji4d^$r*$fx(1EHHb>Cb3|-j6>VO>+E1&!hUIwG`MTx2(6Hkla|t9eEJ=bAN&+;6e>UugT+(krD#^KA)d{EPk=orm6@N zKUq9ZUBse`h{N$mL_Q)-sp5X#=7AbvQ8?FVzv+Py5@7~B_k6&g0)98}yMQkMUj?3j zx)(Sux3b1FJRsG13j*E(S@xie$+Qawq2?IizW`HU9r#oL*t6UKz|N~9Ekp@Ps&q-b zlvZ$jW^Fkm+kD^mAD^ZFD9xqnm2?aFj9s7WGMgfUKtzETrcTzeC<4F>aM&L<4_fm{ z7@%BEg@!>FcYHcY8-J=p%6!-iq*o_XASbH%LvJ7k!8Plsd~RShB0A7x_dB%oE)D$n zatAPFsT|GC!;d3uDmb$x;kY6dGZjzYMMETJ?57s~kkF5dwkfWmjrIKxIOq%7bg|++ zTt$dYBVzA;XATZmi^SUo8%w~pI#l_9%(Y_Ao}&v2t~;p-m^3xX&Ar!o=0ZhjWTez( zoOf4qJ$v?WE5ja~*Vx(T=PqyAMRq~U&P5LTKBcxOl(Z(ESJ$O!rL4hE+2$)&5uY;r zz;jfeLq7G{I&ZcRT1u0 zruqQFtTF^Xl|aYYJX6Jipru99`ss zmK_9#2p(s>FaL=GyCDYrJi}rAnkVhW)cQ3We*aUfd@b(!`K*rc8CG=oDB3+aK)FeER3nDWo{RvS5rQih37WkQcab_|@x6R1E` zC>i+a`7t>wX>qsY6rF5gl1G6&`5JkMw51aEH!1L>6jD%1;bQEOA$7=uYZHlaRu8hl zPY8ZNeiDjbNm$ZbhaR;blcbia$>9NhMFGo5c?Rs$H*iwTQmu;^cLzhQWcXG6-3im? z4szoa^!xfBMETcw`eMAw|gzj1Fc(N7DTC{!DD?bIwfZS9tCGewt z`vO~D%TBLbQcR1>OkvmXaRT)j36a z^|#9?8eP>@Ar=}WT~nypt&1Y*ak!9;ctIe7I+$?50DjoniBkK-wI?J1`#_3f9gTEC zeRhvGs!ul^e_7?AO&^-A4tBAkBUejwWvjTOo|C4+zZwDq1{f;kvm!pA| zztfKjOo3#`SClCskRqK$>1f4*B0gMEt5fg%;`{ye-K<3m5&PDc1h(jFR(}$-_#Sdj zoZC|b*Gn$m-$P(a^>)Y~9SXDMR2VaYYDYxocj(TaioE^b9M3;Sn2#FG58XD0Eog>L zpsR?1{bi6vK7DYK28_VqJKs7ov>ch7D>|zH(|ig#N=)N{K2btKCue$YS}*7Z;t7dX zF49g~hY$+mEKDQbf^CM}Rv3~0-@hn-z0jPh!CE{g(CqfFw5-+C>{HO>@Oa7(Yia^6 zj=CjqSCi*94&~*)2XnZH-7>zu-Kgi|xf04;QcJ4}r+*-#0%c1kLiCWHa`8*i&4F?Nz$4VYRYm~>DadSIs5Pm$?s-ZJnvg=F z5!B?wsLT5iKRoZ}uciD1`+d>i_0E=XfBlPGr%#`oUg=7}gH0ZwcCh@**1G?Q?zJ`D z<66BM!#yoC)6`}A_wEN95gC0>r+2y%zp-ysHeE{=Dn8cYhx$@(-R!Zf0XWum8~c2J zn!xKMcTMnlo-8dr%$bbEOVwIKVT9g(N9~vY&WV2dcZJ{oKgqxSWyySE-e396=)y$F zsV7Le5AhuG5nQ^_O#p}%!l6E7N**IHB#GfEDbJ?~mQ;FmC0O8>lud>h?Rp&c(p^66 zxtKSzotc5d(vF8weLO&q(kbMxAK~{&_&@%Wp#S<4%3sxxJ9`W7TDH{H${z==GQ8__ zdTg27=(qCOh#DKNB}27oRj4IDX|C1MhWKt*I6h7hk4F$)y7~?9N=5Fg$abi78zC>@ z+}~rqem!IlGEdRx|Ach~0ptb5aFe-^JKSwwf8iS$@F6*sIu8#@F)>R;P}0YwPd(^Z zXR*ssc2dv?^3_#c2i;hiX2^mT&?dMq7rdB1#0LxB@i#CjK&b=vfV3!R<#FJhz^_@9 zjkXMbt>4yTr`txrS~BWltuRY*cr0xrFY#?4920Z{%YYaPL5g_pf)Z+RzZK{Hewg>K zrP5;u(9jdIOgx;5uKKXC0!+1qDYaK*A^*}N??YV3*03A$$)ZpOo!_mD* zk8MU}H=Sr_k}mPn;#5u zr{dPu^FoAxD*QR+&u1$;v0AkMi+g--T*G3 zWl<|vfH(bWHw}^F3p>!ZBsW|ucF;NAV`Q#i_xXUEmbXt$53L+_aIZsV zVm%M3$)lLLh;>Y4M+ou&olil68>cu54ajOl!$O;R9E=+p>Y4p~3Io~D6E>jHRSFpZ zN(nxIjX_oHrhQ(&s;XFmM9m~ptPW`?Q3LrPKlCRX_6k8dU;*p{QwxJuj^7ga?a#*W z$dZYW(!BdJ>g*ytdNP1Fwr)p_?3pU;!AhXByn*B1r@#FF{5Kx@hX1qQye;7?hqf2b z2=Yeko^ti8B=h{ADL?*&ldryn@G8}wz_Gyee1}{^;gdF&tN7IPF8YahnGjH>5GX8W zX~K9RJekKI2t3fg-F20zRng(-X$MS%mK_qWnUT0jPcPwz`o)449)oZA64~S<@1sCE<2kXFEU~F+ft(*YuS1CX5rn6(j&4I{h?hXQRh~y#A|_zD)8?R# zMSVQ;<{b{41|QhunjNoRo54q%B6~mNIp2}4&0*=hDf5e5!yVJ=e)xevo4nrEg zN9SvF``7o3*cib)D{gGlpBH(4GKf%gDEoQ+=%v&8TC_fL9La;PwHfdtCj zTC(d5t=7fYe!S>tJt*jaTg6?=Qv=(UIuh>un25Bgh&IB~pVVx*LlBomWC^(~fgNZLXjiy4B+AtgRv;IJ z(*1O^A45S5LlEv=m0K5JaqXT5Kqzh8VDf1L=&;}x@n&Yjq1YZ)nA~}~7f*+4FHP1? z=iwWu{$!k+y`X(#VH$qvO{%fT32AuetCQ}w(mX}PG~A%g zjrP1WEtCt)Cw!;_HL76043srdV`=!s4B~zGDQtT4qyUVYlO8-`B408)x9!dP6nuM! z5HA*F?hrZrIxb5)_%z-dKOI{rSL}yR{{wUBm@iA=_jYPz*&>0r13tc+m5^Z3>+#>| zV$zdU<`qrA(hUdU_ZMU@-J@Cc#P4%voO{s?Py9H;`)x_2bw(~U4=mBK}#j@7T{+CyM5(0s^T~OeNIeA;PB&w zpba<<0LE-G0!QR6*midx=FdwI3lg9c3)J3+-t_mq;hc}9YlU9otn$zOpYNtnu0BDg z;qxIema$aOpj=B=4JWb6OxiLQ!#u2Hj7-t)Yy#eh&Qupqq90Tu<;3I%M{Z#vhU zQ`OO;i2#FUo6@P)XgX^;YDHlYoIXM`;$?NWK9)O5u3~0FWOtR?B0{$YpUbgmiy3Gy zb(2@wZ(v5u1ah(so^1RQ;F~DWQgXB8MVml_*4=@5kx99R$RylBFo<3?gBP#9keuC`p@cm96Ynd3QKjWhp5^kU_ajxZ;* zCl-B-O**yZ%2j+tDOE>kp@E{%Ar#?asX|@YmlD_bePsoz2imH7eCzz=8HJR^p}k(% zpu(ub%><#=4J-aeM&o|6?%Sd*by@5=mr_>0@Uz?*Xcd<$><*c)+L z0HnBTC4hbMI?(3v4CZ> zDWQ2%UJOzH!2K15f1mjO_dlUXSTak?f8K!K8Cf#$`oRAyw_<1Wc>DQX{{Bfnhz_su z%fQA`p8!xvq!Rf=2m+Cgh(pj9BlmxZR;>7+^{D^x+{<8aJ~>j!!V1oF25%a!@dvdy zWG0dmvhr<45`z=i=&@Ei3;ZuG;sMLo&Q=H!rT;z{fs8;t%g%;(I zub#uDTI5J@ScBvhcH@Yns(O08HkY%J1QNFdiw6@+dqE}uMpJp@4@{v^*`w`L;P)#H z0L1FH3zt(s@bM zrBMj!=1p7*F=!M&tnku-KRe*pST+#&Fz~i!h8jDW zU)T4Q>w2a!9m?GK%;rCL`f{@y3-#BNyrbAUbfC66nIg?AS;K z`=se$1OXducd$dHy0<_Iz+L1FlfoNfJh-Y477hcG@9mY1Dm{f_2*-TA1U2fFp{jcI zTe}ggW4ey`7umvr9~$@%<%G_?V(}P1{2_m)%SaypG_&Na#N*CBaAg5AcNLI5;*3r_>!qtJvBVk}I6zuon>->NN)F<2s z0OceQDXq_TYoHSQb7N$LXehjPeP~e#MbJ=(S}fVzr{&_E9H%u6hQ-{rO?~p>Ezd=X zU&g>HuvcfP>uSO+N-}$T{TYPi*pgPsjj>*3RVG1@2)tAzFC?ggJ!O)ZToD32OxBA4 zIWPg-vUEK!?YeFcd0})zL2=1_8EH>ByN}o zZJwe-;z^&lJw}lJYu@0_y%6;1a7eO@GA5TI0U}aLUBOTnqn8&U(MEiBahf|N>&KWS z8uh5o5vmqu-OYY<{AwCX9ym=a#VEbzfMlryRUm?!hHxhk^`hT8ZkEHa-b(WrZqiF| zkoGCfQ`{A?Aku!hYn?Nle*O8Vx>|k^Ze12+cI$wn!loxo0tcIJe_3 z@KZWGf91r7h)5yD@-LfTA{bar*?AxmIbzzuo|X>;t^=Q{W2rc@y*c&O=l>H&qz{G% z!k13+hr3ffSN$iJg$>m`QCa~Fl0ET@;O7Wts7?gh-*Pv8)YtR(HRD}mXkYz5`lN&t zsZJ2w`DJojH43BPdSn5C&URdEeWHNJZ2~SnJW>6G0(H&<=0qz}U$m>E7$dWcmhw_iI z_NcyTVME7IG!IFaucNPBoNh5Kq0byr!EX8cJcf9T|rg%RcLYT4vTJ!I3Y~b0QVeb zsf%D5CUZ)YJ_=8u!IlK!1CRp%OdyLuO%y;Y1fDKunsfVURn$AU(?tgt5r{#XAmke< zZCk&fW~>1KLW(jAP!!9!BR=Kq*c(}eAo=FR4rT)rOUM`btpmS#(r$ijKdr=Ric?>u z3n&$Eu8?yye4w3BM0{GClc7gZ=u0mQ$Y7nZ)T-nyd&v)eyWjS_mq73XfaW8CbHL^D zf@iz5d`sXF*}KzWM+4t0=+hTj&i$z6gr1y|L@DBzjx-!$Riug)14^53ceJGrI;7&7 z&u_RZ`c2MRLM!?A!EUi5VM%hhj$j9bRpz+K{!)<%IZcgxqXYKv`*d}h!Ud(0zF|KQ z#D3-KgNBEt_y?oN!3`bAWHjPrKrZ)wjOlQ-8u95=KNf?ZR8Yua-e+raKZd_f{J;K% zxnRGSnm@i7n{8pY!#yKQ2m;Go;6DR5>zt8`v-tU){hV}xVwoOm`mbZA_wn`r3U@LR z&1Q><6yVSt)IEcHsm@s8887ea@tS|F=2yLCgd-Ue!S?S2?SJ@i;36q7}^&wYix={NreXp73{AF*&v~XOS$eU)yy0V7G1A?kqmpK=2(kLRZ+-jprF91 zwH|y4#x@PNfICZAznazSf}*q)%F7RHI_&6zqYpdG z*eZHdBM7VtS`{M-Fl#gq;C6z?286jF9{-@bXR*b61m#{GmUg z#=n7I^9Rlz2iX-H=afFT!a%76B2xNe7k$WfxzyWPG@(U6r=J-QGh=_eWkt&Ra-*Y3 zxfOrd8`cljGu-siw9GH(YLn;$f2X?omAKze{Ga^X+~n6Me4S0SkZAd1z~2D=;4{}? zeit$C@p1Yl?E_VI9Qt4rkV47_f8(%F_;ijT&ygb2=&03l?}te|L|dS=$O&p*%otgmgdx9J${0Cgf_~7vU9#1Kq0`@?|3GUstjFg(X8E zYzc+XvnbI+G_VysH-LqmT}3u}BAt0cN+TL7;za}ohhu@flOHHl@)KcUTQee#;vEfo zd}(1p0uy{%yE{aX*T7yeUogLDu>FegyF7@pWC77~@kavQyMr7cl0J=S5pkFQ-fUPR8 zkbq4d#@g-$IbNP}roG-%vo$f9u%(KLgl3z-0w~9waNR(KC5#d-gsaKb2ro%m$Y>!g z2DX6TGO13IF~~UI{Y{Wa`$!j6G<&;Cy3mk3yM1fR3X;yz=e!w&OHZTJF4`5e8p{jH z9p(}`>d$R}s>RMWSh@-hazcKe0>}w?eU+f@e0Ib6 z^gTggB*ar>vj~%rm`Jo1aS0p_nX>+l^2+_@1=A}7ldS_mAKE)j2@{*A<>ib4)7tx} z<{jDh#7EQ-ql^_PDWrpm8redE*S7+H|Ij)IVw7mFe)m8BSTfSQ!V#wPNWQRfLr)bY z3@AlJB#l(gc!LoW;VLCBoIl`@q!?aJ9&PCI)(&F4<$vUzh5;eq@-u9 zZ+4dmOlU_^2Ezz#gGPp5O^8&?CAnohs!IQf1r$Hgpd)H$v!tMpTl$Qg+a zbgENe@AMPxD%v;z4gZbs;C_eUFUWv3$X+xTc+g^cDDYHy%`LqSoPYY`1K%OdV+Ji6 zU#hC;$%aYVK+3j=a8UM&l2&C(X-8 z=lTu&dfKU;?7d&Ig7$;}vaibV5-T@KJF(3(m(dvV62D&Yh)@(Ij9g*(gTQ^6FZ+}e z=Bm>vFJk^Q$g`+ZZju;FWCh(w?0;J?R>2b6HN(kCLVVAdS+)wo$nbE} z*bEwWzPVq@0Hlz>c1~Il22f`gHyAXi^tI3i79O;y&c4gh-?>!zOD!wOt$r={(?e9K z!=IL^d}8^Zh=_XZ*^bF211`Knh@MWlXZpEMqe1D*hKc%WT<1t&Qg^vT4Om9}y&2qB zV*W@_21x;O2?j0LN?fR*<`|ArLrZ+ppcTz0d|JF&8^4F8kTrD358kL=JXFL6s*!?; z4@*)N*rYrh#FR4}^dQZFZ7$GL6&?7HY*^ZKqL1K}$SXSryg*u35U&sH^#yiWQaUTK zGFDX~V$s+!Edzb^PW}~(uR{CuR9f{0)k!&JpH7uCAoYIsQIV(1Lb3lbvu`6tL%TBB`#3}rAlSBlW1m6m5=opcKQ1b zN@O}$`$?lE%n0yJjdloKgi5p4Xf!PhWzm6zOysM5B!x!K2$GcO1`j)D@<-fH#Qi4f z-@^|i(i3zAn0hQMNB4be;9mnT2=ay?oto4U?f0A&Pq0!J)e$1?DpS5W<(^X%6cO!0 z6MPYRMGM40eVs8VZMp_Lsk5^ z;J*;1dXt1_*Rtz+3ntF0fzw1{i>J;dfQrIS@b1~h1+YlKf}jtWkkhw7&35ITkWF1F z7w;fo4<%ga;?%NU$e;|v@ZvROL>VoueRDSlex#;S=A{@~#O_6Gw0Vz8Y#9{QG>uZ( zv9x+wq=;z0qpQJ%NWpOcqz|lIb>>!&EQiULeGRHYQ#@@6wL`7~4}JG$T?LrllCa0f z5lb%iUx|pnl{o0TH4c=Nw2*@cCad^=O%e12D@Y=EhFQ=qxY-hlkR`y)I%D%V(f7+t zbZSn0ELt=NZxEzp=0j?dj=bYOUExla4<9nHNuf^Dics5O@0j#&#VlQ=^DLMNWF5#B zaKmb8K?JseZvlS__@!2mquo2Fx7u1g=IX5CZ2LS?b1?I)_iof$$x0GtF8whT`%{N^Re<)-H_O{N-ROS9Y}xKR|i50ew%7}!-;nFLHh_Mo+7 zsQw6L4|^6S(u<2If+T`jC5%-tpbsgA&$LY=TLVLn?|Gc*`8<`APRs0wVM?3YsDsLc zfL4=GP@HOscK{25AP9rryhhMC%w9s(E6sSrUQA3!OKm{_`0aCmsUTw_jUW}bCmLMQ zVWlWG?UhDpHla?dN+Wvml9cbT)KyZ^AKEOvL$c{6nzg4*qiGRIfI41a%YZ?XExn}YN?X~uO#=T%p;Sg|+`PNOuB&=)Usp`N6Fi5`4&>xPEvDVrg>3>;lK zDMUWV!qJt^r8Z!~*2O7rLRYGyf>~-u8`$-fNH&__HYLw1OfOsi`sjX+(a%3R*k58) z(hUl&a41er25X-BA4ueD3_to~ z%WoDXR$D#pdpZ@LaT!sqMp}fYQoqyx`Y$|!ha#eJdD$?}6M6BU&&i>{5zm4vhxIG^ z{_+)nH$*EknM}s!Q@k@Gth0cRRJ+&WVu@lA5w=oRGUx$jzvfi^DiTQzK_3TDc2fp9WPl9x zkoMe!0~8cMugbnczY@JFu$Xm+z@FDKgWfvAd0-0s0{Lh{AE=b#VXs<W){LI2$Zqme?AXW!)Z52Wy52R_?zq56d-%J9=*s0#JY zOWKAGDM^NFY-`aPOv5^^ntd)=P+pl?f?%86$^MESa-hyD+7LEE|LrrmS>I^ORAFyq zxYp^3f@%Wv_YWNSn?-)04c(AWeU$V>PqASq3t#HQ>YPD8zJ`AONjvrN4TmsV$l?a& zWgi?LO?~k)c~J+0KiSbwh{1mm{MeK&yeu<@t!GEe?Mc87o}b~$vwc{Ch7QikJF7X} z@g6V2iZm!>bL#iAe9to92N8kw*}yOVp8w0hx1YKVnz}7g3-=sU^ip2z+X5l6)8Ao9 z^%8$(pEI-?n+(K9!8zj(d7}`sbW0w6>4yRvz^j=h9|}PdlO%PD($rjr>x7sXx#v#k z`vH$OaLJrq&E%$ib!7r+_R{Dq_IdIG-4L_i&ETdufea$snnW8`glJQvyu;C)$@{2! z)8*7xJE9x?0*CJ#$P70pei&DRh$y2)cPGM073-?}RxV>gO`Y*(1u^82V!39~NPBjC2}Jai z1Lr0JPyW||4-m|}4VbsO35NHz>>*K#B_#{hP;Y{+TI@$tExKn(@$^A={@j>oD=|}X z)0?7W_`eT$2s1}-fcU0D@^OVcgRN*tR+G=2`~%8_~FLRkF3@#b3ir-Nq_oKjG zrp-&Zg`~OZw}?|v_S|a{5>Mg$hXr`Eeq=z>eadMANS`iwQPTW=xVHH+!8S)$ixg|l zjqkbOIAgHO|M+zKkLPRt$^uYsf_J;Q7)VPF8u>}Uy#ha7V1uOzk{%HpQU9O%yPkFR zXnWpSvF^>%nBQRad+DPQN`W=&0KemXVbWmk#s*jpMjR0WqDMwVDk369go+s`G^#=+ zLXQ1|)w|fU6iyEpQ(y$%>HD1HJ6)pfuQEP|T6P#7{IP+Dfg3wzhFo@|$3!^G_82Wmm@oz$WlG!v#irDw*=;Yg7`5 zf2F;D-FG4dwv75T1##JX+Es|nhfPYx4f@e7ZUa{7^2_q$Zg(_F64ZoEGev|75z)sr zdZBb3s!FT6b!ur95-P8>v{@AMn7aX4d{Fjf7+44Ry&vu;%nU*B zYQ&r(xL!sw_e2~Z9C3%J&mecLmTOP6N2q4PYB34tLYcmk@EXBtmU4RfK`fZb&QLmW z`cn;U_7HGN=$^s%3kjReq8^4$7aQS$Xyq3E$t#j0Y7*k6ORPA*~S_C<%%mM%=|pyfZHLujFSmj``eHSaxH!aVqt=S2=k7&7O;?w zWPmqNDhb)ws^dc+n`}mq=hH+e4h^tMEddq%eZZA=S|Q;Bf(L5tPY4std&+Fwep{0g zKDi^u9jJgGzCoeaLVwd?@xdDo2Y$}*KAN0hsTDM^hRP~I`KtcZ5%I2L)4d}^8qyZw z3q?V(8JJwMIeB+TQ*b9n;36;up136Nz$*iLz;>VV>w0P?l^+JI_Q9H?5px59Hx2ah z1|I6Id~54Iz)oh!4G>%+*foW*FQ~C|)s=;BQBM{)_%Tz#9Qe4+enSgcpGuz&lP1lBS&v+R7kWD&OwD7|~-7 zU&O@c5NXJ<*W1xAJ8t?dmnSdeO}}H{GrJ%n4&Sq;{FYx2@L+lGXO^wkpFJD+pMhJ> zuKY6k?(*&T0e;5#%#Q;e^R6W9-!fgN!XQ$Lsq%(LaR>=|>(+?Dzu1(Z>ElUdY+^k3 z#1v~L%sX0B+A{qXwNF9FC|78rpclYPq`cKQWEeEL7%$xLJ;=ylrxcU#nLpWH@&b9x zF*<196S*RvPDRIN!F+!^87;vaE1pXzctfG1AY0{h7%8hk60M1CQ6=8nwqbbUMaO;q z)WJm>fr}RJ^q#PS0(r^zRg+4?FMa65o*V@p$E&^1BR$RQNZvB56?ooybg=~d7i(_r z=KtjDXMVs99`O>`ncss6wt1UVl>$4)$zI6}93+u^P6lNKji8JP8I3Ml5KWCv#3&=N z^j0hE$xDb5B+fz7JG*B7EkpV=TTln;d1M@Q=ii}f9kX%Y;lSR6V-U+O;alsJzh-V zD`V#8Gd(6E7Zo`q*eMlKXCu_Ged;F7{tanA!0vj2^2`OU*!bz8U*iwI^MjZS3`)h` zoW)atH)dH79^2CAeKkgB-GRAb52Ry} zPb>`o;1(>p+2chMK6Ifg)H+vaBfRge!tJ9D*&>8kxw*v4OM?7NA}yzlCUr!Ki}`$| z`Q1d-6OR=Njk!gdu-wJ3v(Mt9o(ah2OFwj<`4fj1Ghd(dym$W8Sm%0@SW`X-XX>-k z&rlYyx;s#f#`bavZ&WP|s3>nOCQgW)AA}EtewIR;MMX`&71);3E3069794A$-=UNiT^N=l?s_QH3E7_^T8;(zWx$UE{-~0%LRKTvGp-Sn z*hr6Q==(Q?#=E$>HdLd9s@Hkm;9EaU$V!&wn_lgz6Gvw3BVHD{Yp8i1!nAubX&H7x zOzFNuHsp+GpFrmKS?L~f8gJDM9JXG3BK~F}bhrnd$R=tWV#>HtXA8q=zSo(&1)R_{ zZWb;mAxN=%irV|oNdx2Q=Hq7aXAS`!$Obmy&2%Y0>X!}uX!|`YR-M_8J4Y}l!NwLO zqx=QnH~vF`ksvFj+iIm+FfAVuzp>YDId(qHg}-&2=WY3{i-=Z@>~R2(0(XOp^{E2@ zF_#go5!;><3EDK)q6XOTfrSEpxgL9ZCoEgEsWBX|Aduy=X*xj+Z3HX` z62|2~H>h~qTQ}GhVV}RjA{%qSFt5nsabxpx<;YZ0YF}ELaPmzPD%D?u!GBDvzs(B& zc+UCzw-fc-A*sEB0?UzJ?gpOQ6L@u>0wT4;C;Jc)X*+Z)I*2D6Yl=lLHl06%o<||R zyPjX;eR5#J1N@W^4ffZkcDw z#vPA`K0@;IEThEKd={&!_?{n&&7DIWXLYVOT z&y!+sy~o{Q2~Roj3T93}DT0mP1JM&m<|IL3&UYhv{@L-|bmQMNL>=5|`zB3gJa~sV~(v z?%+KH@?O%XGTVz#r|y-ON(|*Gd_jI%%iEer3wG+uLaOs1 z%fWE4XzDg0(2aD<9hbiNE49O~^NVNw>CQvyU1uANido3JymTg1Qvrf6Jp2D}XM{nT zw$7r8zPF&~sH)f%Sz-TJ;!DXVR#G)O89%3_|9YycPy0a}is$5m$n*p&JEjvKqT%?Z z-oZtHw#gr9dTRnn9JzwJI2`Dc4%v9~c9@rD;c_3BnP{P%hj^G_DC5p$Iy1?bnD1CjEh4Rb{3ltvx9Ekgu#Z6dH`-oYSk20_*Yb#`Ofe9UgjM2t3p8gy7XXQ%bw+ zLXTG3^AzX%!UnZNI;AXepZG^;KNNqNzJtiGq0^Zu%*|J2~syAq6=M*QY=$Nn|5MF{5pQc6@y_` zu0=(pS#xB27}jg#Oea}priq<(Bv)^s(Nb+q(UD{^h^djnJ?Oy*#duzn8lPpv`v`g^ zjV9huxrH@GFq1yK_Zb>O0+Z9y40J-WUr4)K=!Wx8&=Bvl!YF-uGi{e|!k@wool;>} zqe`Hlf%Kx%SpVR z>xiC5QgKd+SQ}c53IA(lK|Vz^)WKfD3dIm~oqI+Fyay^55)ASkrGlQ5XdWdL1fGR9 zNVYtgmlsL(LPRacfk%O#bKG4%DBZxZ3eje{l zcf&@Q8oXj)1ZbVgLjFvSX%Yxl?@kysOd$wiAyZsZ1)LPeC;7Tcj62xUntLRuFBOnPdc zJ(*u$RV6RjVTW0Fc3!zoPkXUklAsav>rWV0L4sh~b0WypFfC)?!jm4k&TcFx1o=t( zOk(KQP)1^IKArC>Nici;R2@v$v8`^wiMt~!{M1y4kLIV;*IWaPYciAM8ekH{-B2$n zVY{**I?@RPN4N6{Z)@=SmmEt}!b|)k2QO-MA69$ikjY3|#~yxN$im^|mTtioFhvR$ zZE7;eSu=H5k!&n_QHZL(Rn;V4AH$Trt03?KGrSqApwe%KP_AER=uxsMVF1d`(dtpE zSfX0F2weP&-|n)&i+ROs3s# z%JNf$Pe(Y;HKcti0Z8Gm};h#runkyc+yKV{M~XQliPUE#X$u`ch#DH))=ddKitoB zZt~y#JuhmyQx*?jxlUv_^Zx;UY37kEUlx4pOm{!bI@qv)YGPFQ0Va4OII18gf{$6@l>jW++~;#0ODMtgp(4}%V7GO1oAIDRnF$%Q-T=gm#R zCkE3|=Ew>51KI6HNt=cyyAeyazjXL;#=w8Q>^Lhr7jZ6J3u4#EbSsrDQLX%!C;fUH zKoV+1>PEjxyvKW%yEx4^kw$M!=kL7u{|6T}3}^SrB$7RStiYnxumAEf!fE}s36`)4 zt0Ju#Mwo$BC(Q?#UF3)w5EfOC6IGrZY+7+x2GNoe8_{9+B*gpp&NZu+#ee_hw157q zEBw=6=kovb*M8&i-!9p&N?iCa&@l8zGx$fT%$lOXu>%NTIM@yeir!3{B`$axf@{|% z1KQR=N9&-CQPx(3I0t61^ex~G`3igt%?;Xn0oG*&&phW1E|Th|l}8-FDsXWZ;Fseh z8PUz*iJjHP6Fj<%uATSr#ZxBW5BUD&@%$X#4bRh7q#D-#`o3pz;c@^!75G~Z%@o@4 zfIAx>*N}eu%;i-D_cl4YZ#0RzI#|%cG=)N`hboopO^#ApYN@`?);#S-`E&K2_vr zruuE6?l)8X>iD0n>l=i9f2e;&8`Vo)F$eZnse=6+`&GypWDB`|7tH8GZy>)wd!J?k{{@bh#)aw-y=>f!bIz8*^jnjG0~=2Ud^S+!{v*WHZi8Vc_?t< zt1SceGkrF?GkSY0v)9YI;mL=ss~gg=O5ic45xXiR(4Wwr$PZFT1j+imbh#uL@f%ho zVbMx6Ls4!eHEwdcn{Fg&+>v%7OZp?iu?y2~<_8TBw9s5T+eXl5f z|LxsG^)u3etCBxKvx61-A3y=IKoUd)h^mY#u)|YC$yZ}66k!Y>wgC?nD6BzW;vV(m zDl70&ZagAtPhcuqL$B028Mp)-2OjIw=OMejG)tw#V!b-v)$vnv^aMfZ^^z<#N~GOlPWEh-$i&Xy>`(3Ps!EbG%B<2wtqbk>$?- z6yO7yI|poZ1iSC!kh3AJ_peI(_7=-HrLeuryhM~RW=Ti=sK&1kEq@XOkG$Kt~u~+jEUrN55c&=7t87{q?|c5-`qOxpJU+tdgsO>01@}Vzag7B0>~0x&{eqb{@_B!) zW9jk_6c${<9oR60M~oOn zA#F-#@Qfg8442muHd_6kmGu8B@&ASDg6&aJGp{fHLcsZ&roOUZLDoZ3mcX}3Ev!pA znUO{wJ^E=D4@VpyXdEr+p=mVTBD;^H62&M2db2+s1xI=2Y^Nt=Y zERW+CiK~eMv^GM!w7m&c^bfy--jAZfq)(#RK5?rV27GcTL^kpg2)9BV)Q*>>7FZK5 z7&zUUp7Rp%`nfK$X`1vYf$456Y*a4CO6fQvPozp$hEverNi z1|;kh>7VV8oezMVb6m~FCQ1Vlx-D851b)B4O~L^>IW=&>VJYRUuE4?CL{+#2T~X0T zjx^7gOe;uI%TGM)5)KdWGaLmBS3acwYkZ4M+=xB7-Bnr>XF5Ad46bLW2)#N4 zu4l>=9QG6}zl3m-&^5w#gzYQIiWT+Fh*}Zz0fiC=_MafHq1>Lx5rLfOG;|vIIiNb# zziU!_Q^K97M5f6y@a*5?D1{i{p6FsYe_zhu)$)H9vdF^>`gz;@A3LFyp9t)g0sjDa z9eAcjsyl3-JtqN^XMfITd$Vu$5iW90(p*Dao0iT;lbg!CDU6}>sb-e;^GBrL#H6yQ zffSqg$)II-bh!3iiN(8<6Cj+hzbbwtOhb3I3FXw`QqS}y8=>cO@(5`QNo%=!>6ZrX zzhnWhe#rwTzh7_Qx;MQgq5Ym50`c}rKFjiLfsbqs>|!P?FfM=3H8ld?>l;K8s1}Ne zQ6X!Yz)d$jpLE6`B&boz8bBuk?43{+T4YdEi1bqj%VGd-H$k9vk%?~J9$wq85Fg9> zn^5hMBx%9?yxu;*jmZZ#0UL;(GHadJdJzP<`T;v`1RLf23WQ!mZD0-UQFn4B&~JZ- z?n5^LI+x0pN`~5FJ{p$E1k9ws=XgLl{ z9(u_=oBJF&vFuF)-Ul9b{atq1Ws3_kY%v`D7p&II7+^a5e_sPxf$8vhPz?_k>4KUn za$^_E9sH~Kdl0S?=E4VgW&*fWA0`lrAC?zQ+YgZOsX8*V3 z_*IS{gUD&AgO>ZQVrBr#sm}`B1fD*pHGT@rditv&1_pu!HI%N9*SP&+?s&7^s7!r}#;OBdcrnQTtQGb_IKvWXOR` z36Ig@e=h59MIVKR7SSol8HU@y4=w`iIb=jcuh%O{7uk9B1C|{I9~LIVbz_sf#Kcm3SwVArhbl%;dldJGQJf%&#Hqx&BKdKyp>*V9ABP7@NoSD5&uhw2xLIcY>^$nW;r~^A@e#!Bn^lXZPx!JJYch!;(X(< zK>%upvWl7@3TmVxkYPl&P{F||NE1>4>8OAZ!Ql$wDF}K=CAaubSpEUwQFwqgKO>}t z<>>n5HJGS`J@@Jb06X4UPL@erz->|sbVK#vjS9M$P>|@LsM(CEPy|MNfc)#Al)LN- zl-fpWJeC88$c}J5A>H1WbRQoi();szNTO1vOHDa=?*co+{Olr;J!DGC_^Fvj6GWY> z+EL*Jja*aWE#w2;*^i(v+?;IPT=B@)-VtJ!K$BC5y(8#h*k;>EF^Eo+tF$6m;He-} zq}reA5T4cQFHh13YJJxo*3lJ0QiRc5JeT9Pg&AgT2-SGimh8;hSb|h(d!&BzLPpBsQEdt>nE70 zDkE?oa2n2?u-^{I0kdu?%AC0r!|$sR!~XGKP~9KVr*y_z_!(~LtcrJrto^!I^cC-V z?}YWWg|Lus_}k106#|r2`Hi2A|{0ibK{5h0^8#*}?#q(7;R?N*i{!%3!l!UyB`wW7m zjzk9gx(qpf@RTk4Zb=?%CRronQpBD2-}nFTH2nLt={iYft9&)!E|?zy-h5ehYBn`n z(uSy3AzwuN8=r*!@dLw8Z>WSiu?J*9a73x3G+dxZZjS=okdahPRYYM%6=?yWYK@AK zQ0Oi!l#dIp_!;yeN-}r=%*M9Gab&)IT998KtBO5*I@F++9_6ZdZqT#RI0WUlS}3`i zXu!&B?4?{M6bue5$)eF}^eJ)$a}UcuO4<$QcZzUjfa(HuPEEes(*1Z5UTy`>+eB;Y>`-JvGedL7s4~36H7XJ0_!^<05Ov*q~za)Y~ za3$h+B3NdJ^UB#b*qIkmlOchA#Sb3;3D;UFx4`6(avyp*Cm5y}4a3kxJ2$21DFUPj zrmtgCdvkpt58nF;Vp|&L@k5M|!Ze9jOQmc*&P+=i~D39k=P(2R&u>$OX+&IppXm zWrc%7O2GsQLi)x_LYpwHf-Qx<-C#1E@?c|_VnCiWxTE-hU;L0T$-maZWsm7M;{Mis zcsH-~p4W(U+hEGMke>4EcOQe`@cZ`{z$}>DfyX44H(L$r7glzq&>)Sm;HoBtl>8{pwtoz`O0JCf<5=0i6 z#S#i}88ILg&0t=F`BK`ShwxdbNcsB)$H2fE^XslcE-2=R-M1~YoyzkP>8IBP!*2ol zwJ$sTM_|NzS656tV5vWzb|d1|;(s0Wi=h3*d^HHBx(NML*_i=u<`Oq41hOJ0?rvSR zU6y2J1q0YJRT=B%Pt`QGF2x6=6Z{$Ct?)wh|2w2p;}Wx!V{r%hj|2F95IlLbJuZgM z$DH&9$Fid#AH`%i6TFaGecYOy^EX&9Zepjz)o*IB5Bd2hL2Vjzx|tSX!@c2S4dscx zWfVa%xEJW(VERSYUnBpG2o2vRg5FKOt3MIp6||l=h=3|!JmnXGv0sNGnE@9};sL6A zLX^^()v9Qx!bSM+P;8X@sTMAZG9jlhKda9mRRM%heQHr@ZjaIoU+#EDlyANXDgsrC z1#6#AK5%zxROoR~q(LpC7*>C_ORU&&IA$XvoK|3OH(CYgwUh}d!V?vRC(9ZHtgQ29 z^m2E&g9)&)_Uu8SZs`*}*ccNG7E=rKS=17_l=xTZJGwW5)UXVot+Vo)!U``hcq;?v z{UIfodDhdduA+o06;+Z!sZtE<3B=qsP7MTKQ5(D zWh5c2g7H4JQvG&2t5_iGGJAlSs_J~W9d*&IHRYx*RGO(10oUu(JNsUw+0T2t{d`(s_+P%Y>iH$loXE-+w&_w-W~Wqf}Qx_dE%6p-j;$z8UH` zZbO~W9B~^oKr4tP&F#2u4$cDcs!DW;EHYgHThHvnYQ4is$*d|;k=LNE*pC_%9_$qS z7PS_|fdp!-{%xH1&Ml6kKKBih$A)>_zZq}=5y%atCAS9Q1ZIdAHA7_;783ZNl-M*` zDcJ$+-vg>VRlupqeH20@WaS}J@DmE9`+-4~NTmMQACUA`z+QKdGAAX^%Og4$?D+^3 zx1w^$lsUR-@o8C1Y9LFm%32MmGala6ml=jZ7{ckzTbQ^ zx|d;mJE#@>Kywbw8Ty}I5E*W4Ar~P^(1x!oZ{>GC6r-I4Aqz599DH#f`w&^UNB*mi zpcR!Wfr}t`?9P|fxaivM2AONux%Y8o7MZ(F@_{0>xl>g1=>5NtBa@~rs!V?)B+9UIJvAavI+J*?@mBU=iNbm z6`1&sr3SWCe?Ug6qi@8NgsElLDrE^aVgvL3izEsGNbQlLVn?qtCl-AnotaZ7bL~&} z9coR-E;<6rjp#er^Om~zlePcN@Ab@UD&lQM%65diL+<@$%)TV_udfv`qLD%gRVlaY z`GMX=ZLA+3Bnpin6p{|X-X#z`arN`c-XRzuxXO3dXu9HdL-;A`kZtL&B|V4f+mkBg zFsJeEjx`6Z&PeAldcsc63{CPPXO-Fw!H|tzc3~7}Ox}exsE)o0aou1~8;|n)>m9U@ z@m!-)z%kP90GQB zr9d2&03@A&?CiDWujTO<`~3UzGxHR;uqc@E}vYFtJN zZFFDWD)!|t{B%$9b_%fwoUQSif@7hUu|FM+$AoKi7YZ;@5H%1?4msq!mmP;4Zzthg ziJhBLj3SOg6VgL+Brhn(a{u4^=)en-MleqZZ{R!vPBkMvo&iPUXn~{5GIt4h+&u`3 zSqvhN_s#zxG;V&vE`rQKYM?X&Q{cw?G`SypT zLvrwqlP%3dJyaft4^8ntpl$G!*$>){7H9#9=yDa$QB?(`QRdmJgiZ|{*#8**k7@f? zgp1JMk8m*|#<3xj8ZrTU;DN6Xd^!r?YZ^R6K-kta%fKJ=$iUR0e0N0p&Va3xZx<0r zvfK}>V;Ox9h;Cl9*UoUjHFxfH$lF73|1XQ+<-f@7KFf0=?1|NVG-(j6$mK=yq>!10 zI4oo+gcNd3xr#mQ73}2a=}BAAYG_u9@knd|u;U}#vez>mFb>Bccnuo&u-OOpNQRuG zJe2KR--`g?cs)i+H)w;lK^;a0@O#eMnB;Us@{M?rH$|o>fkcnqeM%(;W_WtTVI{%I z$9zqHH|9e9cUm4x-g81&6(kI|_((#l_qio71>4@`{{!q%u%RPtlLwdqmyWy=kY3;s z;Kc3TJ%ZD>L=e4t_1gI&7wPr({)87pu=Bbz-e|_oZ|?>ODtY$B8=SY-0ljuSMl?fQ z3#R!(KI$-Obt?k8L$LO@JmfJEG_dzO9+PoRMCXJg6M|)knz)46fIR6OFphxbx}tzB z6TDNk0g1P&tgN7fa6Hdu3=uvaF1&Bs98sL?10&r|_#UC^HkOeNxc|!OAf^wuk4u^IhL8=;TO4Dno3N zx17rUs$I{g`yE5dpcyK(SuWZ;Im0mm4$7J-j_-yIDb*J;)IO<#)N`MweK9^}osOP<;Y19kwmOQj*L;okVPsxJajwS^=<$+ zoS4?*=_5N11NvpM97L;QF`z7fsR{fg;O*aXd5xy)+7YL)>eN4fg+usf{4KaYVr#@3 z4<-x0NBWe$Pl;9d8q(Ev6D522ieZ1*o2TKUKD5BIW zD0~7fMSmF|OY_AFu@hWp&HhK)C&D^Hu!Ue1!9({Lx$~bf4azd2L-wL9VF0C60si*; z`V8fe9#t)&YBt_Ds8Lnl#*=(gOI$_XWr&yy`(4ucqV(;F0t%@;s1e9d2Z4ux%kXW5krjqZ3>CBXK`M6Qek!&9w-NNsViyrN z=`+~D9#f=Op#@~Hjm_B=ryHkgzy$;L1_sLDJEUJiG~-Yrt|?&OFbZq;t>R) zSj-X%<^Ae^=|Uyhwsx7~I+x_kj?aYP_y)cHXaBit{uvG3bW&y5xu9$pxcB~uzzQ$N zjCJ(W|MVajQm$6u+hsy(m%*I)QzE_`?1DCmS_mOxz8rnUrJwHuxsIWwSWrCixqUfw z7A49s;f(CW9bONaRaHn5Fbz$3CUOl<@hR_Eq3Ub=*RMB3cuE~#XSR92-d0~owr_ab z2wsg~;}M_f4}L@Y{TU4nuknWd_0NjpZ&_vTUvDBd6yBdzuD=)f`&O8@Go&87k}#La zrO!yOHxYuyAXbBPXjXz+#c}cn=SUdefdtN=PQ5nzCCDU*MCe`YeQ4ehKgc%Rbv6cJ zgLZvqvcPChfpH~dk;peZOMe}tAT8Na2v9^Ho4{)ZM6y`-qZ`qCo5Y)cwoS(_y7=rj z*zqs&Pre7%1FSC}(ioKJa{uF>VaWga?;GxKe}!S!5z}SCkPHVa}xX0XYh?u?F%T>M{&^(ZXrEO zVx&tEm1H^Hq@NI6i6DWoDz;<-sqqp(u_AF8{_$Kka^c9`3C9dvrjw?p?tILkdQ;Q56!Y@-?&-b#q9*y<$@^W0SJqK^$6Y_m5pU@7 z2p(xTl0Cy6%};t~mRqBo*D9{7Xgr0bp^oQ}+!hp5F%)XeC^Dv@YxBF1N4)}uy2{am|_;sK6 zNkjke9FotMQ^J$?kxWgjEy|uvB3F%i7Dz2}mGaLgc~Z$W=%XQg4$F@wxdRO_S1UhF z>+b2cyUaG)_I?vs1*g3?!_QGm0T8$XR%3g_ZFq5e4e0_SQ~x5L&Fvd=W2NS z4Y_%yrM(l&s}Zar*gD{t3k(x!aJs<(2TaH3fJABGIc#YD?Pj7dUQ^$OsLF(ys4-) zJ+V4V{{L^ay2v5D(BrKaC%yK4A-_yfPfHwy_RZ4~ZCfm1B7}Cpj(0|FU<_Qx2W*64?HJTd z<+j3;0iM)~O{J1e%HT7~ge-w@Ne+pz`L44LIOYZjUI0Uf(Vx8$YT3`W`m-T;?Aw5I zzP(4d#3c?nWWPJ#^_GWx%qM-$9}^Jl_PxRF+ysP-Wji?u0S$9$NO}V6)&a+?zR@wC z1*`?;Fse~%d9HrWw}&8mz1~aQ62bL{T=os!62ZIrT>xSCsZrRcrbDvSWL%)yAk09Y znXq~!$TO(kC(9kL`?_GjFyTQ&Bi7D4BbfB+guHmpzqtckSO74LZ1`%&8UOY*$NlSM o-+yP0{k6{VDC{<|Rl-@fNK3^tA-!UUp(e-z*X0Nj-)%m4rY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/shopping_onboarding.webp b/app/src/main/res/drawable-xhdpi/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..1d4ead34c2223f51f00d225b09056426410c1e0c GIT binary patch literal 29788 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Ν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 Z@IU_rh@aGv!vs(}h6p7PL%4F_0ss)a;3NP5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/shopping_onboarding.webp b/app/src/main/res/drawable/shopping_onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..791b0af3d13b3f31bd81335d06010ee9b3345f4c GIT binary patch literal 91614 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ΝfI_>9uvYCdNE+ezz<6lO_lp&wymlhl)%3Kx%g1L7l=}bD227Og()%zp+Q?(Yo+y?&iD1jXA4XSHCOrV zK;_I#Y)a{(MN{|joSGq{*LR`QN=!BK%#19@zhj3p9*I}n8()5Yt0C-6=Qboo1^LW8 zviGmq@_qm|j$DC7TCyPrqdLNtkCJ(ZJ%tH^@oyAC?9EJ z$jFhmg0Ay#X=U;H=CECwRgFp?4oyuNDb^etJy;$%2rg`|KMz?o~(2*P*1~cSw=a@KS);X@=4bDxVnCW>f$#5c}B;l^t!_`5& zq)Yd!5-vqC*RDz3O<8ggVVE5dq9sI589}gSD8+0l>s@Eb!7C>175gadk1kQHSMSD+ zW&hqBkElLT@|iP7*9{-t^yN#^E}65bbar#|gr;?94o%?d1(vHv9J#!9&VkI4-{1Z9 zs=k1U&gKgt-=9d3*Y6irbkZC%Mqw5aSWHf{W<9y7j7)kk$zn5F8^6l?+uVpab@zAQ zyk|diK$*61e<(S>fr6E$B^T!O;>g%7N-+#%`6Ey1h$Ni7Y6ZSo= zv9W6J4)#_6LIKj~UBH0A0W1&*JHT66jOsBmqc)RbKA+$0A6$8gXsi`mi|cL=Pua1~ zQkY6=e?U~m455rGlsG+{#M!Jep&zX^n#%Ny!2?m3ek|rE@01v;5{1+_Kr>s0)g^ek zIhV^zhLev+F<8kDLe1!6b+k6^6AMfA3Kc4c%{7kE6p~%f)qBdMF5Uj$&Rm2CJH0-> z%l9bDgV>Ac&+q6-~d%l-o0G*HPo3BSIz2u_9 z1`pQ!<1;bI)Y?_frByZ7P2NxK19u&FhYr057xVqWzmC7{-1+?R*$0oG&->hy(qehN za9V0(t-yO1N4?PXfF8pE-dp4&D4^@1T;hESo2tZn&13CW?+{7J3h}UH0Faq*>Xz0V%7)4hLqPFkgW|Dv`8vzJFWepY9iIa&o*P{0VR$eT9of zOosLqqx19DCL($RH}Ek3QcCbALY2{AROpH^k+iGHXb@Qzuo7t*3LqF0EXWMYkgqU~ zv<_MFvgTg#S`8$<*cJZ=(!8A8qfV$&4`d~v%U81=s4*t@vcI@Bl`Na};jl2pa-6W} zF_;xF$d0`#8}r&4q#7lPl_noN_)Mdnnrgo>-c7nM%t`solb0A-w!IeW+O+gGE=z68 zIBZ&(VY5iIOa;Ts0%_iS!udOl6&kT(ajY=D(;gcHD0Fp zlt#-)%QG4i%&^WEHKOtlJ#@sxWFuK8_kZZ2Bck#W((-T4+LpAmxF;HeTrD6g0b9PL zd&T^h=Yk8Ksb#3FCRVOljy^DN_D+ROTq@HGmWLo>XnF%cAbl%ro+QVkG?Gh;a}=%2 z4i}?xnJ*n=Hg6k+yd2YLeeRz%e{_^+&x=xj)`;K6C$OBo*ULo zKjF?LNfPks@$*6WiD(S9rGB?y`nf&;_vYLFk%tQ(im6Bhht|gAp}j>XDm@oT4Xsq(XbkX&l?@rNYda?a>JJ( zFVfSB)pGY+>M+~^&N~Oj8cKkETW5ZC1`h+hmZb8abyW6PiXua+G zTdlK>Uv$S|v|#)V{XZRBw^F|2=(cuTDlh0*IFf=nN(;8Pz48pX)*yP<-Wg=cH$&HD z2*dJ*eZlHcM(|hH(+k;*`GnZW6j|~ia_G+cD?dnxooBcBE z+4J@$f1e!PJoV@%CQb+~yVQ|U2p>D{cjq00n4uW}gNPKU2~IFwSjpC(c!)kKt;w`F z{odI7t*(0umEVIpNy$GG9^$h`@^|t3|Hf}T+ihg>rMu}Ee}nnu+n~a%n$_fWHx45fj-`}NP7Av? zNv5u`nYY@TVS3d2sn2t{ciMdvJ5TkJsm<4(aLLnXD3+%Wrah%0P4?>k0$2Giw*Ddx zT7Jx3<;f9+dRe6c24g}W7fe9Z=uwN2wo)_Ei?+5$XlM~2y>$A#L1oKX3tk6#c1HCK z2<9>aG7B_Y!b)TNm$Sz1WM*S>QTrZ@!;%1JoPQ6H9_y8r@_AX?$W=87PdVrP?HI>a z31($&0_)IpVuV&|wM|1glgoBgHp{)6<%a|!*Baa;M4&ncuxR@2acRF)?)TIWnPAV( zWNd%A%CGVk-ojCgc8^he zXat~jZbSlBWEYwZpN?#=GS9|By`1vQTZ2)0ex#URK&`k)|sM;u#TEod`39x7InW5ze<-NwJg-t({NI#A(Kq z7?_u7Or_K@c|sDJ&2oY5Tvc3BHusm+!h%mXnOF0E{iEKtXO7IonoVk}>R~a7#;&cZ z$Ju79=N)|4@o%!esWfm3mG%Z|CHvl4?edDdK*hO)>Tq-J0)hugt1-OH+tP@+vs$)f zENVs5>7jbfue{Zs(WrsyggD2%3ojHhgKk)(LKwG}kJ$BRX$0OaM6jVIj2>dA8on^I ziF2L!bSzTly~u8fJzTcub^Bag!kh`8m^>=SYJaC^ZL~iSLG;2*Vn+ida2OTsNIMHA`bgRv7j6jVx(; z2udL_%rLG6CT0so5P)E<6tfV_PAO33IBxCf9h*0;ZnHJGEOhg(>U(+B>Y#n}8U4Bl z2f&*pRRT9nzox0GE#WMw`16)7v)y(GEPcB}nqr}R)gtwFyC?OX^Yh%5{a03qqXdJn zz!>v#_!vv;7KEZtV@Sx=L4k$g3tG`v;chd|v5b^o-EiUJi?{AJ=7^d_acrfs3+V;|aj7Lg@w84wP6 zUQw5{Am4YhWw}nI>HJ<_wbfh06FJVlVRjg=Mk-(5==zXtYo1K3UegvyW_@Oo>Myqg z;8y`tj|m>QMxwbKwts@1_1yQ7yuYx!p5m@UWras4265>KzEiEsLWTA>>f02v#Wq{ zjC*nAHOXHUE zutxA3ub*!)=sx@>?k}f*+Y6V&z7EEP{N?{2I}hP?{H%t9jyyzb<8r|otF9Rlla(aw zA4%)C-m^SQ;qzt;MAKK{xe*|Azukl>0441PoM2{HRz%F$DlrHEn24ap;f8P;03xkn z%j;QSm5;w@4!y0aMc-7pIbr4^N&OKf`G+iOh9^sKTDzLufXxk9-Z+1FmAw2xe#v!f z-+j=z2PFDB1Po}fF13O7t`uSLI4MmyHp%*2f0hEMj#AZbo^tWPrY?rU3;-AaV@m=+ zoz8f;v0$E$tO&=CO>HI=SU3R?Gqy?q!$J_q`zUHp!qgdVUL5%+nrg1Q_u9>Tv|7KA z;w6A#TqJT*cJe-(eSv_Fn$p-9G<0M0RP*7?pi zYx7s*VrYoMq^bFbdp5;&&DaJ5#L!tbDTbwbe3H20u+)hXRZ_GPc2yY0PCk(rREHGjRA_ZmJ_Nfx!Tn!OYN_3;;L+pa`VI zT0FZk5v|vt(>v0tY|%@U0)a>YAO?sSB*-$SWHlrs5AL|U*%?c$*8wG-5 z0+YTaf*p}1Ej3wN27HKlMrN-x5 zwu~HX`D=EsZuDPn%Z8y1(E+GmnXEna-K%FU43lGW^pIpY8ohfN24Go`TdJ#Dm=R>f z@(-0652Q4>GL>RhN+pRn7o{9&OSX#V!?M%cGwiV#2<4Q@l8)AK(gHi}1q%WZNv%m| zic?MALQZqPuf14qelVVRG6Zs+dtW7k1*sxyeQBwXzMkRM^1JveAIJF4{4IsY9CNB< z@5Nx*j#v0Ez&12bX(qqGlU1L~QK$eIW6@|sG`TR*wqypAtINW^-AU_7G?2?nl8w7> zPS&ei8iD|m8In=3V2d?^83Qono6ouMoB%++gBeVu4I|17!;o8siX~t4{T%X;LGK8w zSm(<+5?x#AWCOx^Mn!rFtMqA%nD)Hew#K1{5=c00!CS z-uKHr*+aN^dUURP>V~)cuq-BLus#}{oZ{5_dYz@@Pd|oR8lTL49{OP4(Wy$^4Su*e zJp&;)02qJ{>sZTTXiMt=z`%57=z>{>#jJ6%F=`Y`PJGl+uDK?2CKc}&Npk++kBgiX=_z2 zZTGuif?S$xgyGVj&fzd?2^+^lDl=E*DZ5NsW>~IruVpEx2=p zshGv>kda7)Nj4cL}gF@&@<}(agBovVp zikIn(4fPI9i{uRNl5iP$)#jJ5jAZp(0VI+se?6>FtfdkeXK@*4Rz zTGwfWQce{~*fEoFHgIC>!Ymmlt-^#>YZoRiBMs7XxoJ%#JF8`qq%sdpJ85}Vfqj%aa3-9r$jD1;qmj2(*DuB|8ba$1jbJtDBK|_< zrvZ; zuV6|d%pmK^i2W#MtGkXZ?z737J3t(XQ@-m1z|ZzuejF5`rO;s)A0qMa?R9KEuM%-B+B=_9X;(6^23q*8{XGxwwIZm z5JfT^#7DBuM$t)JXsS4DXicU9NH`15eO^>YyJs?vpNGaPlXD!JKC{iAcEb(%ts!ML ztW~n@gmErM7}-9-tUvwm@&{*m`5tt;dF1nQJx#r=U;GF&2h$ZtmsjnR+O6KdGq>Yf z^RU*|`k5=t)A)PKacA=X+v%b|x3;I9bA7(}%JTIUU4dw1EDbQ|U~LTl!yrKT(hHf9 zOr)(Yo4E%QH>FBTESq?;?I~o#7Z$Utk$%?{u-1Ym#lD#-#ZKGrI$9TP6I%J1&c(5PK0cn zN=z{^VNtyqt6_C$es-xfuhq*T)P;8FR5uJ2MdL~2(~vfYQLjQJ;G;|kCsZ>h(pBhP z#)B7RV!jO7=6qN%!rmT_o~D))o1<=f;qH{pcC)UqHlw$DNsH>L#?OzJHphmyPfwxB zwzruyeW_{Z=yzRyS7(w9{9Q?{U&G+5-ur4k(p7<+F%_|V&COqX_t;?H^eeq6s}L4T z>jKaP6ro$OiW!nafc@6qoP7Bf!ch02wY~MTk}o^7*VatF!Mhj%E#i;$g%ZzfmcZ9x z8&|cA7=|Ajpws$?*4B2n)>Lv0(S>@A$O}=S+~`3zTf(Z5^_tmRuc4IiY1fdq zGAi8EEDOxLG;>ZV<%B{4f+ej=R+hX(1VnX%`IA;GT{>m{l-&aXzrE|E<1}7h6?)t4 z)9Xx{GDESZnHe6B>|lH9Jnhm2=FGXQ-~OR`h5@I){xy1*t}Gp)A45b!1*qUc2#5#- zfalUPJJ<1>ylOp zeqYy5cE0MACAONxjbiptV~uQ_T{E{xd!898E5wSZLVdC<*Nm8pngjlD*q?xQekxiS z7o9j8bvLuHWA(}I-V63T^05!UD6y^NAoGdi^@4L_W4LHhy=_l#YHm7gdh_U}j0C83 zY<=vsCNS*3ez1Gxobfq}E5aNOUW+iZ*irb9C*IZ&ec+)3gh6ri)0+nbe;{i4m4x-a z=qtvjRtq zPDMkoRt&fs8kbsoy672)L;lpAI2zdxLpV;crYVyC8Tkzd4y>C&9`&MfeR|Z1$2XS7 zx?Zrc^oMM&*2mOPbF&l*sj9y`MCX_LY5Rn~POa0-`poIf`ntSw^r8M~k?vK0ucn2x3 z5&&areSFHsrw+w$y~l3;;{!Z;HfBy)bgI~U07|i!u`tG1hSt(JNo1&LgmnqQTD{1V zF#nYgP-ANI+a9?TI5yen6v;?;Mhl=DTSLi1g17#7I+&gB@+8uk^nJN0 zcuzGhY#pWKRTDB;(UhUFrjYPZD#d<0zx4mt*Ps62OAoak!!dsSIqLO8@Ky3k=X&9Ovq^d)pvNp~VHp(FH$r`7M=F-wx z3^pnrh2gyN?Yzv(hD(e(?W0gA(ux&<7#d(OLxWO3A$uZ<67lh=hVOXtpr`r~A%mPq z*&Q0c{j?n}pUN>&ycD(^uMz!2PEN~-2v07)?bEND0jlEh&F0$Z3A&!*=H@*<6r;lf zIe)_o)2fV0SpZ;W5Wx6D86W}%2qT)%E$@=F;v3O&?9jP}F;vk-^^#|^aFn93C}~B5 z`|UOAx(PBz-gLfmE+aRhM&BaG_anba-bwy?gr5>>3!#Cs*hu0*67@Q>t%*_k$PtRV z%_#S>AqI8F(wy2Oz25Z05Mt!lv!$PIQ}9Ia6m+ z%Cj2Bhnu;Z3_L>SZ@ipYy(FWTNBBqzVdh5HKk}Z8l*r7HC>o|GNlRwwrQk@IRcS+U zxd>tVmH>{l_Fe#y_VtSz-x`(k6W^QNmzYWDho@6_NF%CRfFm%r$z(;hqF!B33{7s; zu!I@aX~l}R9Ne}Ou$<7Tui3>y=d&AOi%n^((L5x%ko zuY!Cd`MG#X*SaY?>^hCUP6@YXF zn6$hb6ZtSC=H5A42 z7HDdUNE5Lp8y1#a6j^{k4628$t&Ov#wc+Ji)pOxBv!8(@H$`5|Oy69I3|<&ZzU8F# z31lL=ChR7yR9dCLAf&Eh%8g0o0_m>z*OpT!p1OK(8s)_Rh*AjYg|>1#20~crHA$<_ zukHBk#wCMqJlu1osZ)pXNzFF*mk+}b@Me?7kg_G)wgHuM3V_Q;!C>3ogX}EJK|}b2 zunc)d^+cc=ZH6_1q-9%1y{}_gVwypg!({+N7z!bU8DLhdluC>kXd5~=EE1G6} zOH*`h9b{)#y&s*`=^OPIujp({hAfI@)3jD8)r{VFeCTnVH*c2{7p7WyJHPkya z2Mf1S2LOY&6iQ`8PMNrxpDgcBXQ%lw;aX0x8pDV2Z{X!IVH20I@_=FwNX=zw*cJLo zk)MmoNUA)Y_8vaX2kR%SFGqR5>S>U*+DZV;ZluB3+wbr3dmX1TtzWqCqHcOBY7UAx z%Pdz1T2xe58*kL5Md!xp(amnCoF`WNB1GL*ajMmtC@usuz)Yk_Q+^ceeR_E`URm$u z)0O`9b8|9XcZ2ViW5@L9B;k_gN|v9dn#zZ$ zYD}^{OPskaSnI+THcgjg+#y{9nGSJR{{>M`#?icrlnyCjz0r zm=ljby^itTA*9syGN9OH$)0jLmtuQQaXFm*-YLt6B~hyyvXW4W!OQ@Nm;rzQ0(q+= z7-^ZgrB}{mw9;CxgpMMeb^$Cdjx@1)+RV(8%NZ7_&+8Z49fl<*Z$A!~mw%O_If%QA z{g3?f7pK^2XujoiX1VhMyeezQ91jvG#moc&0!VOfBgruUW;yxK5Z!KcPpc?=Nm<5rg?Q$UIv8D>dtQhmc z7VZMlKNf=pr#1O`JgKlMWtK=_BXX9nRPB6O{KTZW=Y~$-{NJkfutFg^=1V zFF!-N-M#%Lj5*Ey9`H=gg0*qS$}W-27kkM&c$o=J)P?eTLECPfpr5MtkgDn9$MejD z_RRapA9QWqx8XLhZRR+dCVGPGPAz|f-EZIK<>g6V`%>+0HhZx9)7d;#>1LMvrH!%G z8zcEG7xwO{Tx@o?8pCY7Id@ptf>u{nPIBwo_Uyt;oo1)@dcXJL!L=frj%J^CXj2#2)28i{ z&H6+itA;$n13&LepR!W0(rY4*0kncK#FlE0V7pBnwjc#_s|t&x?2iUF zLj#czTHDAoE4I>@gpKATGzle+Svb$$(bQ_Ml_zVpht}5DW46wr_eHU^*4Q|7D2*0+ zRjK8^aBrwir~RByb@L`XhI;uY?ju-weQ@?){3IyEOfpaT28KA@5cj~Jbra? zjnhPEO-CYK8S1U|ieuW^124p!?B%jQnpwyf7U$-C-Dc;W5{pK>b=6A6S?pO#((dk7 z(TG_YX$|m%qi_5!*P6LYP4B-SC4sbGipVCMw)G$vR1q#abnKdNDyZ_jc3nHkMgM+5sl*O4_!N16DxplP8aKjTS;nSUmqiCA;!Tq(BDNNgUuJ+sn+599zcnt4Qx{f@POakrY0yQM3@lyyu?-+ zArc`3SpfqmK!GP=GTGqj@%{9nlUePKB?)X)pv!DomJ&XnPztWJ6zoRRjfJC1#bw&$ z;*$QM_07nqfxW$8ENAFUdyM z3ijHUwj}aI^@!~+PTw#{I!Y%0eluddK#j8q9|A zWwVzlJ``4|JYEz>s{>#MVr-iLCd~jyfwYbm7EWwFa-qBd{Pf(+Oxw&E9X(%U`=KX_ z5(1$9Dp!Yc1_*_%s#Y}{*&dK6%}_3}7z&nQ>sar3Q7Q!p-0zaAnAfwOD_4ye!Z&5t zIUDt(bVay6aWlViee>Gl$iW%%QC*`IR?76^4kH#q+g!LN_l(0lj9Xr38C^rtn z&20SmBR>dAblH%O`lC<@!YCWJqD!1O#lqXBP{!vKH>;|IS?NA%|NbXrkA2gFHfq*2 zc5-3%Rjp^8`Uatq>;$VVK*U4>#2{_G>@pUB88wKLrxC`9^LEC{7GDg0)O58>;hezG8s7 zRW((KrX(u0Up=ufec~shezJqddi$7v90sS1>o^m#Rm>m;0RSL3w9=>_ zhb=2Jwa|(yr9u%}4PVAd2__|o3Lmi^tu*&P@$Vh!x=f?k!+3|uK!{8TLsW^l(-|km z(-_1IjS^bu6JfRP47ea|bQ^v(Nfv2xbn_7>o_IbYQx1L%c;#w~p?#$5XGh~x)AC!) zANE!bvW=u7Y9`?^-5e(#w9uV7((wKMtg=802$g1jyLb5=u58w2c6?YIdHiLUO&X&Z#pkEHs&)F{Ufl}n-Q40)#wdVh zx}3J372I-JUSM#=cu!VbTpd0Q<(eIuo`){XGA0mXoj*@F^HHsO6RUy5A*4jed+c88aJly3K?BU!zfzu@=7tB z8Pzv-cu%~sv@~9RvT<3bqZr#ypwv0LzL;UL*V=TEF9Dh-xzv)~%b7REn~uO?6DBTO9yV-RxsY_m7>iN}&+LSixsVIb#|5DX zH!6|Zr$(vuN5f*bo;H#~sh%&r?Z{>Xx89GmrRb@3jw&gNB24C$5*O_|mNkTGu}Ty> zmclV<#X4=2)QGd=$$Vs^g(f(Pbl#ndar*m2l)K^U|~Gr>V*;nMLJPB61fp01(9zaT4};)4u!&)6pR|lbM_K8Km?1#m=*VD9>P9J;#=Xz1o{uYu7F2!7NJJlq;YCI9?sZ&Rs z-M4WRJRE=9>yHk*3&*l-SR7Ys*_Df{hePE_jHbHUv($^T&LZMNgJv}xR|S#PQWN%G z?pL1LE%(+hb}(_GwR~vfM`m%c(P|8nu~L;NhSj1omwOmBuxU?p6UP8C4jmG5{etB~ z5iYP7@99aC?dI;q>pks{miD5x?;0&$c&vRit(A*ni~)ek-2%cDrjUQGM$N$TbOQ@0NuCI|gMjhZDiYsGA9~Q0B~g zyQQXjg%GN0jfamOOkHLX3al1v<$d9dVK87ON|h$-YVL(8 zI8$nxzN6L)d0TOtgtuMqPtA6Qy(5J;lYwO=Kop%v0a}VzBm|$u80FlS+yXmuUL~!n z+gZz8mQ`@3>4h=Gg2Anc@e5Tr^66P%WUbL8`3B>JG77fQFyWFgt#K_pi-<4E>QkvM=v1r-|ar@)am(+w=dFg`LNV*(3qY_aqbE5i?$V&7?ajHrIflU!paDCP87yC zMb1o;EN<s)O-uiWrm$#>TEvz+Kv$bh%to3z)9jun#Vb8P56_pHH;aQ~l=jPcv zK*3+LQf7^}=Fc+4#k`h?uo`-V&MBo7NU5%iEex{)5v)!DrO`Fub90}G zCmjU4eVx`|aJ2Q5sd`KAg@`wXPmtxlIE|BujdDzw9YYfn^|iWq{hH}C>0kO*R~=e8 zF_YFEw*N)r;5?0eF-NztdedA7LOmL#N9hn|0EPQ}Bc50M zov(QKf}T%ILf)y0w36*sxY(WZrk8iFF{tcDZPM;W|g ztDFKURv-pp+r(tSirL!8I89oU$kTZ4x=dfX#p)Jk@h;7PQoRxBg8(4el)BA!=I7u^ zPr9P0_N`qU58##-n)A#HcDCC+k#}SNCXuAgcWLMK7GNK@_w}6hwsnQq%_u+J+S5(H zEwC9`XB7AZf19w9M2X`l8p0}$$R5{Y@I>20fwX|Oq>60cc;8a*<8b9@cK`1Xh!!uc zghfV-Mtv7Csg+~Xh~xpF>$MOJEa=A?<6V*&VZvv+T&XuJ*QXde9xw|x zQL3YmiG-N}!ddjY%YHo&AQqxZjn1Qobp|u_4o17}zI(n+Z)T>U`&P%*@Z!<&%B{AR zdr3^R6efnd-7czGsmQkbSa-*!AnQx%SlVT;iB4d$9F1$Wbkh%TN!Q3W6@3}ps!uL;@T^chDC{!Ntxc7E&dc?j6vIoEt^b*K1rHSxa<0FqPkbu1kV9x}+fq&>>X=DPUr)0V%GC643l` zF#d;PL5BzVaBU@OIuoh5<&svcK#R>H8VS>4STK`P9068$NiP!TQZ&2mZ1>5{r+I1H zm#p^dDVg=tDs(yuCZ_VI^oqkp0ft2cP%&_1qZo{r3T1Z>qsh3N`XtnB6hjDBh83WU zi=ES~z&1$$fHY$rNkk$qr`545+ZS5zr5Ts&7DO>YP1i@Sq1<;q<$a_)6{icbH&VIs8p5+rG!(QnOG^q z7!F-A=_K>4V&|M-r7E!1#IQcqx&>Y=&H75ZexgF&ZYODbb9AGO>JTEXl8K%!j{^#2 z>TC6c;0cnhEWmk{e;^D(1}kP}#YXT%nZzYo5oUu**)2cSSA5>MPSg0mB zp`;Ld)8^i3YNOm*uRU{D=6Si;T+C&6D-1fnCFi6Oj5G?U-UgsUkca@KwlomR_A+6s z3;@gw@WwRFTv%Co$lO&6`OMaoJ--#r zNv9OjG#Ir$#vw$Xd_Hh>e&s+dJIVl{6tQ9z5}Z=Z3UJx!%l3RYTCK_2qYsVe;$_PT zk!B`MX#|e6?mE{Lg(ZL>``2x@!pYNTuG838jJw?@dg-m4N_#$p1=%+{9?lMep&FNX zc(N{FSpZ_vKr}nuRU7-}-=)YVjmPepti(M+=v)ija||woQe=hes+I)^@ZD<{vM_$y z>Pf=ktd;hkVP$G%*RNJpZX;G8FMSk65~S(DJQX?~r7$KKb68y*dRPcFv;de;KJd>@ zJ#}M&V$_rY)RqQ{+QDA&6dzr-^b@kuy{T$3tVsZ^w%8^ywoMFTczJX@CI$!~ z2DO`s_7`s+J=S>V&HZmJzBpBQ)Pq3}cF4`Hy!y!S! z9RS`AZHWcJD*2HaUiTzxGda8QH0J} zG61vF#9&QQDJHAHq}OPAY%n->EY4=Z`Qr6W&(FT`L6^uJ_BGO?2r8E0Mvw_qHz1Ju zqdXJ?nX5ey9hmB&r*d1sc3EEL9)VNS9oYmKS|1P}rY04*KG z&c(6fLNTR^xXg>b8F~r_Ov5lJ!->+V)Qn)cWJ@rjeVVuzCTv%Uf!kRLO#p~MV8XUp znZ`qZc$#V4+0&_(WVGazf@T#01SwpTMX0c`JG6^$dFbTEss7aT;hRKy7?g3^f0rxK z&4W?PZ3?*sg6Ra*3t(V(#tiHVks%t$5Ya$HWXi-hc2~fl1&sn!-ajX_O6V4o?u1Od5S0?zr`Ur z?FT~x0S|OvpNQz-e4sb6B;?Ewn>{i=|1Txewc&b_gp?foW>(`hhLReKZkv=Epv1Dd&60Wf$AA}}bcX4xKIyP+zK00X92s^*JKkTvKk zQ88&UQJIQDqhJMSZ5c!aDc7TE-4BpB@#D8^09?cqF3gHU+5H?6*Cx~nf;}Q54_#XB+ind zde()IViBr-E__oXsPcLkQ6{ipGL~QJk=MbUHGH?fHjg?6!7#=UC4>-sbz^rJ_LMy| zj=^gj5p8H)>NjHgZYbM_8VTq>+5gksw*-b05!(wpJq~7@JzDK5C~ZUpqB7%Z#&%zs z$>H}sY*CeLM~@9>lOzKMlZtVua$Y~n=Yk8Xiv~I&Lv>o!5p_U(??1G zj9@s*#}HPis=BQz7CBk?k>=eFYY(V>nF=)>vepO#{IBKe55z+|MC+IS{{acKr!r9{ zVFb%nXen5vzteX3bVUbLxUGHjtgoV_xg}t#eLHwn`^19OT6fz=QG%(26Nykkag}p0 zqs`B^a2kM^?XF^rjtvWJ>RSgk_sVDrpBSJIDgD9-QjBcOToi>0Mv7InH-U(f$nwdS z04Q}=;j$}|Fl@9E-lYIQDRNb3QWJv?31fXk!K6$|DTF@nHTf(VfabosdS6mijfvSM z;X1>b7Dd+U=j!`18@7Q0cjeC3T9bxJ_vx?p^SSf zo<|1cSj=P4|>Ys)|kJqo&`rAhJ*Z&|)?q2>@)< zfWS415(-g~8vXs1yQT8>B$k%!iMLwWwNTE?%q@{$Yn^;C2|V>u2BYe6Fd-YD@C{;Z zA^IV1ra6=Ub@!q8VM|SY|*2ri(oU&Hs_FAthf*WEjGbTwH7B% zp>lQ?gR6{TUryrPK52wQin=9>Caz5Vn(y#MYn^MJzZ>7ib@OF<+)SHh*KGbIo@ zIXr#6zUHQV!Kf(;q!(KK1X$DnOb>NK#f%uENQkTDKnEtRR<0r;*H)GhrN9Oxp$p&7 zNFgCWuwEGjVym13-cg%>yim0aq*lRnN3A{{VqDd(;|&MD%d|TTfjNlj(ke>98KzRx z(9UdC0+W~s3FQ8xfy6=*fF;*`CXXSY&ue3;>GwOq4V8Pxizm2Syd6H8eB68-W<)@g zapR&C*mdm?up$miAdLiL8H8X10ZJ+L%}b-8P$1AWHROJBWOUFHF>Y!)i^if6&TVr* zOi`4A6FC^fo>LOgq?juy14?NChmwG>H8+V+)dV+GMy^c6+77VC0r%$V=31f~1#Crj zXOu$k^wDm5JMvcgnAJ!isS==?HgzzX$vI$HOo%lE5l=~QKWB{_~fkAfTlvu>1LfB9aC?n#$cz*$JTtmnimdco=LZJvHC>)p_q!I{Lqd@hRvJfoNa@=pqP`I5P9L;IQAnqUsrrQEU z?3}Jf>3$h;jn{F(lK&a}Mz=JJJh$RiqRkgg_-K11SOae*( zv}b5Q5ows9B#y$U1tQ0gl3`O4P^1M5l7v7d6%^1Fh-i?(ReR=P?j|^@q;|q-BSEaokd7iox@lJrE+k+tvFt$Xi%xy-f(e^8t*Sf2kRm}bSU3*GGyz~v zlnEiB2!M`W$yEVd8=Jx?KCuiTXUzKMwO-nsZ^KDp?Dop2+&R` zZ<%Uh+69qH&%g$Aa>jFx{m(@_L^cGW0&2{?WV=uR@*d|%OudDF#V!D#*g3^GN3H>@ zjdY1Z&=ShB(6%PDW@eJP4yHSxlvAfNUC0_Cr=hBFGbePIDF_YRO1^-v;l}|00C%HT z(_1(jn1V%*gakz#Q3tZGsYyjDYXV?q+gzt$7MU6cpCc!PSc9cQ3yi;0+)FF>UD@iX zu*tId08|;_Jp_OcY7r)a0#OGdBRd?=m))8Wg1{Qg!EjJu`4esli-14{kjc20c55+$ zlBjI^DD`qLoCZK7B8V*^>QE^#gps}`w$2K{rc{Xna?S9z^1%(4{GmP`#szBkCX-8#mAEE~yD?L1duyJitK>F62^riM427xnaZZ=3^oC_P}v}xLo?7s%2a7y z6GQ-O83m*Q0CzZ|#jr?6#{Q6ot%>`{QF!6Is4FXTQ3SQjy)0a&Nz_XU)PldK$Ed&x zN0en0X$Dp!sfv|_ny}Uq>E@;mW|&k3WI2K2Tx40pa!%Lb4sjC|j_YoeT=)pY$DJ`? z%OIrHECRSvv4a1tqBgGt2j$mUHz|T@q ztYs}p0E&pq>ua<~7XS&?}%;FdH};xQbRF zDg`2PrY58ZU?3?NySE2fTpZxZkiVf6)V_U2x`U2)KOeZ7Bn*7z;6gmY5UGcGltXQ8 zs+wSa|1WR1sYko6x9R@Bg_1Sse?Oy7*96$bRp^p}d`*0GJ{+kf(K+UVnQBsw4tbU- zo_8n!Rg$>-$Gh7NfU~dPAzMU9u;TM8U-1*{0`s5jDpd9~g%6YaPv^^8I=7hLQ*8nFA^2x7|ONckDl5#2^4gMLfo-k22L3 zx9VP2AGcOs(?M%bG@#@Rki)z=6(G<9J^SQ4{ZtXMfX!5z2K6 z29&DUAH^p($Yp?+R>JMuaQbk0#{m1K#|X$i?rMGoKesRP>%m9Ohl9O7aJTINDvkEJ zzdt$nzPam|7We(BrwG4Rt^SoMdEVVBPdqm@fh#{7PrV~JlZQmX47V47uF>taawlhh zUNO-n0H9?gca8%fqs5mGj#sNDNkJ@ekFotF$_u+zrfD$-f%>En02r-D{&aJsHvbgj zFM;p=9PfMa#gmmtKCc;2fHAd!g_Mbv3WicnIqz8`YkPJAkmjh~?7>y;oFa#9(fz(q zuv0)apaNoe3BJVV>2~Ew1l2@3EKpYBCQvf9a10g9KjYw$-k&{q@9%w);>bP@mCdbs z8D5bZL3j=}J{?fAUjw?u-PXvrer1F^K%%Xp0%~mfM!0LrTC^%_m61I=IQb8rWf8EX ztH0tUS0D}$=p}3m5?}$RgI4BN2#^Uv&4~;axx@j914=&Yzzg(_+*_HJkqwdJfz%3V zSuF02A!%*6w=>Lc`&U|S*Q>|CN#iw zjZ9T?x4g= z4B(=l@QVNgR3JGL@2hgG3^NYz!>C^)>Q3AZKKg-4gRvz5r>}32TC<3A01$QfIRH4^ zsMVT4 ze~GG7=3GTg^yvM0fbAZa2N)1(*Y_2Jf!D{>N|L#-3aH4{+beAc8@hqs@|9uI>y37! z6kVW}P%9xA5+O!(L0Ju?y`IpOxEPa;Ht7i8VbhMFX-G2j9OU5Iw%t8wB>++(FAf@f z9+8M0#$fK0qn>iq(+>O5LK$AmSqEIJrBYBSafPmRy8Uw$<Vd(}% zfzI7kMhP$R4&<~IpoP@iZW2dELSam+n00OqA@I$`Fg0An+t3g3P@8VYt@;(F9Zix+ ziCJdhBM0*a03Z+I7ld>Ghh;2|_Kc&QcnCkN=0ac$G?GIKkGFE--(JKCuE%vHNNXtX zYlH6(k?k%bSV}>Wp5rDq-@7M^cKyw@lsHdRG9TKA`U3NO-uDxU1(?Q);REEEILhOTnAz$11 zyoUVTG~ucipIRRadMbcq6D9MsRbMjmi6g#bjk#w;L?Rl#z?=BK^oNQcQy+giW-!;) zpglp@+}qj^mGW6U2}o7J`AytAe#^3aAjUwYAsIJ_!=Zox3TFpSh{uFIB8Jo43yG)s zGJkE4@qF5KzyU0jQ{#aMapoF~Sa{>X{g6*L!`TAb>Ml5j{6z5;^s6U(8Wn?4Unfgo zlC{DHI;^S(5D);IsJ(ih85}69`%P0-+hdp;L~#OabkSdGF3|l(73M@)-4sI*Fj2Tg z#St1|?dy0nzry63cxTcPaSK8`Kz#koe}o4kGW{jhE@aL-5!(3Ae?0lV>zjTqzF(e~ zn+AoetAWa{4+oX04bo||-|y>SB%1@PjXG!>f(#<_Ssh0oT$NNe$b6M8Z?i`aU&NTm z4kijCgs_g+>#4@sKIlP?@G_>}qJpDzstvM4?j}W)OE;JXD9I$E_Jk=gMLwz+SQ7KD zQe(C?Ui@9+_sP}9Wl#Q^>^_@Hs5+X>fyh%4)&@v93&%mIG0g<9ZhgH}upnfP9L>3x z-3C|vlH25+bsRGd2$qBdS1H^n0ND+cEn-R!w8xak;8*c^erY#l2}~^rDVJS?pdxt< z!0cj{-QY*mZmY9UW68-5d6S?<@M_8r_&l3;6~DgO_rHGQU*)D(U}8iaP4+F9()PYC zwLw}W5fTKMPsZb+!0peUwgDr^PVYQ#cmAwL(<%e*5C!JjHJJo{f**K`$#1F0xEqm# z26GV`1EF~i(+~%{L5SS1|1dY&p>NG!tz6^DW@avcJXoMY4HM>BGUFLDTy|qG3-364 z=eBx1a}#iBfrpZ^bp= zV^SRu61|nO02UyT@Uc4&Uyy*Pa&~dHdteZn)|()f4i%w7#?wODw7In+Y@LmBsH6K- zv$0m8HaQf+TSAah3;;!zHyFeSMb~M-JPqaUmMyyv>HUz1I+ALN>qlk|VwCorg_BhA zVX_Sm{albS>`o;X44A9!aP!&?eZLlPm9^CpiXG;WbK>oI29qMaU5Fmq#D430Apqqy z>goBabuhd(UmFx@P}oyJ*gddS4LI43u4+J}PSP=`HKArCcZ?AfC(i;5l2F>=kvYNj z5~nt%UG_@9OQ(64Xf1UY>4ASQI>Aeaa@FpE4LlUf9~5x|`bb9Z;IhK~5+)Bo zu>(M;ucz;t+>>QtY6EPeftuSxAOfagWseOg!|8pkkAqda4~W9oe@NpG{%qT97u+mi3ogc14NP`{2malDX^l{TX$-Oa4|Vl~3!*3P92Q{RZ8Nn*aH2-w zqk#yfd8VXNj=VU}6-OcUF$?8XK0q~7jFsTZWZuZ{aN;IedM5rmeq zF}pdoQMGUYT?pw!f()X7rox@O{;b4}5f2WlMSQT7VayN~M($wZYCQ4MvcuIB49X30*))G`5lW5YnP1t&h2LVDQ}F zYXhge0Z?QJ3=5_u)CG(&Hl;z}bu#OPFXtoFe1y1ArT|xX7dik@f%`uS`$tf?4_R%f zsw%7|3Zil!YL1;*UyHON#7NsqyzVqk4TV;;x^*%vU{Lp)o&hKl-}9Dcxu9A_a|-Sj zzknyNl^Z2MniUb8sg2^mY)cg#5rk@U>WQ}&*n%Z*F`!tUN!nRrf zaFo-&&L8NVZm$5wf5`x%4nGDL{a;~{rnNx;vi5sH1`(^0BA3~D{Nh5ZC_w?hki%)N zX`H)zKnC46@&mV21{QsfPf67Uq*wqq{3`BlzCyCI$3ejDKosJYk9&)2t~owe8`Yth zD4D1r+K1 z3?K34dS`CF%xx&C=s zcB|sTGAR+<-*p3@aHDa;{6Nx;J!PH?>2a`suq8w>y3-R(;@a>Fsa0!Vi$HdJ*lWxT z#RIieNn}OLm~>mz;Mq_lXHPbCXzzRS4U z130Gtd44RBz*uk(9e-G-^NF^KYEZ+>K-2~+rE<>*_Pc7D^u#g;IYp#{BC2P=mEG!; zJ;uGgtP!zLq$u|6vO%^ninD07jTR|xM8y^Z0GN>Alo*&_33;Z*1s+4}pm%240O%TvK97;-fW!oDvwP6oa{CFA19;%dl!!`P%<-&BuWdxZqQo z9zaxM_>`kjirQrJ01$WPMKF-s5g`hs%K(zR298}^{Q7a0N-cvxTt#Tqlq-~I7dNDX+l544`=!%Q(R&0NwS3K`F zBWzlWMkT15n&MuAr&b&TmIxhU8l@nL|HzV%y8XQ|a-^;%8%LQH`5TX!VVN-69o?qV zXjy&GG6?|PVvaITjx`tc3hF^lGsdtC_CC)~4N;CfyghlsRuXWE(nvA~!~K#9q4=Tz zL&+9I1=U(pE~RCT0KNwB-9M%K3%-+Sz?UQuWTJ+t_vdI0r??PL$Oau@mIP&E?1Re~ zJXpEapvekFWWv1`8W&%!Li-S!%|$G<(B4G!^n8!0dx63{$U~4FO~Me157@O4GTP`2a+T zR|Ei!x{PdvS>d42*1EMjHW}jOg~lgrU7@S!>cmrLDiw7XUQJv<6{vt}3F(~#v^5|% zDk3WqkS%@|6jDOm)>^B2o=8HOi7-U+7)8+qK?NEaL%N>hzRv>yL8}C>Vg&$M z;;40kR6!hu^tjEeC*ZBT5&v8~|zx7r!xl8D@cf`&Bsj$0Mv|UJKGOt|;J&bRV4%6JZ_26n_ zWHiRrLR9Q?*w?Sf#Q6dep+vA2vjDN;!$L2_hl_x{lofdEKGbadJ+%QZ4BpF~LNr=q$75Oj;2H>iINb3NK;%x-fs*tPbB-w*k(*ipy=ptG#uu7eAMrDZi z(^)FLuy6m9%$p-2lLeL^vC^R61^HFX1_p~P4gjXu{Q>}(BbJzp8YA6i#`$ zi|8SM2M-2p>9pHviI&053y=FtMq&EruW&P%j&}s&0D$BWMigKIH&V58^Nyquy?|wR zo9b&?tRUe1WcPK9b&`WtIn#*==8~a;76;P{`y1D;;dtS&>$Mryy*jj=j#rfN5*rZ! zP7Z9;TS-d;u=bzrTFib99%_EVwYmjFIz>q&FT&kPEAo;M!@+AHt9eC11>&{PNwpKe zJCp&`vrnB1C?OPl*hLoUszG`XLXu2UH#nJFhMD>UQzm%@LB&D<5rKe1Cj!tSN6&Ww zb?JW7dlxGV;wljZ)VTWFORf}8ua0=WQFA>K*C9z9;e1DoHk==*dgpz9q?;GI^@!!L z!R44tX=h5k9Dp@7HO*=T8MAmHWF=-H_d<~!@$qC}s<&%XznvZV`&$wbkwXxX)qB7q zjf&y}3TIPtOpzJaDv06`BsF>nnD$Gz^u#*EMMcD}>u(NoO>8WawYe3$Ux~n)Aq0Ys z^2x-3mwpNy>H>QFAGi0ASf5(Z0#8w=FcR(?Iaeefs zvYAeErgwBEfYdaYZz@1qY5|+WuG&2MvvxIcg%~EUI?EO-k`T88jTf+X!PiGsL0#gA zp!eR3%Y=$}AdzVTCrFLU-jmgUg|yxI!!1WUG%^CBB8P4j#Hh()`0B*2()~Sqg5kE` zUqM8WP2v!sMKKuY?AHUA@AR}L53-d;MP3qpb&yT#W_jLV8(-*KHG92EK?|e4RgI7 z1g<9;_x7H2{oqXRSKCk69ALpsV*-}x2jFsehH@4;RIC%|N6|3Mz8=U##-a8FzzeuVeMV(ou&I$=dWx2t0MCCL}Md7C3O$#?t~T7TkL^B)k{ z@oZ-2|5&oo0J+K#dnaRy)G?vjEWsIYe_=lh)FzE`QDnI$62m@HLJV60si{cG$UJF4 zRb4%Wg%1|=PR_#`xcv)Ljz3|_@yFHv@$ZGqADi|1$1FFT#q$jJmsR|$>BcL1UI@!K0@n8h@Qo$^>N!E9pm+)}KEalAQ<95CGV_Vx6+I59 z_#r14vcjzDL=AB~3_WQnOv@rP1SNey=8#hWAt1gn0ZLsx`)yMRv~}(^{v4Cl*DG-?4V0gBLKje zY>%;Y1h&*&(z#cGGHX4`D}m}nIVBn+2PuX)gOngb=z!pf0D?3DN7TYLn5L`e*wcgY z#Y1SVG~Btm{cj3hKN8$ORFnTkVmjAPu3GT_0b;;HmO`{`n%F!KAQ{3Ov{zH^e@gBC zzUtS1Bk-ivU9Mi(NQfPybc$%qGcnt==CrJS`|Fk&P`zm6W70FGCML*#o;?)l${xe)xsG8z_Ix_v^k01IV1g9sK$FbrW9 zlz}SU(ATG`t^Xt^_sHNb8wmqWFyw?PVfwQ?)E{N9ACSHL5V@%nvuLP$;oOowE{S2> z8iM)JPYH@@07(1eMFoimS2=g-7(s4^eIg^%^9rLyP<~AIfg~seR&XsifQ7VzkzCO* z7gBd{P%5m?=3M_lw5&QE)Y+x^l8_2wb_?uJYhNo~u0mfDYH)e;aPW4fhM0DLya2Lf!ik6f+|d z5-koX@84?j`a`aN{vD?-yucY72}1_hNnnWt%=kFrEnbZSE$R(TLW$QRDf9BKpe9e9 z#fBQe#Ok&ACdY!A@RC5(AW>SBYyn777mlOL6Ppesvl_Hol-usq?Efy5U$CYrexD*1 zU?J};&9RgXEmZ(fK(4=11FrAWXRvKEC)lm95ugQoC%@n7OF}8Rl&s@Zrch>;E5f7> z#GI+zTU#44?Rsu{R(3%K)4CKuvL6vOHCImd^?)HNgmckos8Dxm=6?w7pCb+=ndtiz zNwLsdHysQG!H^9cQR=Rr&}!w_W)9Fu7_;{fsZo7dSnQq@o#ZJaOm0k3)rSfty|=0+ zqO|F`E1C73iGpKZak>sj6Y5Z#=?6rU zSkqprgys^-fQHciY520}o7&3Cjc2^;iq?y^wyU&g1QfSaOMjcm0G_v_P7*^tYB+cQ#6wY6UqPv#J7#1KE?l~eM<7|ia;oY!?9 z77u`xjE+TfQW(dnW)h)Ic29x<2P;X`0MzD?%cdwM6cjn#eB$QSyz}0D;I#NWRb$D9 z1eCnj1bY!dhgGR(Hn5G$zn_GLZcJ-?yrMu$H)N39@L+yJXiIe;AuN;CF3F`(6;cDr z0X-KC?~REg?;uxz)Y{B;*|f;t$nJr-_=bMmnk8@Wv{hA8?nX0V+@oQMO${3opVP~G z$^+VeEnl6*CmaoY9bjBTr#N$qXbCXLdAx~;Aume3_1iywdTkvjnKb2HaN@%dLWE)518Mz93lC;&=bHo1iz?YXYCaPMK>ItYSfQ%z%+9bc$uSn`N0e25jS)+N*X zIa)65Z0MZHY9h98eDY~M0m>}%vDY9LT#34m3v;aqCD%mcofEJT>_`R^^Mi;k2!g%A zWt&mf(Jm4faT%-Xno`6vp^&FBSV_ZT&l{QwU=>Cz-w#^)fQHYf=`XIHL*;vrzfEq4 zUWwT{Q6?aSN~4;P);PyHf)2{|LkNf`pS%d*f4e)lY+5Z^1tez(V)o-_hALdyxT8p!vW0N6PyZyODaHAX5vVz z8c6L}=d#(-6AURjIbIujU5Kn?m1VVo3*jYbgoXu5ST(c5WH34G^D@{NjlphnfQIi} zhWKqSUB6fRq;JKZ+dRIAk=z^!;m4qF#*bFHoI)b zua;HRis~oSdScn0OJ};d#k>$`cohvMDn#1Wl107S9-Zg#3W;lK~ncohLPNgb+2o}QU(uE zDP7t?dN+b4cqS9Ut3G?q=CW}XXXlp9*dNT;?>*ozzkyqu`r4Rd2CN}cXd_Oca)s^_ zVU%?wn&Jm;BDtaK-yL>zZ~eenEi;@YUxOo5_U}qr?_rlYEWUf5no>pHNwFLEj z5QBeLp<>B-gW`JEN zrG3<_#j5Ivf=E5b6gBjR; zvqUczep(ct_64_W1pK~VNZ#>%#FWlsL^Yl$L@NFTF4$A&Q6gc)=d&@_qwx|6qNH6uWU#5zC{CwRMu=`~H-zMgK}N&laP*}Ly-F>XknHFLhuHT%PjMsQ zk-zx|N$$}~oY#c0VV$BnFgvL85F3V|h-%|8k6AsFMF7M`1z|VYAd)6A2sghE(spQk z>cb~>8mDszjFSS1rb5!1lZe!4c#0f*l4(y#Gl8g zWLO!bZJQk0eW=c3IZ=wNL~TCxO+FkSiVq1X!={l0!6lBqSUoq0s&%-hkn1ywy{mK4 z|42Y&cEg!*R{B=VEfX4+nlsk%-Ni`@_K4n1Ki`@wPipoqCZo{NDA2j3^AzDuXXE4T zsJWn_lcLU}-H>U1X}72iT>F{12YWo6PfH&}Y*7X**g`ykOu8};&AeWMI;}EB=@KIo zBomUbl%%9BZ4FC!5ThTk;{XJ;8vUSd??RbmP?XU~AgOVl%3^4SZSQZTw^PdyNu39( zVs4$yxK^6qrP&R>a&$X<%~>Q5ps3xu*DsXkh_&9Jk%v?CtCS8Ghr% zsPmA#Bg)vX$`3@VMu6wxaidf#cP=6baDW&@8G%)uTdd@^*?o#fomS}$jBdggIs%FZOVknAq5K=}05GFzp9rs38D<0tTH%!Vh@nhg?XuJDV&D7j;Z{u!M;S zLna-QN5L#H$_z+CQBh=%FC*`&v#Fi_nHZ-8=Qfb?7+AUug!0f;`l}ANIT0%|sL~So z7pEKFuj`dM@8&Uinq>|1W%^~z(qD#{^a@MUKM+bmj!iTihtgB{JUpi(G~?pL|WGLbth7B**Z z&B)fw+KbSQ*joguwWe@?mMDo4%yPLt5Q(Fq(tzF7)$$v3e#Q6le=yginuy10d<{P5 z2XAnpC)SC%ZV6hs&extiq8SCFS|t{5Dv(f|u*_~{iapucd(4<*%HU-yAKGJN23MMu(12&Xg3lcfpdAJr(ar`EwjdRS) zt`D>2u`~M+EtFZbGStbBou@3M9wiED-G3A9`pE0^r>fT!u9&wrRbrKCjHP5*+M<{f zrl8OVU_@z=y&oti&=o@+uxR%#3E-(#vEsz)G}jV_a1^#0u}mb7dPAW&xLVR7&&edj z+uh_xSQJ-ph;;XfryZMenDu(cE}uK?3(pwMRp_`C?i;-pQgeL$Ljv!=mdEe^o-kch zANQnMsWf;fxWW*(FN1~$u4{1LCe~0%0-sX%RYI3hG;M=zp@V?P;1#;ID+C9;y{h1p z41pz^AL78l?*LcDR5eXftz1RXGV5PlE*z=DjxAVr~fdQCG?&CTz|6?3sUEvPpkYZI{! z`daZrjJt&%tM4m(oT=AgA!HaY6yQw9;`=^^ItP6{=i-(B+r2na!#!`M>cBfti7=t9 z&<>NXvSpngD|9vz!7Z&qf_cCtfG?>CYJ=6!8)I`dcF`8fyH(Z!IKh*HkD9k}++ayn zaN(K2i|7y&d6QIG1Vqi+F^O^PTtLkdjGz~UjJRGw&u~bFsyYBaYQvcxnq45f8axTB z$x1JiSk&6S!{yot8Wt*&7hoeM>G zM9??mC+N)>2dhbQhuY>bPJ+)>#91Ou`}-!7kLKl26UUT1!8=}|28g_Q_$eL1v*Vh%4|`sZ`vWNh>V}Q8I&ztj zu=5;~u|ZkJS`z`=lTgu3u`*#{V#+r07z;*Vm&pufUGX{J{tgoipw}KhD3>8%Q9uFTd^!#D~lpf8C!vkOA8%{GxOENL~e&>Z-7xRp~XpN z2P?$53zHY79N{v|e+!)j0HEAvm8$s;(FwGqMIFh>|B)6BM`X=>rf&~}6>7Fiozug>xF9~QW+=6U^nQ-3~k>nBgkWuN@sn#V1W%S?Yd!vt0nR_S{i z0MPkPH>T^re0@@Gd&aFw^*@BEBlJ3SXun2pl5RFdITm;-?{3gIm~ykv=Ux1c3v7vl z`A)0dVQTk4ADCo=S`nT&`O$tH_8JQaG>BDfw``GoCje9zrlEbcM09DNfu07 z@G`=VPX#=FJ+F@+VAn^M@2}~`;+fJmhQewk%>`+Y`vuBG45;UwI&y%jMsF8Xy;uJD zgylrU#}o*B^GpY=G!tfU9iq1EsEPcCi10*iWw%NdZaz?wIH>pL`>(?Rw|1bLsD(3? z%}5+pc;J@n6OINN0;)`vB;6cZQq9P8k|2_S*pkFy$SsV76=t*z2D8;|;wF zt&)Z{a9T+7Bnge5l82$Rdga_l(i6f=)Um^LD8J(~hQB1FvE&r6WP)a4HR!w#ojBt% zizXCLHKej9*NQX2{I2+49dO5i_c%>kGclv^*dMrYy~6j~kW*(W)9u1Wwd306PJqHGG+Rp*l#yAX_W_o?}z<&FIV?MvdFwqV5 z1@N zB2ZsmnAi`RO{=(O9{CaQ#M5pd-KqCWFrb6fPzyy;RitZc?o9{TEsG{?Pk{(fVrK#a zoP-e74D39-h{#5Y;T3d?EW3N_q{`3C5UeP04*{}Z2rjaFtX(Bx);-b>!U%!MJ;O8Q zyfAW*5(3542N5x!E7}FiP>`qDp{{l@P>}4Z2q7JE6)Fwa#7ILqY)>Lu8r{dg;h`_!|H0-10|08X66O2Sxyt)Kv-ONmEK17ZhVxI^K>1>P>V z_r%V;dXb`$aoCstH~$7!MXi-2lgjupFdcNqwBLWi>vgZn=QkP%@8RxeefyHdi|~D@ z@O;DddQ|1(HS-knGpcn^vI;ieA$rN2OGu0e)t?gfyf*Kje-~{%(Ysau?bjPpaTo91 zE)DTif-Q^Y6F33#)-)EE64Qqm+g8u!!6g(78b6NQ50(88kPIxrfifdvbLeRmhFtsG zaL`>U51A|%uz-)@@(^v$z78_4%nElLgv>#-bOVP5Wo4c~1@?|id4HU~V2zc#A6zq& z@w=wPo#+Pg1#wRr;EhI00yugOpIZYr=<)^#MHB88hR8kTAjiUqjBU<-%HKH4#$Z^u zw)?N+zrQr)<7=MV9lC~Y+-i&YeLhh2;Sas(IP4vrc4D9BBlX&;`yx8^O{S&gJdfJP zb3f4C^BO2kPiWH5U(&3D>uX08%Fy76>MN$%imt>}VhV&MB|5`h7B35Rm@M;(DMGp! zu-aD(Z=tGO-L1s|1=1*4H)2V}o3I7+5(^f#!US@CfwM8Q%osg5Nvk;(tJe$;MhtL6 zhOmVFGMAb1D3drIz}~!#{}~o|h-_}+$YZGCay=bcSxIj!kWH0h?NPHu$6Ey48c{h6IZBl1tSr04K^YbbNwma1F@svb!pof&{e=6)0Qh<_ z+5Jn0`0014czZ=tC(Ttem<8P#RD|v@?;*P}zF>Pg&7|Mn)6WZ+b#Lv|N0gSDBicf? zYa&Cms8WE`Jg<9PA9Uw|2o5kRf-mtN_(jynIbtY;#U5L_OhhDjOk6{b6a=+cWHeE6 z6951uE(z#Ncr&z2LJW=EnDI(urWFmwbTANsiVmTXmdVYFV=0;5;#Zh*AEwY@e>Fja zJ=!R9yL_#YLA4N)NDo0ejMz^NT6T6>6Xi=8)cUJ zGnf_Jnk<{GZ5aZ!w?L9HJcc=jXqyX@4!4?&HzHyE!rCaGz%ZSt*q*ZwdK zp|(xVCKej7xGi|e>|nOUtYF4V%n?g2YA+ZfJ3YxT+0lu)k(U)~e@bVa4xGvK-BSghD4-KtGUwnt(W zt>5A!VRfn#=(<9L1de{8W|ui=WB1J#JZAxcIgqoTabX8II%NOV z`yCU+Fg5sSMHpn;7ydVXFAn*I)hBuhE<%Y|5&8gZq?*x7lBHcPZD%Xhg4EXT6jvIQ z-BIRi%(7mdKJh429L0NxN+C0FHdgW18ajebq*H>CO(_y#uzh*ESczn;&B6yDz8e=Jy>P+jR+s?Q# zu-o8rzv8aJzfb4{y@Xlv$SrB)F|boKR|rF*4F^;+xEa^?As|Q-ZDdqQT_f)K2O zV5hlVkvPH@<8(k{a&YSV=7KX9&qo0Xks4wwP9yQJR*i+w@K_hHV6$_lqxo%i^#@$4 z$cl8FcS4_1CwBCP(_R(Wa$kh;tK-Bc;5OWWI>*Z()JP zOvVv2YL>KObjv_eDFD1LparDNRm!{?7ep!vIAFpRzsag#(S;)bxr3km4T4jyU`ASD ziJg_16pxLi&=N+n$;2PDA4-I;3nIhg#3c*PLOw5YWQT8^x#)~jaq*y{O!Iapyd}U= zYr)jGTlLkp+ent}j?{>N37iF{Of$dq7^Sy&YV2atjwdLIQhnkwhLp;?xE16ClF=)) z7y4QVH!x&;OydGDahKUaFt{HrXnn<2au6H~YRvGQeu{uqGUM)jlC4ZS^MKf zHC-VQ5dwxV9I6%wqYKfu-Xe=5)WQjsq8kNA0y`Bh9I@ptx?eaLx9A**Ky(u&JJnLu z=wcGe)=?N4%fPsNVnTatpZa93Sx_ZR7sdm2FqCrJ6%U`(olk;YYGX1H$4=0VEU|=O zvVbCaRNHooaT;9bohr|-8SlSj*>BD3HzbR!Ft)@9lK0_MS%^Z|hQJ4ygiFH#N^xvs zL*1Y0zy$|v*J1Spn{!^U%@u!g;Mp7YtLb_mT?ku?M$8GDh%Wu z4Cb7tbpc`>bC!d;|1~C*)lO(vY*oRd9GAOrq~7y@qk=9)Cgf#b#K zCKU;R1}cqVG&6VN7}i$!$PShcGZKQh5;_irO0fbyzyWtgt{13(u1{u#fe33ymdr3F zkkRV{fQUeeSrmVcYMXQkC$HDsxmKuHG1b!b%3eI~3 zP*a#Wu=d4*Dj0ve0_~b4rbzaY3YuCRWV|BuB=>Zr>kX2E(mLaa%kzRCCP{b?fE1E3 znpu%F6!v1S)xkdgIKTB=mHVG{wA=R`?fAan5kF?|6@gcTBL{o82$evUYQHSh)nIk| z1CvZiTyx^e9UB|-?Y;CJb%pKTKz2fhH-3^XwwR+{Hrc=pf8rX(VG_3n0^8QnVopib zv>SMxY>g1aBSeGbG3S9W@R@;wfWqzXyEj2S^hL30nP=&Yt(n*1l|kUm84Ac2D-pcB z%~ly*qAmk#^R1{fptbD65K2r!(ZU-jis`=0++a@7{Q|u^{)iup4>}ay5OMaGI=L5m znU+Nm8zYU-UIw!u7orI!+VZ#=Y4nn$9I=Xn$gJ`7n%MI|QP}m2drn;Swc5AWjNX_y zjE)xxhb&MwwL4<|I;puQua1uoZtrqS8fWwwsb}Zl(tk&W}S%b2^ioiho z0}fHw^c1f;soodC*+|_!hH6gH(Uxtn?ykFbxQ%WQ#44&tB~pc`0VlX~v(epYpRf4) z6Xo>WOke&NlMZ!iiboQD#@6Y01m{wr7AUYjq<%D_4t5?N;yjI=Aww=|Psl2~irsFv zv{V*md&vQhGTm)j6&85)3<21KPB~V!V-BHsf(RJW;~bU11-rLA5GaZPfD(1k`%{q! zTd`MF?f3|c+tUn$1E5ey0^(_Up=CDUNvRg+TFFoqdC^c{pv*lrOtv3Dj4tth!&T7#=r zDz9inUYii6V5WI9Q5^+tL~=_|8Z-9TMP#saiy#n_5r#~m*t_nWJj!I*2K9H+nPoRH zPL4JYk8Y+-?8@H7E+Dx$qYEeyiOR|lDJ8wFoumTMNP?r7Rj zA#6;q|2aElU=hQZf;|SMBvt)NvM29#J43y%=3{bSb81P1K3CaqO znQ{XuU*oqIZs7BpxkMJ~D}Lsz>Q1Tp*|Z49uJ@QRfAFQP0aRO?bAq&j9G!`+opS)$ z=jLt%Fln@(YaG=^cxWJ&#{6w{iNRCcZ+ML>KH~&m(=DqOwzbL*6Ku$31QjS?NVo}=_*}`fnZ~Ym z$UK(Z2ZgCCPzP2>a$h}{EAQ4@W2-Jc z9p@wF(BBzdGg=diX)}OSpb!;+PnSysCC#N6T@Z$)986FcV)JB`u6uo3LtE@i2y{kueusdT$d|Sn}EJ0odr0Y6b*wng*by zzyYLn;)xQGb;q6MXX4U2T~-!ef#X(E@F_KxO}WMX4qW|ROp;EH2Jq^amqPB z_aS56PNiV!TPn6UnBAUtQSWkIn2n=nSH;&VjVlNL8($%5=6PVxX@h8G3lvjIpGkGr zG^7PRprV)*8X@AvronK2@Ko#I`PZGx=Oa3e9}8hCPv2egA}Xs???bR!aBi@5(AJ|$ z>xvg=-q%VD1UIe^YD`xrRoXVOh)HJIVZNLV%VC+fk2;mTuy>|#u z8bd>T!7cfK9*~F@Py+?ldRef!PUsCzu(#aX4;1CbM9w?_p~dT>!2Nq5YlaAbmjQ5& z-Wg*hBa>t&50#r#QE6KI&j;9~a)npnJ$ZAOdIOgRwyfHq$<9&Kw?&68_KyC-_&SQ^ z|K3OOl)Px34cExtJvuJ1Z}614r#Zn~1ZAl>u1xi~Rr!8L_;`X^P=|RB$q)w8t*9n0 zJyBkX#xadSP%+ycl#1^!G zn+dc+BKtf0y6!Y%H{4*tMRQpNDtLOg`;Tn2 zf6%+Q{#re{^VY(uR0&Z8X!03@-?(zX_gAn?Ca9}n0>lyfN)=BwkG%w`m3E|FW@kl{ zinLP8hGp{WBSzTl6J@RX^fOLfiy#VBnMaBS(;zwqKZZGvkX87aC}jBBl1;8C?dKQs z(3!u_%(^fVGp~yaKNL_EOb&!3$9%Dhr zF$0{S)JL}<Ec>tg2nI~E43GY7;?i3sv82(e5C9^is<)b;>om-!kqxB4p3O& z%_O=Yv4jG#hE+)!?hu5S4@6b4h=#%;8VieYDRoC{iz0N30wXuGVufy%%~cF0?f!s} zwF@8uK*tWbv5g&jj{$x_IrU#?ycT>ftk(GuiG&zhv^0jMC)^M>Ab?04vbhIAYmb^G zf|rT|$c*LyD2S2*#N?*qX;dASq)G8@-yO}@v;`m$YqGeAV*zwR)6;>rHr+1H4mH5n z25tb1C{k*L9gYdQ#8!|@Cy3i*tX=gse#RE%znJ?mxxc|Y&A5i@e`>W~5;5CDlJt$a zqYJiHl=*RldvO%m*D8E7x8ky&ls~RbwcR@O`{#VOlc4i~g~qFmEbYA5a2$Ny{1)01 zZM9?D-Q(T5q9$noBL1YiG2-_U@n*6M?r`}y7$*!l)Yy$^!Ae{ay~@Ea6BH(4t~uRD zX(J2tHLT1_6({6u4Wp0c(U=77bO5SW=p0<+tOCa$OM^$ z6ti`Dka!i^Q)M#;Qo;eL@Gp84j@uSy0xP$QQEFw`igR}~f^6+VnXiE>!4^4?I-~{d zVT_t;Ga)ATqoD7ogUq?mg+cs?j$@nv83}{tL8@X$A%X~}yBGReOmbXvtA)$9x~sUP zRM^Dcs~0AQFWFx)idbPplwb%8U}9%}So8pM@yoDnHj*zhRhVq=NgMc6Tr3Ya+_>K# zg+3ddMkh*8gzc7TO#-pxT>I)8jEY7plwHMfX3t%@C_hF9jTyTim;!7+KBj6=J%zna zaF_YiT*hO*isQx|2Gj{4GB->V*pzog*9wPi6tS=q{SA~Rz*CKv*i<~L5M{3h$i^qSImL;mi_B z(TiCS3v#s_Bv3~+u+(g!6u}I+5HS?y_yAETLMoAMB4#Qv71&103%X)zA#|WHYzjRO zC+?M$b9|*Fy5y$!l?=DFP?zZI1oy7I&jNdD@z2K03&tx-<3(BI5{tNiqB$eg+t}*_ zx6P;KDnf^gkgOag*eO!yz8Jx9x8Y1|&0vckk07KN0P0Y|f+Zs>&b@Ir0jAZf@ahB-~ZuQTxsMe5{vk9TDFyI?OKijHMx> zC2*JLYgwX3IGa{>kDJZ14LI$@9#qHR^|*6@pMJdq z@3*Gg?i5_{13$4@z)p=9&;d{I*?>E;pM2hBbw950b46t!ngEXREEx=lIj39ydn?s3xG{e$Zix`nRge4@%NrO*}t1wKeO`dyn*lQQD#DJ6o zdygqxW==3D(6BjlE^alvd3T@b%1V)twpTAjs<_X67gH4L&h|a}(LxbYVVfy-$%z;Y zK!x1L3?M~Ov>}bb)@5ZV%_5w$D0QFbtg^Mm5ov_vkX%v+##`5>)Ren>fyjm}j0>Gf z?cpA1SxgKAI<#~&Ruucx;5O|E4=C{Su; zt&;2=)djVh*F(1ATMRF;Oc7Va0|3wk%I5dps3F)b=uZf~+BTIyR~K-S`#Ba8fS^df zW>fFCs%*EWId1T7GVzUI;>1h?2l3_umMu2xg&UycEb?<(d3Yp2!Z3yrH8Utd6PRI0 zEL)E=C+c3!qj7OgV#aDDf^slM+#{OJ^kd;V7O0F8gspY93~9qIQA&DI2u|E*o#Y3t(*BQ^?$5a88F3y7^gS9FP^2_Y03HbVXOa`bBemwr(q%8%sGU-670Zlb%!MZy z6Uk$ofW1B8lB$`!OL?1IVZ_cdQvgy&ShCEB3-H?Y0<6oKbK zMHFpQ4ICXA!Vom#xt;hPCzE`=@y9SL{%A=-w?#`8q(T_M53y{vugj}(Q&bD=6uQwS zo)}L(mZCazfx+WIp})1;35TS=_9S8P1&MgJI#V_oO!>0p;9dlTxW%?&S+oV;b^P?*ljC+Mc|k$n7I(g zG}~zp<$30+pphYm1aBacM<{^J9oa8yhMD?zMY{RnIqamUn*b;cZb&U_Y`MzxJr9cS7K!`QZR%TSRL45oWXaI6XI++Q17^SI0aoo zGstr?b?X6HyVXEW7_YIpjD_1ic-wCYr$Z$ZKkUdLaT86s_g`j1@3&k`OgOmp? zBY7;CnPnd}%<{I7DvF&JYX$%+`UWAi0PePe77(-Y?7)@)(;`z*5M}N801njiaLxPS zvwx2Ygd36YD<28$no!&X)+Hv_1++zMXoGf06C@xA%zqq0XiuznI&AF#&Z;Kn3Xauc zLgFYvO7CeHt+TD%45(EAGjUAs1cfda9s8rMN+5nD9dM3rRK z2LL6>qSYjsL96U+n~Z>)7rL>S{OuWy2TrzXDi%)nWW_>_h_sPzX_*|`^`kR`oJBG!iQh{(ouTv5CDBi@m%)C7-&5IHCqWF|sE#5!E$gKj}u z%I#+bMD_;LSEC}mULfv*V`*YyP9BIW1SV~rX+2c3WyUPyw70Z3RyOa&?xOWiz5Q#P zZX3TK%Y)-{sPiyDxCKd)Qmwd<%T2E)y}{0c2AVp8LQfDO(t-sfS{Wt4o;}V{tdXc5 z;Eslv=5Oi|*St-WmUve|phfKG1Fl>SG?6LmHa9L47lby=ZQ8D+zDg(y(~~4KvKTQA z06h1F+bGk#eS#~{GBR61$y1kQXCa~W^^GeHYe?x~niHcd$qVUr$wm}uB}((W%!x|d z`1FXi6M8b_LZ`xk@`4w!cd|(A*4(jEVOSzO2XnXZ-q4b(PPX3~i7Y2m3WnR`)9J`W zF{rj42??=-v*;xiRg{>WoW(7b#>}bv()#+(k-Wy`w%c|y!~Q+cNa{XBq!Sa>j7iYk zv^;5ycNV1_DOw8=E?G!Wf;R~q8VlNK;V3FBb5tqpzhbiO;JpRRf1LH&_URgGst9uJ zJGuZz6PN}Rk4ZRb=nTWTFg{JcAGk4Tj#fYMR4=H$W#)=hH)L&~1oTz>_bdDV@{<2{ zORhjGq}42YB#9$3+pr16s3zkG7)a2I&OG?leFmGYTG}1B8w|&^fj>*cA?6+G38aAg zlpQFtBtPN^-@ld0%8~~hB8ahNw456FgWj;rY~aX*fe7nO-E|Ro?!I-V%=>mt7Ko$- zE-q}?vIk=XkZEcB?Ik8x1X+cWnwiq!EVl@Gc z+*^G>oPV|Q6(?(1d?+vtu%EWcYe=jsD3cSx5@8e~DsJ0KRpd z7e3pW%f8U=1u6OsA8EDbl?-25fzw<>E(tN|k}54xtF&DxjZc$}=uMV|fy9l9y+M;2 zpT>8?7HHX{by%YL}T`mnEY`)?wZ`R0F`5>q3D$ zPk(Us;U=TQxK}g_SRY74PNCO?JL(6few6#O*(2C>oO8cBxen0e)q0WB1_U2yPFnbh z@NVY_}pN%M8otKl}O!qOXl zZA?DlD6zLRW|>w{PkYPphX4$y0m4DHu^})S)8vM@n%6jCM$n^dZCMf8n;O@HbU;B) zpu#QX1W#$m9H4tlV`ozgUuNaik~5y%+4{eyz7q8vqL#cFmK)wnsuj{uZWvS1d37c` zN3}Tsnr<9aG7Cn_)O9-81h89%(!;Z?@+J!aXHpOGKcuo+@M^~Zxh=i`00#t3T1sro zj_E-JAGwfu6{>^Vntl0tLG$qI1u0?nfzt%=*STz~N$z(z8|6UV9DCg4Ye*l-Z;(pX zma9p=j6z`Z6HrAiM$2laQYMP~biivE4r@F5GfO6xO4*5-co+MSMaDQ_emT(c9L}qB z$hI&^k)LA~s>Q2LI2U@LGv8rYyV}>2HNX*Ph&gv%q(_1Tpt0LU_Ug;)+HSwxX7YdM z+HrjcNVK-9(E1jjW(cf`3P~|3b`F<%gGi9FPDH#pI(gBDX>#A^urzMACm zQ{K1twBt!V0-v8S%xhJjpV0aPsMw1NUQMMd{>Kg9{mgh?)_kqz~! zOajjFodklyS0pi=ukLyhFn34mw^$D_$=>Izceqw&KY~-M9e@3y??!p)D@x< zd>z=z7zvXKt+Hd36)O~6Eon$rA4vcJs~+GG9cD&ep%3Wo4OW{Dbca`T;e;kAfFV7~ zfpKAy@C1LE@fvuBMA!WROQXwDrL{1xE0%~D)9Q^Ou7L+arI}@$(<&wQ_Wk=m_5P2t zq`94K(1=hHj);-@@|cI}$bqE%z5%c0}n__z5pE(W8%OL#X_4MDj> ztt!I|FvGJOw02H>tS8W#qD*fTM49Dlf!2`BRFI^?GJ|tLB{{$be>Wy=)%i<;B!Ev_phMtq?~rlgC}(u^0XxOipL6^a;1bh= z!g&I&vNwng-Ey!YpI4Rp4?gr8u;;cq_I1mCi?2#{gPaVv#dly(Z%TOz2ESrQR zlBC4WwC%wVXWOHI1g-d0Ej(tnxie^xU@5$6wYo_aFfF1Hw<@<{I1qw2YJU61FCSrZ zmu!CR8(7ex%u#;;9mhP;cbII#Fj7NScWpxEF7({I9!iql@|wVEt7VlnruM4)(5r4G z&=>2v5Bf<_YN2XIg^B247|A)|)L1X&3KLL9gRUkA!+wrVg#<}z&E zS3XHi(8A%a@HMnUI0cock5s5<62j=UVwT+Q+zE9VuZR#-mNGEQUSUWYod}Zr+;@vx z)GdT{D%^VkV9}!Qb`~s0fGVJYXN3%R9yudln;70;j1V(Eel7zpntUzZg4$@1+5fV+B zlc^_ZHFb%H#nW&RiV9_bzyek5TPiB#E@fiB$NN&{768S5+T4s7M`OyvFq8FE2a;e% zv6Qs}W&mIS9G^odc7|$mXl9P;2~yTkJn>hA(E95jt-4o!u?))mZoA#ZEZ~%9FHAo0 zCR2`ZDR5;_zf@2UfFyA=>bBDxSHI)hGgJllL-ix7>E+ z9Jw|3q!ItX5ET@WA}Pw99_hY5BT*;VOpHLM={>wgmpZ$3)Drqy1h)jY&Hc7uIY32D z+-gzLXQ8wJ9qMe>8u!F+vh}vZi~GToWgC0!VcpugJex>~{thxoU7qf|AF2cknNV)P zBHI*#6Xso{!eVwM;vW3mnXV^+XG?-93sV&!96*B{bJpoVKq4YITB4{30D6qSW^i(7 zd@BP&KB~C>(Z-vKAeFk4sBXkK0p%d6vWqU>K6Wx9d0AE0$ zzr~15TsxB{W5tJhIgHEe_+CRkUbBqBur0#gUyxlevDhAM_n`@l0?F^c46~@G|m`_M({Gcjaorr0|C2p zqmKKHFarD1lYzxyHV_UPV|U@kvslyp^(EAQqvu3BOf%G~3Z2@5m5t*0!{N@L8t1gT zS>F<8$qY#u77I1ud)cbIWuN4*;Owj0?J5vExn%z%CfOm?1P%CKw4Q}3se3nW$Kftm zu)rmz$b<<3LSQCPF8|u2kK2DIPDmwE*dY{T)5u%j007B8v1eUlUAS>0ElKVJZwLv# zKwKDPqSG)R+00|$k2A@I3Y?fIX|qE*JoOSN&P(b)5(lQmE^`%pCz_;!gv)!1nI_DF zLMa9!1wkNgsMyovAs(8!33@>*bb$t|*n20h-yz%Hb#WhH8(i2JlP5MZiu#i}kkzCR znVNxMY?ZYQTuO-JY;Z3x@1oI>B6Co1yY7 zYc)N0=H$lp@|oGWHHU7bfbsnJ%Dd?TGXZFW`MxTrgKbgKC zbU_OVFj;A$lwKf+;>JKQsTnS-*QYVd zjK?I5X^n_KeJjEzfmqkQKWor^aEzM(sLp}e|LVQ*&iA4ibVf0KpTV4`apn7CqYh+R z^PyRbYbJY9&So3Vv>ty`E$)zFYcZv~rxZ#$t(1g_UJYGwh{^k3VRhK?(NLpQDYb(0 ztUfeS4HmG0;!_pYvT@LCp$v6rcn%vu87Z5G#>{Hg_|2VQBf5^tGb3Zf`wwFEdU-4d zXoiH z?k73X=)HjzzqHiI%N(L8jc+ThCewmW&?T!}w51-57~yaqpTlhLhvnoG_A`@aX80_C zp>r0EI?!_h!PJ#Cqa1IA1+xlxZRUo|Xw6gsA}F!0w2*N+%Q}Koe=KV~%P9aT_M!F_ z54>WsG_p+vsiPMF8lqBxPJGONYtGBU=QP7wR2bGtDRd{5O4Sd#oR4IvM6*W>J_;{X z<;Lr^1AG`=NrgkacT~B-wZzq74(x&&@<5(%3>0YkfBr$n5~3uJrHQQbt_eJx3slyO z9jynSZ64&smFin5_b5=qcfbtmlzVjJZX#Br+8k1aunyA1+^>mKfdc_Qu+d;xaQP>q zzj^{GZ*G^ys0Wiuls<#oQZrl$y_Lj4_}YEC8`_VHL}DrjjFK2Zg$U7(($Snmn)_cr z5XbiRb0{!o^Pj(5P`;;%4|rt~_I9z+uprMlOVzWP5S8F-yz?Pfu)lCCAF|bnV2`Z; z%F_`Ob9j*3ieT&5`_af`H~5ZW(ua8O&E3Wa#1LeQ5y^#h=ZHAAvR-tcsIy{uyW3q= zq&kXxBS-30mexQ%l}YrNpl40d_#H000=B>NW=irIJ{Az%5SWyrrNJ`eDW%=@A?}XHe>F*T9>5a)tF#DqP zL5y#GtCbap$W&RlPRp&n6eLRp02mDoUZ|mN%2)GecqzQpysNkg8V*;7{OJ)v0u`zw z;|XrV0yi+g0i4ADCRJ`Y@SA8hV2LyXEy2q&m3x*(9EWp@C<-JnH&95h;5>M(?Z8q9 z%gl^~oQhauRI$O+<{{9QJHOGhsv2P>#J05EGB#Ll0Gj=AjT0{?OCm=b6(R**)u`5g33obQuc}u1 zkGp-`Mek7lw&Q`TZy;y9)}+Kig@g6MKh0|$7=c++JiusJP#@TjA#`Di0T;tXP)WRz z@8zN_rz?~$*>yo#(HXRutILypwpH%pvxV;_5)FX~iw&n^R@pKUVZ$xH6`OKD$E3jO zabuY$A1#^Algla)a^PSfl?ih8@8C|Ub}}pY0R`cb64l-l=Y1@oqMmr7FwQ0~AvYAS2T}Jl2%2Im#F-i4hFzP@PKA zpGg$i%Tk%HJaMb`pO5~8TX+6_zC)(G*al&gJA_miJ=#)(ReS9kgbAsTD%*~Jl?VS(Di(^<&#EU58W}U>;;yq!fEb)ZNcl~jD=b_m%I zrjOkt)XMDe1%fUkVjwDg;l0s?eN`TQ^{Lv3X1W9r0ZPEsFB&ccY(}&pJHS-0y0=1F z(%${uVh6I(_XW$!6~sfs|EJ(Dhjw+Gh&wSh~p zgNiY$Ac2{dN72NxB;;V1C`9Iv;Gbzk4PNAC-D*)`g~sD@q}Jr^-7cRCqxHBmZWvQW zNtB5xr#xJ^R!Im|e>|8gdTWSL_Kz4~soqZK!OIS<#8*~?{bgPWmGGZL4Op98zul>p z?;0lY%HsQ!;mExZcd#xCR$nc;?<0{s~~L?2# z`pYh=6>YJ-(}TAqOtfOx%0S5G#3#vyL6A;(4SmhL%P^;MMp=iMA#LeW9ytM&_7A$i zU0MB*+z}mDFT&bWqF?Nl?|!ZGJnK2nm^tZXDqDPr>qe#$rj+>g;e-kmKm&@a!w^Eb z{@>bU1L-R!PZ_w&-tq-TI6#pWCd>|Ey1WaGOxzYmR%Y90e!F45roetcbpxpjrDorO zill9^EStat$*}K4y6tHn^F{A-vp0JpC=t>6!(9OCh9jAnO==y>bzNq(be>WfqtBdB z(NOt-`i6G$6Ucb)9uC7H4>m9EAOC{^>a~anWHn_9P#$#8h+-4xpzLPX4qLS$Do0xa zpk_S__y$e`M6c%$`oKAwLN$n{i4Z`LjzQ{$YP0&05{H%oQs|vXONlg1kP^LNz&xJ; z0FxyCf%PB1#&W;q=l@2FLXaTI93E<@*jp213uv$m`i7>M8^#qLmTz&(;$oD@DJ+5} zQ3sSIj8L3@$dZJD3T%p>3$NY#y=0Q(;+O`2upJZ(($hyn8U=*OsD5(Nt9K2fEcmal z3IPHZVk9&TC=9unOU2c zFSP-OZL>B|4=kD^nsUHpwlJwvh%y6&LDDB5N|Nt5Y4X^UQ_((E)9j}8p|P2qQx2J~ zyl+m>^&g1??!q#EL!mXc{J@<2X1ROO66!wF8Ur(IQoDp#TzAWX(;mY$mUu}fpPL4R zk}L!}`X{PS_&ZLhCVpQxV;f%zLd_w%4tCNCNO|}dIfZQ5NHXSq09lq_d)FF!>g{!6- zqaZ4vZ8qy7xyY4;4${Iq;G_@#ce&B&)#-izG-?14trfou7U zfRdRG%&l@bm&3J`7Y^zu-%XR&V5A_h&C78<5i5?Bk<^Y(dl58=IuZuQDg%^sYOJU# z+);#cC(i>lkv4Gjz!TFg_9rV<`}-i14ho3uIHC)`2SUEAicWNcf?4wlb;HdH%~_C> zM8!`LhHh}MBcRIVENGDOBL!8d$RVPrP5=9q`3~k+St#&U8UGfuGi;71HZxSVq-6P` zAA(_0fC2%`TlfgFiD zfk$E4fxA$OMMi`1FmZ@bMMYx^>lfATR&|dIrWyC7%)szTnWrm-)L7NcvfD3lnFmp+c6?T-srQC%!$GHAjD-dKok0EV#j}^6rBz^SU?~s88G7l3(Aj9Q^gv z)Ha=3wN7nQ>LYz`o(T{CKU&C!p%1QMUNa?B_ z5?r@l73FXzm%`iX*x!o+E_ zrO+H?avRjtv{FxLQ}flO80^fhV;?g|KV1oRomicKl-YghJ|Ta^QyPi|Ow-oPKs;l{ zBU&gP0b)dQ$Z8L#_63P)yFtdD+xDRArU37_~h(u&EEQ>-OhdxkDq$+)Tht1C%=+o z^Gdx+6%_>nPyjS#s~)PEW=EQB1X?9?kLLP4dN6pmm55iBo3m?<8?s|%U6VQNCfIFV zrtEuoWaMSm0=(;6-$}yL^q+O_2afh**q zqY}s-+(ZwP8a`js&u7Ig-IYXd@Ete3)HHR|<$EXiK~mgEWBfxsm+uW$p+?zZu`la zTMX~Gwtn`3^-qzWDcvCH8Km+}cjH`jRwk3Z&SkRyC_z#^%Q=mBPmUscnCo(i)p|YS z{3udr-$18vYQ0JapX(pgcKCctJNZ0$3(Gs`3H*j8bc33@_vJ^4RWY}Vl(v?B#5}+@ zMb*@t8eB4*4HRc6NZ6NwgFJ8$M>xdiVk)b@(Q;XU5D`1Z=ipW0Qt(AIgd3tb9MA+R zgVnpVD$gOd*jvqw@OoT%mUX&_A3HuUU(gzA3P!{MzJ!W-j7Cm@fkQ>ge9St$8jrBj zoXlVHsykzIVIhv|#&@W8PA0_M5(mhr7`ZG`P0%N{l?>x8QeSKwM2nU+gc72VJ(Pbw5t$3u>?DZ1l!AQz#RdA6^L1YQxOM@s9`2pC-n%Opv z$l4M@R!BXeWlG)$V;8(KN!U;$O_+3QfCMWBn6XXOdkw^nfpf@2&#a0~mdPYJu#8+I zHyQx!NoKS6C3VN1dCuu9bCi~Us4)BC98NCSRh!-MIl~<1u=llQ@4k9f3!*}MBl$gd zkJd1yC$hPseJDKGCuR%-aml+qXE-IeG)V4k!rm&!|2G85>QA-^Rc3dwU;F){>LqnE zs6cN&u&51#CXm6q-8g9N0jA@^Ma@;v-EOJsY{sleUr6hth}UGER&yTw?t@DWE^8RL zEC=E87?}4XJrY`3g-f6YY!I1mWmEwp5mKf)Ek_?_v9+!LjtbO$i23|hDYxpV9>1{4 zm0@_6dEgm7|I9dUHl~GHvB5rO?J%Wp@m+b3%uaU2O>Zp4eOY;LSS6NUl^VDeM|}bY z00x*rXzZCin;nv>Y_z5O7i6Mw&j!*WZ88Q>vv80lavC+xvM^CF?JQ+0u}Z-aN9w3F zUNpxz6GyVj*6YfjegoUC;a_R5bQKMB5#^|ld~kq>Lqg5oUfh_4Ml}B?~t9dFU{Kf`EbCLF9D%28Gbng>=JYWIv~!{a6)?8WS{2 z0+=BG6u8lgU4XRL(wSh)6?C^c=L4}38WrmK!F4)zZz4=72wfe|nbB4Qr~@iYnwF2qQ7_{*#) zhC`(XBrM$^<#Tbw2t-&ai0p)kPs}XIYJTC;{`3m=M4jt_K$8>tQ51i0TNciScgd~z zEfUb|p&H=C=0pUNp1_I$C2rciL(nK?tbZp&BYZ+Y5f&0PY4QlEk{wwK>5l8p1J0Qb z=pzS#bIg1kgTj1lprB8mE%?g_eZ!?74g*RcH%f55Rl>XyWc4vRP;wO6+>#TT+OQ11 zG%%>F2mm040O#uJ;R6g2;3~C&vX!62UnbmdP##pax*uU&8>%PM62pn`Om6#dfG<}} zr}2$|Ehlp`p^2AC&4N0OCWP#`uhQ4| z5mJjqH^2kX$*si_ZU!^uX{u&03qkJ)zcyiWQ|){}NmPsgMX>zP=GMP>1ZaG$+jT2uy zSe#?w`@WD}KorOU>^?wt-D`FxIyU;@k~}qHXL{WnR#>!b{_e{lgeHtGA0z(VwDbdA z004?IR_K!3QoZ`vu>%GfWdT49lr32mRzeTydmADLv4t#=+6=)dIKg8Zq@KixS=MP} zN$^9Uh?v_TP&0DL(Kv5~Q2~_#Fi|;nnw*xUi#lvWOqJVFdf?I$l?g!!K_EWP{)s6> zN;76Mbz=zH1}$6qf-2-)a=^^JfJl_S1>zhw;=oYe904%E09cU)t4_8LN#}MU64cU+o%dxzrR4X=l9ZBoYro z6KOS{4&mU-1Rb&}fGNNE2g3);fWe|Ij=k#;jlfi)z4G)RGa1)~3AuUsRYEz`UGUUO zUs8UT@XN#tp`*wJ83W4Xdf5^;4t2du*tP{LDLo%|q=f`O0K^<3X3~+n@0FP0_X!WA zJjQ?+#oz-Lu-QSu-b9D6A&=@{7cPfCrdqnFQBODDL6TOT#=NvMz|WiD{df zrcmLig`<_gs8^F|(j`_Z61JHz!`M5wDylZ^ zDsqeD*g!I5N|~u`BfW}*9W0=6MZyu2G72fQguuuX&h#n}NnI9((K-a9X>+Bq?C3%_ z;EkwuY^EEtaLdrY^Cor9Mld2qkm4XaOu?Z#&h$BTiOE#CWWoqV9=C;g*x_Nsp=I?EUblWCea#e^|dLYO? z>n&%5Zf+RWhLH+dP{2R(ju`s@W4DNS(8uo$6WZJHh@&SS86igaX*yeb^;}4v?s2b9=jt$|iKM*1-N-UVXa_1^5p9EnFb=pR!Wps6(D&DC zfJ6&!#hq{x&XW=_m!kr@0oMMG@VSd?o(`~8OB?T^gH3Z!%nTqD!3humFc<)|1yG&M zsTkYOGgdXsqE;3R-ag7sLLQ|$aRu>PMlza6^s3lr_M^PGc8T zv*m~tA=w#evy2O04>S_rWAFR+1vc!Wf46)>ZpVGF1c=PEew7y?FuyK3Rs-yq0TdYn zX6ef^r0p}u{>;BvGB`j0Wi z_B3z`Pnd)AKaLFhORR+8g9wIAH%t_kvczE)gLBSR$xkI9B&{KCj%|8*XJq^#c{;Rj z=aH1x<(8q(qZ|o?TP!|C`IxNCy-tjo4D5_;vRbCREGPVGx2UptdbP8qMIa;ua<-0{ za|jL4$N;1+6DI}P)&}ZhSYYMIzz!e+b10*0D>SocI=o6C_Hu!R%`(f0A>O>UaFvYduZgK9=19< zKp=E-0>Jb!J~xx`3&8FRa-A1;KYs4x^25ho>@tjQf@Dc)=Kld~=VKU?QE;PUD1?=l z%t~7&a0YM&yI76|M?_e-t`gF>lZVOC;UwYY4^YoxIY=raeHH7%nDtzF_+PMj0~sP3 zh#1L-Ov;EXYpljLu}5TnWoL%9c46zAr!}%W?QevF-=Rf6{@oS3sXxs_h(5)-$!ZiU` zFl2-y%FewmikZP8R2;r0FO3N(zWdSudgq)2P>Kj@`KA~EZ-?Eq(zwe=wgw0QvH;*3 z!1IUtrP~J83nxS7pL4K?pM;eK7nf47y6WiNxF7^}T^T~)Ct@3R4H)I+9iLf1A|JPm zDknh>`(?`ruggjUVFzkH@~K^fpCuOU_=&WIhz24eGmK1Ep0Ta7mqu3Xdo#2K)`B9S zA#N^>M^dI{YG*zpMjQd&wZY1?m{=iMK3Fei zNgma*?CpkKIuJAur-Bocry?*`qqCpO{Sh(z+vKH+qT3w-o<=XU9d>a9GIiPEK9{6q zW?u28jO&6k->QnBH>884%eF_doarp+r zPuT&LePpWY1|VvzZmCt8>RQ8M;?DLVu(4xtP0-2Ns@<_UVALK&kO85iObSYy;h>AZ z%yw{BFz=zz`HRnSn` z+J)JxlQJV6(B{YEt(E(%#qprCciT9{6t+0tq6tn`qVvjkJ3GkRcLZf8xJe}rK!VUP zET9yM7OzqK@^V8!OoUh>73j9ifj$dl0h0*|XXL?q{*~L2;`w|_+w>g7RDp*XD(F;R zqHlmu#W9G~jtq-_%d)Pt7|NVR&PbBc;^$6WFa)|5~GiH%zwt{&Qo%5`vC-esK5W80epW>UE_RpXBy&Y z4^-(?d|F8V|1sI^a0*Y!-HNoszlEk9y^xb^CkjWAgW@tOgL(WZ!+NJ}&4I;z>LZ1j zN~zQXet0LAE**CCxz~c8fL%9Ejp>b}b2o%-y0Jt-Ns8ko$o_iz0sF8gBok8kOp!7f;K7!NVrAw5l;5`H!>6;|RckvBnGM4SVCLHnB+-okRk zC8Ysj$RN=t>I`%q=<0$D8MJBR%tCY6FxsL@4QAT7r`@l5;zcnW4!{`csc)EUTTnD4 zLL{xS&b^%PT)z$o{|w97W}6RG0|3fJJ8D50MCFHrGr1Q+F>o`$$=R&^!Ou%DPy?;J zHx;xu(Ge+_zYK4V=A7+As`Nx;2i+p_Bd=^g;YLpc;1$9Xliu*?eykU!Ui=PAn!2;6 z)hNI&5PkoB_f|D|L2i)U$>04f3eIFXtFV$FUe|?2)O=<+6JMsY>X<1^3d$F)C=37< znyJM+ahvX;(TkT(8D3eZX&x=LHu1WYxtpgisQeh9#WE1BD)Bn5_}p%gfo^~UtVRXa zctc@=sHU-P&q%OATmCzlf&zM(@>UX`tTshgT5hf^ut(Mzh#jX@^+uJ!O&sA%tC}bX zcpB0mA#oH>D9Yp@i$Od0;VK7!nQsoe!7v!98-5$b z=7ctI})(Z4{ zD=fbR^)*7>6>*q33-Pg(9@~+;<-e@^g@Q(p<$Fo=C|zp#{sLgjK>-e`X=Y4K<>FcD zDg9vBeVf+S4}w;$WHI|r2JgfH&T#Wdg)es|`}$nK^+c*BTG+Hq)f6QyV8{eZ%8S_e zW70NuNLa!~R$&rM$7WmKXU0@7Qv?=2edcHE3C5C~PFnh#B%j`>cT(nn$eO$Jp-B#? z1tGmhb{})~l1Ut>(ZVS`_^F)@le(PqV472eE<~gsCrNaiqbMdOO3%b$(n^Skg^Ey} z#gTx9RAo$BtQfZj!0WIK(%h%iY!ArNg~*YFGWc5ePvnTY*)>;5OTDWXwew=$+4T8< zn?8ZGLP?r@;r-t+IJ`1clvSNEe6YdSelPcuSMO5$g)OX`3Wd%Kt2qmFEwfhn|^(=ox&q%Eh z+yMs#r!=4iV$wd~b#(`P%v@herEDHMDUXx&!Oq##9;!U<(1ns-bc3c5S+CU6Qe%Ub za2AY|JYsrTfsBa-VGER!wk(RJm7qs98oJ3tg@@1)rN|PTTUF8Zs%A7>sC{=|!h{GQORN~<<&7!`>YeD04eDs zr!JVCX8*>@{m$(T_V&tpRE3}w1wz3=(R)gj%)ru*pAV74y70CKH`jj_+>=sr3cqpU zQ)dSopOSj|OH`MrFKA!F@9hqP-{g_=Y5Xg;(@KU)mdX}+iFjJT`y`YYZ^ABPrg?k| zz%54k&#!C7QIKjDZg*JS(vzsD@;bKW)-xfC*rbwcd5~cYG`O75&@g&QVpFr}a19PB z>4)J@bVc|ea>h4|!4F8d)+fHhe8)=r`5dMKoxh$`y}}H8JTHFx6rkjg9+|z^2q9)XbgH)2&nxPden8s8YBQfHI`lS@-e_ zZtBIW=e@k(5icAX&BE-P$OC}SEG^PxXJaDw`KydO4>y?X6?cz?$Vv()3(t@&eg3cb zAGjC&q6{e~YL=MsKWf+d*0EKR^aQ7-Gm`)OK*vk|+nK4SR3!~bWXoo4LChqsiPnOQ zMiACg>|0hA(INyyRv?Uc)v}Fl&}-=HcyEOeC#9w^5)z5LcZ37u_cEqbU1O?b6{xWQ z3UIJiMRF*GVv|Q=6_yiF9a1}*)zq1e+J3YLLG#73FLVX zFZf-15xdH$Q1~YFNaT|m#npAvxDfdvve@|kvg(d{LAGsSj9Lvi>L?0ssxeAElG^VU zRklOkKUHpAse4}JrP_&`Xek9u@GC5RU>rmxx(7D=G?a}KTM(@ie?YSAOSde0B{G>Q zmwO%3H;W1|xmLz4Ecm@rQ!+SJg{czfvz9>wMXez1VabFgWa1KQcLA5l^J)5UOqJwI zoWm19RKG1D2!Jw*7#e0R3&I{9Qo+^c^_g15P1?fRR9Y^+JX;KIjuo*sKm2mil;;gF z0C)p%tI>qeGC}lzo~CEx=UHiemVIfcb+Q_-@pj_$DK4oI4gQ>$AkQDO)6ZE=E;SPme?kWG)7c6ntrk&w`~br<=mEd9u7ocW+gEB{&^U%8dtX$sT`gaA2=uS z9bC&Sazj=M0OD)yxY74!5_D%6ViVN!A=s`9*5CWMOQd-tWHL+Y@4Ru$C1i5*8D~vo zHQrc3<~T^oWI_>IFWk08xyLoZLD{l)&QtOzMgKh1h`6Tk-mtP}@EU0qlR-7s5C;3V<>+CaMjkaHG52@pA9q)+Nr{)t3bA#bMEd^nU4}zgR&8B;hW}Yc3{2*G2H$Xa!0Fni7>H%y=uLh2J3! zP%Y{!RHsR@w{rUrUTmXe=`Yg7C$1$Y<0#3}&T?f5R$dlI$r4P;n^GPm* z7*%1)D1h7E@M^<$S(AdGq&(!mI7Qt*PqX}&D3UP~MlfJ&+GE|#69a#Q>PA5t z+GGfr-Qa9qEVo!iBd0CwLohmMhTW(uWCHc%{J#^~Tey>DSEK#)zBcOiybd9N2a+}! z1XeG{S0Mn;l(eFDw$lb`QU<+%viI2pDkW z(xfF?lOf;p?2_sLQUI3dv*(^m5vidiB|d+n7=D=HbLv(~G9WOL#)yPM6r1HlbGZvH zp=Hcwn^TyyCKAXI$}Q2lk0MHP;`RYkf*zAIkW?eE;rzrDU_?XMoB}8&@CFF4m*aVr z53NQ?95!oPDz&UPD`0^=2JUd4bp)@Kk;hX2D&LU@8WRSEM& za2dh3D7Ztx3{*X^g6o%NIV0jX={7Veuaib?+c1hnCeJYazX#1@(B8^E%qFh41viYT zsP*llwWLY4EZQVd)3zv)6@sJ>ZAP96hZJ!j9Op@b-guy=MvS^oBe%*^DCAGVZJ=(L zf4B@GJGSLh+8{M9LIb{cg*LdZ-Hcd`$l?Wt;cc_9Y@ z=Td={wphC&fabHU4@WiGB0onqea~h;a$YE;Rz?m1X}~fZ7Fdik`rC4?pQILuIw>M~8i2dQO;+QNf*RC}%|9^<;_~<&q5wjFNm}ZZC4TPN$*NP;BEZ)RES*f+2DwiQZu%r5vZh`316YfQTG1I=WqRC1-aL zdWG4A3Rzd3+f8a~S(6p)wyhltcI+@CfUr1{2>Q{cQ(AxREzc10!3e*}-aJywbRT>lSB4;hsxyAH1c90d?efnAYV0R zC-U0Ok0oi%;||l6N;$#F^FpiSX}*LClut7bkrjlt0$s`$yG9l9SKLD9VQ|UvSoJ>| zT7fQ6x%Fcaq=+-iNCu>qo@1DHIm)8+Qtw4vLYPc5;t`+}G`RHZC6O(xGSG`C2&c-q zDv+tSD9KHnG&vT@L`7n?_eqRbxEZP5Pmi|sm^jfvu;T68ScGmAk}d|JKXxVSL1*~2 zA!h`LtP}KFx4GoLK(E;==le1CW>||47Slsvy4QxK2LNV(m|?2r;ZD;^Q{16JuXpGY zauIzd|GxdRAwT$#MP9}Uc;ny{%LgyG`klU7WSakknI#;e3@7L7>g3luS zQ3~#EiXpVfG_mQh!~W-%NCGX9zPlWIRo^J3Mq`4EUkLvHn*Ixz0ZQ^S>wj7qKMvnP zNDkcu$BLbbu!9m3SG+aljkvRv_#V|HR}(pG+=+rcB*>IvyzVd(ISw}~rBFj9P!y** zX5U<|Ac`PNP^{yTu$c+NUoWUkTn%LfCR@e=M3#y~&|FPEL^K*fa~C=h3AJCoE^;cS ze{F%Te2@&wj2(7##B^^}8-mwb1V9O^0f6~?tQ&n}>C! z3_@4tEx6z-JD9AJPWAcjgR~6g5VAC^V?-vEYN2Pl7mMg~M4mi8@ay6kbLnDyww%*b zvF#Bdrx1xXF%K;$;=%_!BkjU$(B2AvHOmaKTd6}vC^csyQuK>&Q;iyhdQIdkvt9SP zR@BHhBxHD*ko|GbE*ar|#R?nah$NI)6p7Y;6oJyj8Diqc;R<}N)OXC`LfD4E0mFPS zdT<2LJZvS9NB!GgN(T@A+RV(wm&V2pySPW9NP(_GAflO-)O0(EP%wi5Faux!I5h8g zC&6Q)0)}N33zIKFt~H=&Wemy2Jmi9N&WMtyFJeGBZfM)F1Tf!bVpT01e=LFzpAM0A z3WYv)O>L80aK9jYh(+@7cJ4$|hMs<{5?Vq%19iwM^k$%W6zy1)`}M5$U!NFXJL!a^ z5Eb`TqSI7LV#yGgCopF7kAp+I945+fi-$1g#j5oIdWNF?CSZsvE&*uz1C`NE0Cc zfB{ZL+&0?L(4pVBjks3}S3_`#g7*;lT)wuHT|MqlmobSnf)I)!MV7n{6`~F-43b;h z&_6Y4n(phs4!|!ECtk6<%@|<>PN8avyW@$?h#QI^gj=(3WmxnZclrEbv9YY092jy) zK|Z<>{AQ5@m2HEC4ySfOrf8jr)Fezoa`Lv66*7ThsMDi4J45?OU^-Q8?MPfILfAD4oncwdB|=PpV)Ffhq|VNvz7eN(*IpwM?nyPyi&O zWFYHsOgx#elERr@AQho(H*?Pw@eud`yaeo~QK%c8j1kG0hJFt7Q61>dva7tXTj?2~ zXOa#>xvyGUp*bYR5jSDx5J3#Q5Y42t1Ge26uI@5+IHlKFmEmu@vVO`GfCfNQDeBH~ zEJ4cd`l8L7E0W37vd%Y!Ktsul)Ev&ie@AQsol+%qxC5P7p*)8mg zxX_B#Y9Qy0B_zY~@||GteI;e6P$7cjN$eA0TKc&vCIF2U;< zt`ayz=tIDdqt5(?OX_ZQx#zbW$1Q9Je+I7(1-qsTF0p`|%sS;*S~)DtdhO^?&|c}w zKS)%llv2()G|+(Qu~ij_a9ctg=t8C`9y#FfeI>IK2h_#4*(OEZH}|IzioyUO01N=E zX!(VC%3183_FG_5+!;H^WXl@Rvf6k>ux#o~SsfsVc9;5yh%}s_p~7nwud9Nc@~YDa z)+wE?7EdGVh?KVJtR~AUHmXWV2|bGB5Ld`SoQgQT2~pap6{;oJAPSifEG1_UofsV! zegO+NZJdc*-YA!i{YYiPrNCg-goxJ-FSkxNq9|>xG~1%Io8_GNR~N(c5-#tfrsTKn zV&;A*x@*`rt?l6Lv$K`$f77en(LZR9UGL4AI2&cog-28#^j_}8X$3tpOFde)bfluY z1k3=(Bz1Tw7KvpvZAxc`am_P4pbqZ>Xli)>5oLc@j1mk600scwf{pT5T(onfNq&hd zJ~061OsS3XQYGy9J0ZBylM&%kUB3sO+X)biLy_HL!)PhWGmYvKHl2AIKQ5;07IB{oCV56YQ%@TCe6TC2y_mJY*DbA~o zSMlhB5RWukmZBPqcw@# z(s%95eh?xw#~qog;!UhrzJXnpj+oRu1@?8CG9fP6Dol++ji4$Lv9-wM`;UmGyJFZe zc9c0$^2OMfel_@?9X!n<2$DcpBbeOA!JvaRQ5qy$Jp^sxSIX%)eZKk{6fNsN* z)Z2t`w6v`Xz!wbGnGZY!t}Y}m+?l}z+1nFgei8Dv3u4d?(rS? zV0zd=baj#sQ^=zpr}2lGQ8ycv>PHhbLevBYTc45#I)npcpy-Wx9piA!X;NEKz_Q=E zp@m-w!|Xzr>!|ZT=qmz`HsLlrw63R7BgF5lcQ<6!nwy&>3a2MKmvg6_i}|1X4?H4h z?Nyzmzyr|ogtuyDMwK+gQl<@lb-SRjD^`x|)`$oo09h0zTm-wwkKbj&=bBrb4&Na>>P_TJ zMMtRSS5=J{V45~?ba+5iw?LEDw?dZ@l@bQ&u8?h$)BqR+;C4tC_m+#n9jc^q5glg@ zaG8AVx5PO-`O|9Q-VuBm!PQM!)O(1WL~1-PLNf)-yNQL@*yep;$n* zVr=w?%cu|2+>G5qni2Z_KzxWJDWG&NJtvI}#BLBLk-0)1U0Xkrxlq8Ee3dBPNC#DH zo}fc9ZsdAwqlM4k*msT8qYa8#ZGw>KysvW#qOwY=q>7UEE|-e;jia=?PLZ=M$$8`; z`66HVnlqA@P!fuO02Kgg1wc*DYxDinYOIhh{mPv=gO%=?^!+eh-xVS%-ijYd03g8K zkImA(Dp$M^^SC24y*^)+p<5aQTD*<^bS)592<DjNrP!aanA`FaN+kll=@}U{Qn>=w+3Hg@7r5fEZFWVM-HS zW>4Tk`RM8~H+U{cm%1!3ZW%<2lv%+}`hJxO8eK>gBjxl+5!Ys2I=~L4jp5ZD8uD~d zToA;X^Tc#Vd&wE)B0~ICtqFngJ+W33_6{K-0`-+l+amG*`q%l8qf~lKM@#q55v?>; z8ShBx*v<@DowbP3eOgJ5+cAnz5Z&2j~S z$Wj67MAax?+L_Z(w;~U1o25$+2$;L#GM>gfZJs4trrA54@Is)L{*KRt)`!%BMCEmW4oZO;J?##?B>8Empy^YoJAbZEAZHj^EJNRtWNa%c;Do9P z^+fgW4?&w2m)4M2F4t%6BW5QHdO5=S$%hDQyM|n_qQ|1)nuDs9Fj1z!!I4?|Ab)*D zjt@jG1;AXPX&)i`-sKImCXwQNn%pLzJt=cG`Dk&h=`I|!oZo=u5_nH{prL@EZE zvTZb}Xr5^~EOQ{;LAO{oA+~`^T3fb-?m_wStjv%5$`tjEvW_@iR}J2D6DX)MkQoVE zdgw@rm@eOH#Wv|o8(5@*=>Zj@Aj_AJYts(}n@k``XF{L^vx2fvQsk%X$QrxMPe!*C zC+gvMZUjk&C|Ot#tr_G^lR0vK^X!h6D|z*TQf?zR%83fg;V;!;v&?E%(LV^kroQbi z(n(gan&zn*Y-(KdJo3r8Eht@+fT!M`#QA*KyRA;@(A{{=P2nikObiq?8+UMG-p zae<;}u5t7RV616Ic;-^!V&SlX%#5e#EYcchxOUnhh^2M}d})9~-DEV1VNJ4%Y@s4A z5Vu(l5lfg^J|TBS*c&>vb;i>Y)hch2^NflV+Q&1b;lmg5#Nzx#XiDc;BqC@cd-&?ciIUWYx&mLdwLmkFEZoMDU_s8Dqnfkp1v$;`uvLPEW;SA&vE6>=TrAueh(uij_Rq9Miz4+m$ zA{GBI*|*fy1%OftKthoe*dpbbjpuzqFbK)Dy0?CBQ zpIL{Am!4DVkn{@APZgxZK zHn;Ci<;d&rYlG25Mz>_*U|`y4StgelF)E-Xtb@i} zV!TW+$bDdkDPQ=&^hjtRV^^t}Uk$lx_Cvug*9FRs=p;IQh+~uk1v6$SAX*5ZI0Ob8 z7^?K(1aRcp?RjD#5yApp4Iy!TRw6FMLG7CQ_E`^}wiQ`v+bXP(T2`1HoB-E7s%#qIIdwDNSi+AP}hYOrfqIDZ~M4av(sZ-Y5_XM5x&(dC6#Y|Lz^-;MCB4!&43CuX1A-TqTn#8`fyM|XKSXZO^DZ3R&H_ll-F~e z510UT0rgHZXHpfgd4TgG;Ga|_RaUIgyVYe$CY==LSpAhR2$ycVcBg83`BA?W)@06g z7_tb+gBXwF+Wm62_r7MCc;xP}YVNA0;(NV--CT&S6?ceUU`;eGrHhvu` zlVHXGJ$trGO0~P{nk0Or);2~7Cy034+OorU<)}C_pL54n&f1;{N7y0HcD*KZT?cp9 z&d{0mOs?F~Z8x=BPyx*ogT~eUYasy~95et*X~y)Jo~5OMrFHuPl;iS&(hr2X9S%R- zMH50R1-JbGS5;_~njTXNNwGT9u4%pi_^hiZDc$4LZhe37Le~zoI|D4y2SKJum?dWh zCQ;DV$z^d#T58|T`YLg93BKe7QY{RHA%1&_Cbf|RWyJ0_G|4(fc-SpFSp|SRh7In_ zuaisRlU|^p6cbh*k*uyygiz(O#Ib(9L~-D|J4bAD8|T|d4QG!9PDI|tAkm9SC^Qe%V%#n@r2rcfE(b}?6;t=# zs?D`CYCQxyDF8_li#BcQoM#a&bLgXKrunzXzbjOiz0@ZLl4|T}%#^A>3zALrC@?m$ z%(CpigAYw$ya?~(BhTZ8&;yF;pSr7+m{Vb^ofS93=*&LX*AH8_+2+G$MW*PCgD>0N zz046vxaf`*5o`SfBP~o%{6%YW2NhJ5}^ayoEmFg~n%HT9yd{`vAr zH9zZZ@>z1vwbOIW+iseIU=t}LRy&f#-BN_aiLosr$n}>{HhM@R6@w*h-`Bk{hAJga zoFa{|Dk?a`fl7+u^@EV}x`zZT7Q2{H%477lkxRl*bLMyiJ1!!C;b9XgIL%uqxNg&g zf*h+A91g_HL>dRB1T5F|s$*ZBbQKU0`c911kbo85Tbu05-QsTL?#-^F)5W^zHJ$!@ zf1USKSjj0KByYm^!)s~JfPm#N>oi&$2@PAEHC}oDD4YnSNOoh~gTtOlM{YnsFXzVWwY7css zeTjimBtnWLwB^cF1|9n`MB5*mR?GdQY-bB_VA%Mg2qCIza^dbW6|Y)zo>eOVQ6LHw02JYnRH(FRC|TTc2o?xlI!k=2lYV_x zk|`p0`91woS$lq|tVZFUo&GZ6Fst3n9TheTDtEonWbOWEsQ@TAsFv~s%*gO=_!mvt z*Rj6j_yvn6V_qb^>Z87_OAM(}IcjCE!2l-uKmp2C#P)LlM8qB$``>Qm1McLrLjI40 zu`BbDJoywHe`L6J`Yeaw4|aU9M7m4lE0`@c+ecovp9*?@&C=I|J_#eb)C_c0eD;C9 zgH}0N@I+81ziB#|s|StbVqrs0&lmhi7UvQoh?DX(+f^pCi{tOL-JWzhJ3|}XfdC-I z1hbOIqpvVTg_ylZ7V+hyE_Nt`)s#Dnw{o;L!mAn1uEy6<)weOEM5HVM8(LK3Pbn?X zrt3BOO2Jcm@Ou$hb=W~4>5=q}_Bz)Jzvgd9>uqhd75e@VsT9wWTx@Pvj&pL4*O})zZ)jVgsnb+HstX%U+j3O^e239aeRB%#77I2l(%9tgoby;54D7P3H=Nrq^F9d7kzPj$o_aQ%30k(%;M)a23%L&nU- z(n7*$=D9SXIs~02ov29GmOIIzOpq1Llbor9Caq3OCe>J)KColTFjtlJ&8H+f>@PS~ z@a<)3hiUv998%`2YZTl z;e6!k`ShS=7-<7SFeVrfLPQG@nTeeNc{ME+wXXRj$bqMREgde~rt86S@9H=xo-o@} z{WO^7xBm#EL)FjUBpRl#LmIQ-a}?EPPn~-j_e3dOq910yK-xTJgx`yCD}!m9o#MH{ zsW3h*i*-NJ{R~|iOkk88NQnshT%ZX2M#OQl3NOaZjvii6I~+ z^X&c7vP`S}0PN-_Wz@@DVx`dxp}4E3r#ei2>&t8-3yDW;(-i?)0jU8Tt%jp0FS6U? z!j`!$uf>?{XjIk}p7+#6A?6%j?zgNM zS}0PrGqttkg(M>rMW%$P1fsVdUw04t90Nv`RZV;l(Km3wQT~`o#m)do~f7=nGmbOU(lwh z6QNZs9TDrfa7lomf67}bACm_D_t%1GYmq8xlm#xSinHhfQMdq1OfL48&`Bd}6Q?A*zpmG$pD->JP;;|5?bVX!k7R}_;EUmmzri|TX>EVx&t=GgQ(482s z^;$)UwXE5IlBXZ#4-E$jMG=h}gEPIN?#Bj)`6TZHpMo%7e3$F0bdf;YpXxX%g2ay<|li9o0&c%mjG zWWrbv8Kg|!>|B@$g+6A;DG-1DY8(sXKjk#H|ilMRHBiYCDG_vSkrfz!EO|FNy1h zDMO9^jUuwDE9he`ftx@VaLT%r#6m#>Q2gzG}V!?l<93UMxY!~*CM3(6ZflHt@7J{BJ>UOdammH^#b#$ z85ORGTg(OdUReo)oXZ?TG}Or1y1~wMPe_y=vxk^NK*Vx65nM9|NNL}!DwOGhq{umW zgNh^_MX3t(Tz4W0p0<{~j9P$+PhFBy^h-;efaWZOBe0!)ny%EeT|Vq^C$}j!5A{ncFa6v0TK?9UVObXm(ERPR{T|Wjqw90r&vqlZwSluwHzN3~PUS6k| zkIihKqfkd@nOjCie0MoKiYY<4Vczvq+U+&(;|Gk_ufeZdRp+m(F$mSY8Vc~ zLE81KoF;}v|DEei0%eKZV$~YuayHM~U4|xrQIQKg7+JN&np$@8YyxIGo;E8Tq(GP; zp$71Fu%i7% zlguj!A#$M>X&H&IK&M0+TN`zKr1d-8_DJlNp`Vj`b<+devKUH43nf$pq$!ADMhyk5 z?6+679WE`-xrfB^cq`&jo*PrGR$Q^|`;8mh)R36?GngW9jVS5U z=kh5qQ$OpVvNE!K;R}<)ZMvdl{cD%*N!IW5e7Dv0_pdQrd3=h4&g7|l_~E0IkJH$m z*=n4CeOK~Xn$}%w0LGgC&0X6Y6uKv>w|O1caOjw3#k$N8np#rG6!+sNDnI^{ga7h( zdES03_}lLhoI4@&j@g9?+|(q6XbIhmu-Q}Zb<#}8fg&my=s_rVV`IRK453`{+l+FZ z=^~E`8c}Ok-b5gyvgk3%rSsJm&d_GQJ=-^|lkz}pVUGkE8A`56p3U@^C+hblm|-PL zT>iHEENtt$U4NOZIv#lplQ)`t67>qt41pE*Z+K-_8{%=FA2$oc{xTx#uWT48H+an= zDI+;O_B%cIZ@MmrYR7)Zs*v=RUlUQrZUPi&u)DAAlHl&A>mjtCAAWTZmZ z^Wjvu3tfZ$C0fPe;~Ds z$M@K34c8lh$4CFF;b0*aC*oG0mYC-a>U*lo`&c?r*Smc}jfmNZSg%GT)u`&Rq1^#5 z2UEVAumdup{ciL!X0`MMGf)&z=iK)L7}fCPrU-M}+NHapvkcHlhDsYdyt<7`tWqLd ztO6FFt4b6(oT;zD5*eq4ot~j8LD5;IW~VXaMj{a%bOmY$g_kEn@ZE#pAE>V<(B2p7ne3ndQgL5nr3b+YPw_(O6 zJ5Uoq5p=_mmab4S+C-rctgR%Fg_Ds4wgEytg5{YJY(+A3o!XE5@P!=5CPrQY;v!*v zG-`mS{y`cvj;Q5&1LKi5zT|)N-50<1fBn7xuKR^~#7&oZ@nNFAXwF??AOGZ5-~5g# zcRz~I9h#gaR)NXu9xju)RU0u!gp|8sF3FZ@QFlWLjUDrea&p#%ZwiP!#eLn9du5ue zpRxqIFY-a!D(skT3XP(>;8Iem{SEph5dAL*UMAul z6n{x(`DD1Se~9wsuMzB{klKh=#j|b*jUb+wDf@f`K#~=JN+MAMVz@vTMWAU7iNYH2 z&<^Fpl+~&~g=TUI@0=s}Ep0zbk+GtH`7EDl!Omhjc zU0wdCLU0{*eTrDGCJ+YJ3(ifSvz;SW2#$63MFJH$&N(e1M!*q%&p^0 zp`AL(k^3-w9ccAEat8FEOPfQqO>xNqz!J+L__dT#RP;53E)r>iE!ahv2J+rgljM^7 zfQ_EDMBX^<`wpP=@?9UJ)o0H=VvyDNr?U?+zRw1K@Z=Q2OO z`s$@0iU(O{t9}*o3~9RR02q6Gggd0}6E$TTi)BK<%J_jLnKXh8HB73^`Tk9!mo=c) zK__NP0x`u)1yr*8bd7e%fN)B{qcE8GBSIG^EH1=!)p3Z}mX;I)ZMkbg!SZ;h;u4g8 zlC#vX$cV0oam{LUl9l*KxMen3{K*wCC$Gd6KP*2scjKPW={u9V*W{(iqkFJ=TtCQ2 zt-?iLX(I_-clm1~ypGfz74@Jl(YTmbh=e)DS8?tTor9SrD9Y6VksL`WXIt2{&922c z63C-%q<@x=w?x%b%;d2QA5w_9r$YA;HPm|PO4hUqurqtLGdZx8^l+8cPf(|<*)uW% zfSS9~AxM{VUar@D1AiH+dgC&eMa6Y+BR#VPnE2 zCjetCf-{)DA;+&j1N|l%Ei|L8EKjh{zyV6>lm<&8l*V+6q@jx**gbSgVy}rhoD;Nu zv4zy{GNv_gq~v3dZ_Y5|WrA>y9qJo;>oetvHZY{wBgTcCj+E6?rIkE;Z&-eQqy)$; zdB>izQ!8>gDW_qRr2l(gIMq;L_JaIK$P>3>gDDI{(z%QPM7kMjuo$QV-Tyg{gz}RnAL}LU8psjKyss|I(wuE>Ac~lo!(jO{V420q=q6RqZ!ch?% zC{J2kH27L+Dx8AqEepgHsS$#hvRLMg2}^nly((c6Cn5p0k!m8PfFzLU?Kj&KA}h&B z^5vvWdZG*F$B(%Qg4=WAkzIhfI2+pQ<1k6EZSuNI!uLmc2Diq4Dy)T;T9cN9ZrPj= zb-lke-e2Hxr_tNeF1c-9il7NbTLdj%hsVu63hD?uF~PKn%M08kIs68G2u3Q?Psk@b zUSfiddcWvCNId~dz_da%g;AOBS3I4nWd%iJnTp{z8F3){Mibd`nSqBPRUHtjxR6VQ zK+Zano7lxN(2aDU&=cqwlTy<}T7bOinT#S;qNmgkgOf3Q69kX=5;U>(=O#xZcH6@M zKnwsxd}}tFsco*y^x#u3{%Y9hz0*GxH^Dajg|)cHRg;3so@K5(8txG4m{RY{QHLIzE*~>C zO^XjMN-OH6UtqwDE-YiWNFX|f1s@b)3}r&yOt0nuLh@ZxREOv$@&Z39`52j8qCa}M z4JO?on;>U${hhfjw3Xc3`(ik168D47p@?eGTMUvgNw_ortx(PJW_s5KhaAqi=>yj{e?KV(a7|0CTgg)y7>|xh`3LSz@zY0Ej^h0!aHPI(i2Q zMe~ypZ?21&R6DcC_C;K2L}lCGVYQdk?yyYDK?-igo5Ni??|VgC zx#I^eRx%7J(LZNN^O$qLg)5%eJbf%p_RbuD$l3%ryeEZ%R^Yp`0H*OT4$YKql55`z z?RZb(1^zi1zduR?0xK$Xl6iY0{}q4U6J=e z>rc*y;`hdu^Yc%B{GJ2z^G-LdUL)-oTP1qHPmqA>S(7-y0yQC(5KNZgMqZjE6U&TngiDH~kYU6@ z2=>S$425Wr*jR!HVHFtzhqZP=3L!Y>MIrJ;@rIB=(kg(}sF>C9+-0dp*Em6>iPXT? zMiykbc1QZZRM6w9la|2j69xdn!maUD_|8v%$3+id5+B$zo}CPZPD%GBOQ(y>u>ly| z_H(l-7u1JT&ZQ!TYig_K;-JGSA6DXP5vXi7x2AMh<%!G10zxs?=zTnjW$2A!Zx70rHlYm3CN+|7f^WpvRx` z#@-T?6!4JWwm%>A6=FcrP?SZ{r#l$yt|M*_BHM9hTmO3DP2oDT4Jk%uDVVG+aszomk_VF!m8B$oGdbng-#$flmb9?*?BY7 zBzgy+sK2Lxffkq`jA{3GD#4L5>TsUfID7LRQWo#?_}qY@5Bc5^5e1K$RFiREEowIo z;V~gFc8IGv0Fj-3BnQYNpQVh3c%7wVT10fR|v9uyp z0gYU2*m0J&)H)uE$+;XQ*24R1vHgFICpQpC!X5fv28o^HF!lHR#o4@Vb^=>mp#Rh zD32!E81YaPCIkff*bGo`0F+X#H4?cgO85D&cvvkn`fv~Bm@V1E&`jyDSXcjDq%G#E zYZC$z4=MT>eD-pSb<&Ko@Lkj|LkMP4E~h!6KB2ngi$Ct__JytFq8lGDD@(wG5ksY` zm4zRwm5itw3mEV_LLKBu?bFFld)odgoeIf;>r;?2Ocbm2UsbHgL}JW3ZGoT@N;!UI zkslye$h(tSW&-4e!HL4D0WD7cfP7%K0?iD7s3cU-UzqpL$7bhk`+=XvJ-+u(@piB6 zp4;S!vX@1gEs1G+dJ~fcbWs%LD4MH46Z%N$8st*h9Q$|~`8aub^B)_PrJoQ-<`!9{ zg>8zf?jdq~nK@@wtDD@b)ZB$m&`Yv*eug9~LXoQVMG9e}bj*ENJ)BgTwJuV{v54OD zZAuY%!!Mi35n+2=rpta7tcWw>t@BcMjhJ$dW3j$7*qvKE**r?_i1JuoJVtOf5(MNN z`DDX3+4;koPXRuN4&>iEZ@ZPP6IoF1st>?b-#h(gP-g2R_w)tz{NaC6MxG%*mn21k zWMt>$MA=STi9!1b)=<_+?k2)sI40A|Md8p2P~Hb1V5V$-bNHJ+9a>LMUEMnvT%Iq9 zcRtTmS0`f;yrNMu1=5BZr|;VfK(YW3tROSq$+si%w2toVfvO-Oqjq4Y0|pUt2HKn& z$}m$jO?BBh9&yf#RZ-%+S|`Y2PmUGZ07d|zL?Q_}zC41>$dI$X1oHhoaV%KhdBZ$( z0Ns=8w+{rIK{8pm@<(B1Jt*oKzrHpu9OJ7dF9*^K$Q)S?`!2MT*zXSz#_sbLl1*RP zP&kIaRhS9%O$yv1ptDzJQF}&Bli7u?I?~X2UVj_;(1TFh;Ru!ssN4_~pg6wJ6aqCq~PZND(Zemi+d=`(nO#a|QoNzmiP^#0N;B zgevFY@h)^`Y^vY1?px|nITDF}kR*d*FpP$SK`7?L03t4eefH|atm25e$j-yt%8ZEg zn|-DAW?xr|EJkv894^P|?yAx%-GY`wakzgysqlAha5X&Jn4KYJBx5wskz?y1M-rj} z)p!K&tkq%Z5>b7U5D8V`Asc4LwduH#D%YS&S$6h8Xgx%H`AZN0JnAg8T{jS+bUZbQ?XAf9HYD-kIC(zJIi1(vM zPZvsUl{WhN!L+wnK6Ifi-*#>9-hjQ(?hwch#-_n{;O6nWlsLx^Ah}7MO9O2jpB?w6^R%%q0VekDheMO>=L&g{EMSI zSoD>OOG2WVy>ZG|l6KmgDLLMa_%uaZ;U)nhz69H-5^A6%?tewodIIF9M1mBNe+BZo zal$%~$A`7w5t|693@sic)sss3V}mcRPU$DWHAa9}G`4MgnxavE^daJ*P#VxWqW2Ei z*ADz@{X34~r@EWIs$4An5L~Q5C3KI4_OWvR`HYrehcmj=Y)oVo?G?#^92d8`(s4N0 zNE{^aa1&j|*X%OBnS-GisyvGG!deq50JXG=|{WVFq9(f3o9EJ(N!G}v7^`A z#Jl~Si&u@n3aavreuy+!zOYIE*(X%D0dGU>7IZ)vC87f)OiOzoSdDQz#qW=tVUrap zC+4F(Atni9*a@wqSXb{zuilFf)i#CWyDnCT!X>&%My6`w#ouV5ru4}8;<$@Z2r$U%~w8SD=Efs3fp?Hpz6c3FwuI0xswfrD$NmQq)=*7cKIBBd!TE+Z?` z&J0xl*Ni$E!Qo(~e|U%824*+=#NzGkStYyY0V~+sL}ui9J*@U*C!vU)9joVBmfPz( z)YxmFbEPzlxt|eB1iUzwu$~ND=5G2QMU|(Q<$3zBfp}>Hu_S`qW9q{W6=suY<(RRQQLt@FsU* zafp&OR4l#i#A1tVjrRSmBRie`(BE0;Y*|lYYnNe;6z9?%Zx{O!1)PrYV``l-LJGzo6Lq zcz7rVkqJ`MT!8#EsOOL#hhE;N&7-ndn#!0fR}K z6-MY}O7_T!{qz_Uvi zD%FF+WZ|7_EFi(-BIZQ@Z1$ec5EcK%Eoz7~8ji%93XH;e@wP&NM%w2{LdN6HUj1@k zTg-au(qB?)kMcQKh4wJ1F$Q;#!V@TQD~e)6)>rt57;%FhFy+YkzM_!cSR`#L84*h& zCPH2z1whb1##01aJtJ8b4kb^Le z1DB|3*R8?mbgE!mtKD0G3KhC>BBJ%h{nj##;&A*BsDAvw%7k6EqgwRwyW z_?COj2grxW)}daqL7tb0iVnq`_NlvQmApT8z&@Y=xR#Bk0Th&ia}83RXP3$;@qW;e z%3+jp$0|9p&|pmku(!oi`CHnj?&LvtOJ>m=;dxS8yK6 zDGN;dsOglD7`aysJ$U-_Yc{RoeOU(=#RHizFPM3I3o1(8v7ffQvhm^Vg(foC6Z zVygR&vpXCbAi^*SyG;dgVD^$r!nUabb%F&Y1rS;5v&au;f6OuH5#|f(>JK=}wd?y= zsdyLSy&1>U+oookt5Z3g`ZY=^SGCaE!~)p&0fu!%bC`?P0kMUGS_)u6vgYVsHw(9g zb1o+4Dj z`F91AC166(@j_FCL=?IgnvHC#(K}AA<)1lWNje~i{Ky$3$sD;>u-J1dKk8-c@08|; zi0oF{pE67LDS{nSFYT{ssWln4ufIvtD7ZhgK06|i)rp&mQU};t%G4xvz+iK0e|BWa zz1^Pad|q_%K-#Q?7AEZTh@Fg^n#eOs?rV4R2;^vcnQIoU^9SP5%zN41ht{B?M(7N^ zGh)tU?>r1&^O1NRBb{N?Iz^bya4KMroF5jtT4d@HX5y~F7fb_WE6gVPVc61Vvv2t+ zt`{kT#3=Gs@|Wa~p1!k>4%`V3_XY7;F}SL~gq!74;#w3ykGtKj7v9d_=-JO7^vd(i zMt(hi=dvEsa#dATDm9nKVz<*)+!T+7J*GqiPy~$LbGdf13#t?}UCs}#2k!hE!HzVh zfWjWAfWRoeuh`*`fyD*E<-oKe*}P%ha%r)tVGitIBcfIa6%1UOu?U^x+{Z(~6N$xL z$$2-xZQv}9?FY+YdcIko$Qc+(=RC>C*NBDANcTKOhP`ROlU7fE$lPNsIsstuV)6m! zW#{$#eEMyUP&h+C0DxwidmR0^T0KyW}I{ zZWUuj zhgII)i8=HnsL~Wqu|7X;ov$inch!YE9Xok*cgdv?B-KtVEs&GysW5LL*oOCEckn$I z1x2Uk%gsm>$OWTzM=p85sKS6n6y~Zk$3xSo0A_|61z}X5u@p~5O@U`T>M{IzkcVf2 z)jeIA^$U`N4i(8{XD~~eDUgz%pAvZk6s{(e?5&(thjj>@%^xF!X=)YvH^A6^0Vs{+ z2x*enl0SX(>6f+VkJ{#&p3otR%EhFqmGE?6%9PeaJ%KfecVWjZ;}=|xc+i@`fLt~meEsb8tN(TVQhe+Msoin);9eyxB zEwoUpc1>Mtn;rWmPD+ax(kJ9~IDI@>T`Zij&^eUzXok9`!99w6#y&*czgWDa_L9yw6>#lMmxSUKc-r%uJ~ z@FSe%`gUo5=1=qz`qsRa zl)~zAmpHy0lZ|o+E?Z`hl4$}Jzdzss%oIB?0U5)WFc_ZCrEP|%4d3KF3L4`KyqUfO z*V=t(;?IwiC8}8w1VrxkICMdB-m#D!cF1CPlOw_?qWzD`MBA#u%v7lN@`o~8f=pn6iJ*|fg$8{z}h9PQwb+R#5{cN@_u40@VJH0Hh4 zr+r>`$fj#j@r+0Zpi`mCOlfkzWve;b4`%8n+2*=|xwX z)12J+WbHcVWENfrCEI-K#F~W27<+rNW_Vw}9hQaBh_wzi#4r=|5-}zQC$&-}k#gF! zXCx2ugRg8_knDcM$5&vMbG{*!?|?t!+5MRZ+7(cq`s891N#5dXBfmgW@~z~NzlAYt z&QZ=3Ow?xigHYiF0OfS0;+t8y$d;A-TEml-&k(Cwg`;E*B0u?kl2^Jz5WE*r7b)fw zBvwS?HH1>BGeEx#uNV_sPp=KDR&A`oJh~$acTdG{0p>yyoQs!cwwi^?>2pslz@!lp z)*RTU|9+t`r5D+6Fj9yX4&%;6Sj;ai@}}afX9F674IKpmv(8?!8e3p(DvWL?g;sQr z*D1z9pU58UO`g5hi_w3m>{2S%@=i5s=|?bIcqCLJ@G1Q0-zK;T^uRkQEqkB<6q;4fP(* zlrRf2a>B#mTw+JCm|XP$UzYHWX`3#;LwNR!(3>Eiuf;V}775M+^L5z^t$pi(sG9kI~_%D%M?~n$%zhvVB$v@9}ovhLHd1w**QNpx#?6( zuJ2M3j8Wt6zWCGX@54pkvg~73(Mv**jOS&fPBLOjWH&&}VkR#4L=%dL?PHhp!`Aio z8&K8gSpc?$OK<|+MxjI;Jz1yWh6o;xitK?k)OnlSBoB#|f-dn5#OoOz;u|nQU7xq# zA8D5VmRC}S}XHF5t=BH7LsI@V%XiLGgSo6=q8MPh-A@3!V{+}m)QS6DYHgR zOUj$5N0d{JcdCU?{U~LV6-6TAo^~0b%<*DGLXjcg(?4f_(~FA4GTICbU4mnz=vnBo zSW+-@NBQKQ6&^zMQ?B)J|VaHjCs8&~H4IO3)L?8!5g&3kc zw>1$3*AZb|@+kD>@r6fSjaz}yJvDuu#<(}aN;tAR>R!~^HU1Q{(W2^qD2r_aA!3yR)m35%kY}VrHaw2mwY-*p8ABibTYXVCP{J$1{kh@s5#E)>oT3-BNv#NXm53M2!aRQ`G*56VuBgu*vKiwS2ENB1 zy7S|SxlGE;Y3ovXUhk|j$Mo8s|CUnbGO)2;N6bX;^nkc8C)u-{EhJ_4qbt8T5nG3u z^>Nf=pr@IkPcAetL&fgYRCrTn35ORnZsi^ylbt_qmmetvL`SfKJB45BEUvbaT|?rW ztJ28WF~LPZvpnqj>enWvIU2w6vC~L*p!bC8jYp(3nEPcJeFt)=~iJzcdE)3CaA8BWY|%OC-&s8V2noXWlW?z-EM zU}*Y2fGUF?^Re*JiD=Jdd6Q&WgUI8;Zz9hpznGKeRE`(s$p+G%iGkk`c);*9?cN$0 z2&~EMN+HDbOI+7ob(}SkdK<;>fQQ_lQ7poML~B1pl1VPfk8ks`FiwX>>ng8_j7VmKTi zQ*OGMd+7?^Ri=>DhQkPRg2DwvCXqx&a+$x_o;t)2v;>HxLCy zLjf8fpz<%mozuo>ag_OoO3T^GAHt2sih*1^7fHylga&QKBrZj2#((GWL0Me#|qzg2~fkj zGvJMVMDPloe8Gz$zwVyuISi4z2yY|hDiZb6c-z6+Gy+yb0)GsdiqaAL#5@te@Qycm z4BlC{qq@8f8c=Z}i;6sBIyOeKXN8)W3%i&JLX+N;hYq@9Kt+sWZ4bbd5Rq?qkc3P$ zib+Y#F!e($tLWZURW~KH8yk6qSj3T`Te^(Fb-|#;1K@;Q{A1+im>tNaE@hrMtxxOY zAWMh|k3wzw33gYJnH=@&>3OIjY*SLx@h`MM}+#ROum=!^xhlTH7p zpN#bl^T`im47szVb`%Qa+07hsS*2#Yoknj7Ic%_?p^T=oLD@%QqahOf$t$o&Y}#lH z9W;Z~WS^%(r=%1r7B5>=Zw~EO!y`*%))8DEwo>E~A{KGvs(|SQ0Xt}+RRo}=h97&z#~ro+TG*y-khkcS3M;(Aai*DRox$zi8w#{$}SQGCI>p*`^pIT*Nd%DEPnL zbt!_X0-46eYewQ^oWh9|7*&wuBhp1ds(}G&^Z?ChMbg6gns`L3x-P9>#hE8tCcq}R z08bw1d@zafyGl#smk3V}g_qVSsm0Q8Y(7LP7g5qU6zB%ZJ`=FY5duVy0-$wd>CzLk zCcBQUd!YIA&rDL0J7#S-$krgh)T9t>A=tTsnO4inWM|)nu?C72D!U~_*2ZS4Hf)P8pU0@D&%O~eK zA`0@u($JwIMZSbgNT*t9s->JlRPCA&>0HDnpb?lUA0Pr8bXDpO*u4uMHCu0e=A!)w zbbTr&Zc&5k@FV!aLH|G>gaXT5l}h7#bU|046k9Vy9&}s`-rI6UxTDF!r{D0(r!s>cDVW4|NdZHO<5odg0jIB)a@( zyd>t09=SsC+@wbnL(?Xq8=@d?T^gYmLjK4g@c+|9UcQPt>rEq{5V43M;ON2&23dx; zjg$odN}T}a8m!6uz>XghCt>Rou(1Q3e|%2O;ypJ56lzb1&F+2BnpnmnE}KIu1$E$D zROA&PgPXxjp{JC0>K@Fr?8HGPDu9lOib#M!Vza-qX+a@OBErrgFt7tKKv^qiv54Y? z8c=w#xni7!Pub4;Dqr3ljW05^!~idROC_tMk$^uToCHBFkwyq6JtL!vsQGdrW8ol+ z=+H6SleL=0^fLp%X|5$4Wu$vX(CC$vt2EjLam1^u_Tq#34*)zxSpXjCEi_nqvB) zi1xA2%2A|JxslfD27bs z!Yx|RlM2$NeKzqcHK7NLfLUUu&?$G4<`ogUXV8%`sI8s3dgY1(_`{l!jSEnj5b90*DGE7ds<4j1uNk&MJzg{s|o#e75^sw#nJ+lvV>T$Of z7E}e*qIbLfqBBJhFEdjHo`n>%yKyrHiW%!9tB`TRK8$-1s2R#)AHfUDMS20~Iz`Ts zuejzre_=1o84CbNMM7E}ukWOs9<39en_*+J&j-(Otq3$fg2t4sDtP)T8sTzg^P6v> zRx6qGibE@LDXfwAua^N|B%s^eA>F|&DB>>SR?^1bM@shs4-F$DTP|_ZMdVIV2b6My z6`*#S7Vhvw%q(#Fc@PHIPPkc?ByVV zqPiszWMo*^lq@`n1%vi{zlEPis*R2)L9@h^s7KSvt0wGlTFQG6y9_jw_AB6daF$Ki zrL`n04Ok;m4w(Yk+$inlYiI>MWyvSYKO$?fJG?j*;ctb%OaCIrsNrK?Jt1Z|Z6k+Y zpOCOOx3g0=nb=o=Mw#N4<0}9KKA6nzCzU`2z7Z_AE8|Hc19-k3wG?4-c`R(?j>`&w zC3(wJGC=MXs+>fM71?!>EPjIrUy#(k_w6bKKm&C2=~-zO*Bm`FT>8-o6w<2xd4c*%XW9f=g48wHM-F6 z&V3Rhzv>_hxB=|Yjx6gTz%Ay;u7-+%2D{Nw4DlRzp0tfvM&q^;DyC#U*~PG?H_Dl5 z9nW*lRMVW}tY+IZ$m( zoX80%g+eB7MNmQQ5y9*2BF&0?vkSdCe=Ri!7>Q>+Q7S!H_#158Yb=X9MqqodYbk*T~jZ#v*?Vd zm&go`Gozy2J9+%8(VcR#>D?1BZdn zyv@eEZWM9j%YfiR!L(42cvI6$)DcGrglFQxA=lVvhx{jlX+#kGBS$# zfaVrJqzxHe-gMYAnp7~>4UUS4eUX7*K<-NqL6SSrDyXNoz?CQVz!%h6|Z%!&F=&2ya;48eD ztMievVht76KE7?Yp-4auTGDJ?>~>tVg16I*SfC1n;7%nqf>ObvAO#L_nomR73bray z`ZgyOOCka?GhZOcloyzGH{2qKb7UApI_0X;DVfk1b;)+Fo8AHk_C(P@Xh56+ik1la zlt?#3ETU}B@6I=^Opv;+!xOpA9-lbiuZln2<1yvplm;{{n;cBjq$L=6`K2EJe*df@ znENMxsWs7kpQwEP8gst?frwjO!^>k9adGH{XZnY~lm6Kc!qNZp7^lOj6f!)ono*sr z97KX@(kYTvF+mUtuqu|Iy1;{P;T-eYU$=< zGQ<0V4%G92G!Wx<*FN(z66 ztDzfEPUwSt#1s=NO=0&mL)5pK5fd4Sx~()`cI=EDrSS|xITUL%TB7Zsq+Tk`#iW<0 zkku2hC}LBjPIp^G-Gpz|TU3>v$Dr4h#DR0+uTW1*)_njOQ~_gD3^EHABPvN%P<&`g zGgV&Nzk|;;I7M_fW;WG%kjvyMWFVe&P@%paS!w}6M%IaI&Z{pgBS-iAm9tFhM0O+F z)#itVB38lU4|s;h$IgxquUwNUm0g%$SyK$`z6Xc??#XA#OWZyA?T*iVTy5h0m|^St zMA#C-6bTw+l2u$cadD9MaQgkoXcgU&qC*@#h^r_w*EU%f5s+@O0*aWULOUTR(e zJxhVi5Q71AOim{rfj44?nPQ_{{e(Y?`ZeW=dpTF)Knhiyt~6WAyFg@q*HR<-7INr5 z^*7Nmc+yWguYAy@QZ%G#Jk^Qr#5zOi)@xC7nH%84qgcB@;N5>caPQ`~`-t3Hr>jcb5VOD@(AtgY2rac9a%09eqyhbNB*r=R%OY$8lm4v-a#wW zgo_X>gFA~6T0;KxDB$<^=9Q?D^v>WR{k9rCC3Yr=+$QqpiRdYK8%zHt(6R+ril zAS^5836r*;jxQDS(S_B((bO@I$3ZP|>q0NQIsSmKgTFypHur^U@dyTA4t{>|m-v2Q zwEJLD6JiaUjTH7`zAtnijn0IwhDb|F1Ju$K!74KEDT#&Qwo6RQUU5#%a~_-QocmI< z;=<@CQ2~=ef))r=b|QX&C$c`Nld$VeaF-GMcX!NpwGkUa7GDMVJaUEHbK~^vydkRG zAT`g*%>_zzfog4o7Sl_7TG-JZF_Oenk1@Na2?ZU95Wtub7*?pzOSAUtQig&Yl%%AX zvRK#1Gkok!9~Z`N8)*m@;lhOMeHHAXXfhU&bs}{Ll7hJ`1zHNJ`UFKO%ZWu&af+Qy zQ4FQjP%IGH(0-_(lkC9;(k4_)E-+P`wTzsNO3A2lZ&@CQ>%0Oi!WwqTs?+4}B0p3+mZ z>nWL@6_VPsA@7F!)>`V1ye}qv3n?EEG`=XH{Bbmqioyxl&6wEnaJSSij}%q|VtZw% zlMQ&oWw)8kK&K561cMcv8i#~gkdnlWrE2_YHUF>of`0!f@c+BVTCj|ThHAe?qyq%k zhK)T@zD$C|b0Vz}JVoS+naS8o+zbuqwyC{kl(&rqVVOA)HZX|yCM~rAokA+4LoT1k zPbu?hx9-Z6zK7tfWzCj!Lof9<-a`QE3@tWfmKj#ReH#qQz>ZNWY@H)?NiU z`?rLTJ@%Sy-@CSdub7%D2WWuXD%SvWWja%{7T@+`=Yl6M96P^Q@~dte3kWy;rZ~QZ ztUDx5f*ZM#3`$Ok$+3=V2U#tinRbtI74kVw3keT0AQV9dn#g3JmkP@zl5r8)K@hd4 zm($i_j6{y+@`|uOJg}TQ%Q?{$N_m2K!5jQ34}1iV~|>QA$bV7P(u*UmpCQmh*re6k1|&UyeR^E5n{1f~VUd zXiwF2)G!z&qFxsD{GeD25rv zWcSg;h8@*h@jyujci;x_n;GtlfCk?k+IbA!sn%0zr+Qyz?pq(Z3yRPo^E0crU z`^d!hWNQZbm|^{#(_e)UzO<6_e#h-zAN#7vHFr#1^fJzPAQ31kG!;W!tGNa5 zW_fu)+^rW9PL{VA$H*Xe5>Y;mfW!tFsPcOd5*!d8pN^_Yh%8Z>DG}c;gmV-A+XjV- zL=q*aRf7!?+}~{Y*jEP7bET#`_G!8tf^3@KvmLZcd_|OW7bQWY&{W7SX4@wOI}tFY z8MdKj&F3ca7?+Ym;%F)nmneXw(U=6KDwf{wMa*^S@#8nW@eui6Cn-@8U8lwzyZz*J z*@A}ZYgxw9dD{yS7JAO(j@~mN&1!cHVAp+b8X^Ma<2yuAB&jS~qaxxxF(&K=%Uvvo zQEGYY#NE6>B$~kk3d!8qq(dYU6C9>?n=0mo3@~gVmI%Y>WlT5W!05H< zG~BXHSDVyE4^j+ZPt=tM6mdcoEmLq@j7H=@1|~@!R!D|K~;GkVT0szpbPoI>O<@z+upRY&wDj$!62R(->C)pe=xrqK9oq%EF^1km; zP^#xK3AzTDzSlujqZ~R7C+G!xGe3z+=oi=#*fWAp-9^>+%{C>X`!bO-TWO zo@1r*21aWnN!nmyN)lOUfI&CqVhI{7Ad%%NC(7YzFJt+5q&Qpqj$&{{BaDzTA>pjJ zAM4uZA`qTSYat8(47gjg#@3-s5KK}>b#(Nm1;gsZz?GIZNSz-igdGB2vh-?FqA?cagaZb z&dFj3x!7po2D}I}3+wKq=^^NP-*r555ix z5?GD;(RF6oF^$}IXXL;V`zm5L%X1g}|9>Pd$Q@Fri_8D?O?#fIT?5ekbid7hzr7gR zdP0Q-umyIArR;^0SLs@FfkjI7+jQ%h9-VnBpVn24Y?De>t2Vy*y;Iy0G?j+f*OgtHUGu_R49BA!ADMoLxV+wrHljMFl~v~-?`=f zyKDNdS7@8EEl~gwpk(0C*Q;iNwzjr1a*q-sMkdHYX0wS{0e~WOWAtW_8K0RcjYcAt zF3d1m%94CoHa0>9+23y0q{qG`EA!tM#cq+7h$BcZ&=rWxg=kXVl;`X-3YeMCd~(#N zmy|FL`<>#~x)TAL;6#41vZB{-TOOi=4Ejz&J{#Ad-M zL``(0oRk&XI4?cXh!`CgW1j$rkd9kP%2hz73a=R%lStDoC`KKR;2fqml?V zxWzSj%ZCiAM<`BLptI?WfC=+xp*MrdDy*GIE#XkQzo9VjggXc2qozQc5?Q!)H$fwL z9j(b;(3geR&nK#*gnz#f=PYu1D4z2gX?;-Bd33 zB?{v;Q3x!dq>x0ET+C;MHgFGal^a4NNwUHL!?Tn`$>4=MBZ%ns;+(@vw=9m!!Gd#W zn|0z#?4@~|QEd~M%hGVL^=3&#u@;t4DB$v!Z)6pDvBsk+_oCAH02lt+MBHMuNtThv zq~y~(ndxbtP_-GVQNFX>c}c(y#zBOni$ue!VuzRz&VxgEPI8h`tC6h(N^>mk%OUEy zSg+5+Fk&^;0ez2+#CJdNrBGN0$g=aUCe}IS6>e$%-O!g4aug98H!dx1^NV+aEe)3Q zI+(;57GYu*!4w-3chY98Bf>$&`k@HjcBMC!BC8ba#dc$+uq&d)G02MUf*LIcGTPXpUBGIdJlt0NAxOy#tj1%b*DPR zpGYCM$jK;SkBXc5B-~ocT?ej3odZ>t2oubht^+A<65!Hi;T|#pM{wI-;T3CHMTND* z+14$Bg%hStP{%Tck^ylO%Qn0MQsVpnLELO)phF%_HArj)0D{*Mymquv5&f!fn3RXc zp`L+U%`Ijsvl#n!ia+yl(}o0%xihL#;$XiIx<@iqIIE&dk4cI*BR3^VPMuUhBQ&PE zneI{Cemx2Qwrgz)2x%p;DWiL&(p;2~H=*gn2x7hFU|`#pz6r>MM5O{`c|&`!E?Vr~ zw)YTx5EtMwK_{3@d0RW;ATcw|+NqZ!14>Zriesp)?NBV(ZIXf&idQ@}3Y-kG4?Ie_ zL>jUe-IAGP1XxCwqaQRq|4MCJfj!$%=8_BtuZocjXR66NY@kbUN#Gx!SQO@NF9wAXQnoR?P199Eul8AQ)Wi5; zWr5-QTt#CeBq2veuqf||Md5LbqAT+*l>gklNeVlsIHTsRFb3xZr^znoP=GPM0=BX% zr3xFwDpsUe<8^@Gm>4_8fZV*c+PHVqa%h}ZaGLM!T;c}ND{&LUyQn{*I-~9?N;)*X znWjw}Qh^tX;Ho4FmJZ-~GMFm3Nz&P^BPx5 z=3=`inH*SP1mvIg44$EW9X>G#lC{WYtWE907AVUlnX*Shj{#f$1NE@W zp$00WO4R$XNg{CrVMZyM(hCu0(Dn`5iG-I}grV4NB9`D;=xM_j%iP)|SeDThGy@Vk zHGQ-QMq?vXP^Wc<*=Hf>@Y3)YUyg*y35n=MY=putvRz3bXbcLZWK2xT96%vpqZv#j z!bEtCtdQ7EKqSFRInW9kF|SZ^lL#~~=J65L6p?q@5ovMuhry%jv4LY7gCyZFq_|9a zp3#`l;igAQFErJ-lEE`+m>pt3fT&Wcl5i5OjTvPhDHFRFb|08y@kq3{;_?{iGD}0f z74>GiuP2mCJW(LEl039vZ$5z{uwn;-oRb%ZVn@G{`>=DT;2?gp^O+DvMmzFgIRvkc zT~k*=&1EL~YG#Q$jCwf5_Cm>JNC%aYBo|C`><7Mqr2;j;#NURf=~8GPmj>H!3?*$Q zZq7>95fx@E9T}R#oL352*!FxfX=KtOagJD13Y|sd**<4QkSPyi2O@A7=>Dc`5U{Ph z$48;E3x)C-pwQ%FQWz<)5H5juxna!&z*0pL+Ul7aE2^lOjB7=2tTbQOJ-Vvrik^Zp zf;qr#OKRUnR{pzpmA$*69yO7dCL}#ly`84q&7r%W8>)ptWP*;92q)MrKUm+qCs(?M;B%YvkyMMo=@>s*n71kOk^_DzF#%m zZP0&R6Yrx?MG$vOs><_tO_yUVNJ21k%O1|Nm7o}c<58oQTC)N@cM;J_w)%J)X+w=b zZQ?0Xi8LUO7XN8`V4wwNg1WF;yHUu_>yC^oh|dFSJQgTLYID+!O-L(b zg+mHqO+sjaP=lcEiC_!C{dKK)2O?&(YppsJg3YlAeq>D~##D4=ELIjsDpXVmjC;0= z1A-9J5K?-g5ba>T>y27&&30=7P|`jU9bGI@JVIokek^myX*qvU@d*6w#@T)2o#csbT>C)%*2z)HpP7{|Knu0|}Lnb21c_rJAmP^@viPb%-6?a|r}D?)`KreGq&I!TDWY zEP_irB8Zffls?NXmvZJ$|IZ@WyM<;?qFJ9a4@1yM-H(PXm6D&*b5B7Yk*E-o_iU$! z^I{)}f_@Z{>W-t1za~t-=bp{hLu5sXWJPc(f|VqMfI+Ib6(EN1+cqoQ6eF|~m>d{y zw4lJ2H<60u>{HTqcyuln3P84vUTiCBSPzY1h|m>G!Z=j^QBgvLwM~~Bx}$Ve@4sL1 zkR<>Ryae-`4`Z)(<`e`ww|(0%zvw^Gp#OwXn+|(!doG3G@s8Z!m|xuap$YoD1VaID z$gM35L#=hf42mi)mg1q@bu5P0WNFxW&z=on)3M{99%$i29XEP3433yAhKKZjvfA(H zTfpN)0%qf)bR4at9bk~Y0;&^hC5a9q8M^%{3N37$YY{AlWQaoR6-vza!EzgnZwuOB zj4Di()h2agzbtfzh0kZHU6n8<<14Q*i=_s0PCyJm{B04b|Q*45=bM4?rbNDFyO6TA=Amc#Z=QnZ46*~zw79#|r2T3e)DZi`u zygBx$`ifqewgpi(7x3b)gv2I{NwSrymeG{tG5K|8Y1TrdWq^1ePzjQ)&jGFm+@M-e zHG)VIN>J=X0Xcb)X~$~a1dDYrt9g=bw;@^wtq^7sf1>NJbo|l1tAnqDfoPK2*lCP;d%b;mo;vgXFu}0lQ7i#2D;z zS4rEdVk(Knk$!PL(%I#2&kuRYrHW3=h<^H)i1092`4EDSBY5v|js7&^l+ z1XXt}Q+oG0<^98itjRsrMIF~Ak15r;Oyt?= zsHkvxJ3|6-c~;Mgxt(A;D4Y8>aK}RZSOjQ_(eJ|^Y>>pLJz_~g059Pwf~=sQePgR` z4p?Zj)jA*xC>9}*8UxB6Px^eE`L1mkxG#Sm(Q|4hV+6aydLp>>J6)AXM?`uusy3*e zll**M)Bg2CEAGo$?a8i~~o){IC(Z8)Iixw@kos=3ACqYV7AxbC| zH`P|ckYp|a=9-m{CYzeBH73`aJNw1Lie>g#_n}tAxj-eRS$Z|hml1L`R^5cBW!|w z2R@))3%m~Odc>^RGO+GKNi<1{Qke-a1?>btEksx~fu@W$^Ep*7!LK z|5S$c5h2%O29OMd3=51^VUVFdzK773&pL|9x-Z#_O@F74xXJ|X%YoXa`Au1FR0=xR zDuk+e7}8~dQXMsbRv}_Vr8^8nkqAM{pyybW1VKTfX+DC6!1kUfUPwtp+5^&VWhLc= zB&S5kBw9-%5L%b4Brv2%Yt7$t7=njHcmnn-YN6(fVBYln2wr`(u*8`WytUFwqecxM zJATJe2yUNY)1Lr79)itbyC8%j@v<@{S7Zn@vlOCqmPkAKdp2#i=hcX8X98xe)Bqs9=?6ye_9}=JL^@2CD7Aqz2ecVu5(o`7 z)(I;u1n~$-_a*WYg6oG5cP1dUSPKxrubdeW{5OJUpW;m*_$vf|e8~Uhzw`a)pZ-my zs<*s3p7Z+h$&2NF`}T32KYB6O&-^cuU&REBny>nt@=szsUM2VTs}<2_z485$njeq# Z@IU_rh@aGv!vs(}h6p7PL%4F_0ss)a;3NP5 literal 0 HcmV?d00001 diff --git a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt index 91637dd21..348ffe976 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt @@ -45,7 +45,7 @@ class ReviewQualityCheckStoreTest { dispatcher.scheduler.advanceUntilIdle() tested.waitUntilIdle() - val expected = ReviewQualityCheckState.NotOptedIn + val expected = ReviewQualityCheckState.NotOptedIn() assertEquals(expected, tested.state) } @@ -90,7 +90,7 @@ class ReviewQualityCheckStoreTest { tested.waitUntilIdle() dispatcher.scheduler.advanceUntilIdle() - val expected = ReviewQualityCheckState.NotOptedIn + val expected = ReviewQualityCheckState.NotOptedIn() assertEquals(expected, tested.state) } From 6f38969160e02c32b478516b0c6916ff9b014dfc Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Fri, 22 Sep 2023 13:51:40 -0400 Subject: [PATCH 006/238] Revert "Bug 1843610 - Add telemetry for deferred deep link test" This reverts commit 186a4b76e5be73466397c0c2fcaca4eaaa2a88da. --- app/metrics.yaml | 21 ------------------- app/src/main/AndroidManifest.xml | 2 -- .../java/org/mozilla/fenix/HomeActivity.kt | 4 ---- .../intent/HomeDeepLinkIntentProcessor.kt | 5 ----- 4 files changed, 32 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index a578c7c45..5a4216583 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -7610,27 +7610,6 @@ play_store_attribution: tags: - Attribution - Performance - deferred_deeplink_time: - type: timespan - time_unit: millisecond - send_in_pings: - - metrics - description: | - The time that it takes to receive deferred deeplink from the Google Play Store. - bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id=1843610 - data_reviews: - - https://github.com/mozilla-mobile/firefox-android/pull/2851 - data_sensitivity: - - technical - notification_emails: - - android-probes@mozilla.com - expires: 128 - metadata: - tags: - - Attribution - - Performance - browser.search: with_ads: type: labeled_counter diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a2c21352f..cd5dd7617 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -146,8 +146,6 @@ android:host="urls_bookmarks"/> - diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index df38c0f1f..e9ef9a566 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -86,7 +86,6 @@ import org.mozilla.experiments.nimbus.initializeTooling import org.mozilla.fenix.GleanMetrics.AppIcon import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Metrics -import org.mozilla.fenix.GleanMetrics.PlayStoreAttribution import org.mozilla.fenix.GleanMetrics.SplashScreen import org.mozilla.fenix.GleanMetrics.StartOnHome import org.mozilla.fenix.addons.AddonDetailsFragmentDirections @@ -242,7 +241,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { components.strictMode.attachListenerToDisablePenaltyDeath(supportFragmentManager) MarkersFragmentLifecycleCallbacks.register(supportFragmentManager, components.core.engine) - PlayStoreAttribution.deferredDeeplinkTime.start() maybeShowSplashScreen() // There is disk read violations on some devices such as samsung and pixel for android 9/10 @@ -556,8 +554,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { "finishing" to isFinishing.toString(), ), ) - - PlayStoreAttribution.deferredDeeplinkTime.cancel() } final override fun onPause() { diff --git a/app/src/main/java/org/mozilla/fenix/home/intent/HomeDeepLinkIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/home/intent/HomeDeepLinkIntentProcessor.kt index bf926efcf..8900a0a9d 100644 --- a/app/src/main/java/org/mozilla/fenix/home/intent/HomeDeepLinkIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/home/intent/HomeDeepLinkIntentProcessor.kt @@ -15,7 +15,6 @@ import mozilla.components.concept.engine.EngineSession import mozilla.components.support.base.log.logger.Logger import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BuildConfig -import org.mozilla.fenix.GleanMetrics.PlayStoreAttribution import org.mozilla.fenix.GlobalDirections import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.browser.browsingmode.BrowsingMode @@ -62,10 +61,6 @@ class HomeDeepLinkIntentProcessor( "settings_privacy" -> GlobalDirections.Settings "settings_wallpapers" -> GlobalDirections.WallpaperSettings "home_collections" -> GlobalDirections.Home - "test_deferred_deep_link" -> { - PlayStoreAttribution.deferredDeeplinkTime.stop() - return - } else -> return } From c403789ab4926a0a7b314ac9d425ceeb502c8d12 Mon Sep 17 00:00:00 2001 From: sarah541 Date: Mon, 25 Sep 2023 22:44:52 +0530 Subject: [PATCH 007/238] Bug 1855029 - Start the 120 development cycle --- app/src/main/res/values/strings.xml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b9f8c5b34..f589ece16 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -306,16 +306,9 @@ Not now - - Make %s your go-to browser Make Firefox your go-to browser - - %1$s puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our %2$s. Firefox puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our privacy notice. @@ -334,16 +327,10 @@ Sign in Not now - - Notifications help you do more with %s Notifications help you do more with Firefox - - Send tabs between devices, manage downloads, and get tips on getting the most out of %s. - Send tabs between devices, manage downloads, and get tips on getting the most out of Firefox. From 1020af9827c073f850e61a0d764d7291bf80e88c Mon Sep 17 00:00:00 2001 From: Matthew Tighe Date: Fri, 22 Sep 2023 15:02:43 -0700 Subject: [PATCH 008/238] Bug 1854709 - Add Store actions for remaining History interactor calls --- .../library/history/HistoryFragmentStore.kt | 6 ++++++ .../state/HistoryNavigationMiddleware.kt | 7 +++++++ .../viewholders/HistoryListItemViewHolder.kt | 6 +++++- .../state/HistoryNavigationMiddlewareTest.kt | 20 +++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt index 6927a4f53..8667840c7 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt @@ -159,6 +159,11 @@ sealed class HistoryFragmentAction : Action { */ object BackPressed : HistoryFragmentAction() + /** + * The search menu item has been clicked. + */ + object SearchClicked : HistoryFragmentAction() + /** * Updates the empty state of [org.mozilla.fenix.library.history.HistoryView]. */ @@ -281,6 +286,7 @@ private fun historyStateReducer( is HistoryFragmentAction.DeleteItems, is HistoryFragmentAction.DeleteTimeRange, is HistoryFragmentAction.EnterRecentlyClosed, + is HistoryFragmentAction.SearchClicked, -> state } } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt index 13fd0386a..564e51783 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt @@ -12,6 +12,7 @@ import kotlinx.coroutines.launch import mozilla.components.lib.state.Middleware import mozilla.components.lib.state.MiddlewareContext import org.mozilla.fenix.R +import org.mozilla.fenix.ext.navigateSafe import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.history.HistoryFragmentAction import org.mozilla.fenix.library.history.HistoryFragmentDirections @@ -72,6 +73,12 @@ class HistoryNavigationMiddleware( } } } + is HistoryFragmentAction.SearchClicked -> { + navController.navigateSafe( + R.id.historyFragment, + HistoryFragmentDirections.actionGlobalSearchDialog(null), + ) + } else -> Unit } } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt index 9842cd9c7..06b65e45f 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt @@ -45,7 +45,11 @@ class HistoryListItemViewHolder( contentDescription = view.context.getString(R.string.history_delete_item) setOnClickListener { val item = item ?: return@setOnClickListener - historyInteractor.onDeleteSome(setOf(item)) + if (FeatureFlags.historyFragmentLibStateRefactor) { + store.dispatch(HistoryFragmentAction.DeleteItems(setOf(item))) + } else { + historyInteractor.onDeleteSome(setOf(item)) + } } } } diff --git a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt index 42d6e2488..01a1f0d4b 100644 --- a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt @@ -19,6 +19,7 @@ import org.junit.Rule import org.junit.Test import org.mockito.Mockito.verify import org.mozilla.fenix.R +import org.mozilla.fenix.ext.navigateSafe import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.history.HistoryFragmentAction import org.mozilla.fenix.library.history.HistoryFragmentDirections @@ -168,4 +169,23 @@ class HistoryNavigationMiddlewareTest { assertTrue(onBackPressed) } + + @Test + fun `WHEN search is clicked THEN search navigated to`() = runTest { + val navController = mock() + val middleware = HistoryNavigationMiddleware( + navController = navController, + openToBrowser = { }, + onBackPressed = { }, + scope = this, + ) + + val store = + HistoryFragmentStore(HistoryFragmentState.initial, middleware = listOf(middleware)) + + store.dispatch(HistoryFragmentAction.SearchClicked).joinBlocking() + advanceUntilIdle() + + verify(navController).navigateSafe(R.id.historyFragment, HistoryFragmentDirections.actionGlobalSearchDialog(null)) + } } From 3614288a690c5a2ceebc744ee3ab0f4dc920b318 Mon Sep 17 00:00:00 2001 From: Noah Bond Date: Mon, 25 Sep 2023 12:10:33 -0700 Subject: [PATCH 009/238] Bug 1852928 - Update review quality check bottom sheet header --- .../shopping/ui/ReviewQualityCheckScaffold.kt | 58 +++++++++++++++---- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt index 4d8399c87..b3fc152c3 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt @@ -4,8 +4,10 @@ package org.mozilla.fenix.shopping.ui -import androidx.compose.foundation.Image +import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row @@ -13,21 +15,23 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll +import androidx.compose.material.Card import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource +import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp +import mozilla.components.ui.colors.PhotonColors import org.mozilla.fenix.R import org.mozilla.fenix.compose.BottomSheetHandle +import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.theme.FirefoxTheme private val bottomSheetShape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp) @@ -81,22 +85,54 @@ fun ReviewQualityCheckScaffold( @Composable private fun Header() { + val betaBorderColor: Color + val betaTextColor: Color + if (isSystemInDarkTheme()) { + betaBorderColor = PhotonColors.LightGrey10 + betaTextColor = FirefoxTheme.colors.textActionPrimary + } else { + betaBorderColor = FirefoxTheme.colors.actionTertiary + betaTextColor = FirefoxTheme.colors.textSecondary + } + Row( modifier = Modifier.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically, ) { - Image( - painter = painterResource(id = R.drawable.ic_firefox), - contentDescription = null, - modifier = Modifier.size(24.dp), - ) - - Spacer(modifier = Modifier.width(10.dp)) - Text( text = stringResource(R.string.review_quality_check_feature_name), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.headline6, ) + + Spacer(modifier = Modifier.width(8.dp)) + + Card( + elevation = 0.dp, + shape = RoundedCornerShape(8.dp), + backgroundColor = Color.Transparent, + border = BorderStroke(2.dp, betaBorderColor), + ) { + Text( + text = stringResource(R.string.review_quality_check_beta_flag).uppercase(), + modifier = Modifier.padding(horizontal = 12.dp, vertical = 4.dp), + color = betaTextColor, + style = FirefoxTheme.typography.body2, + ) + } + } +} + +@LightDarkPreview +@Composable +private fun HeaderPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .background(color = FirefoxTheme.colors.layer1) + .padding(16.dp), + ) { + Header() + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f589ece16..32ae20842 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2232,7 +2232,7 @@ Open review checker - Beta + Beta Open review checker From 354be91be789cbfd8ff6c87300ff1a237b8b24b5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 26 Sep 2023 00:03:36 +0000 Subject: [PATCH 010/238] Import translations from android-l10n --- app/src/main/res/values-gn/strings.xml | 4 ++-- app/src/main/res/values-ja/strings.xml | 32 +++++++++++++------------- app/src/main/res/values-si/strings.xml | 6 +++++ app/src/main/res/values-th/strings.xml | 8 +++++++ 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index eb61cde2d..36fb4037b 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -636,7 +636,7 @@ - Mba’erechaha rugua mba’epuru: %1$s + Mba’erechaha rugua mba’eporu: %1$s ¡Mba’erechaha rugua hekopyahupyréva! @@ -1066,7 +1066,7 @@ ¿Añetehápepa emboguetese ko marandurenda? - %s omboguéta umi mba’epuru poravopyre. + %s omboguéta umi mba’eporu poravopyre. Heja diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 777b7d0ef..9eb662077 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -2277,9 +2277,9 @@ 今すぐ確認 - まだ十分な数のレビューがありません + まだ十分な数のレビューがありません - この製品の品質を確認可能な数のレビューが掲載されるまでお待ちください。 + この製品の品質を確認可能な数のレビューが掲載されるまでお待ちください。 製品が利用できません @@ -2287,20 +2287,20 @@ 製品が再入荷されたことを報告する - レビューの品質の確認 + レビューの品質の確認 - レビューの品質の確認 + レビューの品質の確認 - これには約 60 秒かかります。 + これには約 60 秒かかります。 ご報告ありがとうございます。 この製品のレビュー情報は 24 時間以内に更新されます。後でもう一度確認してください。 - これらのレビューは確認できません + これらのレビューは確認できません - 残念ながら、特定の種類の商品のレビュー品質は確認できません。たとえば、ギフトカードやストリーミングビデオ、音楽、ゲームなどです。 + 残念ながら、特定の種類の商品のレビュー品質は確認できません。たとえば、ギフトカードやストリーミングビデオ、音楽、ゲームなどです。 情報は間もなく更新 @@ -2310,20 +2310,20 @@ OK - 現在入手可能な情報はありません + 現在入手可能な情報はありません - 現在、問題の解決に取り組んでいます。後でもう一度確認してください。 + 現在、問題の解決に取り組んでいます。後でもう一度確認してください。 - ネットワーク接続がありません + ネットワーク接続がありません - ネットワーク接続を確認し、ページを再度読み込んでみてください。 + ネットワーク接続を確認し、ページを再度読み込んでみてください。 - これらのレビューに関する情報はまだありません + これらのレビューに関する情報はまだありません - この製品のレビューが信頼できるかどうかを確認するには、レビュー品質を確認してください。所要時間はわずか 60 秒ほどです。 + この製品のレビューが信頼できるかどうかを確認するには、レビュー品質を確認してください。所要時間はわずか 60 秒ほどです。 - レビューの品質を確認 + レビューの品質を確認 製品レビューの信頼できるガイドをお試しください @@ -2355,9 +2355,9 @@ Beta - レビュー品質チェックを開く + レビューチェッカーを開く - レビュー品質チェックを閉じる + レビューチェッカーを閉じる スター 5 個中 %1$s 個 diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index a3132d5b3..ff5193dca 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -2116,6 +2116,8 @@ සමාලෝචන සෝදිසිකරු + + %s ගැන තව දැනගන්න. සැකසුම් @@ -2130,6 +2132,10 @@ දැනට තොරතුරු නැත තව දැනගන්න + + පෞද්ගලිකත්‍ව ප්‍රතිපත්තිය + + භාවිත නියම දැන් නොවේ diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index e14d54c90..502962dbc 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -2212,8 +2212,14 @@ ปิดตัวตรวจสอบบทวิจารณ์ โฆษณาโดย %s + + %s โดย Mozilla + + ข้อมูลใหม่ที่ต้องตรวจสอบ ตรวจสอบตอนนี้ + + ข้อมูลจะมาเร็ว ๆ นี้ เข้าใจแล้ว @@ -2230,6 +2236,8 @@ ไม่ใช่ตอนนี้ Beta + + %1$s จาก 5 ดาว แสดงน้อยลง From 9cac2fca23b496a0e736c7940a5ed92d334bb404 Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Wed, 20 Sep 2023 13:12:45 +0300 Subject: [PATCH 011/238] Bug 1853301 - Refactor ReviewQualityCheckNavigationMiddleware to use TabsUseCases and SessionUseCases Refactor LinkType class to support instances for each external link accessible from the review quality check feature --- .../shopping/ReviewQualityCheckFragment.kt | 9 --- .../ReviewQualityCheckMiddlewareProvider.kt | 16 ++-- .../ReviewQualityCheckNavigationMiddleware.kt | 52 ++++++++++--- .../store/ReviewQualityCheckAction.kt | 24 +++++- .../shopping/store/ReviewQualityCheckState.kt | 15 ---- .../mozilla/fenix/shopping/ui/NoAnalysis.kt | 2 +- .../fenix/shopping/ui/ProductAnalysis.kt | 4 +- .../fenix/shopping/ui/ProductAnalysisError.kt | 4 +- .../ui/ReviewQualityCheckBottomSheet.kt | 50 +++++-------- .../ReviewQualityCheckContextualOnboarding.kt | 18 +++-- .../shopping/ui/ReviewQualityCheckFooter.kt | 10 +-- .../shopping/ui/ReviewQualityInfoCard.kt | 17 +---- ...iewQualityCheckNavigationMiddlewareTest.kt | 75 +++++++------------ 13 files changed, 144 insertions(+), 152 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt b/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt index be6f2cad0..b808b1289 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt @@ -16,8 +16,6 @@ import androidx.compose.ui.platform.rememberNestedScrollInteropConnection import androidx.lifecycle.lifecycleScope import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.shopping.di.ReviewQualityCheckMiddlewareProvider import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore @@ -36,13 +34,6 @@ class ReviewQualityCheckFragment : BottomSheetDialogFragment() { settings = requireComponents.settings, browserStore = requireComponents.core.store, context = requireContext().applicationContext, - openLink = { link, shouldOpenInNewTab -> - (requireActivity() as HomeActivity).openToBrowserAndLoad( - searchTermOrURL = link, - newTab = shouldOpenInNewTab, - from = BrowserDirection.FromReviewQualityCheck, - ) - }, scope = lifecycleScope, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt index a221c7c3a..3f73a4a2a 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.shopping.di import android.content.Context import kotlinx.coroutines.CoroutineScope import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.feature.tabs.TabsUseCases import org.mozilla.fenix.shopping.middleware.DefaultNetworkChecker import org.mozilla.fenix.shopping.middleware.DefaultReviewQualityCheckPreferences import org.mozilla.fenix.shopping.middleware.DefaultReviewQualityCheckService @@ -27,21 +28,22 @@ object ReviewQualityCheckMiddlewareProvider { * @param settings The [Settings] instance to use. * @param browserStore The [BrowserStore] instance to access state. * @param context The [Context] instance to use. - * @param openLink Opens a link. The callback is invoked with the URL [String] parameter and - * whether or not it should open in a new or the currently selected tab [Boolean] parameter. * @param scope The [CoroutineScope] to use for launching coroutines. */ fun provideMiddleware( settings: Settings, browserStore: BrowserStore, context: Context, - openLink: (String, Boolean) -> Unit, scope: CoroutineScope, ): List = listOf( providePreferencesMiddleware(settings, scope), provideNetworkMiddleware(browserStore, context, scope), - provideNavigationMiddleware(openLink, scope), + provideNavigationMiddleware( + TabsUseCases.SelectOrAddUseCase(browserStore), + context, + scope, + ), ) private fun providePreferencesMiddleware( @@ -63,10 +65,12 @@ object ReviewQualityCheckMiddlewareProvider { ) private fun provideNavigationMiddleware( - openLink: (String, Boolean) -> Unit, + selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase, + context: Context, scope: CoroutineScope, ) = ReviewQualityCheckNavigationMiddleware( - openLink = openLink, + selectOrAddUseCase = selectOrAddUseCase, + context = context, scope = scope, ) } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt index f67097bea..3165646b7 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt @@ -4,21 +4,28 @@ package org.mozilla.fenix.shopping.middleware +import android.content.Context import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch +import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.lib.state.Middleware import mozilla.components.lib.state.MiddlewareContext +import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.shopping.store.ReviewQualityCheckAction import org.mozilla.fenix.shopping.store.ReviewQualityCheckState +private const val POWERED_BY_URL = "www.fakespot.com" + /** * Middleware that handles navigation events for the review quality check feature. * - * @property openLink Callback used to open an url. + * @property selectOrAddUseCase UseCase instance used to open new tabs. + * @property context Context used to get SUMO urls. * @property scope [CoroutineScope] used to launch coroutines. */ class ReviewQualityCheckNavigationMiddleware( - private val openLink: (String, Boolean) -> Unit, + private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase, + private val context: Context, private val scope: CoroutineScope, ) : Middleware { @@ -39,13 +46,38 @@ class ReviewQualityCheckNavigationMiddleware( private fun processAction( action: ReviewQualityCheckAction.NavigationMiddlewareAction, ) = scope.launch { - when (action) { - is ReviewQualityCheckAction.OpenLink -> { - when (action.link) { - is ReviewQualityCheckState.LinkType.ExternalLink -> openLink(action.link.url, true) - is ReviewQualityCheckState.LinkType.AnalyzeLink -> openLink(action.link.url, false) - } - } - } + selectOrAddUseCase.invoke(actionToUrl(action)) + } + + /** + * Used to find the corresponding url to the open link action. + * + * @param action Used to find the corresponding url. + */ + private fun actionToUrl( + action: ReviewQualityCheckAction.NavigationMiddlewareAction, + ) = when (action) { + // Placeholder SUMO urls to be used until the Fakespot SUMO pages are added in 1854277 + is ReviewQualityCheckAction.OpenExplainerLearnMoreLink -> SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ) + + is ReviewQualityCheckAction.OpenOnboardingTermsLink -> SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ) + + is ReviewQualityCheckAction.OpenOnboardingLearnMoreLink -> SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ) + + is ReviewQualityCheckAction.OpenOnboardingPrivacyPolicyLink -> SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ) + + is ReviewQualityCheckAction.OpenPoweredByLink -> POWERED_BY_URL } } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt index 8fa8ee319..7bad4be15 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt @@ -85,7 +85,27 @@ sealed interface ReviewQualityCheckAction : Action { object ReanalyzeProduct : NetworkAction, UpdateAction /** - * Triggered when opening a link from the review quality check feature. + * Triggered when the user clicks on learn more link on the explainer card. */ - data class OpenLink(val link: ReviewQualityCheckState.LinkType) : NavigationMiddlewareAction + object OpenExplainerLearnMoreLink : NavigationMiddlewareAction + + /** + * Triggered when the user clicks on the "Powered by" link in the footer. + */ + object OpenPoweredByLink : NavigationMiddlewareAction + + /** + * Triggered when the user clicks on learn more link on the opt in card. + */ + object OpenOnboardingLearnMoreLink : NavigationMiddlewareAction + + /** + * Triggered when the user clicks on terms and conditions link on the opt in card. + */ + object OpenOnboardingTermsLink : NavigationMiddlewareAction + + /** + * Triggered when the user clicks on privacy policy link on the opt in card. + */ + object OpenOnboardingPrivacyPolicyLink : NavigationMiddlewareAction } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt index 32b6ddcdb..315eec5f5 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt @@ -151,21 +151,6 @@ sealed interface ReviewQualityCheckState : State { QUALITY, PRICE, SHIPPING, PACKAGING_AND_APPEARANCE, COMPETITIVENESS } - /** - * Types of links that can be opened from the review quality check feature. - */ - sealed class LinkType { - /** - * Opens a link to analyze a product. - */ - data class AnalyzeLink(val url: String) : LinkType() - - /** - * Opens an external "Learn more" link. - */ - data class ExternalLink(val url: String) : LinkType() - } - /** * The state of the recommended product. */ diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/NoAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/NoAnalysis.kt index 3748f33e3..83859aa1f 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/NoAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/NoAnalysis.kt @@ -52,7 +52,7 @@ fun NoAnalysis( isAnalyzing: Boolean, productRecommendationsEnabled: Boolean?, onAnalyzeClick: () -> Unit, - onReviewGradeLearnMoreClick: (String) -> Unit, + onReviewGradeLearnMoreClick: () -> Unit, onOptOutClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, modifier: Modifier = Modifier, diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index e8989b404..7dc15390d 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -66,8 +66,8 @@ fun ProductAnalysis( onOptOutClick: () -> Unit, onReanalyzeClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onReviewGradeLearnMoreClick: (String) -> Unit, - onFooterLinkClick: (String) -> Unit, + onReviewGradeLearnMoreClick: () -> Unit, + onFooterLinkClick: () -> Unit, modifier: Modifier = Modifier, ) { Column( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt index aa89d0585..688e68dca 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt @@ -37,10 +37,10 @@ import org.mozilla.fenix.theme.FirefoxTheme fun ProductAnalysisError( error: ProductReviewState.Error, productRecommendationsEnabled: Boolean?, - onReviewGradeLearnMoreClick: (String) -> Unit, + onReviewGradeLearnMoreClick: () -> Unit, onOptOutClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onFooterLinkClick: (String) -> Unit, + onFooterLinkClick: () -> Unit, modifier: Modifier = Modifier, ) { Column( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index 71a07d277..ab3878acd 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -25,7 +25,6 @@ import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore * @param onRequestDismiss Invoked when a user action requests dismissal of the bottom sheet. * @param modifier The modifier to be applied to the Composable. */ -@Suppress("LongMethod") @Composable fun ReviewQualityCheckBottomSheet( store: ReviewQualityCheckStore, @@ -47,26 +46,17 @@ fun ReviewQualityCheckBottomSheet( onPrimaryButtonClick = { store.dispatch(ReviewQualityCheckAction.OptIn) }, - onLearnMoreClick = { url -> - store.dispatch( - ReviewQualityCheckAction.OpenLink( - ReviewQualityCheckState.LinkType.ExternalLink(url), - ), - ) + onLearnMoreClick = { + onRequestDismiss() + store.dispatch(ReviewQualityCheckAction.OpenOnboardingLearnMoreLink) }, - onPrivacyPolicyClick = { url -> - store.dispatch( - ReviewQualityCheckAction.OpenLink( - ReviewQualityCheckState.LinkType.ExternalLink(url), - ), - ) + onPrivacyPolicyClick = { + onRequestDismiss() + store.dispatch(ReviewQualityCheckAction.OpenOnboardingPrivacyPolicyLink) }, - onTermsOfUseClick = { url -> - store.dispatch( - ReviewQualityCheckAction.OpenLink( - ReviewQualityCheckState.LinkType.ExternalLink(url), - ), - ) + onTermsOfUseClick = { + onRequestDismiss() + store.dispatch(ReviewQualityCheckAction.OpenOnboardingTermsLink) }, onSecondaryButtonClick = onRequestDismiss, ) @@ -85,19 +75,13 @@ fun ReviewQualityCheckBottomSheet( onProductRecommendationsEnabledStateChange = { store.dispatch(ReviewQualityCheckAction.ToggleProductRecommendation) }, - onReviewGradeLearnMoreClick = { url -> - store.dispatch( - ReviewQualityCheckAction.OpenLink( - ReviewQualityCheckState.LinkType.ExternalLink(url), - ), - ) + onReviewGradeLearnMoreClick = { + onRequestDismiss() + store.dispatch(ReviewQualityCheckAction.OpenExplainerLearnMoreLink) }, - onFooterLinkClick = { url -> - store.dispatch( - ReviewQualityCheckAction.OpenLink( - ReviewQualityCheckState.LinkType.ExternalLink(url), - ), - ) + onFooterLinkClick = { + onRequestDismiss() + store.dispatch(ReviewQualityCheckAction.OpenPoweredByLink) }, ) } @@ -120,8 +104,8 @@ private fun ProductReview( onOptOutClick: () -> Unit, onReanalyzeClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onReviewGradeLearnMoreClick: (String) -> Unit, - onFooterLinkClick: (String) -> Unit, + onReviewGradeLearnMoreClick: () -> Unit, + onFooterLinkClick: () -> Unit, ) { Crossfade( targetState = state.productReviewState, diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt index a9fb8eaa1..97fc43a34 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt @@ -45,9 +45,9 @@ const val PLACEHOLDER_URL = "www.fakespot.com" @Composable fun ReviewQualityCheckContextualOnboarding( retailers: List, - onLearnMoreClick: (String) -> Unit, - onPrivacyPolicyClick: (String) -> Unit, - onTermsOfUseClick: (String) -> Unit, + onLearnMoreClick: () -> Unit, + onPrivacyPolicyClick: () -> Unit, + onTermsOfUseClick: () -> Unit, onPrimaryButtonClick: () -> Unit, onSecondaryButtonClick: () -> Unit, ) { @@ -85,7 +85,9 @@ fun ReviewQualityCheckContextualOnboarding( LinkTextState( text = learnMoreText, url = PLACEHOLDER_URL, - onClick = onLearnMoreClick, + onClick = { + onLearnMoreClick() + }, ), ), style = FirefoxTheme.typography.body2.copy( @@ -107,12 +109,16 @@ fun ReviewQualityCheckContextualOnboarding( LinkTextState( text = privacyPolicyText, url = PLACEHOLDER_URL, - onClick = onPrivacyPolicyClick, + onClick = { + onPrivacyPolicyClick() + }, ), LinkTextState( text = termsOfUseText, url = PLACEHOLDER_URL, - onClick = onTermsOfUseClick, + onClick = { + onTermsOfUseClick() + }, ), ), style = FirefoxTheme.typography.caption diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt index 2f1e0ab34..742fcc996 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckFooter.kt @@ -18,8 +18,6 @@ import org.mozilla.fenix.compose.LinkTextState import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.theme.FirefoxTheme -private const val FOOTER_LINK = "http://fakespot.com/" - /** * Review Quality Check footer with an embedded link to navigate to Fakespot.com. * @@ -27,7 +25,7 @@ private const val FOOTER_LINK = "http://fakespot.com/" */ @Composable fun ReviewQualityCheckFooter( - onLinkClick: (String) -> Unit, + onLinkClick: () -> Unit, ) { val poweredByLinkText = stringResource( id = R.string.review_quality_check_powered_by_link, @@ -42,8 +40,10 @@ fun ReviewQualityCheckFooter( linkTextStates = listOf( LinkTextState( text = poweredByLinkText, - url = FOOTER_LINK, - onClick = onLinkClick, + url = "", + onClick = { + onLinkClick() + }, ), ), style = FirefoxTheme.typography.body2.copy( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt index cdcda14b5..b07501c5f 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt @@ -18,7 +18,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp @@ -26,7 +25,6 @@ import org.mozilla.fenix.R import org.mozilla.fenix.compose.ClickableSubstringLink import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.parseHtml -import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.shopping.store.ReviewQualityCheckState import org.mozilla.fenix.theme.FirefoxTheme @@ -39,7 +37,7 @@ import org.mozilla.fenix.theme.FirefoxTheme @Composable fun ReviewQualityInfoCard( modifier: Modifier = Modifier, - onLearnMoreClick: (String) -> Unit, + onLearnMoreClick: () -> Unit, ) { ReviewQualityCheckExpandableCard( title = stringResource(id = R.string.review_quality_check_explanation_title), @@ -56,7 +54,7 @@ fun ReviewQualityInfoCard( @Composable private fun ReviewQualityInfo( modifier: Modifier = Modifier, - onLearnMoreClick: (String) -> Unit, + onLearnMoreClick: () -> Unit, ) { Column( modifier = modifier, @@ -81,7 +79,6 @@ private fun ReviewQualityInfo( stringResource(R.string.shopping_product_name), ) val text = stringResource(R.string.review_quality_check_info_learn_more, link) - val context = LocalContext.current val linkStartIndex = text.indexOf(link) val linkEndIndex = linkStartIndex + link.length ClickableSubstringLink( @@ -89,15 +86,7 @@ private fun ReviewQualityInfo( textStyle = FirefoxTheme.typography.body2, clickableStartIndex = linkStartIndex, clickableEndIndex = linkEndIndex, - onClick = { - onLearnMoreClick( - // Placeholder Sumo page - SupportUtils.getSumoURLForTopic( - context, - SupportUtils.SumoTopic.HELP, - ), - ) - }, + onClick = onLearnMoreClick, ) ReviewGradingScaleInfo( diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt index d60497a0f..c2f9cbc8e 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt @@ -1,75 +1,56 @@ package org.mozilla.fenix.shopping.middleware +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.support.test.ext.joinBlocking import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.robolectric.testContext import mozilla.components.support.test.rule.MainCoroutineRule import org.junit.Assert.assertEquals +import org.junit.Before import org.junit.Rule import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.shopping.store.ReviewQualityCheckAction -import org.mozilla.fenix.shopping.store.ReviewQualityCheckState import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore +@RunWith(FenixRobolectricTestRunner::class) class ReviewQualityCheckNavigationMiddlewareTest { @get:Rule val coroutinesTestRule = MainCoroutineRule() private val dispatcher = coroutinesTestRule.testDispatcher private val scope = coroutinesTestRule.scope - - @Test - fun `WHEN opening an external link THEN the link should be opened in a new tab`() { - var isOpenedInSelectedTab = false - var isOpenedInNewTab = false - val store = ReviewQualityCheckStore( - middleware = listOf( - ReviewQualityCheckNavigationMiddleware( - openLink = { _, openInNewTab -> - if (openInNewTab) { - isOpenedInNewTab = true - } else { - isOpenedInSelectedTab = true - } - }, - scope = scope, - ), - ), + private lateinit var store: ReviewQualityCheckStore + private lateinit var browserStore: BrowserStore + private lateinit var addTabUseCase: TabsUseCases.SelectOrAddUseCase + private lateinit var middleware: ReviewQualityCheckNavigationMiddleware + + @Before + fun setup() { + browserStore = BrowserStore() + addTabUseCase = TabsUseCases.SelectOrAddUseCase(browserStore) + middleware = ReviewQualityCheckNavigationMiddleware( + selectOrAddUseCase = addTabUseCase, + context = testContext, + scope = scope, + ) + store = ReviewQualityCheckStore( + middleware = listOf(middleware), ) - store.waitUntilIdle() - dispatcher.scheduler.advanceUntilIdle() - - store.dispatch(ReviewQualityCheckAction.OpenLink(ReviewQualityCheckState.LinkType.ExternalLink("www.mozilla.com"))).joinBlocking() - store.waitUntilIdle() - - assertEquals(true, isOpenedInNewTab) - assertEquals(false, isOpenedInSelectedTab) } @Test - fun `WHEN re-analzying a product THEN the link should be opened in the currently selected tab`() { - var isOpenedInSelectedTab = false - var isOpenedInNewTab = false - val store = ReviewQualityCheckStore( - middleware = listOf( - ReviewQualityCheckNavigationMiddleware( - openLink = { _, openInNewTab -> - if (openInNewTab) { - isOpenedInNewTab = true - } else { - isOpenedInSelectedTab = true - } - }, - scope = scope, - ), - ), - ) + fun `WHEN opening an external link THEN the link should be opened in a new tab`() { + val action = ReviewQualityCheckAction.OpenPoweredByLink store.waitUntilIdle() dispatcher.scheduler.advanceUntilIdle() + assertEquals(0, browserStore.state.tabs.size) - store.dispatch(ReviewQualityCheckAction.OpenLink(ReviewQualityCheckState.LinkType.AnalyzeLink("www.mozilla.com"))).joinBlocking() + store.dispatch(action).joinBlocking() store.waitUntilIdle() - assertEquals(true, isOpenedInSelectedTab) - assertEquals(false, isOpenedInNewTab) + assertEquals(1, browserStore.state.tabs.size) } } From 6e813a62c7bdc9946fc30030a079c9d8a7757376 Mon Sep 17 00:00:00 2001 From: Benjamin Forehand Jr Date: Tue, 26 Sep 2023 14:41:50 -0500 Subject: [PATCH 012/238] Bug 1854173 - Add nimbus messaging integration test - Landscape UI (#3726) --- .../SurveyExperimentIntegrationTest.kt | 11 +++++++++++ .../mozilla/fenix/experimentintegration/conftest.py | 1 + .../fenix/experimentintegration/test_integration.py | 5 +++++ .../java/org/mozilla/fenix/ui/robots/BrowserRobot.kt | 1 - 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/SurveyExperimentIntegrationTest.kt b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/SurveyExperimentIntegrationTest.kt index 18fb39105..d916a034a 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/SurveyExperimentIntegrationTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/SurveyExperimentIntegrationTest.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.experimentintegration +import android.content.pm.ActivityInfo import org.junit.After import org.junit.Before import org.junit.Rule @@ -26,6 +27,7 @@ class SurveyExperimentIntegrationTest { isJumpBackInCFREnabled = false, isPWAsPromptEnabled = false, isTCPCFREnabled = false, + isDeleteSitePermissionsEnabled = true, ) @Before @@ -69,4 +71,13 @@ class SurveyExperimentIntegrationTest { verifyExperimentExists(experimentName) } } + + @Test + fun checkSurveyLandscapeLooksCorrect() { + activityTestRule.activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE + browserScreen { + verifySurveyNoThanksButton() + verifySurveyButton() + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py index 27b2f2f1f..602d802fc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py @@ -160,6 +160,7 @@ def fixture_setup_experiment(experiment_slug, json_data, gradlewbuild_log): def _(branch): logging.info(f"Testing experiment {experiment_slug}, BRANCH: {branch[0]}") command = f"nimbus-cli --app fenix --channel developer enroll {experiment_slug} --branch {branch[0]} --file {json_data} --reset-app" + logging.info(f"Running command {command}") try: out = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py index 9e88c5df6..76ff4e992 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py @@ -10,3 +10,8 @@ def test_survey_navigates_correctly(setup_experiment, gradlewbuild, load_branche def test_survey_no_thanks_navigates_correctly(setup_experiment, gradlewbuild, load_branches): setup_experiment(load_branches) gradlewbuild.test("SurveyExperimentIntegrationTest#checkSurveyNoThanksNavigatesCorrectly") + +@pytest.mark.parametrize("load_branches", [("branch")], indirect=True) +def test_survey_landscape_looks_correct(setup_experiment, gradlewbuild, load_branches): + setup_experiment(load_branches) + gradlewbuild.test("SurveyExperimentIntegrationTest#checkSurveyLandscapeLooksCorrect") diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index ebd651562..4c0d9fb34 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -910,7 +910,6 @@ class BrowserRobot { button.waitForExists(waitingTime) button.click() } - fun clickNoThanksSurveyButton() { val button = mDevice.findObject( UiSelector().text( From 9740f5ed0acac9d0effa26a0b4335a94ceec144a Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Mon, 25 Sep 2023 12:59:58 -0400 Subject: [PATCH 013/238] Bug 1844557 - Disable the switch control when the add-on is blockedlisted. --- .../addons/InstalledAddonDetailsFragment.kt | 19 ++++++++-- .../InstalledAddonDetailsFragmentTest.kt | 35 +++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt index abd007e29..a643d5866 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt @@ -118,11 +118,24 @@ class InstalledAddonDetailsFragment : Fragment() { bindRemoveButton() } + @VisibleForTesting + internal fun provideEnableSwitch() = binding.enableSwitch + + @VisibleForTesting + internal fun providePrivateBrowsingSwitch() = binding.allowInPrivateBrowsingSwitch + + @VisibleForTesting @SuppressWarnings("LongMethod") - private fun bindEnableSwitch() { - val switch = binding.enableSwitch - val privateBrowsingSwitch = binding.allowInPrivateBrowsingSwitch + internal fun bindEnableSwitch() { + val switch = provideEnableSwitch() + val privateBrowsingSwitch = providePrivateBrowsingSwitch() switch.setState(addon.isEnabled()) + // When the ad-on is blocklisted, we do not want to enable the toggle switch + // because users shouldn't be able to re-enable a blocklisted add-on. + if (addon.isDisabledAsBlocklisted()) { + switch.isEnabled = false + return + } switch.setOnCheckedChangeListener { v, isChecked -> val addonManager = v.context.components.addonManager switch.isClickable = false diff --git a/app/src/test/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragmentTest.kt index 779c8b010..4eda7bc83 100644 --- a/app/src/test/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragmentTest.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.addons +import com.google.android.material.switchmaterial.SwitchMaterial import io.mockk.Runs import io.mockk.every import io.mockk.just @@ -62,4 +63,38 @@ class InstalledAddonDetailsFragmentTest { verify { addonManager.enableAddon(addon, EnableSource.APP_SUPPORT, any(), any()) } verify { addonManager.enableAddon(capturedAddon.captured, EnableSource.USER, any(), any()) } } + + @Test + fun `GIVEN blocklisted addon WHEN biding the enable switch THEN disable the switch`() { + val addon = mockk() + val enableSwitch = mockk(relaxed = true) + val privateBrowsingSwitch = mockk(relaxed = true) + + every { fragment.provideEnableSwitch() } returns enableSwitch + every { fragment.providePrivateBrowsingSwitch() } returns privateBrowsingSwitch + every { addon.isEnabled() } returns true + every { addon.isDisabledAsBlocklisted() } returns true + every { fragment.addon } returns addon + + fragment.bindEnableSwitch() + + verify { enableSwitch.isEnabled = false } + } + + @Test + fun `GIVEN enabled addon WHEN biding the enable switch THEN do not disable the switch`() { + val addon = mockk() + val enableSwitch = mockk(relaxed = true) + val privateBrowsingSwitch = mockk(relaxed = true) + + every { fragment.provideEnableSwitch() } returns enableSwitch + every { fragment.providePrivateBrowsingSwitch() } returns privateBrowsingSwitch + every { addon.isDisabledAsBlocklisted() } returns false + every { addon.isEnabled() } returns true + every { fragment.addon } returns addon + + fragment.bindEnableSwitch() + + verify(exactly = 0) { enableSwitch.isEnabled = false } + } } From b475e6a56cfd7f9914a7582a7fcd1f8b88a5d5d3 Mon Sep 17 00:00:00 2001 From: Noah Bond Date: Tue, 26 Sep 2023 12:58:49 -0700 Subject: [PATCH 014/238] Bug 1854712 - Update `information_fill` icon --- .../mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt index 0d44b1855..90b3c83de 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt @@ -75,10 +75,7 @@ fun ReviewQualityCheckInfoCard( ReviewQualityCheckInfoType.Info, ReviewQualityCheckInfoType.AnalysisUpdate, -> { - InfoCardIcon( - iconId = R.drawable.mozac_ic_information_fill_24, - modifier = Modifier.size(24.dp), - ) + InfoCardIcon(iconId = R.drawable.mozac_ic_information_fill_24) } ReviewQualityCheckInfoType.Loading -> { From a8c707d07795b4e6dd55c829cf4beb02645e8734 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 27 Sep 2023 00:03:56 +0000 Subject: [PATCH 015/238] Import translations from android-l10n --- app/src/main/res/values-cy/strings.xml | 41 +++++++++------------ app/src/main/res/values-de/strings.xml | 43 ++++++++++------------ app/src/main/res/values-es-rAR/strings.xml | 37 +++++++------------ app/src/main/res/values-gn/strings.xml | 4 +- app/src/main/res/values-iw/strings.xml | 18 +++++---- app/src/main/res/values-ka/strings.xml | 8 ++-- app/src/main/res/values-kab/strings.xml | 13 +++++-- app/src/main/res/values-ko/strings.xml | 43 ++++++++++------------ app/src/main/res/values-tr/strings.xml | 43 +++++++++++++++------- app/src/main/res/values-zh-rCN/strings.xml | 25 ++++++------- 10 files changed, 139 insertions(+), 136 deletions(-) diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 8266e5417..b75adc398 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -321,16 +321,9 @@ Nid nawr - - Gwnewch %s eich hoff borwr Gwnewch Firefox yn borwr i chi - - Mae %1$s yn rhoi pobl dros elw ac yn diogelu eich preifatrwydd drwy rwystro tracwyr traws-gwefan.\n\nDysgu rhagor yn ein %2$s. Mae Firefox yn rhoi pobl o flaen elw ac yn diogelu eich preifatrwydd trwy rwystro tracwyr traws-gwefan.\n\nDysgwch ragor yn ein hysbysiad preifatrwydd. @@ -349,15 +342,9 @@ Mewngofnodi Nid nawr - - Mae hysbysiadau yn eich helpu i wneud mwy gyda %s Mae hysbysiadau yn eich helpu i wneud rhagor gyda Firefox - - Anfonwch dabiau rhwng dyfeisiau, rheoli llwytho a chael awgrymiadau ar sut i gael y gorau o %s. Yn anfon tabiau rhwng dyfeisiau, rheoli llwythi, a chael awgrymiadau am sut i gael y gorau o Firefox. @@ -566,6 +553,14 @@ Awtogwblhau URLau + + Awgrymiadau gan noddwyr + + Cefnogwch %1$s gydag awgrymiadau noddedig achlysurol + + Awgrymiadau o %1$s Agor dolenni mewn apiau @@ -2245,9 +2240,9 @@ Gwirio nawr - Dim digon o adolygiadau eto + Dim digon o adolygiadau eto - Pan fydd gan y cynnyrch hwn fwy o adolygiadau, byddwn yn gallu gwirio eu hansawdd. + Pan fydd gan y cynnyrch hwn fwy o adolygiadau, byddwn yn gallu gwirio eu hansawdd. Nid yw’r cynnyrch ar gael @@ -2255,7 +2250,7 @@ Adrodd fod y cynnyrch hwn nôl mewn stoc - Gwirio ansawdd adolygiadau + Gwirio ansawdd adolygiadau Gwirio ansawdd adolygiadau @@ -2265,9 +2260,9 @@ Dylai fod gennym dadansoddiad wedi’i ddiweddaru o fewn 24 awr. Dewch nôl i weld. - Methu gwirio’r adolygiadau hyn + Methu gwirio’r adolygiadau hyn - Yn anffodus, ni allwn wirio ansawdd adolygu ar gyfer rhai mathau o gynnyrch. Er enghraifft, cardiau rhodd a ffrydio fideo, cerddoriaeth a gemau. + Yn anffodus, ni allwn wirio ansawdd adolygu ar gyfer rhai mathau o gynnyrch. Er enghraifft, cardiau rhodd a ffrydio fideo, cerddoriaeth a gemau. Gwybodaeth yn dod cyn hir @@ -2277,13 +2272,13 @@ Iawn - Dim gwybodaeth ar gael ar hyn o bryd + Dim gwybodaeth ar gael ar hyn o bryd - Rydym yn gweithio i ddatrys y mater. Dewch nôl cyn bo hir. + Rydym yn gweithio i ddatrys y mater. Dewch nôl cyn bo hir. - Dim cysylltiad rhwydwaith + Dim cysylltiad rhwydwaith - Gwiriwch eich cysylltiad rhwydwaith ac yna ceisiwch ail-lwytho’r dudalen. + Gwiriwch eich cysylltiad rhwydwaith ac yna ceisiwch ail-lwytho’r dudalen. Dim gwybodaeth am yr adolygiadau hyn eto @@ -2317,7 +2312,7 @@ Agor y gwiriwr adolygiadau - Beta + Beta Agor y gwiriwr adolygiadau diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 540129e86..0a54f281d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -328,16 +328,9 @@ Nicht jetzt - - Machen Sie %s zu Ihrem Browser Nr. 1. Machen Sie Firefox zu Ihrem Browser Nr. 1. - - %1$s stellt Menschen über Gewinne und schützt Ihre Privatsphäre, indem er websiteübergreifende Tracker blockiert.\n\nErfahren Sie mehr in unserem %2$s. Firefox stellt Menschen über Gewinne und schützt Ihre Privatsphäre, indem er websiteübergreifende Tracker blockiert.\n\nErfahren Sie mehr in unserem Datenschutzhinweis. @@ -356,15 +349,9 @@ Anmelden Nicht jetzt - - Benachrichtigungen helfen Ihnen, mehr aus %s zu machen Benachrichtigungen helfen Ihnen, mehr aus Firefox zu machen - - Versenden Sie Tabs zwischen Geräten, verwalten Sie Downloads und erhalten Sie Tipps zur optimalen Nutzung von %s. Versenden Sie Tabs zwischen Geräten, verwalten Sie Downloads und erhalten Sie Tipps zur optimalen Nutzung von Firefox. @@ -571,6 +558,16 @@ Autovervollständigung von Adressen + + Vorschläge von Sponsoren + + Unterstützen Sie %1$s mit gelegentlich gesponserten Vorschlägen + + Vorschläge von %1$s + + Erhalten Sie Vorschläge aus dem Web, die sich auf Ihre Suche beziehen Links in Apps öffnen @@ -2279,9 +2276,9 @@ Jetzt prüfen - Noch nicht genügend Bewertungen + Noch nicht genügend Bewertungen - Wenn dieses Produkt mehr Bewertungen hat, können wir deren Qualität überprüfen. + Wenn dieses Produkt mehr Bewertungen hat, können wir deren Qualität überprüfen. Produkt ist nicht verfügbar @@ -2289,7 +2286,7 @@ Melden, dass dieses Produkt wieder auf Lager ist - Qualität der Bewertung wird überprüft + Qualität der Bewertung wird überprüft Qualität der Bewertung wird überprüft @@ -2299,9 +2296,9 @@ Wir sollten innerhalb von 24 Stunden Informationen über die Bewertungen dieses Produkts haben. Bitte versuchen Sie es später noch einmal. - Wir können diese Bewertungen nicht überprüfen + Wir können diese Bewertungen nicht überprüfen - Leider können wir die Qualität der Bewertungen für bestimmte Arten von Produkten nicht überprüfen. Zum Beispiel Geschenkkarten und Video-Streaming, Musik und Spiele. + Leider können wir die Qualität der Bewertungen für bestimmte Arten von Produkten nicht überprüfen. Zum Beispiel Geschenkkarten und Video-Streaming, Musik und Spiele. Weitere Informationen folgen in Kürze @@ -2311,13 +2308,13 @@ Verstanden - Derzeit sind keine Informationen verfügbar + Derzeit sind keine Informationen verfügbar - Wir arbeiten an einer Lösung des Problems. Bitte schauen Sie bald wieder vorbei. + Wir arbeiten an einer Lösung des Problems. Bitte schauen Sie bald wieder vorbei. - Keine Netzwerkverbindung + Keine Netzwerkverbindung - Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie dann, die Seite neu zu laden. + Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie dann, die Seite neu zu laden. Noch keine Informationen zu diesen Bewertungen @@ -2351,7 +2348,7 @@ Rezensionsprüfer öffnen - Beta + Beta Rezensionsprüfer öffnen diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 29695e18a..d8ff7289a 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -330,16 +330,9 @@ No ahora - - Hacer que %s sea tu navegador habitual Hacé de Firefox tu navegador favorito - - %1$s pone a las personas por sobre las ganancias y defiende tu privacidad bloqueando rastreadores de sitios cruzados.\n\nConocé más en nuestra %2$s. Firefox pone a las personas por encima de las ganancias y defiende tu privacidad bloqueando los rastreadores entre sitios.\n\nMás información en nuestra nota de privacidad. @@ -358,15 +351,9 @@ Iniciar sesión No ahora - - Las notificaciones te ayudan a hacer más con %s Las notificaciones te ayudan a hacer más con Firefox - - Enviá pestañas entre dispositivos, admisistrá descargas y recibí consejos para obtener el máximo de %s. Enviá pestañas entre dispositivos, administrá descargas y recibí consejos para sacar el máximo provecho de Firefox. @@ -572,6 +559,10 @@ Autocompletar URLs + + Sugerencias de patrocinadores + + Obtener sugerencias de la web relacionadas con tu búsqueda Abrir enlaces en aplicaciones @@ -2274,9 +2265,9 @@ Verificar ahora - Aún no hay suficientes revisiones + Aún no hay suficientes revisiones - Cuando este producto tenga más revisiones, podremos verificar su calidad. + Cuando este producto tenga más revisiones, podremos verificar su calidad. Producto no disponible @@ -2284,7 +2275,7 @@ Informar que este producto vuelve a estar en stock - Verificando la calidad de la revisión + Verificando la calidad de la revisión Verificando la calidad de la revisión @@ -2294,9 +2285,9 @@ Deberíamos tener información sobre las revisiones de este producto en las próximas 24 horas. Volvé a chequear. - No podemos comprobar estas revisiones + No podemos comprobar estas revisiones - Lamentablemente, no podemos verificar la calidad de las revisiones de ciertos tipos de productos. Por ejemplo, tarjetas de regalo y streaming de vídeos, música y juegos. + Lamentablemente, no podemos verificar la calidad de las revisiones de ciertos tipos de productos. Por ejemplo, tarjetas de regalo y streaming de vídeos, música y juegos. La información llegará pronto @@ -2306,13 +2297,13 @@ Entendido - No hay información disponible en este momento + No hay información disponible en este momento - Estamos trabajando para resolver este problema. Volvé a chequear pronto. + Estamos trabajando para resolver este problema. Volvé a chequear pronto. - No hay conexion de red + No hay conexion de red - Verificá tu conexión de red y luego intentá recargar la página. + Verificá tu conexión de red y luego intentá recargar la página. Aún no hay información sobre estas revisiones @@ -2346,7 +2337,7 @@ Abrir el verificador de revisiones - Beta + Beta Abrir el verificador de revisiones diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 36fb4037b..e3ca1359b 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -2252,7 +2252,7 @@ Mba’éichapa jaikuaáta marandu’i iporãha - Roipuru tembipurupyahu IA %s Mozilla rupive rohesa’ỹijo hag̃ua iporãpa marandu’i apopyregua. Ñehesa’ỹijo oipytyvõta roha’ã hag̃ua marandu’i porãngue, ndaha’éi apopyre porãngue. + Roipuru tembiporupyahu IA %s Mozilla rupive rohesa’ỹijo hag̃ua iporãpa marandu’i apopyregua. Ñehesa’ỹijo oipytyvõta roha’ã hag̃ua marandu’i porãngue, ndaha’éi apopyre porãngue. papapy tai ndive A guive F peve.]]> @@ -2321,7 +2321,7 @@ Eikuaave - temiñemi purureko + temiñemi porureko temiñemi jeporurã diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index d9a06ead3..15d5b314f 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -322,9 +322,6 @@ לא כעת - - הגדרת %s כדפדפן ברירת המחדל שלך הגדרת Firefox כדפדפן ברירת המחדל שלך @@ -340,9 +337,6 @@ כניסה לא כעת - - התרעות עוזרות לך לעשות יותר עם %s התרעות עוזרות לך לעשות יותר עם Firefox @@ -503,6 +497,16 @@ השלמה אוטומטית של כתובות אתרים + + הצעות מנותני חסות + + תמיכה ב־%1$s עם הצעות ממומנות מדי פעם + + הצעות מאת %1$s + + קבלת הצעות מהאינטרנט הקשורות לחיפוש שלך פתיחת קישורים ביישומונים @@ -2253,7 +2257,7 @@ פתיחת בודק הסקירות - Beta + Beta פתיחת בודק הסקירות diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index 5997dd729..9e2f99942 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -448,7 +448,7 @@ ჩართ. - %1$s თავად ეცდება უარყოს ფუნთუშების მოთხოვები და მოაცილოს აბრები. + %1$s თავად ეცდება უარყოს ფუნთუშების მოთხოვნები საიტებზე და მოაცილოს აბრები. გამორთ. ამ საიტზე @@ -489,7 +489,7 @@ ნებართვა - თავადვე შეეცდება დაუკავშირდეს საიტებს დაშიფრული HTTPS-ოქმით, მეტი უსაფრთხოებისთვის. + თავადვე შეეცდება დაუკავშირდეს საიტებს დაშიფრული HTTPS-ოქმით მეტი უსაფრთხოებისთვის. გამორთ. @@ -1381,9 +1381,9 @@ URL-ს ასლი აღებულია - ეს ტექსტი ნიმუშია. იგი აჩვენებს, თუ როგორ გამოჩნდება ნაწერი, ამ პარამეტრით ზომის გაზრდისას ან შემცირებისას. + ეს ტექსტი ნიმუშია. იგი აჩვენებს, თუ როგორ გამოჩნდება ნაწერი ამ პარამეტრით ზომის გაზრდისას ან შემცირებისას. - გაზარდეთ ან შეამცირეთ ტექსტის ზომა საიტებზე + გაზარდეთ ან შეამცირეთ ნაწერის ზომა საიტებზე შრიფტის ზომა diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index a98db90cb..adc3a1bbe 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -69,6 +69,10 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara + + + Ur ttaǧǧa ara akk later ɣef yibenk-a + Senker iccer uslig uḍfir s yiwen usiti kan. @@ -229,6 +233,9 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Agilal agejdan + + Sfeḍ azray n tunigin Fren tutlayt @@ -2201,7 +2208,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Adellel sɣur %s - Amsenqad n tamawt yella-d s lmendad n %s. + Amsenqad n tamawt yella-d s lmendad n %s. %s s Mozilla @@ -2209,11 +2216,11 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Senqed tura - Ulac ddeqs n tamiwin akka tura + Ulac ddeqs n tamiwin akka tura Afaris ulac-it - Aya yezmer ad yeṭṭef 60 tsinin. + Aya yezmer ad yeṭṭef 60 tsinin. Tanemmirt ɣef tuzna n uneqqis! diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 8f46a54b9..c494e90f6 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -331,16 +331,9 @@ 나중에 - - %s를 기본 브라우저로 설정해 보세요 Firefox를 기본 브라우저로 설정해 보세요 - - %1$s는 이익보다 사람을 우선시하고 교차 사이트 추적기를 차단하여 개인 정보를 보호합니다.\n\n%2$s에서 더 알아보세요. Firefox는 이익보다 사람을 우선시하고 교차 사이트 추적기를 차단하여 개인 정보를 보호합니다.\n\n개인정보처리방침에서 더 알아보세요. @@ -359,15 +352,9 @@ 로그인 나중에 - - 알림은 %s로 더 많은 작업을 수행하는 데 도움이 됩니다 알림은 Firefox로 더 많은 작업을 수행하는 데 도움이 됩니다 - - 기기 간에 탭을 보내고, 다운로드를 관리하고, %s를 최대한 활용하기 위한 팁을 얻으세요. 기기 간에 탭을 보내고, 다운로드를 관리하고, Firefox를 최대한 활용하기 위한 팁을 얻으세요. @@ -577,6 +564,16 @@ URL 자동 완성 + + 스폰서 제안 + + 가끔씩 스폰서 제안으로 %1$s 지원 + + %1$s 제안 + + 사용자 검색과 관련된 웹 제안을 받으세요 앱에서 링크 열기 @@ -2301,9 +2298,9 @@ 지금 확인 - 아직 리뷰가 충분하지 않음 + 아직 리뷰가 충분하지 않음 - 이 제품에 대한 리뷰가 더 많아지면 품질을 확인할 수 있을 것입니다. + 이 제품에 대한 리뷰가 더 많아지면 품질을 확인할 수 있을 것입니다. 제품을 사용할 수 없음 @@ -2311,7 +2308,7 @@ 이 제품이 재입고되었다고 보고 - 리뷰 품질 확인 중 + 리뷰 품질 확인 중 리뷰 품질 확인 중 @@ -2321,9 +2318,9 @@ 24시간 이내에 이 제품의 리뷰에 대한 정보를 받아야 합니다. 다시 확인해 주세요. - 리뷰를 확인할 수 없음 + 리뷰를 확인할 수 없음 - 안타깝게도 특정 유형의 제품에 대해서는 리뷰 품질을 확인할 수 없습니다. 예를 들어 기프트 카드, 스트리밍 동영상, 음악, 게임 등이 있습니다. + 안타깝게도 특정 유형의 제품에 대해서는 리뷰 품질을 확인할 수 없습니다. 예를 들어 기프트 카드, 스트리밍 동영상, 음악, 게임 등이 있습니다. 곧 정보 제공 예정 @@ -2333,13 +2330,13 @@ 확인 - 현재 사용 가능한 정보가 없음 + 현재 사용 가능한 정보가 없음 - 문제를 해결하기 위해 노력하고 있습니다. 곧 다시 확인하시기 바랍니다. + 문제를 해결하기 위해 노력하고 있습니다. 곧 다시 확인하시기 바랍니다. - 네트워크 연결 없음 + 네트워크 연결 없음 - 네트워크 연결을 확인한 후 페이지를 새로 고침해 보세요. + 네트워크 연결을 확인한 후 페이지를 새로 고침해 보세요. 이 리뷰에 대한 정보가 아직 없음 @@ -2373,7 +2370,7 @@ 리뷰 검사기 열기 - Beta + Beta 리뷰 검사기 열기 diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 5b1a55611..dcc4d75c5 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -312,16 +312,9 @@ Şimdi değil - - %s varsayılan tarayıcınız olsun Firefox varsayılan tarayıcınız olsun - - %1$s için paradan önce insanlık gelir. Siteler arası takip kodlarını engelleyerek gizliliğinizi koruyoruz.\n\nAyrıntıları %2$s bulabilirsiniz. Firefox için paradan önce insanlık gelir. Siteler arası takip kodlarını engelleyerek gizliliğinizi koruyoruz.\n\nAyrıntıları gizlilik bildirimimizde bulabilirsiniz. @@ -340,15 +333,9 @@ Giriş yap Şimdi değil - - Bildirimler sayesinde %s ile daha fazlasını yapın Bildirimler sayesinde Firefox ile daha fazlasını yapın - - Sekmelerinizi cihazdan cihaza gönderin, indirmelerinizi yönetin ve %s ile ilgili ipuçları alın. Sekmelerinizi cihazdan cihaza gönderin, indirmelerinizi yönetin ve Firefox ile ilgili ipuçları alın. @@ -2177,8 +2164,20 @@ Değerlendirme kontrolcüsü Güvenilir değerlendirmeler + + Güvenilir ve güvenilmez değerlendirmelerin karışımı + + Güvenilmez değerlendirmeler Bu değerlendirmeler ne kadar güvenilir? + + Güvenilmez değerlendirmeler kaldırıldı + + Öne çıkan son değerlendirmeler + + Değerlendirme kalitesini nasıl belirliyoruz? + + harf notu veriyoruz.]]> %s hakkında daha fazla bilgi alın. @@ -2201,14 +2200,22 @@ Bu ürüne daha fazla değerlendirme geldiğinde değerlendirmelerin kalitelerini kontrol edebileceğiz. Ürün mevcut değil + + Bu ürünün yeniden stoğa girdiğini görürseniz bize bildirin, biz de değerlendirmeleri kontrol etmeye çalışalım. + + Bu ürünün tekrar stokta olduğunu bildir Değerlendirme kalitesi kontrol ediliyor Değerlendirme kalitesi kontrol ediliyor + + Yaklaşık 60 saniye sürebilir. Bildirdiğiniz için teşekkürler! Bu değerlendirmeleri kontrol edemiyoruz + + Bilgiler yakında gelecek Analiz güncel @@ -2219,6 +2226,8 @@ Sorunu çözmek için çalışıyoruz. Lütfen kısa süre sonra tekrar kontrol edin. Ağ bağlantısı yok + + Ağ bağlantınızı kontrol edip sayfayı tazelemeyi deneyin. Bu değerlendirmeler hakkında henüz bilgi yok @@ -2227,9 +2236,15 @@ Daha fazla bilgi alın Şimdi değil + + Değerlendirme kontrolcüsünü aç - Beta + Beta + + Değerlendirme kontrolcüsünü aç + + Değerlendirme kontrolcüsünü kapat 5 üzerinden %1$s yıldız diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 01f8f32c8..19b7c0516 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -333,16 +333,9 @@ 暂时不要 - - 将 %s 设为主力浏览器。 将 Firefox 设为主力浏览器 - - %1$s 始终以人为本,并通过拦截跨站跟踪器等机制保护您的隐私。\n\n可阅读我们的%2$s详细了解 Firefox 始终以人为本,并通过拦截跨站跟踪器等机制保护您的隐私。\n\n可阅读我们的隐私声明详细了解 @@ -361,15 +354,9 @@ 登录 暂时不要 - - 允许通知可以让 %s 更贴心好用 允许通知可以让 Firefox 更贴心好用 - - 在设备之间传输标签页、管理下载,解锁 %s 完整体验。 在设备之间传输标签页、管理下载,解锁 Firefox 完整体验。 @@ -579,6 +566,16 @@ 自动补全网址 + + 赞助商建议 + + 不定期提供赞助商建议以支持 %1$s + + 来自 %1$s 的建议 + + 从网络上获取与您的搜索关键词相关的建议 用外部应用打开链接 @@ -2379,7 +2376,7 @@ 打开核查评价 - 测试中 + 测试中 打开核查评价 From 8366d2c193fbfadfdfff4e2170d5a4815ab90837 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Mon, 25 Sep 2023 14:54:30 +0300 Subject: [PATCH 016/238] Bug 1855183 - Search settings menu TestRail matching --- .../mozilla/fenix/ui/SettingsSearchTest.kt | 57 +++++++++++++------ .../androidTest/flank-arm-beta.yml | 2 +- .../flank-arm-legacy-api-tests.yml | 2 +- .../androidTest/flank-arm-start-test.yml | 2 +- 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt index 600b77aca..a98cb8f33 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt @@ -65,8 +65,9 @@ class SettingsSearchTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203333 @Test - fun searchSettingsItemsTest() { + fun verifySearchSettingsMenuItemsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -89,8 +90,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203307 @Test - fun defaultSearchEnginesSettingsItemsTest() { + fun verifyDefaultSearchEnginesSettingsItemsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -103,9 +105,10 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203308 @SmokeTest @Test - fun selectNewDefaultSearchEngine() { + fun verifyTheDefaultSearchEngineCanBeChangedTest() { // Goes through the settings and changes the default search engine, then verifies it has changed. defaultSearchEngineList.forEach { homeScreen { @@ -122,8 +125,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233586 @Test - fun toggleSearchAutocomplete() { + fun verifyUrlAutocompleteToggleTest() { homeScreen { }.openSearch { typeSearch("mo") @@ -143,8 +147,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/361817 @Test - fun toggleOffHistorySearchSuggestionsTest() { + fun disableSearchBrowsingHistorySuggestionsToggleTest() { val websiteURL = getGenericAsset(mockWebServer, 1).url.toString() createHistoryItem(websiteURL) @@ -168,8 +173,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/412926 @Test - fun toggleOffBookmarksSearchSuggestionsTest() { + fun disableSearchBookmarksToggleTest() { val website = getGenericAsset(mockWebServer, 1) createBookmarkItem(website.url.toString(), website.title, 1u) @@ -196,10 +202,11 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203309 // Verifies setting as default a customized search engine name and URL @SmokeTest @Test - fun addCustomDefaultSearchEngineTest() { + fun verifyCustomSearchEngineCanBeAddedFromSearchEngineMenuTest() { val customSearchEngine = object { val title = "TestSearchEngine" val url = "http://localhost:${searchMockServer.port}/searchResults.html?search=%s" @@ -234,8 +241,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203335 @Test - fun addSearchEngineToManageShortcutsListTest() { + fun addCustomSearchEngineToManageShortcutsListTest() { val customSearchEngine = object { val title = "TestSearchEngine" val url = "http://localhost:${searchMockServer.port}/searchResults.html?search=%s" @@ -256,8 +264,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203343 @Test - fun addSearchEngineLearnMoreLinksTest() { + fun verifyLearnMoreLinksFromAddSearchEngineSectionTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -280,6 +289,7 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203310 @Test fun editCustomSearchEngineTest() { val customSearchEngine = object { @@ -309,9 +319,10 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203312 @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1848623") @Test - fun errorForInvalidSearchEngineStringsTest() { + fun verifyErrorMessagesForInvalidSearchEngineUrlsTest() { val customSearchEngine = object { val title = "TestSearchEngine" val badTemplateUrl = "http://localhost:${searchMockServer.port}/searchResults.html?search=" @@ -341,6 +352,7 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203313 @Test fun deleteCustomSearchEngineTest() { val customSearchEngineTitle = "TestSearchEngine" @@ -375,6 +387,7 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203339 @Test fun deleteCustomSearchShortcutTest() { val customSearchEngineTitle = "TestSearchEngine" @@ -402,13 +415,14 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233588 // Test running on beta/release builds in CI: // caution when making changes to it, so they don't block the builds // Goes through the settings and changes the search suggestion toggle, then verifies it changes. @Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/23817") @SmokeTest @Test - fun toggleSearchSuggestionsTest() { + fun verifyShowSearchSuggestionsToggleTest() { homeScreen { }.openSearch { typeSearch("mozilla ") @@ -430,9 +444,10 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/464420 // Tests the "Don't allow" option from private mode search suggestions onboarding dialog @Test - fun blockSearchSuggestionsInPrivateModeOnboardingTest() { + fun doNotAllowSearchSuggestionsInPrivateBrowsingTest() { homeScreen { togglePrivateBrowsingModeOnOff() }.openSearch { @@ -443,9 +458,10 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1957063 // Tests the "Allow" option from private mode search suggestions onboarding dialog @Test - fun allowSearchSuggestionsInPrivateModeOnboardingTest() { + fun allowSearchSuggestionsInPrivateBrowsingTest() { homeScreen { togglePrivateBrowsingModeOnOff() }.openSearch { @@ -470,8 +486,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/888673 @Test - fun toggleVoiceSearchTest() { + fun verifyShowVoiceSearchToggleTest() { homeScreen { }.openSearch { verifyVoiceSearchButtonVisibility(true) @@ -489,8 +506,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/412927 @Test - fun toggleShowClipboardSuggestionsTest() { + fun verifyShowClipboardSuggestionsToggleTest() { val link = "https://www.mozilla.org/en-US/" setTextToClipBoard(appContext, link) @@ -536,8 +554,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2233337 @Test - fun searchEnginesListRespectLocaleTest() { + fun verifyTheSearchEnginesListsRespectTheLocaleTest() { runWithSystemLocaleChanged(Locale.CHINA, activityTestRule.activityRule) { // Checking search engines for CH locale homeScreen { @@ -567,8 +586,9 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203334 @Test - fun manageSearchShortcutsSettingsItemsTest() { + fun verifyManageSearchShortcutsSettingsItemsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -590,9 +610,10 @@ class SettingsSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2203340 @SmokeTest @Test - fun changeSearchShortcutsListTest() { + fun verifySearchShortcutChangesAreReflectedInSearchSelectorMenuTest() { homeScreen { }.openThreeDotMenu { }.openSettings { diff --git a/automation/taskcluster/androidTest/flank-arm-beta.yml b/automation/taskcluster/androidTest/flank-arm-beta.yml index 6774ab503..367cc1879 100644 --- a/automation/taskcluster/androidTest/flank-arm-beta.yml +++ b/automation/taskcluster/androidTest/flank-arm-beta.yml @@ -21,7 +21,7 @@ gcloud: test-targets: - class org.mozilla.fenix.ui.HistoryTest#verifyHistoryMenuWithHistoryItemsTest - - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest + - class org.mozilla.fenix.ui.SettingsSearchTest#verifyShowSearchSuggestionsToggleTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest - class org.mozilla.fenix.ui.NoNetworkAccessStartupTests#noNetworkConnectionStartupTest diff --git a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml index 6977ad7b9..72ffbaad7 100644 --- a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml +++ b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml @@ -26,7 +26,7 @@ gcloud: - class org.mozilla.fenix.ui.MainMenuTest#goBackTest - class org.mozilla.fenix.ui.MainMenuTest#goForwardTest - class org.mozilla.fenix.ui.HistoryTest#verifyHistoryMenuWithHistoryItemsTest - - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest + - class org.mozilla.fenix.ui.SettingsSearchTest#verifyShowSearchSuggestionsToggleTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest - class org.mozilla.fenix.ui.TabbedBrowsingTest#openNewTabTest diff --git a/automation/taskcluster/androidTest/flank-arm-start-test.yml b/automation/taskcluster/androidTest/flank-arm-start-test.yml index 82e2006c6..cc646d45b 100644 --- a/automation/taskcluster/androidTest/flank-arm-start-test.yml +++ b/automation/taskcluster/androidTest/flank-arm-start-test.yml @@ -21,7 +21,7 @@ gcloud: test-targets: - class org.mozilla.fenix.ui.HistoryTest#verifyHistoryMenuWithHistoryItemsTest - - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest + - class org.mozilla.fenix.ui.SettingsSearchTest#verifyShowSearchSuggestionsToggleTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest - class org.mozilla.fenix.ui.NoNetworkAccessStartupTests#noNetworkConnectionStartupTest From aa1e02bf8dd6a93660c10c32d08781b6433fd8fe Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 26 Sep 2023 15:15:07 +0300 Subject: [PATCH 017/238] Bug 1855190 - Unified search bar TestRail matching --- .../org/mozilla/fenix/ui/ComposeSearchTest.kt | 12 ++++++------ .../java/org/mozilla/fenix/ui/SearchTest.kt | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt index 0a4ceaafa..019b3df95 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt @@ -80,7 +80,7 @@ class ComposeSearchTest { } @Test - fun searchBarItemsTest() { + fun verifySearchBarItemsTest() { navigationToolbar { verifyDefaultSearchEngine("Google") verifySearchBarPlaceholder("Search or enter address") @@ -96,7 +96,7 @@ class ComposeSearchTest { } @Test - fun searchSelectorMenuItemsTest() { + fun verifySearchSelectorMenuItemsTest() { homeScreen { }.openSearch { verifySearchView() @@ -110,7 +110,7 @@ class ComposeSearchTest { } @Test - fun searchPlaceholderForDefaultEnginesTest() { + fun verifySearchPlaceholderForGeneralDefaultSearchEnginesTest() { generalEnginesList.forEach { homeScreen { }.openSearch { @@ -127,7 +127,7 @@ class ComposeSearchTest { } @Test - fun searchPlaceholderForOtherGeneralSearchEnginesTest() { + fun verifySearchPlaceholderForNotDefaultGeneralSearchEnginesTest() { val generalEnginesList = listOf("DuckDuckGo", "Bing") generalEnginesList.forEach { @@ -141,7 +141,7 @@ class ComposeSearchTest { } @Test - fun searchPlaceholderForTopicSearchEngineTest() { + fun verifySearchPlaceholderForTopicSpecificSearchEnginesTest() { val topicEnginesList = listOf("Amazon.com", "Wikipedia", "eBay") topicEnginesList.forEach { @@ -190,7 +190,7 @@ class ComposeSearchTest { } @Test - fun scanButtonAvailableOnlyForGeneralSearchEnginesTest() { + fun verifyScanButtonAvailableOnlyForGeneralSearchEnginesTest() { generalEnginesList.forEach { homeScreen { }.openSearch { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index 7d13909b0..344b38da8 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -93,8 +93,9 @@ class SearchTest { searchMockServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154189 @Test - fun searchBarItemsTest() { + fun verifySearchBarItemsTest() { navigationToolbar { verifyDefaultSearchEngine("Google") verifySearchBarPlaceholder("Search or enter address") @@ -109,8 +110,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154190 @Test - fun searchSelectorMenuItemsTest() { + fun verifySearchSelectorMenuItemsTest() { homeScreen { }.openSearch { verifySearchView() @@ -123,8 +125,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154194 @Test - fun searchPlaceholderForDefaultEnginesTest() { + fun verifySearchPlaceholderForGeneralDefaultSearchEnginesTest() { generalEnginesList.forEach { homeScreen { }.openSearch { @@ -140,8 +143,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154195 @Test - fun searchPlaceholderForOtherGeneralSearchEnginesTest() { + fun verifySearchPlaceholderForNotDefaultGeneralSearchEnginesTest() { val generalEnginesList = listOf("DuckDuckGo", "Bing") generalEnginesList.forEach { @@ -154,8 +158,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154196 @Test - fun searchPlaceholderForTopicSearchEngineTest() { + fun verifySearchPlaceholderForTopicSpecificSearchEnginesTest() { val topicEnginesList = listOf("Amazon.com", "Wikipedia", "eBay") topicEnginesList.forEach { @@ -203,8 +208,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154191 @Test - fun scanButtonAvailableOnlyForGeneralSearchEnginesTest() { + fun verifyScanButtonAvailableOnlyForGeneralSearchEnginesTest() { generalEnginesList.forEach { homeScreen { }.openSearch { From 0af50d1b52c938dc624d953e4abfaffe3d6dd548 Mon Sep 17 00:00:00 2001 From: rahulsainani Date: Tue, 26 Sep 2023 14:55:00 +0200 Subject: [PATCH 018/238] Bug 1855137 - Add review checker vendor ordering logic --- .../ReviewQualityCheckMiddlewareProvider.kt | 5 +- ...ReviewQualityCheckPreferencesMiddleware.kt | 20 +-- .../ReviewQualityCheckVendorsService.kt | 78 ++++++++++ .../store/ReviewQualityCheckAction.kt | 15 +- .../shopping/store/ReviewQualityCheckState.kt | 8 +- .../shopping/store/ReviewQualityCheckStore.kt | 19 ++- .../ui/ReviewQualityCheckBottomSheet.kt | 2 +- .../ReviewQualityCheckContextualOnboarding.kt | 6 +- .../fenix/shopping/fake/FakeNetworkChecker.kt | 2 +- .../FakeReviewQualityCheckVendorsService.kt | 18 +++ ...ultReviewQualityCheckVendorsServiceTest.kt | 140 ++++++++++++++++++ .../store/ReviewQualityCheckStoreTest.kt | 56 ++++--- 12 files changed, 308 insertions(+), 61 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckVendorsService.kt create mode 100644 app/src/test/java/org/mozilla/fenix/shopping/fake/FakeReviewQualityCheckVendorsService.kt create mode 100644 app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckVendorsServiceTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt index 3f73a4a2a..1de585aa9 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt @@ -11,6 +11,7 @@ import mozilla.components.feature.tabs.TabsUseCases import org.mozilla.fenix.shopping.middleware.DefaultNetworkChecker import org.mozilla.fenix.shopping.middleware.DefaultReviewQualityCheckPreferences import org.mozilla.fenix.shopping.middleware.DefaultReviewQualityCheckService +import org.mozilla.fenix.shopping.middleware.DefaultReviewQualityCheckVendorsService import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckNavigationMiddleware import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckNetworkMiddleware import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckPreferencesMiddleware @@ -37,7 +38,7 @@ object ReviewQualityCheckMiddlewareProvider { scope: CoroutineScope, ): List = listOf( - providePreferencesMiddleware(settings, scope), + providePreferencesMiddleware(settings, browserStore, scope), provideNetworkMiddleware(browserStore, context, scope), provideNavigationMiddleware( TabsUseCases.SelectOrAddUseCase(browserStore), @@ -48,9 +49,11 @@ object ReviewQualityCheckMiddlewareProvider { private fun providePreferencesMiddleware( settings: Settings, + browserStore: BrowserStore, scope: CoroutineScope, ) = ReviewQualityCheckPreferencesMiddleware( reviewQualityCheckPreferences = DefaultReviewQualityCheckPreferences(settings), + reviewQualityCheckVendorsService = DefaultReviewQualityCheckVendorsService(browserStore), scope = scope, ) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt index 8a3409024..14ac950fc 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt @@ -20,6 +20,7 @@ import org.mozilla.fenix.shopping.store.ReviewQualityCheckState */ class ReviewQualityCheckPreferencesMiddleware( private val reviewQualityCheckPreferences: ReviewQualityCheckPreferences, + private val reviewQualityCheckVendorsService: ReviewQualityCheckVendorsService, private val scope: CoroutineScope, ) : ReviewQualityCheckMiddleware { @@ -50,12 +51,14 @@ class ReviewQualityCheckPreferencesMiddleware( val hasUserOptedIn = reviewQualityCheckPreferences.enabled() val isProductRecommendationsEnabled = reviewQualityCheckPreferences.productRecommendationsEnabled() - store.dispatch( - ReviewQualityCheckAction.UpdateUserPreferences( - hasUserOptedIn = hasUserOptedIn, - isProductRecommendationsEnabled = isProductRecommendationsEnabled, - ), - ) + + val updateUserPreferences = if (hasUserOptedIn) { + ReviewQualityCheckAction.OptInCompleted(isProductRecommendationsEnabled) + } else { + val productVendors = reviewQualityCheckVendorsService.productVendors() + ReviewQualityCheckAction.OptOutCompleted(productVendors) + } + store.dispatch(updateUserPreferences) } } @@ -64,10 +67,7 @@ class ReviewQualityCheckPreferencesMiddleware( val isProductRecommendationsEnabled = reviewQualityCheckPreferences.productRecommendationsEnabled() store.dispatch( - ReviewQualityCheckAction.UpdateUserPreferences( - hasUserOptedIn = true, - isProductRecommendationsEnabled = isProductRecommendationsEnabled, - ), + ReviewQualityCheckAction.OptInCompleted(isProductRecommendationsEnabled), ) // Update the preference diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckVendorsService.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckVendorsService.kt new file mode 100644 index 000000000..3e1decb94 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckVendorsService.kt @@ -0,0 +1,78 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.shopping.middleware + +import mozilla.components.browser.state.selector.selectedTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.support.base.log.logger.Logger +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.ProductVendor +import java.net.URI +import java.net.URISyntaxException + +private const val AMAZON_COM = "amazon.com" +private const val BEST_BUY_COM = "bestbuy.com" +private const val WALMART_COM = "walmart.com" +private val defaultVendorsList = enumValues().toList() + +/** + * Service for getting the list of product vendors. + */ +interface ReviewQualityCheckVendorsService { + + /** + * Returns the list of product vendors in order. + */ + fun productVendors(): List +} + +/** + * Default implementation of [ReviewQualityCheckVendorsService] that uses the [BrowserStore] to + * identify the selected tab. + * + * @property browserStore The [BrowserStore] instance to use. + */ +class DefaultReviewQualityCheckVendorsService( + private val browserStore: BrowserStore, +) : ReviewQualityCheckVendorsService { + + override fun productVendors(): List { + val selectedTabUrl = browserStore.state.selectedTab?.content?.url + + return if (selectedTabUrl == null) { + defaultVendorsList + } else { + val host = selectedTabUrl.toJavaUri()?.host + when { + host == null -> defaultVendorsList + host.contains(AMAZON_COM) -> createProductVendorsList(ProductVendor.AMAZON) + host.contains(BEST_BUY_COM) -> createProductVendorsList(ProductVendor.BEST_BUY) + host.contains(WALMART_COM) -> createProductVendorsList(ProductVendor.WALMART) + else -> defaultVendorsList + } + } + } + + /** + * Creates list of product vendors using the firstVendor param as the first item in the list. + */ + private fun createProductVendorsList(firstVendor: ProductVendor): List = + listOf(firstVendor) + defaultVendorsList.filterNot { it == firstVendor } + + /** + * Convenience function to converts a given string to a [URI] instance. Returns null if the + * string is not a valid URI. + */ + private fun String.toJavaUri(): URI? { + return try { + URI.create(this) + } catch (e: URISyntaxException) { + Logger.error("Unable to create URI with the given string $this", e) + null + } catch (e: IllegalArgumentException) { + Logger.error("Unable to create URI with the given string $this", e) + null + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt index 7bad4be15..796881acb 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt @@ -53,15 +53,20 @@ sealed interface ReviewQualityCheckAction : Action { object ToggleProductRecommendation : PreferencesMiddlewareAction, UpdateAction /** - * Triggered as a result of a [PreferencesMiddlewareAction] to update the state. + * Triggered as a result of a [OptIn] or [Init] whe user has opted in for shopping experience. * - * @property hasUserOptedIn True when user has opted in for shopping experience. * @property isProductRecommendationsEnabled Reflects the user preference update to display * recommended product. Null when product recommendations feature is disabled. */ - data class UpdateUserPreferences( - val hasUserOptedIn: Boolean, - val isProductRecommendationsEnabled: Boolean?, + data class OptInCompleted(val isProductRecommendationsEnabled: Boolean?) : UpdateAction + + /** + * Triggered as a result of [Init] when user has opted out of shopping experience. + * + * @property productVendors List of product vendors in relevant order. + */ + data class OptOutCompleted( + val productVendors: List, ) : UpdateAction /** diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt index 315eec5f5..b4cdbd712 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt @@ -22,14 +22,10 @@ sealed interface ReviewQualityCheckState : State { /** * The state when the user has not opted in for the feature. * - * @property retailers List of retailer names to be displayed in order in the onboarding UI. + * @property productVendors List of vendors to be displayed in order in the onboarding UI. */ data class NotOptedIn( - val retailers: List = listOf( - ProductVendor.AMAZON, - ProductVendor.BEST_BUY, - ProductVendor.WALMART, - ), + val productVendors: List = enumValues().toList(), ) : ReviewQualityCheckState /** diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt index c7d44ac1b..c6ac64de7 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStore.kt @@ -41,19 +41,18 @@ private fun mapStateForUpdateAction( action: ReviewQualityCheckAction.UpdateAction, ): ReviewQualityCheckState { return when (action) { - is ReviewQualityCheckAction.UpdateUserPreferences -> { - if (action.hasUserOptedIn) { - if (state is ReviewQualityCheckState.OptedIn) { - state.copy(productRecommendationsPreference = action.isProductRecommendationsEnabled) - } else { - ReviewQualityCheckState.OptedIn( - productRecommendationsPreference = action.isProductRecommendationsEnabled, - ) - } + is ReviewQualityCheckAction.OptInCompleted -> { + if (state is ReviewQualityCheckState.OptedIn) { + state.copy(productRecommendationsPreference = action.isProductRecommendationsEnabled) } else { - ReviewQualityCheckState.NotOptedIn() + ReviewQualityCheckState.OptedIn( + productRecommendationsPreference = action.isProductRecommendationsEnabled, + ) } } + is ReviewQualityCheckAction.OptOutCompleted -> { + ReviewQualityCheckState.NotOptedIn(action.productVendors) + } ReviewQualityCheckAction.OptOut -> { ReviewQualityCheckState.NotOptedIn() diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index ab3878acd..e90a0b054 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -42,7 +42,7 @@ fun ReviewQualityCheckBottomSheet( when (val state = reviewQualityCheckState) { is ReviewQualityCheckState.NotOptedIn -> { ReviewQualityCheckContextualOnboarding( - retailers = state.retailers, + productVendors = state.productVendors, onPrimaryButtonClick = { store.dispatch(ReviewQualityCheckAction.OptIn) }, diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt index 97fc43a34..7d4a4f586 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt @@ -34,7 +34,7 @@ const val PLACEHOLDER_URL = "www.fakespot.com" * A placeholder UI for review quality check contextual onboarding. The actual UI will be * implemented as part of Bug 1840103 with the illustration. * - * @param retailers List of retailers to be displayed in order. + * @param productVendors List of retailers to be displayed in order. * @param onLearnMoreClick Invoked when a user clicks on the learn more link. * @param onPrivacyPolicyClick Invoked when a user clicks on the privacy policy link. * @param onTermsOfUseClick Invoked when a user clicks on the terms of use link. @@ -44,7 +44,7 @@ const val PLACEHOLDER_URL = "www.fakespot.com" @Suppress("LongParameterList", "LongMethod") @Composable fun ReviewQualityCheckContextualOnboarding( - retailers: List, + productVendors: List, onLearnMoreClick: () -> Unit, onPrivacyPolicyClick: () -> Unit, onTermsOfUseClick: () -> Unit, @@ -68,7 +68,7 @@ fun ReviewQualityCheckContextualOnboarding( Spacer(modifier = Modifier.height(16.dp)) Text( - text = createDescriptionString(retailers), + text = createDescriptionString(productVendors), color = FirefoxTheme.colors.textSecondary, style = FirefoxTheme.typography.body2, ) diff --git a/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeNetworkChecker.kt b/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeNetworkChecker.kt index 2e3750b77..7f5d739e1 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeNetworkChecker.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeNetworkChecker.kt @@ -7,7 +7,7 @@ package org.mozilla.fenix.shopping.fake import org.mozilla.fenix.shopping.middleware.NetworkChecker class FakeNetworkChecker( - private val isConnected: Boolean, + private val isConnected: Boolean = true, ) : NetworkChecker { override fun isConnected(): Boolean = isConnected } diff --git a/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeReviewQualityCheckVendorsService.kt b/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeReviewQualityCheckVendorsService.kt new file mode 100644 index 000000000..9d1caaa34 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/shopping/fake/FakeReviewQualityCheckVendorsService.kt @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.shopping.fake + +import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckVendorsService +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.ProductVendor + +class FakeReviewQualityCheckVendorsService( + private val productVendors: List = listOf( + ProductVendor.BEST_BUY, + ProductVendor.WALMART, + ProductVendor.AMAZON, + ), +) : ReviewQualityCheckVendorsService { + override fun productVendors(): List = productVendors +} diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckVendorsServiceTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckVendorsServiceTest.kt new file mode 100644 index 000000000..362f242d9 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckVendorsServiceTest.kt @@ -0,0 +1,140 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.shopping.middleware + +import kotlinx.coroutines.test.runTest +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.createTab +import mozilla.components.browser.state.store.BrowserStore +import org.junit.Assert.assertEquals +import org.junit.Test +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.ProductVendor + +class DefaultReviewQualityCheckVendorsServiceTest { + + @Test + fun `WHEN selected tab is an amazon page THEN amazon is first in product vendors list`() = + runTest { + val tab = createTab( + url = "https://www.amazon.com/product", + id = "test-tab", + ) + val browserState = BrowserState( + tabs = listOf(tab), + selectedTabId = tab.id, + ) + + val tested = DefaultReviewQualityCheckVendorsService(BrowserStore(browserState)) + + val actual = tested.productVendors() + val expected = listOf( + ProductVendor.AMAZON, + ProductVendor.BEST_BUY, + ProductVendor.WALMART, + ) + + assertEquals(expected, actual) + } + + @Test + fun `WHEN selected tab is a walmart page THEN walmart is first in product vendors list`() = + runTest { + val tab = createTab( + url = "https://www.walmart.com/product", + id = "test-tab", + ) + + val browserState = BrowserState( + tabs = listOf(tab), + selectedTabId = tab.id, + ) + + val tested = DefaultReviewQualityCheckVendorsService(BrowserStore(browserState)) + + val actual = tested.productVendors() + val expected = listOf( + ProductVendor.WALMART, + ProductVendor.AMAZON, + ProductVendor.BEST_BUY, + ) + + assertEquals(expected, actual) + } + + @Test + fun `WHEN selected tab is a best buy page THEN best buy is first in product vendors list`() = + runTest { + val tab = createTab( + url = "https://www.bestbuy.com/product", + id = "test-tab", + ) + + val browserState = BrowserState( + tabs = listOf(tab), + selectedTabId = tab.id, + ) + + val tested = DefaultReviewQualityCheckVendorsService(BrowserStore(browserState)) + + val actual = tested.productVendors() + val expected = listOf( + ProductVendor.BEST_BUY, + ProductVendor.AMAZON, + ProductVendor.WALMART, + ) + + assertEquals(expected, actual) + } + + @Test + fun `WHEN selected tab is a not a vendor page THEN default product vendors list is returned`() = + runTest { + val tab = createTab( + url = "https://www.shopping.xyz/product", + id = "test-tab", + ) + + val browserState = BrowserState( + tabs = listOf(tab), + selectedTabId = tab.id, + ) + + val tested = DefaultReviewQualityCheckVendorsService(BrowserStore(browserState)) + + val actual = tested.productVendors() + val expected = listOf( + ProductVendor.AMAZON, + ProductVendor.BEST_BUY, + ProductVendor.WALMART, + ) + + assertEquals(expected, actual) + } + + @Test + fun `WHEN selected tab is a not a valid uri THEN default product vendors list is returned`() = + runTest { + val tab = createTab( + url = "not a url", + id = "test-tab", + ) + + val browserState = BrowserState( + tabs = listOf(tab), + selectedTabId = tab.id, + ) + + val tested = DefaultReviewQualityCheckVendorsService(BrowserStore(browserState)) + + val actual = tested.productVendors() + val expected = listOf( + ProductVendor.AMAZON, + ProductVendor.BEST_BUY, + ProductVendor.WALMART, + ) + + assertEquals(expected, actual) + } +} diff --git a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt index 348ffe976..d108bf6b3 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt @@ -15,6 +15,7 @@ import org.mozilla.fenix.shopping.ProductAnalysisTestData import org.mozilla.fenix.shopping.fake.FakeNetworkChecker import org.mozilla.fenix.shopping.fake.FakeReviewQualityCheckPreferences import org.mozilla.fenix.shopping.fake.FakeReviewQualityCheckService +import org.mozilla.fenix.shopping.fake.FakeReviewQualityCheckVendorsService import org.mozilla.fenix.shopping.middleware.AnalysisStatusDto import org.mozilla.fenix.shopping.middleware.NetworkChecker import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckNetworkMiddleware @@ -22,6 +23,7 @@ import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckPreferences import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckPreferencesMiddleware import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckService import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.OptedIn.ProductReviewState.AnalysisPresent.AnalysisStatus +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.ProductVendor class ReviewQualityCheckStoreTest { @@ -39,13 +41,26 @@ class ReviewQualityCheckStoreTest { isEnabled = false, isProductRecommendationsEnabled = false, ), + reviewQualityCheckVendorsService = FakeReviewQualityCheckVendorsService( + productVendors = listOf( + ProductVendor.BEST_BUY, + ProductVendor.AMAZON, + ProductVendor.WALMART, + ), + ), ), ) tested.waitUntilIdle() dispatcher.scheduler.advanceUntilIdle() tested.waitUntilIdle() - val expected = ReviewQualityCheckState.NotOptedIn() + val expected = ReviewQualityCheckState.NotOptedIn( + productVendors = listOf( + ProductVendor.BEST_BUY, + ProductVendor.AMAZON, + ProductVendor.WALMART, + ), + ) assertEquals(expected, tested.state) } @@ -331,29 +346,22 @@ class ReviewQualityCheckStoreTest { } private fun provideReviewQualityCheckMiddleware( - reviewQualityCheckPreferences: ReviewQualityCheckPreferences, - reviewQualityCheckService: ReviewQualityCheckService? = null, - networkChecker: NetworkChecker? = null, + reviewQualityCheckPreferences: ReviewQualityCheckPreferences = FakeReviewQualityCheckPreferences(), + reviewQualityCheckVendorsService: FakeReviewQualityCheckVendorsService = FakeReviewQualityCheckVendorsService(), + reviewQualityCheckService: ReviewQualityCheckService = FakeReviewQualityCheckService(), + networkChecker: NetworkChecker = FakeNetworkChecker(), ): List { - return if (reviewQualityCheckService != null && networkChecker != null) { - listOf( - ReviewQualityCheckPreferencesMiddleware( - reviewQualityCheckPreferences = reviewQualityCheckPreferences, - scope = this.scope, - ), - ReviewQualityCheckNetworkMiddleware( - reviewQualityCheckService = reviewQualityCheckService, - networkChecker = networkChecker, - scope = this.scope, - ), - ) - } else { - listOf( - ReviewQualityCheckPreferencesMiddleware( - reviewQualityCheckPreferences = reviewQualityCheckPreferences, - scope = this.scope, - ), - ) - } + return listOf( + ReviewQualityCheckPreferencesMiddleware( + reviewQualityCheckPreferences = reviewQualityCheckPreferences, + reviewQualityCheckVendorsService = reviewQualityCheckVendorsService, + scope = this.scope, + ), + ReviewQualityCheckNetworkMiddleware( + reviewQualityCheckService = reviewQualityCheckService, + networkChecker = networkChecker, + scope = this.scope, + ), + ) } } From 5367c93ef6306ee3d6c2d1348a0a9d26bb31121f Mon Sep 17 00:00:00 2001 From: sarah541 Date: Wed, 27 Sep 2023 12:55:05 +0530 Subject: [PATCH 019/238] Bug 1855029 - Correct accidentally updated indentation --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 32ae20842..1450a3a56 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -330,7 +330,7 @@ Notifications help you do more with Firefox - Send tabs between devices, manage downloads, and get tips on getting the most out of Firefox. From 08be473cbf8223183d37483b0ce69f003703f861 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Tue, 26 Sep 2023 10:32:29 -0400 Subject: [PATCH 020/238] Bug 1849073 - Part 1: Remove the Bookmark Search Dialog --- .../org/mozilla/fenix/BrowserDirection.kt | 1 - .../java/org/mozilla/fenix/HomeActivity.kt | 2 - .../library/bookmarks/BookmarkController.kt | 13 +- .../library/bookmarks/BookmarkFragment.kt | 1 - .../bookmarks/BookmarkSearchController.kt | 47 --- .../bookmarks/BookmarkSearchDialogFragment.kt | 314 ------------------ .../BookmarkSearchDialogInteractor.kt | 30 -- .../bookmarks/BookmarkSearchFragmentStore.kt | 53 --- .../awesomebar/AwesomeBarInteractor.kt | 20 -- .../bookmarks/awesomebar/AwesomeBarView.kt | 61 ---- .../bookmarks/awesomebar/AwesomeBarWrapper.kt | 104 ------ .../library/bookmarks/toolbar/ToolbarView.kt | 125 ------- .../fragment_bookmark_search_dialog.xml | 111 ------- app/src/main/res/navigation/nav_graph.xml | 11 - .../bookmarks/BookmarkControllerTest.kt | 5 +- .../bookmarks/BookmarkSearchControllerTest.kt | 104 ------ .../BookmarkSearchDialogInteractorTest.kt | 50 --- .../BookmarkSearchFragmentStoreTest.kt | 34 -- detekt-baseline.xml | 23 -- 19 files changed, 5 insertions(+), 1104 deletions(-) delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogFragment.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractor.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStore.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarInteractor.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarView.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarWrapper.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/bookmarks/toolbar/ToolbarView.kt delete mode 100644 app/src/main/res/layout/fragment_bookmark_search_dialog.xml delete mode 100644 app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchControllerTest.kt delete mode 100644 app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractorTest.kt delete mode 100644 app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStoreTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt index f33b8e107..9cc7ad3a1 100644 --- a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +++ b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt @@ -20,7 +20,6 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromSearchDialog(R.id.searchDialogFragment), FromSettings(R.id.settingsFragment), FromBookmarks(R.id.bookmarkFragment), - FromBookmarkSearchDialog(R.id.bookmarkSearchDialogFragment), FromHistory(R.id.historyFragment), FromHistorySearchDialog(R.id.historySearchDialogFragment), FromHistoryMetadataGroup(R.id.historyMetadataGroupFragment), diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index e9ef9a566..3a1fce6f9 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -997,8 +997,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { SettingsFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromBookmarks -> BookmarkFragmentDirections.actionGlobalBrowser(customTabSessionId) - BrowserDirection.FromBookmarkSearchDialog -> - SearchDialogFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromHistory -> HistoryFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromHistorySearchDialog -> diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkController.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkController.kt index a91b16e7d..7d0a0b326 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkController.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkController.kt @@ -28,7 +28,6 @@ import org.mozilla.fenix.ext.bookmarkStorage import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.navigateSafe -import org.mozilla.fenix.utils.Settings @VisibleForTesting internal const val WARN_OPEN_ALL_SIZE = 15 @@ -86,7 +85,6 @@ class DefaultBookmarkController( private val deleteBookmarkFolder: (Set) -> Unit, private val showTabTray: (Boolean) -> Unit, private val warnLargeOpenAll: (Int, () -> Unit) -> Unit, - private val settings: Settings, ) : BookmarkController { private val resources: Resources = activity.resources @@ -256,13 +254,10 @@ class DefaultBookmarkController( } override fun handleSearch() { - val directions = if (settings.showUnifiedSearchFeature) { - BookmarkFragmentDirections.actionGlobalSearchDialog(sessionId = null) - } else { - BookmarkFragmentDirections.actionBookmarkFragmentToBookmarkSearchDialogFragment() - } - - navController.navigateSafe(R.id.bookmarkFragment, directions) + navController.navigateSafe( + R.id.bookmarkFragment, + BookmarkFragmentDirections.actionGlobalSearchDialog(sessionId = null), + ) } private fun openInNewTabAndShow( diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index abc69cb14..2108dc143 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -107,7 +107,6 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan deleteBookmarkFolder = ::showRemoveFolderDialog, showTabTray = ::showTabTray, warnLargeOpenAll = ::warnLargeOpenAll, - settings = requireComponents.settings, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt deleted file mode 100644 index e88f0678f..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags -import mozilla.components.service.glean.private.NoExtras -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.GleanMetrics.BookmarksManagement -import org.mozilla.fenix.HomeActivity - -/** - * An interface that handles the view manipulation of the Bookmark Search, triggered by the Interactor - */ -interface BookmarkSearchController { - fun handleEditingCancelled() - fun handleTextChanged(text: String) - fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) -} - -class BookmarkSearchDialogController( - private val activity: HomeActivity, - private val fragmentStore: BookmarkSearchFragmentStore, - private val clearToolbarFocus: () -> Unit, -) : BookmarkSearchController { - - override fun handleEditingCancelled() { - clearToolbarFocus() - } - - override fun handleTextChanged(text: String) { - fragmentStore.dispatch(BookmarkSearchFragmentAction.UpdateQuery(text)) - } - - override fun handleUrlTapped(url: String, flags: LoadUrlFlags) { - BookmarksManagement.searchResultTapped.record(NoExtras()) - clearToolbarFocus() - - activity.openToBrowserAndLoad( - searchTermOrURL = url, - newTab = true, - from = BrowserDirection.FromBookmarkSearchDialog, - flags = flags, - ) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogFragment.kt deleted file mode 100644 index eb288b072..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogFragment.kt +++ /dev/null @@ -1,314 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import android.annotation.SuppressLint -import android.app.Activity -import android.app.Dialog -import android.content.Context -import android.content.DialogInterface -import android.content.Intent -import android.os.Build -import android.os.Bundle -import android.speech.RecognizerIntent -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.ViewStub -import android.view.accessibility.AccessibilityEvent -import android.view.inputmethod.InputMethodManager -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatDialogFragment -import androidx.appcompat.content.res.AppCompatResources -import androidx.constraintlayout.widget.ConstraintProperties.BOTTOM -import androidx.constraintlayout.widget.ConstraintProperties.PARENT_ID -import androidx.constraintlayout.widget.ConstraintProperties.TOP -import androidx.constraintlayout.widget.ConstraintSet -import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope -import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.launch -import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.lib.state.ext.consumeFlow -import mozilla.components.lib.state.ext.consumeFrom -import mozilla.components.support.base.feature.UserInteractionHandler -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.HomeActivity -import org.mozilla.fenix.R -import org.mozilla.fenix.components.toolbar.ToolbarPosition -import org.mozilla.fenix.databinding.FragmentBookmarkSearchDialogBinding -import org.mozilla.fenix.databinding.SearchSuggestionsHintBinding -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.library.bookmarks.awesomebar.AwesomeBarView -import org.mozilla.fenix.library.bookmarks.toolbar.ToolbarView -import org.mozilla.fenix.settings.SupportUtils - -@Suppress("TooManyFunctions", "LargeClass") -class BookmarkSearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler { - private var _binding: FragmentBookmarkSearchDialogBinding? = null - private val binding get() = _binding!! - - private lateinit var interactor: BookmarkSearchDialogInteractor - private lateinit var store: BookmarkSearchFragmentStore - private lateinit var toolbarView: ToolbarView - private lateinit var awesomeBarView: AwesomeBarView - - private val speechIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) - private var voiceSearchButtonAlreadyAdded = false - private var dialogHandledAction = false - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setStyle(STYLE_NO_TITLE, R.style.SearchDialogStyle) - } - - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - return object : Dialog(requireContext(), this.theme) { - @Deprecated("Deprecated in Java") - override fun onBackPressed() { - this@BookmarkSearchDialogFragment.onBackPressed() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle?, - ): View { - _binding = FragmentBookmarkSearchDialogBinding.inflate(inflater, container, false) - val activity = requireActivity() as HomeActivity - - store = BookmarkSearchFragmentStore( - createInitialBookmarkSearchFragmentState(), - ) - - interactor = BookmarkSearchDialogInteractor( - BookmarkSearchDialogController( - activity = activity, - fragmentStore = store, - clearToolbarFocus = { - dialogHandledAction = true - toolbarView.view.hideKeyboard() - toolbarView.view.clearFocus() - }, - ), - ) - - toolbarView = ToolbarView( - context = requireContext(), - interactor = interactor, - isPrivate = false, - view = binding.toolbar, - ) - - val awesomeBar = binding.awesomeBar - - awesomeBarView = AwesomeBarView( - activity, - interactor, - awesomeBar, - ) - - awesomeBarView.view.setOnEditSuggestionListener(toolbarView.view::setSearchTerms) - - return binding.root - } - - @SuppressLint("ClickableViewAccessibility") - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - setupConstraints(view) - - binding.searchWrapper.setOnTouchListener { _, _ -> - dismissAllowingStateLoss() - true - } - val stubListener = ViewStub.OnInflateListener { _, inflated -> - val searchSuggestionHintBinding = SearchSuggestionsHintBinding.bind(inflated) - - searchSuggestionHintBinding.learnMore.setOnClickListener { - (activity as HomeActivity) - .openToBrowserAndLoad( - searchTermOrURL = SupportUtils.getGenericSumoURLForTopic( - SupportUtils.SumoTopic.SEARCH_SUGGESTION, - ), - newTab = true, - from = BrowserDirection.FromBookmarkSearchDialog, - ) - } - - searchSuggestionHintBinding.allow.setOnClickListener { - inflated.visibility = View.GONE - requireContext().settings().also { - it.shouldShowSearchSuggestionsInPrivate = true - it.showSearchSuggestionsInPrivateOnboardingFinished = true - } - } - - searchSuggestionHintBinding.dismiss.setOnClickListener { - inflated.visibility = View.GONE - requireContext().settings().also { - it.shouldShowSearchSuggestionsInPrivate = false - it.showSearchSuggestionsInPrivateOnboardingFinished = true - } - } - - searchSuggestionHintBinding.text.text = - getString(R.string.search_suggestions_onboarding_text, getString(R.string.app_name)) - - searchSuggestionHintBinding.title.text = - getString(R.string.search_suggestions_onboarding_title) - } - - binding.searchSuggestionsHintDivider.isVisible = false - binding.searchSuggestionsHint.isVisible = false - binding.searchSuggestionsHint.setOnInflateListener((stubListener)) - if (view.context.settings().accessibilityServicesEnabled) { - updateAccessibilityTraversalOrder() - } - - addVoiceSearchButton() - observeAwesomeBarState() - - consumeFrom(store) { - toolbarView.update(it) - awesomeBarView.update(it) - } - } - - private fun observeAwesomeBarState() = consumeFlow(store) { flow -> - flow.map { state -> state.query.isNotBlank() } - .distinctUntilChanged() - .collect { shouldShowAwesomebar -> - binding.awesomeBar.visibility = if (shouldShowAwesomebar) { - View.VISIBLE - } else { - View.INVISIBLE - } - } - } - - private fun updateAccessibilityTraversalOrder() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { - viewLifecycleOwner.lifecycleScope.launch { - binding.searchWrapper.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED) - } - } - } - - override fun onPause() { - super.onPause() - view?.hideKeyboard() - } - - override fun onDestroyView() { - super.onDestroyView() - - _binding = null - } - - /* - * This way of dismissing the keyboard is needed to smoothly dismiss the keyboard while the dialog - * is also dismissing. - */ - private fun hideDeviceKeyboard() { - // If the interactor/controller has handled a search event itself, it will hide the keyboard. - if (!dialogHandledAction) { - val imm = - requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - imm.hideSoftInputFromWindow(view?.windowToken, InputMethodManager.HIDE_IMPLICIT_ONLY) - } - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - hideDeviceKeyboard() - } - - override fun onBackPressed(): Boolean { - view?.hideKeyboard() - dismissAllowingStateLoss() - - return true - } - - private fun setupConstraints(view: View) { - if (view.context.settings().toolbarPosition == ToolbarPosition.BOTTOM) { - ConstraintSet().apply { - clone(binding.searchWrapper) - - clear(binding.toolbar.id, TOP) - connect(binding.toolbar.id, BOTTOM, PARENT_ID, BOTTOM) - - clear(binding.pillWrapper.id, BOTTOM) - connect(binding.pillWrapper.id, BOTTOM, binding.toolbar.id, TOP) - - clear(binding.awesomeBar.id, TOP) - clear(binding.awesomeBar.id, BOTTOM) - connect(binding.awesomeBar.id, TOP, binding.searchSuggestionsHint.id, BOTTOM) - connect(binding.awesomeBar.id, BOTTOM, binding.pillWrapper.id, TOP) - - clear(binding.searchSuggestionsHint.id, TOP) - clear(binding.searchSuggestionsHint.id, BOTTOM) - connect(binding.searchSuggestionsHint.id, TOP, PARENT_ID, TOP) - connect(binding.searchSuggestionsHint.id, BOTTOM, binding.searchHintBottomBarrier.id, TOP) - - applyTo(binding.searchWrapper) - } - } - } - - private val startVoiceSearchForResult = - registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val intent = result.data - intent?.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)?.first()?.also { - toolbarView.view.edit.updateUrl(url = it, shouldHighlight = true) - interactor.onTextChanged(it) - toolbarView.view.edit.focus() - } - } - } - - private fun addVoiceSearchButton() { - val shouldShowVoiceSearch = isSpeechAvailable() && - requireContext().settings().shouldShowVoiceSearch - - if (voiceSearchButtonAlreadyAdded || !shouldShowVoiceSearch) return - - toolbarView.view.addEditActionEnd( - BrowserToolbar.Button( - imageDrawable = AppCompatResources.getDrawable(requireContext(), R.drawable.ic_microphone)!!, - contentDescription = requireContext().getString(R.string.voice_search_content_description), - visible = { true }, - listener = ::launchVoiceSearch, - ), - ) - - voiceSearchButtonAlreadyAdded = true - } - - private fun launchVoiceSearch() { - // Note if a user disables speech while the app is on the search fragment - // the voice button will still be available and *will* cause a crash if tapped, - // since the `visible` call is only checked on create. In order to avoid extra complexity - // around such a small edge case, we make the button have no functionality in this case. - if (!isSpeechAvailable()) { return } - - speechIntent.apply { - putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) - putExtra(RecognizerIntent.EXTRA_PROMPT, requireContext().getString(R.string.voice_search_explainer)) - } - - startVoiceSearchForResult.launch(speechIntent) - } - - private fun isSpeechAvailable(): Boolean = speechIntent.resolveActivity(requireContext().packageManager) != null -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractor.kt deleted file mode 100644 index a0d71c956..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractor.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags -import org.mozilla.fenix.library.bookmarks.awesomebar.AwesomeBarInteractor -import org.mozilla.fenix.library.bookmarks.toolbar.ToolbarInteractor - -/** - * Interactor for the bookmark search - * Provides implementations for the AwesomeBarView and ToolbarView - */ -class BookmarkSearchDialogInteractor( - private val bookmarkSearchController: BookmarkSearchDialogController, -) : AwesomeBarInteractor, ToolbarInteractor { - - override fun onEditingCanceled() { - bookmarkSearchController.handleEditingCancelled() - } - - override fun onTextChanged(text: String) { - bookmarkSearchController.handleTextChanged(text) - } - - override fun onUrlTapped(url: String, flags: LoadUrlFlags) { - bookmarkSearchController.handleUrlTapped(url, flags) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStore.kt deleted file mode 100644 index 184503b3f..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStore.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import mozilla.components.lib.state.Action -import mozilla.components.lib.state.State -import mozilla.components.lib.state.Store - -/** - * The [Store] for holding the [BookmarkSearchFragmentState] and applying [BookmarkSearchFragmentAction]s. - */ -class BookmarkSearchFragmentStore( - initialState: BookmarkSearchFragmentState, -) : Store( - initialState, - ::bookmarkSearchStateReducer, -) - -/** - * The state for the Bookmark Search Screen - * - * @property query The current search query string - */ -data class BookmarkSearchFragmentState( - val query: String, -) : State - -fun createInitialBookmarkSearchFragmentState(): BookmarkSearchFragmentState { - return BookmarkSearchFragmentState(query = "") -} - -/** - * Actions to dispatch through the [BookmarkSearchFragmentStore] to modify [BookmarkSearchFragmentState] - * through the reducer. - */ -sealed class BookmarkSearchFragmentAction : Action { - data class UpdateQuery(val query: String) : BookmarkSearchFragmentAction() -} - -/** - * The [BookmarkSearchFragmentState] Reducer. - */ -private fun bookmarkSearchStateReducer( - state: BookmarkSearchFragmentState, - action: BookmarkSearchFragmentAction, -): BookmarkSearchFragmentState { - return when (action) { - is BookmarkSearchFragmentAction.UpdateQuery -> - state.copy(query = action.query) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarInteractor.kt deleted file mode 100644 index fef316b0c..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarInteractor.kt +++ /dev/null @@ -1,20 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks.awesomebar - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags - -/** - * Interface for the AwesomeBarView Interactor. This interface is implemented by objects that want - * to respond to user interaction on the AwesomebarView - */ -interface AwesomeBarInteractor { - - /** - * Called whenever a suggestion containing a URL is tapped - * @param url the url the suggestion was providing - */ - fun onUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarView.kt deleted file mode 100644 index c94a3bcb5..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarView.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks.awesomebar - -import androidx.appcompat.content.res.AppCompatResources.getDrawable -import mozilla.components.concept.engine.EngineSession -import mozilla.components.feature.awesomebar.provider.BookmarksStorageSuggestionProvider -import mozilla.components.feature.session.SessionUseCases -import org.mozilla.fenix.HomeActivity -import org.mozilla.fenix.R -import org.mozilla.fenix.browser.browsingmode.BrowsingMode -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.library.bookmarks.BookmarkSearchFragmentState - -/** - * View that contains and configures the BrowserAwesomeBar - */ -class AwesomeBarView( - activity: HomeActivity, - val interactor: AwesomeBarInteractor, - val view: AwesomeBarWrapper, -) { - private val bookmarksStorageSuggestionProvider: BookmarksStorageSuggestionProvider - - private val loadUrlUseCase = object : SessionUseCases.LoadUrlUseCase { - override fun invoke( - url: String, - flags: EngineSession.LoadUrlFlags, - additionalHeaders: Map?, - ) { - interactor.onUrlTapped(url, flags) - } - } - - init { - val components = activity.components - - val engineForSpeculativeConnects = when (activity.browsingModeManager.mode) { - BrowsingMode.Normal -> components.core.engine - BrowsingMode.Private -> null - } - - bookmarksStorageSuggestionProvider = - BookmarksStorageSuggestionProvider( - bookmarksStorage = components.core.bookmarksStorage, - loadUrlUseCase = loadUrlUseCase, - icons = components.core.icons, - indicatorIcon = getDrawable(activity, R.drawable.ic_search_results_bookmarks), - engine = engineForSpeculativeConnects, - showEditSuggestion = false, - ) - - view.addProviders(bookmarksStorageSuggestionProvider) - } - - fun update(state: BookmarkSearchFragmentState) { - view.onInputChanged(state.query) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarWrapper.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarWrapper.kt deleted file mode 100644 index a4079c967..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/awesomebar/AwesomeBarWrapper.kt +++ /dev/null @@ -1,104 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks.awesomebar - -import android.content.Context -import android.util.AttributeSet -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.AbstractComposeView -import mozilla.components.compose.browser.awesomebar.AwesomeBar -import mozilla.components.compose.browser.awesomebar.AwesomeBarDefaults -import mozilla.components.compose.browser.awesomebar.AwesomeBarOrientation -import mozilla.components.concept.awesomebar.AwesomeBar -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.theme.FirefoxTheme - -/** - * This wrapper wraps the `AwesomeBar()` composable and exposes it as a `View` and `concept-awesomebar` - * implementation to be integrated in the view hierarchy of [BookmarkSearchDialogFragment] until more parts - * of that screen have been refactored to use Jetpack Compose. - */ -class AwesomeBarWrapper @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0, -) : AbstractComposeView(context, attrs, defStyleAttr), AwesomeBar { - private val providers = mutableStateOf(emptyList()) - private val text = mutableStateOf("") - private var onEditSuggestionListener: ((String) -> Unit)? = null - private var onStopListener: (() -> Unit)? = null - - @Composable - override fun Content() { - if (providers.value.isEmpty()) { - return - } - - val orientation = if (context.settings().shouldUseBottomToolbar) { - AwesomeBarOrientation.BOTTOM - } else { - AwesomeBarOrientation.TOP - } - - FirefoxTheme { - AwesomeBar( - text = text.value, - providers = providers.value, - orientation = orientation, - colors = AwesomeBarDefaults.colors( - background = Color.Transparent, - title = FirefoxTheme.colors.textPrimary, - description = FirefoxTheme.colors.textSecondary, - autocompleteIcon = FirefoxTheme.colors.textSecondary, - ), - onSuggestionClicked = { suggestion -> - suggestion.onSuggestionClicked?.invoke() - onStopListener?.invoke() - }, - onAutoComplete = { suggestion -> - onEditSuggestionListener?.invoke(suggestion.editSuggestion!!) - }, - onScroll = { hideKeyboard() }, - profiler = context.components.core.engine.profiler, - ) - } - } - - override fun addProviders(vararg providers: AwesomeBar.SuggestionProvider) { - val newProviders = this.providers.value.toMutableList() - newProviders.addAll(providers) - this.providers.value = newProviders - } - - override fun containsProvider(provider: AwesomeBar.SuggestionProvider): Boolean { - return providers.value.any { current -> current.id == provider.id } - } - - override fun onInputChanged(text: String) { - this.text.value = text - } - - override fun removeAllProviders() { - providers.value = emptyList() - } - - override fun removeProviders(vararg providers: AwesomeBar.SuggestionProvider) { - val newProviders = this.providers.value.toMutableList() - newProviders.removeAll(providers) - this.providers.value = newProviders - } - - override fun setOnEditSuggestionListener(listener: (String) -> Unit) { - onEditSuggestionListener = listener - } - - override fun setOnStopListener(listener: () -> Unit) { - onStopListener = listener - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/toolbar/ToolbarView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/toolbar/ToolbarView.kt deleted file mode 100644 index 3c1d02eae..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/toolbar/ToolbarView.kt +++ /dev/null @@ -1,125 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks.toolbar - -import android.content.Context -import androidx.annotation.VisibleForTesting -import androidx.appcompat.content.res.AppCompatResources -import androidx.core.content.ContextCompat -import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.support.ktx.android.content.getColorFromAttr -import mozilla.components.support.ktx.android.content.res.resolveAttribute -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.R -import org.mozilla.fenix.library.bookmarks.BookmarkSearchFragmentState - -/** - * Interface for the Toolbar Interactor. This interface is implemented by objects that want - * to respond to user interaction on the [ToolbarView] - */ -interface ToolbarInteractor { - - /** - * Called when a user removes focus from the [ToolbarView] - */ - fun onEditingCanceled() - - /** - * Called whenever the text inside the [ToolbarView] changes - * @param text the current text displayed by [ToolbarView] - */ - fun onTextChanged(text: String) -} - -/** - * View that contains and configures the BrowserToolbar to only be used in its editing mode. - */ -@Suppress("LongParameterList") -class ToolbarView( - private val context: Context, - private val interactor: ToolbarInteractor, - private val isPrivate: Boolean, - val view: BrowserToolbar, -) { - - @VisibleForTesting - internal var isInitialized = false - - init { - view.apply { - editMode() - - background = AppCompatResources.getDrawable( - context, - context.theme.resolveAttribute(R.attr.layer1), - ) - - edit.hint = context.getString(R.string.bookmark_search) - - edit.colors = edit.colors.copy( - text = context.getColorFromAttr(R.attr.textPrimary), - hint = context.getColorFromAttr(R.attr.textSecondary), - suggestionBackground = ContextCompat.getColor( - context, - R.color.suggestion_highlight_color, - ), - clear = context.getColorFromAttr(R.attr.textPrimary), - ) - - edit.setUrlBackground( - AppCompatResources.getDrawable(context, R.drawable.search_url_background), - ) - - private = isPrivate - - setOnUrlCommitListener { - hideKeyboard() - - // We need to return false to not show display mode - false - } - - setDefaultIcon() - - setOnEditListener( - object : mozilla.components.concept.toolbar.Toolbar.OnEditListener { - override fun onCancelEditing(): Boolean { - interactor.onEditingCanceled() - // We need to return false to not show display mode - return false - } - - override fun onTextChanged(text: String) { - url = text - interactor.onTextChanged(text) - } - }, - ) - } - } - - fun update(state: BookmarkSearchFragmentState) { - if (!isInitialized) { - view.url = state.query - view.setSearchTerms(state.query) - - // We must trigger an onTextChanged so when search terms are set when transitioning to `editMode` - // we have the most up to date text - interactor.onTextChanged(view.url.toString()) - - view.editMode() - isInitialized = true - } - } - - private fun setDefaultIcon() { - val bookmarkSearchIcon = - AppCompatResources.getDrawable(context, R.drawable.ic_bookmarks_menu) - - bookmarkSearchIcon?.let { - view.edit.setIcon(bookmarkSearchIcon, context.getString(R.string.bookmark_search)) - } - } -} diff --git a/app/src/main/res/layout/fragment_bookmark_search_dialog.xml b/app/src/main/res/layout/fragment_bookmark_search_dialog.xml deleted file mode 100644 index 9a78b6853..000000000 --- a/app/src/main/res/layout/fragment_bookmark_search_dialog.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 700e9a514..bf081d363 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -382,19 +382,8 @@ - -

- - Unit = { }, - ): BookmarkSearchDialogController { - return BookmarkSearchDialogController( - activity = activity, - fragmentStore = store, - clearToolbarFocus = clearToolbarFocus, - ) - } -} diff --git a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractorTest.kt deleted file mode 100644 index 307c35438..000000000 --- a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchDialogInteractorTest.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import io.mockk.mockk -import io.mockk.verify -import kotlinx.coroutines.test.runTest -import org.junit.Before -import org.junit.Test - -class BookmarkSearchDialogInteractorTest { - - lateinit var searchController: BookmarkSearchDialogController - lateinit var interactor: BookmarkSearchDialogInteractor - - @Before - fun setup() { - searchController = mockk(relaxed = true) - interactor = BookmarkSearchDialogInteractor( - searchController, - ) - } - - @Test - fun onEditingCanceled() = runTest { - interactor.onEditingCanceled() - - verify { - searchController.handleEditingCancelled() - } - } - - @Test - fun onTextChanged() { - interactor.onTextChanged("test") - - verify { searchController.handleTextChanged("test") } - } - - @Test - fun onUrlTapped() { - interactor.onUrlTapped("test") - - verify { - searchController.handleUrlTapped("test") - } - } -} diff --git a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStoreTest.kt b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStoreTest.kt deleted file mode 100644 index 55b9cd8ba..000000000 --- a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchFragmentStoreTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.bookmarks - -import kotlinx.coroutines.test.runTest -import org.junit.Assert.assertEquals -import org.junit.Assert.assertNotSame -import org.junit.Test - -class BookmarkSearchFragmentStoreTest { - - @Test - fun `GIVEN createInitialBookmarkSearchFragmentState THEN query is empty`() { - val expected = BookmarkSearchFragmentState(query = "") - - assertEquals( - expected, - createInitialBookmarkSearchFragmentState(), - ) - } - - @Test - fun updateQuery() = runTest { - val initialState = BookmarkSearchFragmentState(query = "") - val store = BookmarkSearchFragmentStore(initialState) - val query = "test query" - - store.dispatch(BookmarkSearchFragmentAction.UpdateQuery(query)).join() - assertNotSame(initialState, store.state) - assertEquals(query, store.state.query) - } -} diff --git a/detekt-baseline.xml b/detekt-baseline.xml index ba9a630ad..095460896 100644 --- a/detekt-baseline.xml +++ b/detekt-baseline.xml @@ -83,9 +83,6 @@ UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentStore : Store UndocumentedPublicClass:BookmarkItemMenu.kt$BookmarkItemMenu UndocumentedPublicClass:BookmarkItemMenu.kt$BookmarkItemMenu$Item - UndocumentedPublicClass:BookmarkSearchController.kt$BookmarkSearchDialogController : BookmarkSearchController - UndocumentedPublicClass:BookmarkSearchDialogFragment.kt$BookmarkSearchDialogFragment : AppCompatDialogFragmentUserInteractionHandler - UndocumentedPublicClass:BookmarkSearchFragmentStore.kt$BookmarkSearchFragmentAction$UpdateQuery : BookmarkSearchFragmentAction UndocumentedPublicClass:BookmarkView.kt$BookmarkView : LibraryPageViewUserInteractionHandler UndocumentedPublicClass:BookmarksUseCase.kt$BookmarksUseCase$AddBookmarksUseCase UndocumentedPublicClass:BottomSpacerViewHolder.kt$BottomSpacerViewHolder : ViewHolder @@ -262,15 +259,6 @@ UndocumentedPublicClass:NoCollectionsMessageViewHolder.kt$NoCollectionsMessageViewHolder : ViewHolder UndocumentedPublicClass:NormalBrowserTrayList.kt$NormalBrowserTrayList : AbstractBrowserTrayList UndocumentedPublicClass:OnSharedPreferenceChangeListener.kt$OnSharedPreferenceChangeListener : OnSharedPreferenceChangeListenerDefaultLifecycleObserver - UndocumentedPublicClass:OnboardingFinishViewHolder.kt$OnboardingFinishViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingHeaderViewHolder.kt$OnboardingHeaderViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingManualSignInViewHolder.kt$OnboardingManualSignInViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingPrivacyNoticeViewHolder.kt$OnboardingPrivacyNoticeViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingRadioButton.kt$OnboardingRadioButton : AppCompatRadioButtonGroupableRadioButton - UndocumentedPublicClass:OnboardingSectionHeaderViewHolder.kt$OnboardingSectionHeaderViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingThemePickerViewHolder.kt$OnboardingThemePickerViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingToolbarPositionPickerViewHolder.kt$OnboardingToolbarPositionPickerViewHolder : ViewHolder - UndocumentedPublicClass:OnboardingTrackingProtectionViewHolder.kt$OnboardingTrackingProtectionViewHolder : ViewHolder UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Group : HistoryDB UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Metadata : HistoryDB UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Regular : HistoryDB @@ -492,7 +480,6 @@ UndocumentedPublicFunction:AddonPermissionDetailsBindingDelegate.kt$AddonPermissionDetailsBindingDelegate$fun bind(addon: Addon) UndocumentedPublicFunction:AppRequestInterceptor.kt$AppRequestInterceptor$fun setNavigationController(navController: NavController) UndocumentedPublicFunction:AppViewHolder.kt$AppViewHolder$fun bind(item: AppShareOption) - UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: BookmarkSearchFragmentState) UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: HistorySearchFragmentState) UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: SearchFragmentState) UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun updateSuggestionProvidersVisibility( state: SearchProviderState, ) @@ -519,10 +506,6 @@ UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleSelectionModeSwitch() UndocumentedPublicFunction:BookmarkFragmentStore.kt$operator fun BookmarkNode.contains(item: BookmarkNode): Boolean UndocumentedPublicFunction:BookmarkNodeViewHolder.kt$BookmarkNodeViewHolder$fun bind( item: BookmarkNode, mode: BookmarkFragmentState.Mode, payload: BookmarkPayload, ) - UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleEditingCancelled() - UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleTextChanged(text: String) - UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) - UndocumentedPublicFunction:BookmarkSearchFragmentStore.kt$fun createInitialBookmarkSearchFragmentState(): BookmarkSearchFragmentState UndocumentedPublicFunction:BookmarkView.kt$BookmarkView$fun update(state: BookmarkFragmentState) UndocumentedPublicFunction:BrowserAnimator.kt$BrowserAnimator$fun beginAnimateInIfNecessary() UndocumentedPublicFunction:BrowserAnimator.kt$BrowserAnimator.Companion$fun getToolbarNavOptions(context: Context): NavOptions @@ -707,9 +690,6 @@ UndocumentedPublicFunction:NavController.kt$fun NavController.navigateSafe( @IdRes resId: Int, directions: NavDirections, ) UndocumentedPublicFunction:NimbusBranchesView.kt$NimbusBranchesView$fun update(state: NimbusBranchesState) UndocumentedPublicFunction:NotificationManager.kt$NotificationManager$fun showReceivedTabs(context: Context, device: Device?, tabs: List<TabData>) - UndocumentedPublicFunction:OnboardingRadioButton.kt$OnboardingRadioButton$fun addIllustration(illustration: ImageView) - UndocumentedPublicFunction:OnboardingRadioButton.kt$OnboardingRadioButton$fun onClickListener(listener: () -> Unit) - UndocumentedPublicFunction:OnboardingSectionHeaderViewHolder.kt$OnboardingSectionHeaderViewHolder$fun bind(labelBuilder: (Context) -> String) UndocumentedPublicFunction:PagerIndicator.kt$fun Context.dpToPx(value: Float): Int UndocumentedPublicFunction:PagerIndicator.kt$fun View.dpToPx(value: Float): Int UndocumentedPublicFunction:PasswordRevealHelper.kt$fun togglePasswordReveal(passwordText: TextView, revealPasswordButton: ImageButton) @@ -793,7 +773,6 @@ UndocumentedPublicFunction:SessionControlAdapter.kt$AdapterItem$open fun contentsSameAs(other: AdapterItem) UndocumentedPublicFunction:SessionControlView.kt$SessionControlView$fun update(state: AppState, shouldReportMetrics: Boolean = false) UndocumentedPublicFunction:Settings.kt$Settings$@VisibleForTesting(otherwise = PRIVATE) fun setStrictETP() - UndocumentedPublicFunction:Settings.kt$Settings$fun addSearchWidgetInstalled(count: Int) UndocumentedPublicFunction:Settings.kt$Settings$fun amoCollectionOverrideConfigured(): Boolean UndocumentedPublicFunction:Settings.kt$Settings$fun getDeleteDataOnQuit(type: DeleteBrowsingDataOnQuitType): Boolean UndocumentedPublicFunction:Settings.kt$Settings$fun getSitePermissionsCustomSettingsRules(): SitePermissionsRules @@ -875,7 +854,6 @@ UndocumentedPublicFunction:TabLayout.kt$fun TabLayout.isPrivateModeSelected(): Boolean UndocumentedPublicFunction:TabLayout.kt$fun TabLayout.isSyncedModeSelected(): Boolean UndocumentedPublicFunction:TabLayoutMediator.kt$TabLayoutMediator$fun selectTabAtPosition(position: Int) - UndocumentedPublicFunction:TabPreview.kt$TabPreview$fun loadPreviewThumbnail(thumbnailId: String) UndocumentedPublicFunction:TabSessionState.kt$fun TabSessionState.isActive(maxActiveTime: Long): Boolean UndocumentedPublicFunction:TabsTrayStore.kt$Page.Companion$fun positionToPage(position: Int): Page UndocumentedPublicFunction:ThemeManager.kt$ThemeManager$fun applyStatusBarTheme(window: Window, context: Context) @@ -885,7 +863,6 @@ UndocumentedPublicFunction:ToolbarIntegration.kt$ToolbarIntegration$fun invalidateMenu() UndocumentedPublicFunction:ToolbarPopupWindow.kt$ToolbarPopupWindow$fun show( view: WeakReference<View>, customTabId: String? = null, handlePasteAndGo: (String) -> Unit, handlePaste: (String) -> Unit, copyVisible: Boolean = true, ) UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(searchState: SearchFragmentState) - UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(state: BookmarkSearchFragmentState) UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(state: HistorySearchFragmentState) UndocumentedPublicFunction:TopPlaceholderViewHolder.kt$TopPlaceholderViewHolder$fun bind() UndocumentedPublicFunction:TopSiteItemViewHolder.kt$TopSiteItemViewHolder$fun bind(topSite: TopSite, position: Int) From 46b27b6ad9224be8fd5e50a69de15ae84dad7d49 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Tue, 26 Sep 2023 11:59:43 -0400 Subject: [PATCH 021/238] Bug 1849073 - Part 2: Remove the History Search Dialog --- .../org/mozilla/fenix/BrowserDirection.kt | 1 - .../java/org/mozilla/fenix/HomeActivity.kt | 2 - .../library/history/HistoryController.kt | 13 +- .../fenix/library/history/HistoryFragment.kt | 1 - .../history/HistorySearchController.kt | 47 --- .../history/HistorySearchDialogFragment.kt | 314 ------------------ .../history/HistorySearchDialogInteractor.kt | 30 -- .../history/HistorySearchFragmentStore.kt | 53 --- .../awesomebar/AwesomeBarInteractor.kt | 20 -- .../history/awesomebar/AwesomeBarView.kt | 61 ---- .../history/awesomebar/AwesomeBarWrapper.kt | 106 ------ .../library/history/toolbar/ToolbarView.kt | 124 ------- .../layout/fragment_history_search_dialog.xml | 111 ------- app/src/main/res/navigation/nav_graph.xml | 12 - .../library/history/HistoryControllerTest.kt | 5 +- .../history/HistorySearchControllerTest.kt | 103 ------ .../HistorySearchDialogInteractorTest.kt | 50 --- .../history/HistorySearchFragmentStoreTest.kt | 39 --- .../DefaultReviewQualityCheckServiceTest.kt | 2 + 19 files changed, 7 insertions(+), 1087 deletions(-) delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/HistorySearchController.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogFragment.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractor.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/HistorySearchFragmentStore.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarInteractor.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarView.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarWrapper.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/library/history/toolbar/ToolbarView.kt delete mode 100644 app/src/main/res/layout/fragment_history_search_dialog.xml delete mode 100644 app/src/test/java/org/mozilla/fenix/library/history/HistorySearchControllerTest.kt delete mode 100644 app/src/test/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractorTest.kt delete mode 100644 app/src/test/java/org/mozilla/fenix/library/history/HistorySearchFragmentStoreTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt index 9cc7ad3a1..d51ef204f 100644 --- a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +++ b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt @@ -21,7 +21,6 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromSettings(R.id.settingsFragment), FromBookmarks(R.id.bookmarkFragment), FromHistory(R.id.historyFragment), - FromHistorySearchDialog(R.id.historySearchDialogFragment), FromHistoryMetadataGroup(R.id.historyMetadataGroupFragment), FromTrackingProtectionExceptions(R.id.trackingProtectionExceptionsFragment), FromAbout(R.id.aboutFragment), diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 3a1fce6f9..737ebb4a9 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -999,8 +999,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { BookmarkFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromHistory -> HistoryFragmentDirections.actionGlobalBrowser(customTabSessionId) - BrowserDirection.FromHistorySearchDialog -> - SearchDialogFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromHistoryMetadataGroup -> HistoryMetadataGroupFragmentDirections.actionGlobalBrowser(customTabSessionId) BrowserDirection.FromTrackingProtectionExceptions -> diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryController.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryController.kt index 1f8824bd1..2464d3004 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryController.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryController.kt @@ -24,7 +24,6 @@ import org.mozilla.fenix.components.history.DefaultPagedHistoryProvider import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.navigateSafe import org.mozilla.fenix.library.history.HistoryFragment.DeleteConfirmationDialogFragment -import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.GleanMetrics.History as GleanHistory @Suppress("TooManyFunctions") @@ -71,7 +70,6 @@ class DefaultHistoryController( delete: (Set) -> suspend (context: Context) -> Unit, ) -> Unit, private val syncHistory: suspend () -> Unit, - private val settings: Settings, ) : HistoryController { override fun handleOpen(item: History) { @@ -117,13 +115,10 @@ class DefaultHistoryController( } override fun handleSearch() { - val directions = if (settings.showUnifiedSearchFeature) { - HistoryFragmentDirections.actionGlobalSearchDialog(null) - } else { - HistoryFragmentDirections.actionGlobalHistorySearchDialog() - } - - navController.navigateSafe(R.id.historyFragment, directions) + navController.navigateSafe( + R.id.historyFragment, + HistoryFragmentDirections.actionGlobalSearchDialog(sessionId = null), + ) } override fun handleDeleteTimeRange() { diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index e037c9e88..59f74471c 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -156,7 +156,6 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandler, deleteSnackbar = ::deleteSnackbar, onTimeFrameDeleted = ::onTimeFrameDeleted, syncHistory = ::syncHistory, - settings = requireContext().components.settings, ) historyInteractor = DefaultHistoryInteractor( historyController, diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchController.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchController.kt deleted file mode 100644 index 347bfb0bf..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchController.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags -import mozilla.components.service.glean.private.NoExtras -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.GleanMetrics.History -import org.mozilla.fenix.HomeActivity - -/** - * An interface that handles the view manipulation of the History Search, triggered by the Interactor - */ -interface HistorySearchController { - fun handleEditingCancelled() - fun handleTextChanged(text: String) - fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) -} - -class HistorySearchDialogController( - private val activity: HomeActivity, - private val fragmentStore: HistorySearchFragmentStore, - private val clearToolbarFocus: () -> Unit, -) : HistorySearchController { - - override fun handleEditingCancelled() { - clearToolbarFocus() - } - - override fun handleTextChanged(text: String) { - fragmentStore.dispatch(HistorySearchFragmentAction.UpdateQuery(text)) - } - - override fun handleUrlTapped(url: String, flags: LoadUrlFlags) { - History.searchResultTapped.record(NoExtras()) - clearToolbarFocus() - - activity.openToBrowserAndLoad( - searchTermOrURL = url, - newTab = true, - from = BrowserDirection.FromHistorySearchDialog, - flags = flags, - ) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogFragment.kt deleted file mode 100644 index 4c524be17..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogFragment.kt +++ /dev/null @@ -1,314 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import android.annotation.SuppressLint -import android.app.Activity -import android.app.Dialog -import android.content.Context -import android.content.DialogInterface -import android.content.Intent -import android.os.Build -import android.os.Bundle -import android.speech.RecognizerIntent -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.ViewStub -import android.view.accessibility.AccessibilityEvent -import android.view.inputmethod.InputMethodManager -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatDialogFragment -import androidx.appcompat.content.res.AppCompatResources -import androidx.constraintlayout.widget.ConstraintProperties.BOTTOM -import androidx.constraintlayout.widget.ConstraintProperties.PARENT_ID -import androidx.constraintlayout.widget.ConstraintProperties.TOP -import androidx.constraintlayout.widget.ConstraintSet -import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope -import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.launch -import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.lib.state.ext.consumeFlow -import mozilla.components.lib.state.ext.consumeFrom -import mozilla.components.support.base.feature.UserInteractionHandler -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.HomeActivity -import org.mozilla.fenix.R -import org.mozilla.fenix.components.toolbar.ToolbarPosition -import org.mozilla.fenix.databinding.FragmentHistorySearchDialogBinding -import org.mozilla.fenix.databinding.SearchSuggestionsHintBinding -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.library.history.awesomebar.AwesomeBarView -import org.mozilla.fenix.library.history.toolbar.ToolbarView -import org.mozilla.fenix.settings.SupportUtils - -@Suppress("TooManyFunctions", "LargeClass") -class HistorySearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler { - private var _binding: FragmentHistorySearchDialogBinding? = null - private val binding get() = _binding!! - - private lateinit var interactor: HistorySearchDialogInteractor - private lateinit var store: HistorySearchFragmentStore - private lateinit var toolbarView: ToolbarView - private lateinit var awesomeBarView: AwesomeBarView - - private val speechIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) - private var voiceSearchButtonAlreadyAdded = false - private var dialogHandledAction = false - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setStyle(STYLE_NO_TITLE, R.style.SearchDialogStyle) - } - - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - return object : Dialog(requireContext(), this.theme) { - @Deprecated("Deprecated in Java") - override fun onBackPressed() { - this@HistorySearchDialogFragment.onBackPressed() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle?, - ): View { - _binding = FragmentHistorySearchDialogBinding.inflate(inflater, container, false) - val activity = requireActivity() as HomeActivity - - store = HistorySearchFragmentStore( - createInitialHistorySearchFragmentState(), - ) - - interactor = HistorySearchDialogInteractor( - HistorySearchDialogController( - activity = activity, - fragmentStore = store, - clearToolbarFocus = { - dialogHandledAction = true - toolbarView.view.hideKeyboard() - toolbarView.view.clearFocus() - }, - ), - ) - - toolbarView = ToolbarView( - context = requireContext(), - interactor = interactor, - isPrivate = false, - view = binding.toolbar, - ) - - val awesomeBar = binding.awesomeBar - - awesomeBarView = AwesomeBarView( - activity, - interactor, - awesomeBar, - ) - - awesomeBarView.view.setOnEditSuggestionListener(toolbarView.view::setSearchTerms) - - return binding.root - } - - @SuppressLint("ClickableViewAccessibility") - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - setupConstraints(view) - - binding.searchWrapper.setOnTouchListener { _, _ -> - dismissAllowingStateLoss() - true - } - val stubListener = ViewStub.OnInflateListener { _, inflated -> - val searchSuggestionHintBinding = SearchSuggestionsHintBinding.bind(inflated) - - searchSuggestionHintBinding.learnMore.setOnClickListener { - (activity as HomeActivity) - .openToBrowserAndLoad( - searchTermOrURL = SupportUtils.getGenericSumoURLForTopic( - SupportUtils.SumoTopic.SEARCH_SUGGESTION, - ), - newTab = true, - from = BrowserDirection.FromHistorySearchDialog, - ) - } - - searchSuggestionHintBinding.allow.setOnClickListener { - inflated.visibility = View.GONE - requireContext().settings().also { - it.shouldShowSearchSuggestionsInPrivate = true - it.showSearchSuggestionsInPrivateOnboardingFinished = true - } - } - - searchSuggestionHintBinding.dismiss.setOnClickListener { - inflated.visibility = View.GONE - requireContext().settings().also { - it.shouldShowSearchSuggestionsInPrivate = false - it.showSearchSuggestionsInPrivateOnboardingFinished = true - } - } - - searchSuggestionHintBinding.text.text = - getString(R.string.search_suggestions_onboarding_text, getString(R.string.app_name)) - - searchSuggestionHintBinding.title.text = - getString(R.string.search_suggestions_onboarding_title) - } - - binding.searchSuggestionsHintDivider.isVisible = false - binding.searchSuggestionsHint.isVisible = false - binding.searchSuggestionsHint.setOnInflateListener((stubListener)) - if (view.context.settings().accessibilityServicesEnabled) { - updateAccessibilityTraversalOrder() - } - - addVoiceSearchButton() - observeAwesomeBarState() - - consumeFrom(store) { - toolbarView.update(it) - awesomeBarView.update(it) - } - } - - private fun observeAwesomeBarState() = consumeFlow(store) { flow -> - flow.map { state -> state.query.isNotBlank() } - .distinctUntilChanged() - .collect { shouldShowAwesomebar -> - binding.awesomeBar.visibility = if (shouldShowAwesomebar) { - View.VISIBLE - } else { - View.INVISIBLE - } - } - } - - private fun updateAccessibilityTraversalOrder() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { - viewLifecycleOwner.lifecycleScope.launch { - binding.searchWrapper.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED) - } - } - } - - override fun onPause() { - super.onPause() - view?.hideKeyboard() - } - - override fun onDestroyView() { - super.onDestroyView() - - _binding = null - } - - /* - * This way of dismissing the keyboard is needed to smoothly dismiss the keyboard while the dialog - * is also dismissing. - */ - private fun hideDeviceKeyboard() { - // If the interactor/controller has handled a search event itself, it will hide the keyboard. - if (!dialogHandledAction) { - val imm = - requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - imm.hideSoftInputFromWindow(view?.windowToken, InputMethodManager.HIDE_IMPLICIT_ONLY) - } - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - hideDeviceKeyboard() - } - - override fun onBackPressed(): Boolean { - view?.hideKeyboard() - dismissAllowingStateLoss() - - return true - } - - private fun setupConstraints(view: View) { - if (view.context.settings().toolbarPosition == ToolbarPosition.BOTTOM) { - ConstraintSet().apply { - clone(binding.searchWrapper) - - clear(binding.toolbar.id, TOP) - connect(binding.toolbar.id, BOTTOM, PARENT_ID, BOTTOM) - - clear(binding.pillWrapper.id, BOTTOM) - connect(binding.pillWrapper.id, BOTTOM, binding.toolbar.id, TOP) - - clear(binding.awesomeBar.id, TOP) - clear(binding.awesomeBar.id, BOTTOM) - connect(binding.awesomeBar.id, TOP, binding.searchSuggestionsHint.id, BOTTOM) - connect(binding.awesomeBar.id, BOTTOM, binding.pillWrapper.id, TOP) - - clear(binding.searchSuggestionsHint.id, TOP) - clear(binding.searchSuggestionsHint.id, BOTTOM) - connect(binding.searchSuggestionsHint.id, TOP, PARENT_ID, TOP) - connect(binding.searchSuggestionsHint.id, BOTTOM, binding.searchHintBottomBarrier.id, TOP) - - applyTo(binding.searchWrapper) - } - } - } - - private val startVoiceSearchForResult = - registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val intent = result.data - intent?.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)?.first()?.also { - toolbarView.view.edit.updateUrl(url = it, shouldHighlight = true) - interactor.onTextChanged(it) - toolbarView.view.edit.focus() - } - } - } - - private fun addVoiceSearchButton() { - val shouldShowVoiceSearch = isSpeechAvailable() && - requireContext().settings().shouldShowVoiceSearch - - if (voiceSearchButtonAlreadyAdded || !shouldShowVoiceSearch) return - - toolbarView.view.addEditActionEnd( - BrowserToolbar.Button( - imageDrawable = AppCompatResources.getDrawable(requireContext(), R.drawable.ic_microphone)!!, - contentDescription = requireContext().getString(R.string.voice_search_content_description), - visible = { true }, - listener = ::launchVoiceSearch, - ), - ) - - voiceSearchButtonAlreadyAdded = true - } - - private fun launchVoiceSearch() { - // Note if a user disables speech while the app is on the search fragment - // the voice button will still be available and *will* cause a crash if tapped, - // since the `visible` call is only checked on create. In order to avoid extra complexity - // around such a small edge case, we make the button have no functionality in this case. - if (!isSpeechAvailable()) { return } - - speechIntent.apply { - putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) - putExtra(RecognizerIntent.EXTRA_PROMPT, requireContext().getString(R.string.voice_search_explainer)) - } - - startVoiceSearchForResult.launch(speechIntent) - } - - private fun isSpeechAvailable(): Boolean = speechIntent.resolveActivity(requireContext().packageManager) != null -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractor.kt deleted file mode 100644 index 8c95e13f5..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractor.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags -import org.mozilla.fenix.library.history.awesomebar.AwesomeBarInteractor -import org.mozilla.fenix.library.history.toolbar.ToolbarInteractor - -/** - * Interactor for the history search - * Provides implementations for the AwesomeBarView and ToolbarView - */ -class HistorySearchDialogInteractor( - private val historySearchController: HistorySearchDialogController, -) : AwesomeBarInteractor, ToolbarInteractor { - - override fun onEditingCanceled() { - historySearchController.handleEditingCancelled() - } - - override fun onTextChanged(text: String) { - historySearchController.handleTextChanged(text) - } - - override fun onUrlTapped(url: String, flags: LoadUrlFlags) { - historySearchController.handleUrlTapped(url, flags) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchFragmentStore.kt deleted file mode 100644 index 9086f9beb..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistorySearchFragmentStore.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import mozilla.components.lib.state.Action -import mozilla.components.lib.state.State -import mozilla.components.lib.state.Store - -/** - * The [Store] for holding the [HistorySearchFragmentState] and applying [HistorySearchFragmentAction]s. - */ -class HistorySearchFragmentStore( - initialState: HistorySearchFragmentState, -) : Store( - initialState, - ::historySearchStateReducer, -) - -/** - * The state for the History Search Screen - * - * @property query The current search query string - */ -data class HistorySearchFragmentState( - val query: String, -) : State - -fun createInitialHistorySearchFragmentState(): HistorySearchFragmentState { - return HistorySearchFragmentState(query = "") -} - -/** - * Actions to dispatch through the [HistorySearchFragmentStore] to modify [HistorySearchFragmentState] - * through the reducer. - */ -sealed class HistorySearchFragmentAction : Action { - data class UpdateQuery(val query: String) : HistorySearchFragmentAction() -} - -/** - * The [HistorySearchFragmentState] Reducer. - */ -private fun historySearchStateReducer( - state: HistorySearchFragmentState, - action: HistorySearchFragmentAction, -): HistorySearchFragmentState { - return when (action) { - is HistorySearchFragmentAction.UpdateQuery -> - state.copy(query = action.query) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarInteractor.kt deleted file mode 100644 index 1aa1819d5..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarInteractor.kt +++ /dev/null @@ -1,20 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history.awesomebar - -import mozilla.components.concept.engine.EngineSession.LoadUrlFlags - -/** - * Interface for the AwesomeBarView Interactor. This interface is implemented by objects that want - * to respond to user interaction on the AwesomebarView - */ -interface AwesomeBarInteractor { - - /** - * Called whenever a suggestion containing a URL is tapped - * @param url the url the suggestion was providing - */ - fun onUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarView.kt deleted file mode 100644 index 02dfc58d2..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarView.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history.awesomebar - -import mozilla.components.concept.engine.EngineSession -import mozilla.components.feature.awesomebar.provider.CombinedHistorySuggestionProvider -import mozilla.components.feature.session.SessionUseCases -import org.mozilla.fenix.HomeActivity -import org.mozilla.fenix.browser.browsingmode.BrowsingMode -import org.mozilla.fenix.components.Core.Companion.METADATA_SHORTCUT_SUGGESTION_LIMIT -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.library.history.HistorySearchFragmentState - -/** - * View that contains and configures the BrowserAwesomeBar - */ -class AwesomeBarView( - activity: HomeActivity, - val interactor: AwesomeBarInteractor, - val view: AwesomeBarWrapper, -) { - private val combinedHistoryProvider: CombinedHistorySuggestionProvider - - private val loadUrlUseCase = object : SessionUseCases.LoadUrlUseCase { - override fun invoke( - url: String, - flags: EngineSession.LoadUrlFlags, - additionalHeaders: Map?, - ) { - interactor.onUrlTapped(url, flags) - } - } - - init { - val components = activity.components - - val engineForSpeculativeConnects = when (activity.browsingModeManager.mode) { - BrowsingMode.Normal -> components.core.engine - BrowsingMode.Private -> null - } - - combinedHistoryProvider = - CombinedHistorySuggestionProvider( - historyStorage = components.core.historyStorage, - historyMetadataStorage = components.core.historyStorage, - loadUrlUseCase = loadUrlUseCase, - icons = components.core.icons, - engine = engineForSpeculativeConnects, - maxNumberOfSuggestions = METADATA_SHORTCUT_SUGGESTION_LIMIT, - showEditSuggestion = false, - ) - - view.addProviders(combinedHistoryProvider) - } - - fun update(state: HistorySearchFragmentState) { - view.onInputChanged(state.query) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarWrapper.kt b/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarWrapper.kt deleted file mode 100644 index 6d9fd2f9a..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/awesomebar/AwesomeBarWrapper.kt +++ /dev/null @@ -1,106 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history.awesomebar - -import android.content.Context -import android.util.AttributeSet -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.AbstractComposeView -import mozilla.components.compose.browser.awesomebar.AwesomeBar -import mozilla.components.compose.browser.awesomebar.AwesomeBarDefaults -import mozilla.components.compose.browser.awesomebar.AwesomeBarOrientation -import mozilla.components.concept.awesomebar.AwesomeBar -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.R -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.theme.FirefoxTheme -import org.mozilla.fenix.theme.ThemeManager - -/** - * This wrapper wraps the `AwesomeBar()` composable and exposes it as a `View` and `concept-awesomebar` - * implementation to be integrated in the view hierarchy of [HistorySearchDialogFragment] until more parts - * of that screen have been refactored to use Jetpack Compose. - */ -class AwesomeBarWrapper @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0, -) : AbstractComposeView(context, attrs, defStyleAttr), AwesomeBar { - private val providers = mutableStateOf(emptyList()) - private val text = mutableStateOf("") - private var onEditSuggestionListener: ((String) -> Unit)? = null - private var onStopListener: (() -> Unit)? = null - - @Composable - override fun Content() { - if (providers.value.isEmpty()) { - return - } - - val orientation = if (context.settings().shouldUseBottomToolbar) { - AwesomeBarOrientation.BOTTOM - } else { - AwesomeBarOrientation.TOP - } - - FirefoxTheme { - AwesomeBar( - text = text.value, - providers = providers.value, - orientation = orientation, - colors = AwesomeBarDefaults.colors( - background = Color.Transparent, - title = ThemeManager.resolveAttributeColor(R.attr.textPrimary), - description = ThemeManager.resolveAttributeColor(R.attr.textSecondary), - autocompleteIcon = ThemeManager.resolveAttributeColor(R.attr.textSecondary), - ), - onSuggestionClicked = { suggestion -> - suggestion.onSuggestionClicked?.invoke() - onStopListener?.invoke() - }, - onAutoComplete = { suggestion -> - onEditSuggestionListener?.invoke(suggestion.editSuggestion!!) - }, - onScroll = { hideKeyboard() }, - profiler = context.components.core.engine.profiler, - ) - } - } - - override fun addProviders(vararg providers: AwesomeBar.SuggestionProvider) { - val newProviders = this.providers.value.toMutableList() - newProviders.addAll(providers) - this.providers.value = newProviders - } - - override fun containsProvider(provider: AwesomeBar.SuggestionProvider): Boolean { - return providers.value.any { current -> current.id == provider.id } - } - - override fun onInputChanged(text: String) { - this.text.value = text - } - - override fun removeAllProviders() { - providers.value = emptyList() - } - - override fun removeProviders(vararg providers: AwesomeBar.SuggestionProvider) { - val newProviders = this.providers.value.toMutableList() - newProviders.removeAll(providers) - this.providers.value = newProviders - } - - override fun setOnEditSuggestionListener(listener: (String) -> Unit) { - onEditSuggestionListener = listener - } - - override fun setOnStopListener(listener: () -> Unit) { - onStopListener = listener - } -} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/toolbar/ToolbarView.kt b/app/src/main/java/org/mozilla/fenix/library/history/toolbar/ToolbarView.kt deleted file mode 100644 index 1b7a80779..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/history/toolbar/ToolbarView.kt +++ /dev/null @@ -1,124 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history.toolbar - -import android.content.Context -import androidx.annotation.VisibleForTesting -import androidx.appcompat.content.res.AppCompatResources -import androidx.core.content.ContextCompat -import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.support.ktx.android.content.getColorFromAttr -import mozilla.components.support.ktx.android.content.res.resolveAttribute -import mozilla.components.support.ktx.android.view.hideKeyboard -import org.mozilla.fenix.R -import org.mozilla.fenix.library.history.HistorySearchFragmentState - -/** - * Interface for the Toolbar Interactor. This interface is implemented by objects that want - * to respond to user interaction on the [ToolbarView] - */ -interface ToolbarInteractor { - - /** - * Called when a user removes focus from the [ToolbarView] - */ - fun onEditingCanceled() - - /** - * Called whenever the text inside the [ToolbarView] changes - * @param text the current text displayed by [ToolbarView] - */ - fun onTextChanged(text: String) -} - -/** - * View that contains and configures the BrowserToolbar to only be used in its editing mode. - */ -@Suppress("LongParameterList") -class ToolbarView( - private val context: Context, - private val interactor: ToolbarInteractor, - private val isPrivate: Boolean, - val view: BrowserToolbar, -) { - - @VisibleForTesting - internal var isInitialized = false - - init { - view.apply { - editMode() - - background = AppCompatResources.getDrawable( - context, - context.theme.resolveAttribute(R.attr.layer1), - ) - - edit.hint = context.getString(R.string.history_search_1) - - edit.colors = edit.colors.copy( - text = context.getColorFromAttr(R.attr.textPrimary), - hint = context.getColorFromAttr(R.attr.textSecondary), - suggestionBackground = ContextCompat.getColor( - context, - R.color.suggestion_highlight_color, - ), - clear = context.getColorFromAttr(R.attr.textPrimary), - ) - - edit.setUrlBackground( - AppCompatResources.getDrawable(context, R.drawable.search_url_background), - ) - - private = isPrivate - - setOnUrlCommitListener { - hideKeyboard() - - // We need to return false to not show display mode - false - } - - setDefaultIcon() - - setOnEditListener( - object : mozilla.components.concept.toolbar.Toolbar.OnEditListener { - override fun onCancelEditing(): Boolean { - interactor.onEditingCanceled() - // We need to return false to not show display mode - return false - } - - override fun onTextChanged(text: String) { - url = text - interactor.onTextChanged(text) - } - }, - ) - } - } - - fun update(state: HistorySearchFragmentState) { - if (!isInitialized) { - view.url = state.query - view.setSearchTerms(state.query) - - // We must trigger an onTextChanged so when search terms are set when transitioning to `editMode` - // we have the most up to date text - interactor.onTextChanged(view.url.toString()) - - view.editMode() - isInitialized = true - } - } - - private fun setDefaultIcon() { - val historySearchIcon = AppCompatResources.getDrawable(context, R.drawable.ic_history) - - historySearchIcon?.let { - view.edit.setIcon(historySearchIcon, context.getString(R.string.history_search_1)) - } - } -} diff --git a/app/src/main/res/layout/fragment_history_search_dialog.xml b/app/src/main/res/layout/fragment_history_search_dialog.xml deleted file mode 100644 index 21fa8e090..000000000 --- a/app/src/main/res/layout/fragment_history_search_dialog.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index bf081d363..22347f9f1 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -335,20 +335,8 @@ android:name="org.mozilla.fenix.library.history.HistoryFragment" android:label="@string/library_history" tools:layout="@layout/fragment_history"> - - - - - diff --git a/app/src/test/java/org/mozilla/fenix/library/history/HistoryControllerTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/HistoryControllerTest.kt index a00c729de..f75f22b0e 100644 --- a/app/src/test/java/org/mozilla/fenix/library/history/HistoryControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/history/HistoryControllerTest.kt @@ -30,7 +30,6 @@ import org.mozilla.fenix.components.AppStore import org.mozilla.fenix.components.history.DefaultPagedHistoryProvider import org.mozilla.fenix.ext.navigateSafe import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -import org.mozilla.fenix.utils.Settings @RunWith(FenixRobolectricTestRunner::class) class HistoryControllerTest { @@ -56,7 +55,6 @@ class HistoryControllerTest { private val state: HistoryFragmentState = mockk(relaxed = true) private val navController: NavController = mockk(relaxed = true) private val historyProvider: DefaultPagedHistoryProvider = mockk(relaxed = true) - private val settings: Settings = mockk(relaxed = true) @Before fun setUp() { @@ -146,7 +144,7 @@ class HistoryControllerTest { verify { navController.navigateSafe( R.id.historyFragment, - HistoryFragmentDirections.actionGlobalHistorySearchDialog(), + HistoryFragmentDirections.actionGlobalSearchDialog(sessionId = null), ) } } @@ -269,7 +267,6 @@ class HistoryControllerTest { invalidateOptionsMenu, { items, _, _ -> deleteHistoryItems.invoke(items) }, syncHistory, - settings, ) } } diff --git a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchControllerTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchControllerTest.kt deleted file mode 100644 index cbd1ee862..000000000 --- a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchControllerTest.kt +++ /dev/null @@ -1,103 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import io.mockk.MockKAnnotations -import io.mockk.impl.annotations.MockK -import io.mockk.verify -import kotlinx.coroutines.test.runTest -import mozilla.components.concept.engine.EngineSession -import mozilla.components.support.test.robolectric.testContext -import mozilla.telemetry.glean.testing.GleanTestRule -import org.junit.Assert.assertNotNull -import org.junit.Assert.assertNull -import org.junit.Assert.assertTrue -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.BrowserDirection -import org.mozilla.fenix.GleanMetrics.History -import org.mozilla.fenix.HomeActivity -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner - -@RunWith(FenixRobolectricTestRunner::class) -class HistorySearchControllerTest { - - @get:Rule - val gleanTestRule = GleanTestRule(testContext) - - @MockK(relaxed = true) - private lateinit var activity: HomeActivity - - @MockK(relaxed = true) - private lateinit var store: HistorySearchFragmentStore - - @Before - fun setUp() { - MockKAnnotations.init(this) - } - - @Test - fun `WHEN editing is cancelled THEN clearToolbarFocus is called`() = runTest { - var clearToolbarFocusInvoked = false - createController( - clearToolbarFocus = { - clearToolbarFocusInvoked = true - }, - ).handleEditingCancelled() - - assertTrue(clearToolbarFocusInvoked) - } - - @Test - fun `WHEN text changed THEN update query action is dispatched`() { - val text = "fenix" - - createController().handleTextChanged(text) - - verify { store.dispatch(HistorySearchFragmentAction.UpdateQuery(text)) } - } - - @Test - fun `WHEN text is changed to empty THEN update query action is dispatched`() { - val text = "" - - createController().handleTextChanged(text) - - verify { store.dispatch(HistorySearchFragmentAction.UpdateQuery(text)) } - } - - @Test - fun `WHEN url is tapped THEN openToBrowserAndLoad is called`() { - val url = "https://www.google.com/" - val flags = EngineSession.LoadUrlFlags.none() - assertNull(History.searchResultTapped.testGetValue()) - - createController().handleUrlTapped(url, flags) - createController().handleUrlTapped(url) - - assertNotNull(History.searchResultTapped.testGetValue()) - assertNull(History.searchResultTapped.testGetValue()!!.last().extra) - verify { - activity.openToBrowserAndLoad( - searchTermOrURL = url, - newTab = true, - from = BrowserDirection.FromHistorySearchDialog, - flags = flags, - ) - } - } - - private fun createController( - clearToolbarFocus: () -> Unit = { }, - ): HistorySearchDialogController { - return HistorySearchDialogController( - activity = activity, - fragmentStore = store, - clearToolbarFocus = clearToolbarFocus, - ) - } -} diff --git a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractorTest.kt deleted file mode 100644 index 6a9c10d54..000000000 --- a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchDialogInteractorTest.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import io.mockk.mockk -import io.mockk.verify -import kotlinx.coroutines.test.runTest -import org.junit.Before -import org.junit.Test - -class HistorySearchDialogInteractorTest { - - lateinit var searchController: HistorySearchDialogController - lateinit var interactor: HistorySearchDialogInteractor - - @Before - fun setup() { - searchController = mockk(relaxed = true) - interactor = HistorySearchDialogInteractor( - searchController, - ) - } - - @Test - fun onEditingCanceled() = runTest { - interactor.onEditingCanceled() - - verify { - searchController.handleEditingCancelled() - } - } - - @Test - fun onTextChanged() { - interactor.onTextChanged("test") - - verify { searchController.handleTextChanged("test") } - } - - @Test - fun onUrlTapped() { - interactor.onUrlTapped("test") - - verify { - searchController.handleUrlTapped("test") - } - } -} diff --git a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchFragmentStoreTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchFragmentStoreTest.kt deleted file mode 100644 index 19937b7ee..000000000 --- a/app/src/test/java/org/mozilla/fenix/library/history/HistorySearchFragmentStoreTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.library.history - -import io.mockk.impl.annotations.MockK -import kotlinx.coroutines.test.runTest -import org.junit.Assert.assertEquals -import org.junit.Assert.assertNotSame -import org.junit.Test -import org.mozilla.fenix.components.Components - -class HistorySearchFragmentStoreTest { - - @MockK(relaxed = true) - private lateinit var components: Components - - @Test - fun `GIVEN createInitialHistorySearchFragmentState THEN query is empty`() { - val expected = HistorySearchFragmentState(query = "") - - assertEquals( - expected, - createInitialHistorySearchFragmentState(), - ) - } - - @Test - fun updateQuery() = runTest { - val initialState = HistorySearchFragmentState(query = "") - val store = HistorySearchFragmentStore(initialState) - val query = "test query" - - store.dispatch(HistorySearchFragmentAction.UpdateQuery(query)).join() - assertNotSame(initialState, store.state) - assertEquals(query, store.state.query) - } -} diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckServiceTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckServiceTest.kt index cfb72a909..8de08b762 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckServiceTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/DefaultReviewQualityCheckServiceTest.kt @@ -15,10 +15,12 @@ import mozilla.components.support.test.mock import mozilla.components.support.test.rule.MainCoroutineRule import org.junit.Assert.assertEquals import org.junit.Assert.assertNull +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mockito.Mockito.doAnswer +@Ignore("Intermittent failure, see https://bugzilla.mozilla.org/show_bug.cgi?id=1849525.") class DefaultReviewQualityCheckServiceTest { @get:Rule From 7b9ccb6493673e5e444ddc4332e87169e66aa43f Mon Sep 17 00:00:00 2001 From: Timshel Date: Wed, 15 Feb 2023 17:07:46 +0100 Subject: [PATCH 022/238] Bug 1810044 1810045 - Delay reading clipboard and allow to paste non url --- .../mozilla/fenix/utils/ClipboardHandler.kt | 23 ++++++++--- .../mozilla/fenix/utils/ToolbarPopupWindow.kt | 38 +++++++++---------- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt b/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt index eb61dd8fd..25d782cfe 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt @@ -39,10 +39,7 @@ class ClipboardHandler(val context: Context) { if (clipboard.isPrimaryClipEmpty()) { return null } - if (clipboard.isPrimaryClipPlainText() || - clipboard.isPrimaryClipHtmlText() || - clipboard.isPrimaryClipUrlText() - ) { + if (containsText()) { return firstSafePrimaryClipItemText } return null @@ -84,7 +81,6 @@ class ClipboardHandler(val context: Context) { } /** - * Returns a possible URL from the actual content of the clipboard, be aware this is a sensitive * API as from Android 12 and above, accessing it will trigger a notification letting the user * know the app has accessed the clipboard, make sure when you call this API that users are * completely aware that we are accessing the clipboard. @@ -101,6 +97,16 @@ class ClipboardHandler(val context: Context) { } } + /** + * Returns whether or not the clipboard data contains text. + * We cannot rely on `isPrimaryClipEmpty()` since it triggers a clipboard access system notification. + */ + fun containsText(): Boolean { + return clipboard.isPrimaryClipHtmlText() || + clipboard.isPrimaryClipPlainText() || + clipboard.isPrimaryClipUrlText() + } + @Suppress("MagicNumber") internal fun containsURL(): Boolean { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { @@ -127,6 +133,13 @@ class ClipboardHandler(val context: Context) { private fun ClipboardManager.isPrimaryClipUrlText() = primaryClipDescription?.hasMimeType(MIME_TYPE_TEXT_URL) ?: false + /** + * Returns whether or not the clipboard has any clip data. + * Reads the clip data, be aware this is a sensitive API as from Android 12 and above, + * accessing it will trigger a notification letting the user know the app has accessed the clipboard, + * make sure when you call this API that users are completely aware that we are accessing the clipboard. + * See https://github.com/mozilla-mobile/fenix/issues/22271 for more details. + */ private fun ClipboardManager.isPrimaryClipEmpty() = primaryClip?.itemCount == 0 /** diff --git a/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt b/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt index 839916483..0d75284a8 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt @@ -26,6 +26,10 @@ import org.mozilla.fenix.databinding.BrowserToolbarPopupWindowBinding import org.mozilla.fenix.ext.components import java.lang.ref.WeakReference +/** + * Since Android 12 reading the clipboard triggers an OS notification. + * As such it is important that we do not read it prematurely and only when the user trigger a paste action. + */ object ToolbarPopupWindow { fun show( view: WeakReference, @@ -35,12 +39,13 @@ object ToolbarPopupWindow { copyVisible: Boolean = true, ) { val context = view.get()?.context ?: return + val isCustomTabSession = customTabId != null val clipboard = context.components.clipboardHandler - val clipboardUrl = clipboard.getUrl() - val clipboardText = clipboard.text - if (!copyVisible && clipboardUrl == null) return - val isCustomTabSession = customTabId != null + val containsText = clipboard.containsText() + val containsUrl = clipboard.containsURL() + val pasteDeactivated = isCustomTabSession || (!containsText && !containsUrl) + if (!copyVisible && pasteDeactivated) return val binding = BrowserToolbarPopupWindowBinding.inflate(LayoutInflater.from(context)) val popupWindow = PopupWindow( @@ -57,9 +62,8 @@ object ToolbarPopupWindow { popupWindow.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) binding.copy.isVisible = copyVisible - - binding.paste.isVisible = clipboardText != null && !isCustomTabSession - binding.pasteAndGo.isVisible = clipboardUrl != null && !isCustomTabSession + binding.paste.isVisible = containsText && !isCustomTabSession + binding.pasteAndGo.isVisible = containsUrl && !isCustomTabSession if (copyVisible) { binding.copy.setOnClickListener { copyView -> @@ -82,17 +86,21 @@ object ToolbarPopupWindow { } } - clipboardText?.let { text -> + if (binding.paste.isVisible) { binding.paste.setOnClickListener { popupWindow.dismiss() - handlePaste(text) + handlePaste(clipboard.text.orEmpty()) } } - clipboardUrl?.let { url -> + if (binding.pasteAndGo.isVisible) { binding.pasteAndGo.setOnClickListener { popupWindow.dismiss() - handlePasteAndGo(url) + clipboard.extractURL()?.also { + handlePasteAndGo(it) + } ?: run { + Logger("ToolbarPopupWindow").error("Clipboard contains URL but unable to read text") + } } } @@ -119,12 +127,4 @@ object ToolbarPopupWindow { selectedTab?.readerState?.activeUrl ?: selectedTab?.content?.url } } - - private fun ClipboardHandler.getUrl(): String? { - if (containsURL()) { - text?.let { return it } - Logger("ToolbarPopupWindow").error("Clipboard contains URL but unable to read text") - } - return null - } } From b82afbffe4e8d28563ce056cc5c0411c8c5d35ff Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 28 Sep 2023 00:03:33 +0000 Subject: [PATCH 023/238] Import translations from android-l10n --- app/src/main/res/values-cs/strings.xml | 43 ++++++----- app/src/main/res/values-cy/strings.xml | 4 +- app/src/main/res/values-dsb/strings.xml | 43 ++++++----- app/src/main/res/values-en-rGB/strings.xml | 25 +++---- app/src/main/res/values-es-rAR/strings.xml | 6 ++ app/src/main/res/values-fi/strings.xml | 41 +++++------ app/src/main/res/values-fy-rNL/strings.xml | 43 ++++++----- app/src/main/res/values-gn/strings.xml | 32 ++++----- app/src/main/res/values-hsb/strings.xml | 43 ++++++----- app/src/main/res/values-hy-rAM/strings.xml | 43 ++++++----- app/src/main/res/values-ia/strings.xml | 43 ++++++----- app/src/main/res/values-is/strings.xml | 43 ++++++----- app/src/main/res/values-it/strings.xml | 27 ++++--- app/src/main/res/values-ka/strings.xml | 25 +++---- app/src/main/res/values-kk/strings.xml | 25 +++---- app/src/main/res/values-nl/strings.xml | 43 ++++++----- app/src/main/res/values-pa-rIN/strings.xml | 43 ++++++----- app/src/main/res/values-si/strings.xml | 83 +++++++++++++++++----- app/src/main/res/values-sl/strings.xml | 28 ++++---- app/src/main/res/values-sv-rSE/strings.xml | 43 ++++++----- app/src/main/res/values-vi/strings.xml | 43 ++++++----- 21 files changed, 388 insertions(+), 381 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index a3bec4a8a..364ae874c 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -329,16 +329,9 @@ Teď ne - - Používejte aplikaci %s jako svůj hlavní prohlížeč Používejte Firefox jako svůj hlavní prohlížeč - - %1$s upřednostňuje lidi před ziskem a chrání vaše soukromí blokováním cross-site sledovacích prvků.\n\nZjistěte více v našich %2$s. Firefox upřednostňuje lidi před ziskem a chrání vaše soukromí blokováním cross-site sledovacích prvků.\n\nZjistěte více v našich zásadách ochrany osobních údajů. @@ -357,15 +350,9 @@ Přihlásit se Teď ne - - Oznámení vám pomohou s aplikací %s udělat více Oznámení vám pomohou s Firefoxem udělat více - - Posílejte si panely mezi zařízeními, spravujte stahování a získejte tipy, jak co nejlépe využít aplikaci %s. Posílejte si panely mezi zařízeními, spravujte stahování a získejte tipy, jak co nejlépe Firefox využít. @@ -569,6 +556,16 @@ Automaticky doplňovat URL adresy + + Návrhy od sponzorů + + Podpora aplikace %1$s občasnými sponzorovanými návrhy + + Návrhy od aplikace %1$s + + Získat návrhy z webu související s vaším vyhledáváním Otevírat odkazy v aplikacích @@ -2267,9 +2264,9 @@ Zkontrolovat - Zatím nemá dostatek recenzí + Zatím nemá dostatek recenzí - Až bude mít tento produkt více recenzí, budeme moci zkontrolovat jejich kvalitu. + Až bude mít tento produkt více recenzí, budeme moci zkontrolovat jejich kvalitu. Produkt není k dispozici @@ -2277,7 +2274,7 @@ Nahlaste, že je tento produkt opět skladem - Kontroluje se kvalita recenzí + Kontroluje se kvalita recenzí Kontroluje se kvalita recenzí @@ -2287,9 +2284,9 @@ Informace o hodnocení tohoto produktu bychom měli mít k dispozici do 24 hodin. Prosím, zkontrolujte to znovu. - Tyto recenze nemůžeme zkontrolovat + Tyto recenze nemůžeme zkontrolovat - Kvalitu recenzí některých typů produktů bohužel nemůžeme kontrolovat. Například dárkové karty a streamovaná videa, hudbu a hry. + Kvalitu recenzí některých typů produktů bohužel nemůžeme kontrolovat. Například dárkové karty a streamovaná videa, hudbu a hry. Informace již brzy @@ -2299,13 +2296,13 @@ Rozumím - V tuto chvíli nejsou k dispozici žádné informace + V tuto chvíli nejsou k dispozici žádné informace - Pracujeme na vyřešení problému. Zkuste to prosím později. + Pracujeme na vyřešení problému. Zkuste to prosím později. - Žádné síťové připojení + Žádné síťové připojení - Zkontrolujte připojení k síti a zkuste stránku načíst znovu. + Zkontrolujte připojení k síti a zkuste stránku načíst znovu. Zatím žádné informace o těchto recenzích @@ -2339,7 +2336,7 @@ Otevřít kontrolu recenzí - Beta + Beta Otevřít kontrolu recenzí diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index b75adc398..c2b29d38b 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -560,7 +560,9 @@ Cefnogwch %1$s gydag awgrymiadau noddedig achlysurol - Awgrymiadau o %1$s + Awgrymiadau gan %1$s + + Cael awgrymiadau o’r we sy’n ymwneud â’ch chwilio Agor dolenni mewn apiau diff --git a/app/src/main/res/values-dsb/strings.xml b/app/src/main/res/values-dsb/strings.xml index 3cadb0fc4..a2e33b35c 100644 --- a/app/src/main/res/values-dsb/strings.xml +++ b/app/src/main/res/values-dsb/strings.xml @@ -322,16 +322,9 @@ Nic něnto - - Wužywajśo %s pó droze Wužywajśo Firefox pó droze - - %1$s luźi nad wudobytki staja a blokěrujo sedła pśesegajuce slědowaki, aby wašu priwatnosć šćitał.\n\nDalšne informacije w našom %2$s. Firefox luźi nad wudobytki staja a blokěrujo sedła pśesegajuce slědowaki, aby wašu priwatnosć šćitał.\n\nDalšne informacije w našej powěźeńce priwatnosći. @@ -350,16 +343,10 @@ Pśizjawiś Nic něnto - - Powěźeńki wam pomagaju, wěcej z %s cyniś Powěźeńki wam pomagaju, wěcej z Firefox cyniś - - Sćelśo rejtariki mjazy rědami, zastojśo ześěgnjenja a dostańśo pokaze, aby nejwěcej z %s wuwónoźeł. Sćelśo rejtariki mjazy rědami, zastojśo ześěgnjenja a dostańśo pokaze, aby nejwěcej z Firefox wuwónoźeł. @@ -563,6 +550,16 @@ Kontowe nastajenja URL awtomatiski wudopołniś + + Naraźenja wót sponsorow + + Pódprějśo %1$s z pśigóźbnymi sponserowanymi naraźenjami + + Naraźenja wót %1$s + + Wobstarajśo se naraźenja z weba nastupajucy wašo pytanje Wótkaze w nałoženjach wócyniś @@ -2248,9 +2245,9 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Něnto kontrolěrowaś - Hyšći njejo dosć pógódnośenjow + Hyšći njejo dosć pógódnośenjow - Gaž toś ten produkt ma wěcej pógódnośenjow, móžomy jich kwalitu kontrolěrowaś. + Gaž toś ten produkt ma wěcej pógódnośenjow, móžomy jich kwalitu kontrolěrowaś. Produkt njejo k dispoziciji @@ -2258,7 +2255,7 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt K wěsći daś, až toś ten produkt jo zasej na skłaźe - Kontrola kwalitu pógódnośenjow + Kontrola kwalitu pógódnośenjow Kontrola kwalitu pógódnośenjow @@ -2269,9 +2266,9 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt My dejali w běgu 24 góźin informacije wó pógódnośenjach toś togo produkta měś. Pśiźćo pšosym mimo. - Njamóžomy toś te pógódnośenja pśeglědowaś + Njamóžomy toś te pógódnośenja pśeglědowaś - Bóžko njamóžomy kwalitu pógódnośenja za wěste produktowe typy kontrolěrowaś. Na pśikład za darjeńske kórty a tšugajuce wideo, muziku a graśa. + Bóžko njamóžomy kwalitu pógódnośenja za wěste produktowe typy kontrolěrowaś. Na pśikład za darjeńske kórty a tšugajuce wideo, muziku a graśa. Informacije skóro pśidu @@ -2281,13 +2278,13 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Som zrozměł - Tuchylu informacije njejsu k dispoziciji + Tuchylu informacije njejsu k dispoziciji - Źěłamy na rozwězanju toś togo problema. Pśiźćo pšosym skóro zasej mimo. + Źěłamy na rozwězanju toś togo problema. Pśiźćo pšosym skóro zasej mimo. - Žeden seśowy zwisk + Žeden seśowy zwisk - Pśeglědajśo swój seśowy zwisk a wopytajśo pón bok znowego zacytaś. + Pśeglědajśo swój seśowy zwisk a wopytajśo pón bok znowego zacytaś. Hyšći žedne informacije wó toś tych pógódnośenjach @@ -2321,7 +2318,7 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Kontrolu pógódnośenjow wócyniś - Beta + Beta Kontrolu pógódnośenjow wócyniś diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 4dd5a38f9..6539dce8d 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -321,16 +321,9 @@ Not now - - Make %s your go-to browser Make Firefox your go-to browser - - %1$s puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our %2$s. Firefox puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our privacy notice. @@ -349,15 +342,9 @@ Sign in Not now - - Notifications help you do more with %s Notifications help you do more with Firefox - - Send tabs between devices, manage downloads, and get tips on getting the most out of %s. Send tabs between devices, manage downloads, and get tips on getting the most out of Firefox. @@ -563,6 +550,16 @@ Account settings Autocomplete URLs + + Suggestions from sponsors + + Support %1$s with occasional sponsored suggestions + + Suggestions from %1$s + + Get suggestions from the web related to your search Open links in apps @@ -2307,7 +2304,7 @@ Open review checker - Beta + Beta Open review checker diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index d8ff7289a..d68d581a1 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -561,6 +561,12 @@ Autocompletar URLs Sugerencias de patrocinadores + + Ayudar a %1$s con sugerencias patrocinadas ocasionales + + Sugerencias de %1$s Obtener sugerencias de la web relacionadas con tu búsqueda diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 6884d2c0c..a9e9a7abe 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -328,16 +328,9 @@ Ei nyt - - Aseta %s selaimeksesi Aseta Firefox selaimeksesi - - %1$s asettaa ihmiset voittojen edelle ja suojaa yksityisyyttäsi estämällä sivustojen väliset seuraimet.\n\nLisätietoja on %2$s. Firefox asettaa ihmiset voittojen edelle ja suojaa yksityisyyttäsi estämällä sivustojen väliset seuraimet.\n\nLisätietoja on tietosuojaselosteessamme. @@ -356,15 +349,9 @@ Kirjaudu sisään Ei nyt - - Ilmoitukset auttavat sinua tekemään enemmän %silla Ilmoitukset auttavat sinua tekemään enemmän Firefoxilla - - Lähetä välilehtiä laitteiden välillä, hallitse latauksia ja saa vinkkejä, joiden avulla saat kaiken irti %sista. Lähetä välilehtiä laitteiden välillä, hallitse latauksia ja saa vinkkejä, joiden avulla saat kaiken irti Firefoxista. @@ -572,6 +559,16 @@ Täydennä osoitteet automaattisesti + + Ehdotuksia sponsoreilta + + Tue %1$sia satunnaisilla sponsoroiduilla ehdotuksilla + + Ehdotuksia %1$silta + + Vastaanota ehdotuksia verkosta hakuusi liittyen Avaa linkit sovelluksissa @@ -2257,9 +2254,9 @@ Tarkista nyt - Ei vielä tarpeeksi arvosteluja + Ei vielä tarpeeksi arvosteluja - Kun tästä tuotteesta on enemmän arvosteluja, voimme tarkistaa niiden laadun. + Kun tästä tuotteesta on enemmän arvosteluja, voimme tarkistaa niiden laadun. Tuote ei ole saatavilla @@ -2267,7 +2264,7 @@ Ilmoita, että tämä tuote on jälleen varastossa - Tarkistetaan arvostelun laatua + Tarkistetaan arvostelun laatua Tarkistetaan arvostelun laatua @@ -2277,9 +2274,9 @@ Meillä pitäisi olla tietoa tämän tuotteen arvosteluista 24 tunnin sisällä. Tarkista tilanne uudelleen. - Emme voi tarkistaa näitä arvosteluja + Emme voi tarkistaa näitä arvosteluja - Valitettavasti emme voi tarkistaa arvostelun laatua tietyntyyppisten tuotteiden osalta. Esimerkiksi lahjakortit ja suoratoistovideot, musiikki ja pelit. + Valitettavasti emme voi tarkistaa arvostelun laatua tietyntyyppisten tuotteiden osalta. Esimerkiksi lahjakortit ja suoratoistovideot, musiikki ja pelit. Tietoa tulossa pian @@ -2289,13 +2286,13 @@ Selvä - Tietoja ei juuri nyt saatavilla + Tietoja ei juuri nyt saatavilla - Pyrimme ratkaisemaan ongelman. Tarkista tilanne pian uudelleen. + Pyrimme ratkaisemaan ongelman. Tarkista tilanne pian uudelleen. - Ei verkkoyhteyttä + Ei verkkoyhteyttä - Tarkista verkkoyhteytesi ja yritä sitten ladata sivu uudelleen. + Tarkista verkkoyhteytesi ja yritä sitten ladata sivu uudelleen. Näistä arvosteluista ei ole vielä tietoa diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index 5694eed4d..35e5aee19 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -325,16 +325,9 @@ No net - - Meitsje %s jo ‘gean nei’-browser Meitsje Firefox jo ‘gean nei’-browser - - %1$s pleatst minsken boppe winst en ferdigenet jo privacy troch cross-sitetrackers te blokkearjen.\n\nMear ynfo yn ús %2$s. Firefox pleatst minsken boppe winst en ferdigenet jo privacy troch cross-sitetrackers te blokkearjen.\n\nMear ynfo yn ús privacyferklearing. @@ -353,15 +346,9 @@ Oanmelde No net - - Meldingen helpe jo mear te dwaan mei %s Meldingen helpe jo mear te dwaan mei Firefox - - Ferstjoer ljepblêden tusken apparaten, behear downloads en ûntfang tips om %s optimaal te benutten. Ferstjoer ljepblêden tusken apparaten, behear downloads en ûntfang tips om Firefox optimaal te brûken. @@ -567,6 +554,16 @@ URL’s automatysk oanfolje + + Suggestjes fan sponsors + + Stypje %1$s mei sa no en dan sponsore suggestjes + + Suggestjes fan %1$s + + Krij suggestjes fan it web relatearre oan jo sykopdracht Keppelingen iepenje yn apps @@ -2246,9 +2243,9 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen No kontrolearje - Noch net genôch beoardielingen + Noch net genôch beoardielingen - As dit produkt mear beoardielingen hat, kinne wy harren kwaliteit beoardiele. + As dit produkt mear beoardielingen hat, kinne wy harren kwaliteit beoardiele. Produkt is net beskikber @@ -2256,7 +2253,7 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Melde dat dit produkt wer op foarried is - Beoardielingskwaliteit kontrolearje + Beoardielingskwaliteit kontrolearje Beoardielingskwaliteit kontrolearje @@ -2266,9 +2263,9 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Wy soene binnen 24 oeren ynfo oer de beoardieling fan dit produkt hawwe moatte. Kom letter noch ris werom. - Wy kinne dizze beoardieling net kontrolearje + Wy kinne dizze beoardieling net kontrolearje - Spitigernôch kinne wy de beoardielingskwaliteit net kontrolearje foar bepaalde soarten produkten. Bygelyks kadokaarten en streaming fideo, muzyk en spultsjes. + Spitigernôch kinne wy de beoardielingskwaliteit net kontrolearje foar bepaalde soarten produkten. Bygelyks kadokaarten en streaming fideo, muzyk en spultsjes. Ynkoarten mear @@ -2278,13 +2275,13 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Begrepen - Der is op dit stuit gjin ynfo beskikber + Der is op dit stuit gjin ynfo beskikber - Wy wurkje deroan om it probleem op te lossen. Kom ynkoarten gau werom. + Wy wurkje deroan om it probleem op te lossen. Kom ynkoarten gau werom. - Gjin netwurkferbining + Gjin netwurkferbining - Kontrolearje jo netwurkferbining en probearje dan de side opnij te laden. + Kontrolearje jo netwurkferbining en probearje dan de side opnij te laden. Noch gjin ynfo oer dizze beoardielingen @@ -2319,7 +2316,7 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Beoardielingskontrôle iepenje - Beta + Beta Beoardielingskontrôle iepenje diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index e3ca1359b..5bb1e2a04 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -327,16 +327,9 @@ Ani ko’ág̃a - - Ejapo %s-gui kundahára ehayhuvéva Ejapo Firefox-gui kundahára ehayhuvéva - - %1$s omotenonde avápe viru rovake ha omomba’e nde rekoñemi ojokóvo tapykuehoha tenda pa’ũme.\n\nEñemomaranduve %2$s rupive. Firefox omotenonde avápe viru rovake ha omomba’e nde rekoñemi ojokóvo tapykuehoha tenda pa’ũme.\n\nEñemomaranduve ore ñemurã rupive. @@ -356,15 +349,9 @@ Eñemboheraguapy Ani ko’ág̃a - - Marandu’i ne pytyvõta ejapove hag̃ua %s ndive Marandu’i ne pytyvõta ejapove hag̃ua Firefox ndive - - Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eiporu porã hag̃ua %s. Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eiporu porã hag̃ua Firefox. @@ -375,7 +362,7 @@ - Eipuru Firefox widget jehekaha + Eiporu Firefox widget jehekaha Firefox ndive ne mba’erechaha ñepyrũguápe, eikéta pya’e kundahárape omomba’éva tekoñemi ha ojoko umi tenda rapykuehoha. @@ -572,6 +559,11 @@ Mba’ete ñemboheko Moĩmbajehegui URLs + + Pytyvõhára ñemoñe’ẽ + + %1$s ñemoñe’ẽ Embojuruja juajuha tembiporu’ípe @@ -2252,7 +2244,7 @@ Mba’éichapa jaikuaáta marandu’i iporãha - Roipuru tembiporupyahu IA %s Mozilla rupive rohesa’ỹijo hag̃ua iporãpa marandu’i apopyregua. Ñehesa’ỹijo oipytyvõta roha’ã hag̃ua marandu’i porãngue, ndaha’éi apopyre porãngue. + Roiporu tembiporupyahu IA %s Mozilla rupive rohesa’ỹijo hag̃ua iporãpa marandu’i apopyregua. Ñehesa’ỹijo oipytyvõta roha’ã hag̃ua marandu’i porãngue, ndaha’éi apopyre porãngue. papapy tai ndive A guive F peve.]]>
@@ -2312,12 +2304,16 @@ Aikumby Ndaipóri marandu ko’ág̃aite + + Romba’apo opa hag̃ua apañuãi. Ikatúpiko, eha’ãjey ag̃ave. Ndaikatúi eike ñandutípe Ndaipóri mba’eve ko’ã marandu’i rehegua Ehechajey marandu’i porãngue + + Eiporu ore marandu’i jeguataha rechajey jeroviápe Eikuaave @@ -2325,15 +2321,15 @@ temiñemi jeporurã - Héẽ, eipuru + Héẽ, eiporu Ani ko’ág̃a - Eipuru hechajey rechaha + Eiporu hechajey rechaha Embojuruja marandu’i rechajeyha - Beta + Beta Embojuruja marandu’i rechajeyha diff --git a/app/src/main/res/values-hsb/strings.xml b/app/src/main/res/values-hsb/strings.xml index a8663ab39..dd806e3bb 100644 --- a/app/src/main/res/values-hsb/strings.xml +++ b/app/src/main/res/values-hsb/strings.xml @@ -322,16 +322,9 @@ Nic nětko - - Wužiwajće %s po puću Wužiwajće Firefox po puću - - %1$s ludźi nad dobytki staja a blokuje sydła přesahowace slědowaki, zo by wašu priwatnosć škitał.\n\nDalše informacije w našim %2$s. Firefox ludźi nad dobytki staja a blokuje sydła přesahowace slědowaki, zo by wašu priwatnosć škitał.\n\nDalše informacije w našej zdźělence priwatnosće. @@ -350,15 +343,9 @@ Přizjewić Nic nětko - - Zdźělenki wam pomhaja, wjace z %s činić Zdźělenki wam pomhaja, wjace z Firefox činić - - Sćelće rajtarki mjez gratami, rjadujće sćehnjenja a dóstańće pokiwy, zo byšće najwjace z %s wućahnył. Sćelće rajtarki mjez gratami, rjadujće sćehnjenja a dóstańće pokiwy, zo byšće najwjace z Firefox wućahnył. @@ -564,6 +551,16 @@ Kontowe nastajenja URL awtomatisce wudospołnić + + Namjety wot sponsorow + + Podpěrajće %1$s ze składnostnymi sponsorowanymi namjetami + + Namjety wot %1$s + + Wobstarajće sej namjety z weba nastupajo waše pytanje Wotkazy w nałoženjach wočinić @@ -2254,9 +2251,9 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Nětko kontrolować - Hišće dosć pohódnoćenjow njeje + Hišće dosć pohódnoćenjow njeje - Hdyž tutón produkt ma wjace pohódnoćenjow, móžemy jich kwalitu kontrolować. + Hdyž tutón produkt ma wjace pohódnoćenjow, móžemy jich kwalitu kontrolować. Produkt k dispoziciji njeje @@ -2264,7 +2261,7 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Zdźělić, zo tutón produkt je zaso na składźe - Kontrola kwalitu pohódnoćenjow + Kontrola kwalitu pohódnoćenjow Kontrola kwalitu pohódnoćenjow @@ -2274,9 +2271,9 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk My dyrbjeli w běhu 24 hodźin informacije wo pohódnoćenjach tutoho produkta měć. Přińdźće prošu nimo. - Njemóžemy tute pohódnoćenja přepruwować + Njemóžemy tute pohódnoćenja přepruwować - Bohužel njemóžemy kwalitu pohódnoćenja za wěste produktowe typy kontrolować. Na přikład za darne karty a prudźace widejo, hudźbu a hry. + Bohužel njemóžemy kwalitu pohódnoćenja za wěste produktowe typy kontrolować. Na přikład za darne karty a prudźace widejo, hudźbu a hry. Informacije bórze přińdu @@ -2286,13 +2283,13 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Sym zrozumił - Tuchwilu informacije k dispoziciji njejsu + Tuchwilu informacije k dispoziciji njejsu - Dźěłamy na rozrisanju tutoho problema. Přińdźće prošu bórze zaso nimo. + Dźěłamy na rozrisanju tutoho problema. Přińdźće prošu bórze zaso nimo. - Žadyn syćowy zwisk + Žadyn syćowy zwisk - Přepruwujće swój syćowy zwisk a spytajće potom stronu znowa začitać. + Přepruwujće swój syćowy zwisk a spytajće potom stronu znowa začitać. Hišće žane informacije wo tutych pohódnoćenjach @@ -2326,7 +2323,7 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Kontrolu pohódnoćenjow wočinić - Beta + Beta Kontrolu pohódnoćenjow wočinić diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 1a26fdcd1..6605b7dde 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -321,16 +321,9 @@ Ոչ հիմա - - Դարձրեք %s-ը ձեր հիմնական դիտարկիչը Դարձրեք Firefox-ը ձեր հիմնական դիտարկիչը - - %1$s-ը մարդկանց վեր է դասում շահույթից և պաշտպանում է ձեր գաղտնիությունը՝ արգելափակելով միջկայքի հետագծիչները:\n\nԻմացեք ավելին մեր %2$s-ում: Firefox-ը մարդկանց վեր է դասում շահույթից և պաշտպանում է ձեր գաղտնիությունը՝ արգելափակելով միջկայքի հետագծիչները:\n\nԻմացեք ավելին մեր գաղտնիության ծանուցումներում: @@ -349,15 +342,9 @@ Մուտք գործել Ոչ հիմա - - Ծանուցումներն օգնում են ձեզ ավելին անել %s-ի հետ Ծանուցումներն օգնում են ձեզ ավելին անել Firefox-ի հետ - - Ուղարկեք ներդիրներ սարքերի միջև, կառավարեք ներբեռնումները և ստացեք խորհուրդներ %s-ից առավելագույնը քաղելու վերաբերյալ: Ուղարկեք ներդիրներ սարքերի միջև, կառավարեք ներբեռնումները և ստացեք խորհուրդներ Firefox-ից առավելագույնը քաղելու վերաբերյալ: @@ -564,6 +551,16 @@ Հաշվի կարգավորումներ Ինքնալրացում + + Առաջարկություններ հովանավորներից + + Աջակցեք %1$s-ին երբեմն հովանավորվող առաջարկներով + + Առաջարկներ %1$s-ից + + Ստացեք առաջարկներ համացանցից՝ կապված ձեր որոնման հետ Բացել հղումները հավելվածներում @@ -2242,9 +2239,9 @@ Ստուգիր հիմա - Դեռևս բավարար ակնարկներ չկան + Դեռևս բավարար ակնարկներ չկան - Երբ այս ապրանքն ավելի շատ կարծիքներ ունենա, մենք կկարողանանք ստուգել դրանց որակը: + Երբ այս ապրանքն ավելի շատ կարծիքներ ունենա, մենք կկարողանանք ստուգել դրանց որակը: Ապրանքը հասանելի չէ @@ -2252,7 +2249,7 @@ Հաղորդեք, որ այս ապրանքը կրկին պահեստում է - Կարծիքի որակի ստուգում + Կարծիքի որակի ստուգում Կարծիքի որակի ստուգում @@ -2262,9 +2259,9 @@ Մենք պետք է 24 ժամվա ընթացքում տեղեկություններ ունենանք այս ապրանքի կարծիքների մասին: Խնդրում ենք նորից ստուգել: - Մենք չենք կարող ստուգել այս կարծիքները + Մենք չենք կարող ստուգել այս կարծիքները - Ցավոք, մենք չենք կարող ստուգել որոշ տեսակի ապրանքների կարծիքների որակը: Օրինակ՝ նվեր քարտեր և հոսքային տեսանյութերի, երաժշտության և խաղեր: + Ցավոք, մենք չենք կարող ստուգել որոշ տեսակի ապրանքների կարծիքների որակը: Օրինակ՝ նվեր քարտեր և հոսքային տեսանյութերի, երաժշտության և խաղեր: Տեղեկությունները շուտով @@ -2274,13 +2271,13 @@ Հասկացա - Այս պահին տեղեկություններ չկան + Այս պահին տեղեկություններ չկան - Մենք աշխատում ենք խնդիրը լուծելու ուղղությամբ։ Խնդրում ենք նորից ստուգել շուտով: + Մենք աշխատում ենք խնդիրը լուծելու ուղղությամբ։ Խնդրում ենք նորից ստուգել շուտով: - Չկա ցանցային կապակցում + Չկա ցանցային կապակցում - Ստուգեք ձեր ցանցային կապակցումը և փորձեք վերաբեռնել էջը: + Ստուգեք ձեր ցանցային կապակցումը և փորձեք վերաբեռնել էջը: Այս կարծիքների մասին դեռ տեղեկություններ չկան @@ -2315,7 +2312,7 @@ Բացել կարծիքների ստուգիչը - Բետա + Բետա Բացել կարծիքների ստուգիչը diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 69babb448..cd7e46f1b 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -328,16 +328,9 @@ Non ora - - Face de %s tu companion de navigation Face de Firefox tu companion de navigation - - %1$s antepone le personas al profitos e defende tu confidentialitate blocante traciatores trans-sitos.\n\nPro saper plus nostre %2$s. Firefox antepone le personas al profitos e defende tu confidentialitate blocante traciatores trans-sitos.\n\nPro saper plus nostre aviso de confidentialitate. @@ -356,16 +349,10 @@ Aperir session Non ora - - Le notificationes te adjuta a facer plus con %s Le notificationes te adjuta a facer plus con Firefox - - Invia schedas inter apparatos, gere downloads, e recipe consilios re obtener le maximo per %s. Invia schedas inter apparatos, gere downloads, e recipe consilios re obtener le maximo per Firefox. @@ -575,6 +562,16 @@ Parametros de conto Auto-completar URLs + + Suggestiones de sponsors + + Supportar %1$s con occasional suggestiones sponsorisate + + Suggestiones de %1$s + + Recipe suggestiones del web relative a tu recerca Aperir ligamines in apps @@ -2305,9 +2302,9 @@ Controlar ora - Revisiones ancora non bastante + Revisiones ancora non bastante - Quando iste producto habera plus de recensiones, nos potera controlar su qualitate. + Quando iste producto habera plus de recensiones, nos potera controlar su qualitate. Le producto non es disponibile @@ -2315,7 +2312,7 @@ Reporta que iste producto es retro in stock - Controlante qualitate de recension + Controlante qualitate de recension Controlante qualitate de recension @@ -2326,9 +2323,9 @@ Nos deberea haber info re iste recensiones de producto in 24 horas. Controla plus tarde. - Nos non pote controlar iste recensiones + Nos non pote controlar iste recensiones - Infortunatemente, nos non pote verificar le qualitate de recension pro certe typos de productos. Per exemplo, cartas dono e diffusion multimedial video, musica, e jocos. + Infortunatemente, nos non pote verificar le qualitate de recension pro certe typos de productos. Per exemplo, cartas dono e diffusion multimedial video, musica, e jocos. Info a venir tosto @@ -2338,13 +2335,13 @@ Comprendite - Nulle info disponibile al momento + Nulle info disponibile al momento - Nos labora pro resolver le problema. Retenta tosto. + Nos labora pro resolver le problema. Retenta tosto. - Nulle connexion de rete + Nulle connexion de rete - Verifica tu connexion de rete e pois, tenta recargar le pagina. + Verifica tu connexion de rete e pois, tenta recargar le pagina. Nulle info ancora re iste recensiones @@ -2378,7 +2375,7 @@ Aperir le verificator de recension - Beta + Beta Aperir le verificator de recension diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index 1ab7ef008..619838582 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -322,16 +322,9 @@ Ekki núna - - Gerðu %s að aðalvafranum þínum Gerðu Firefox að aðalvafranum þínum - - %1$s setur fólk framar gróða og ver friðhelgi þína með því að loka fyrir eftirlit á vefsvæðum.\n\nFrekari upplýsingar á %2$s okkar. Firefox setur fólk framar gróða og ver friðhelgi þína með því að loka fyrir eftirlit á vefsvæðum.\n\nFrekari upplýsingar má sjá á persónuverndarsíðu okkar. @@ -350,15 +343,9 @@ Skrá inn Ekki núna - - Tilkynningar hjálpa þér að gera meira með %s Tilkynningar hjálpa þér að gera meira með Firefox - - Sendu flipa á milli tækja, stýrðu niðurhali og fáðu ráð til að fá sem mest út úr %s. Sendu flipa á milli tækja, stýrðu niðurhali og fáðu ráð til að fá sem mest út úr Firefox. @@ -565,6 +552,16 @@ Stillingar reiknings Sjálfvirk útfylling vefslóða + + Tillögur frá styrktaraðilum + + Styddu við %1$s með einstaka kostuðum tillögum + + Tillögur frá %1$s + + Fáðu tillögur af vefnum sem tengjast leitinni þinni Opna tengla í smáforritum @@ -2241,9 +2238,9 @@ Athuga núna - Ekki nægar umsagnir ennþá + Ekki nægar umsagnir ennþá - Þegar þessi vara hefur fleiri umsagnir getum við athugað gæði þeirra. + Þegar þessi vara hefur fleiri umsagnir getum við athugað gæði þeirra. Vara er ekki fáanleg @@ -2251,7 +2248,7 @@ Tilkynna að þessi vara sé aftur á lager - Athugar gæði umsagna + Athugar gæði umsagna Athugar gæði umsagna @@ -2261,9 +2258,9 @@ Við ættum að vera með uppfærða greiningu innan 24 klukkustunda. Komdu aftur síðar. - Við getum ekki athugað þessar umsagnir + Við getum ekki athugað þessar umsagnir - Því miður getum við ekki athugað gæði umsagna fyrir ákveðnar tegundir af vörum. Til dæmis gjafakort og streymd myndskeið, tónlist og leiki. + Því miður getum við ekki athugað gæði umsagna fyrir ákveðnar tegundir af vörum. Til dæmis gjafakort og streymd myndskeið, tónlist og leiki. Upplýsingar koma fljótlega @@ -2273,13 +2270,13 @@ Náði því - Engar upplýsingar tiltækar í augnablikinu + Engar upplýsingar tiltækar í augnablikinu - Við erum að vinna að því að leysa málið. Athugaðu aftur fljótlega. + Við erum að vinna að því að leysa málið. Athugaðu aftur fljótlega. - Engin nettenging + Engin nettenging - Athugaðu nettenginguna þína og prófaðu síðan að endurlesa síðuna. + Athugaðu nettenginguna þína og prófaðu síðan að endurlesa síðuna. Engar upplýsingar ennþá um þessar umsagnir @@ -2313,7 +2310,7 @@ Opna umsagnaskoðun - Beta-prófunarútgáfa + Beta-prófunarútgáfa Opna umsagnaskoðun diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 510a5cb87..0b8af854b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -328,16 +328,9 @@ Non adesso - - Rendi %s il tuo browser di riferimento Rendi Firefox il tuo browser di riferimento - - %1$s antepone le persone al profitto e protegge la tua privacy bloccando gli elementi traccianti intersito.\n\n Ulteriori informazioni nella nostra %2$s. Firefox antepone le persone al profitto e protegge la tua privacy bloccando gli elementi traccianti intersito.\n\n Ulteriori informazioni nella nostra Informativa sulla privacy. @@ -356,15 +349,9 @@ Accedi Non adesso - - Le notifiche ti aiutano a ottenere di più da %s Le notifiche ti aiutano a ottenere di più da Firefox - - Invia schede tra dispositivi, gestisci download e ricevi suggerimenti su come ottenere il massimo da %s. Invia schede tra dispositivi, gestisci download e ricevi suggerimenti su come ottenere il massimo da Firefox. @@ -573,6 +560,16 @@ Completamento automatico degli URL + + Suggerimenti dagli sponsor + + Supporta %1$s con occasionali suggerimenti sponsorizzati + + Suggerimenti da %1$s + + Ottieni suggerimenti dal Web relativi alla tua ricerca Apri i link nelle app @@ -2273,7 +2270,7 @@ Ulteriori informazioni - Disattiva la verifica recensioni + Disattiva verifica recensioni Altri prodotti da valutare @@ -2365,7 +2362,7 @@ Apri verifica recensioni - Beta + Beta Apri verifica recensioni diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index 9e2f99942..d0464f839 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -318,16 +318,9 @@ ახლა არა - - გამოიყენეთ %s ძირითად ბრაუზერად გამოიყენეთ Firefox ძირითად ბრაუზერად - - %1$s ხალხს მოგებაზე წინ აყენებს და იცავს თქვენს პირად მონაცემებს საიტთაშორისი მეთვალყურეებისგან.\n\nვრცლად იხილეთ %2$s. Firefox ხალხს მოგებაზე წინ აყენებს და იცავს თქვენს პირად მონაცემებს საიტთაშორისი მეთვალყურეებისგან.\n\nვრცლად იხილეთ პირადულობის განაცხადი. @@ -346,15 +339,9 @@ შესვლა ახლა არა - - შეტყობინებებით შეძლებთ, უკეთ გამოიყენოთ %s შეტყობინებები დაგეხმარებათ, სრულყოფილად გამოიყენოთ Firefox - - გაგზავნეთ ჩანართები მოწყობილობებს შორის, მართეთ ჩამოტვირთვები და მიიღეთ რჩევები, რომ სრულყოფილად გამოიყენოთ %s. გაგზავნეთ ჩანართები მოწყობილობებს შორის, მართეთ ჩამოტვირთვები და მიიღეთ რჩევები, რომ სრულყოფილად გამოიყენოთ Firefox. @@ -563,6 +550,16 @@ ანგარიშის პარამეტრები ბმულების თვითდასრულება + + შემოთავაზებები დამფინანსებლებისგან + + დაეხმარეთ %1$s-ს დროდადრო დაფინანსებული შემოთავაზებებით + + შემოთავაზებების წყაროა %1$s + + შემოთავაზებები ვებსივრციდან თქვენ მიერ მოძიებულის შესაბამისად ბმულების გახსნა პროგრამებში @@ -2323,7 +2320,7 @@ მიმოხილვის შემმოწმებლის გახსნა - საცდელი Beta + საცდელი Beta მიმოხილვის შემმოწმებლის გახსნა diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index 43a854181..c0bfc1a1e 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -321,16 +321,9 @@ Қазір емес - - %s негізгі браузер етіп орнатыңыз Firefox-ты негізгі браузер етіп орнатыңыз - - %1$s сайтаралық трекерлерді блоктау арқылы адамдарды табыстан жоғары қояды және жекелігіңізді қорғайды.\n\nТолығырақ ақпаратты %2$s ішінен алыңыз. Firefox сайтаралық трекерлерді блоктау арқылы адамдарды табыстан жоғары қояды және жекелігіңізді қорғайды.\n\nТолығырақ ақпаратты жекелік хабарламамыздан алыңыз. @@ -349,15 +342,9 @@ Кіру Қазір емес - - Хабарландырулар %s арқылы көбірек жұмыс бітіруге көмектеседі Хабарландырулар Firefox арқылы көбірек жұмыс бітіруге көмектеседі - - Құрылғылар арасында беттерді жіберіңіз, жүктемелеріңізді басқарыңыз және %s мүмкіндігін барынша пайдалану туралы кеңестер алыңыз. Құрылғылар арасында беттерді жіберіңіз, жүктемелеріңізді басқарыңыз және Firefox мүмкіндігін барынша пайдалану туралы кеңестер алыңыз. @@ -566,6 +553,16 @@ Тіркелгі баптаулары URL адрестерін автотолықтыру + + Демеушілердің ұсыныстары + + Кездейсоқ демеушілік ұсыныстармен %1$s өніміне қолдау көрсету + + %1$s ұсыныстары + + Сіздің іздеуіңізге қатысты интернеттен ұсыныстар алыңыз Сілтемелерді қолданбаларда ашу @@ -2319,7 +2316,7 @@ Пікірлерді тексеру құралын ашу - Бета + Бета Пікірлерді тексеру құралын ашу diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index bcd1d556a..8b6932bd5 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -330,16 +330,9 @@ Niet nu - - Maak %s uw ‘ga naar’-browser Maak Firefox uw ‘ga naar’-browser - - %1$s plaatst mensen boven winst en verdedigt uw privacy door cross-sitetrackers te blokkeren.\n\nMeer info in onze %2$s. Firefox plaatst mensen boven winst en verdedigt uw privacy door cross-sitetrackers te blokkeren.\n\nMeer info in onze privacyverklaring. @@ -358,15 +351,9 @@ Aanmelden Niet nu - - Meldingen helpen u meer te doen met %s Meldingen helpen u meer te doen met Firefox - - Verzend tabbladen tussen apparaten, beheer downloads en ontvang tips om %s optimaal te benutten. Verzend tabbladen tussen apparaten, beheer downloads en ontvang tips om Firefox optimaal te benutten. @@ -572,6 +559,16 @@ URL’s automatisch aanvullen + + Suggesties van sponsors + + Ondersteun %1$s met af en toe gesponsorde suggesties + + Suggesties van %1$s + + Ontvang suggesties van het web gerelateerd aan uw zoekopdracht Koppelingen openen in apps @@ -2257,9 +2254,9 @@ Nu controleren - Nog niet genoeg beoordelingen + Nog niet genoeg beoordelingen - Wanneer dit product meer beoordelingen heeft, kunnen we hun kwaliteit beoordelen. + Wanneer dit product meer beoordelingen heeft, kunnen we hun kwaliteit beoordelen. Product is niet beschikbaar @@ -2267,7 +2264,7 @@ Melden dat dit product weer op voorraad is - Beoordelingskwaliteit controleren + Beoordelingskwaliteit controleren Beoordelingskwaliteit controleren @@ -2277,9 +2274,9 @@ We zouden binnen 24 uur info over de beoordelingen van dit product moeten hebben. Kom later nog eens terug. - We kunnen deze beoordelingen niet controleren + We kunnen deze beoordelingen niet controleren - Helaas kunnen we de beoordelingskwaliteit voor bepaalde soorten producten niet controleren. Dit betreft bijvoorbeeld cadeaubonnen en streaming video, muziek en games. + Helaas kunnen we de beoordelingskwaliteit voor bepaalde soorten producten niet controleren. Dit betreft bijvoorbeeld cadeaubonnen en streaming video, muziek en games. Binnenkort info @@ -2289,13 +2286,13 @@ Begrepen - Er is momenteel geen info beschikbaar + Er is momenteel geen info beschikbaar - We werken eraan om het probleem op te lossen. Kom binnenkort nog eens terug. + We werken eraan om het probleem op te lossen. Kom binnenkort nog eens terug. - Geen netwerkverbinding + Geen netwerkverbinding - Controleer uw netwerkverbinding en probeer vervolgens de pagina opnieuw te laden. + Controleer uw netwerkverbinding en probeer vervolgens de pagina opnieuw te laden. Nog geen info over deze beoordelingen @@ -2331,7 +2328,7 @@ Beoordelingscontrole openen - Beta + Beta Beoordelingscontrole openen diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml index 8fb3ba71e..c22c8387c 100644 --- a/app/src/main/res/values-pa-rIN/strings.xml +++ b/app/src/main/res/values-pa-rIN/strings.xml @@ -330,16 +330,9 @@ ਹੁਣੇ ਨਹੀਂ - - %s ਨੂੰ ਆਪਣਾ ਪੱਕਾ ਬਰਾਊਜ਼ਰ ਬਣਾਓ Firefox ਨੂੰ ਆਪਣਾ ਪੱਕਾ ਬਰਾਊਜ਼ਰ ਬਣਾਓ - - %1$s ਫ਼ਾਇਦੇ ਤੋਂ ਪਹਿਲਾਂ ਲੋਕਾਂ ਨੂੰ ਰੱਖਦਾ ਹੈ ਅਤੇ ਅੰਤਰ-ਸਾਈਟ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾ ਕੇ ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ।\n\nਸਾਡੇ %2$s ਬਾਰੇ ਹੋਰ ਜਾਣੋ। Firefox ਫ਼ਾਇਦੇ ਨਾਲੋਂ ਲੋਕਾਂ ਨੂੰ ਪਹਿਲ ਦਿੰਦਾ ਹੈ ਅਤੇ ਅੰਤਰ-ਸਾਈਟ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾ ਕੇ ਤੁਹਾਡੇ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਚਾਉਂਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਸਾਡੀ ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ ਨੂੰ ਪੜ੍ਹੋ। @@ -358,16 +351,10 @@ ਸਾਈਨ ਇਨ ਹੁਣੇ ਨਹੀਂ - - ਨੋਟੀਫ਼ਿਕੇਸ਼ਨ ਤੁਹਾਨੂੰ %s ਨਾਲ ਹੋਰ ਕਰਨ ਦੀ ਮਦਦ ਕਰਦੇ ਹਨ ਨੋਟੀਫ਼ਿਕੇਸ਼ਨ ਤੁਹਾਨੂੰ Firefox ਨਾਲ ਵੱਧ ਕੰਮ ਦੀ ਮਦਦ ਕਰਦੇ ਹਨ - - ਡਿਵਾਈਸਾਂ ਵਿੱਚ ਟੈਬਾਂ ਭੇਜੋ, ਡਾਊਨਲੋਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ ਅਤੇ %s ਦਾ ਭਰਪੂਰ ਫ਼ਾਇਦਾ ਲੈਣ ਲਈ ਹੋਰ ਸੁਝਾਅ ਲਵੋ। ਟੈਬਾਂ ਨੂੰ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਭੇਜੋ, ਡਾਊਨਲੋਡ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ ਅਤੇ Firefox ਦਾ ਪੂਰਾ ਫ਼ਾਇਦਾ ਲੈਣ ਲਈ ਸੁਝਾਅ ਲਵੋ। @@ -576,6 +563,16 @@ ਆਪੇ-ਪੂਰਨ URL + + ਸਪੌਂਸਰਾਂ ਵਲੋਂ ਸੁਝਾਅ + + ਕਦੇ ਕਦਾਈ ਸਪੌਂਸਰਾਂ ਵਲੋਂ ਸੁਝਾਆਵਾਂ ਰਾਹੀਂ %1$s ਦੀ ਮਦਦ ਕਰੋ + + %1$s ਵਲੋਂ ਸੁਝਾਅ + + ਆਪਣੀ ਖੋਜ ਨਾਲ ਸੰਬੰਧਿਤ ਵੈੱਬ ਤੋਂ ਸੁਝਾਅ ਲਵੋ ਲਿੰਕ ਐਪਾਂ ਵਿੱਚ ਖੋਲ੍ਹੋ @@ -2268,9 +2265,9 @@ ਹੁਣੇ ਜਾਂਚੋ - ਹਾਲੇ ਚੋਖੇ ਰੀਵਿਊ ਨਹੀਂ ਹਨ + ਹਾਲੇ ਚੋਖੇ ਰੀਵਿਊ ਨਹੀਂ ਹਨ - ਜਦੋਂ ਉਪਤਾਦ ਲਈ ਹੋਰ ਰੀਵਿਊ ਹੁੰਦੇ ਹਨ ਤਾਂ ਅਸੀਂ ਉਹਨਾਂ ਦੀ ਕੁਆਲਟੀ ਚੈਕ ਕਰ ਸਕਦੇ ਹਾਂ। + ਜਦੋਂ ਉਪਤਾਦ ਲਈ ਹੋਰ ਰੀਵਿਊ ਹੁੰਦੇ ਹਨ ਤਾਂ ਅਸੀਂ ਉਹਨਾਂ ਦੀ ਕੁਆਲਟੀ ਚੈਕ ਕਰ ਸਕਦੇ ਹਾਂ। ਉਤਪਾਦ ਮੌਜੂਦ ਨਹੀਂ ਹੈ @@ -2278,7 +2275,7 @@ ਇਸ ਉਤਪਾਦ ਦੇ ਸਟਾਕ ਵਿੱਚ ਵਾਪਸ ਹੋਣ ਦੀ ਜਾਣਕਾਰੀ ਦਿਓ - ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ + ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ @@ -2288,9 +2285,9 @@ ਸਾਡੇ ਕੋਲ ਇਸ ਉਤਪਾਦ ਦੇ ਰੀਵਿਊ 24 ਘੰਟਿਆਂ ਵਿੱਚ ਅੱਪਡੇਟ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ। ਬਾਅਦ ਵਿੱਚ ਵੇਖਿਓ। - ਅਸੀਂ ਇਹ ਰੀਵਿਊਆਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ + ਅਸੀਂ ਇਹ ਰੀਵਿਊਆਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ - ਅਫ਼ਸੋਸ ਹੈ ਪਰ ਅਸੀਂ ਉਤਪਾਦਾਂ ਦੀਆਂ ਕੁਝ ਕਿਸਮਾਂ ਲਈ ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ। ਮਿਸਾਲ ਵਜੋਂ ਗਿਫ਼ਟ ਕਾਰਡ ਅਤੇ ਸਟਰੀਮਿੰਗ ਵੀਡੀਓ, ਸੰਗੀਤ ਤੇ ਖੇਡਾਂ। + ਅਫ਼ਸੋਸ ਹੈ ਪਰ ਅਸੀਂ ਉਤਪਾਦਾਂ ਦੀਆਂ ਕੁਝ ਕਿਸਮਾਂ ਲਈ ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ। ਮਿਸਾਲ ਵਜੋਂ ਗਿਫ਼ਟ ਕਾਰਡ ਅਤੇ ਸਟਰੀਮਿੰਗ ਵੀਡੀਓ, ਸੰਗੀਤ ਤੇ ਖੇਡਾਂ। ਜਾਣਕਾਰੀ ਛੇਤੀ ਹੀ ਆ ਰਹੀ ਹੈ @@ -2300,13 +2297,13 @@ ਸਮਝੇ - ਹਾਲੇ ਕੋਈ ਵੀ ਜਾਣਕਾਰੀ ਨਹੀਂ ਹੈ + ਹਾਲੇ ਕੋਈ ਵੀ ਜਾਣਕਾਰੀ ਨਹੀਂ ਹੈ - ਅਸੀਂ ਮਸਲਾ ਠੀਕ ਕਰਨ ਲਈ ਕੰਮ ਕਰ ਰਹੇ ਹਾਂ। ਫ਼ੇਰ ਵਾਪਸ ਦੇਖਿਓ। + ਅਸੀਂ ਮਸਲਾ ਠੀਕ ਕਰਨ ਲਈ ਕੰਮ ਕਰ ਰਹੇ ਹਾਂ। ਫ਼ੇਰ ਵਾਪਸ ਦੇਖਿਓ। - ਕੋਈ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ + ਕੋਈ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ - ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਫ਼ੇਰ ਸਫ਼ੇ ਨੂੰ ਮੁੜ-ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। + ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਫ਼ੇਰ ਸਫ਼ੇ ਨੂੰ ਮੁੜ-ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਇਹਨਾਂ ਰੀਵਿਊ ਬਾਰੇ ਹਾਲੇ ਕੋਈ ਜਾਣਕਾਰੀ ਨਹੀਂ ਹੈ @@ -2341,7 +2338,7 @@ ਰੀਵਿਊ ਚੈਕਰ ਖੋਲ੍ਹੋ - ਬੀਟਾ + ਬੀਟਾ ਰੀਵਿਊ ਚੈਕਰ ਖੋਲ੍ਹੋ diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index ff5193dca..f35abb7d6 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -65,6 +65,19 @@ පෞද්ගලික පිරික්සීම පිළිබඳව සුලබ මිථ්‍යා
+ + + මෙම උපාංගයේ කිසිදු හෝඩුවාවක් නොතබයි + + ඔබ සියළුම පෞද්ගලික කවුළු වැසූ විට, %1$s ඔබගේ දත්තකඩ, ඉතිහාසය සහ අඩවිවල දත්ත මකා දමයි. %2$s + + මාගේ ක්‍රියාකාරකම් දකින අය කවුරුන්ද? + එක් තට්ටුවකින් ඊළඟ පෞද්. පටිත්ත අරින්න. @@ -88,6 +101,11 @@ පූර්ණ දත්තකඩ රැකවරණය ගැන දැනගන්න + + + නැවුම් පෞද්ගලික වාරයක් ඇරඹීමට මෙතැන තට්ටු කරන්න. ඔබගේ ඉතිහාසය, දත්තකඩ — සියල්ල මකන්න. + + රූගතයට ප්‍රවේශය අවශ්‍යයි. ඇන්ඩ්‍රොයිඩ් සැකසුම් වෙත ගොස්, අවසර මත තට්ටු කර ඉඩ දෙන්න තට්ටු කරන්න. @@ -299,16 +317,9 @@ දැන් නොවේ - - %s පෙරනිමි අතිරික්සුව කරන්න ෆයර්ෆොක්ස් ප්‍රධාන අතිරික්සුව කරන්න - - %1$s සැමවිට ලාභයට ඉහළින් මිනිසුන්ව තබයි. හරස්-අඩවි ලුහුබැඳීම් අවහිර කර ඔබගේ පෞද්ගලිකත්‍වය රැක දෙයි.\n\nඅපගේ %2$s හරහා තව දැනගන්න. ෆයර්ෆොක්ස් සැමවිට ලාභයට ඉහළින් මිනිසුන්ව තබයි. හරස්-අඩවි ලුහුබැඳීම් අවහිර කර ඔබගේ පෞද්ගලිකත්‍වය රැක දෙයි.\n\nඅපගේ පෞද්ගලිකත්‍ව දැන්වීම හරහා තව දැනගන්න. @@ -327,15 +338,9 @@ පිවිසෙන්න දැන් නොවේ - - %s සමඟ බොහෝ දෑ කිරීමට දැනුම්දීම් උපකාරී වේ ෆයර්ෆොක්ස් සමඟ බොහෝ දෑ කිරීමට දැනුම්දීම් උපකාරී වේ - - උපාංග අතර පටිති යැවීමට, බාගැනීම් කළමනාකරණයට මෙන්ම %s වෙතින් බොහෝ ප්‍රතිලාභ අත්විඳීම සඳහා ඉඟි ලබා ගන්න. උපාංග අතර පටිති යැවීමට, බාගැනීම් කළමනාකරණයට මෙන්ම ෆයර්ෆොක්ස් වෙතින් බොහෝ ප්‍රතිලාභ අත්විඳීම සඳහා ඉඟි ලබා ගන්න. @@ -344,6 +349,9 @@ දැන් නොවේ + + ඔබගේ මුල් තිරයේ ෆයර්ෆොක්ස් ඇත්නම්, හරස්-අඩවි ලුහුබැඳීම් අවහිර කරන පෞද්ගලිකත්‍වයට මුල්තැන දෙන අතිරික්සුවට පහසුවෙන් ප්‍රවේශ වීමට හැකිය. දැන් නොවේ @@ -531,6 +539,13 @@ ගිණුමේ සැකසුම් ඒ.ස.නි. ස්වයං පිරවීම + + අනුග්‍රහකයින්ගෙන් යෝජනා + + %1$s වෙතින් යෝජනා + + ඔබගේ සෙවීමට අදාළ යෝජනා අන්තර්ජාලයෙන් ලබා ගන්න යෙදුම්වල සබැඳි අරින්න @@ -639,6 +654,9 @@ එක්කහුව තාවකාලිකව අබල කර ඇත + + එක්කහු අබල කර ඉදිරියට යන්න + ගිණුම කළමනාකරණය @@ -1308,6 +1326,8 @@ පෞද්. පටිත්ත වැසිණි පෞද්. පටිති වැසිණි + + පෞද්. පිරික්සුම් දත්ත මැකිණි පෙරසේ @@ -1406,7 +1426,7 @@ මකන්න - පිරික්සීමේ දත්ත මැකිණි + පිරික්සුම් දත්ත මැකිණි පිරික්සීමේ දත්ත මැකෙමින්… @@ -1492,7 +1512,7 @@ https://firefox.com/pair වෙත යන්න]]> - පරිලෝකනයට සූදානම් + පරිලෝකනයට ඔබන්න රූගතය සමඟ පිවිසෙන්න @@ -1911,6 +1931,8 @@ සෙවුම් යෝජනා යෙ.ක්‍ර.මු. ඒ.ස.නි. “%s” සමඟ විමසුම ප්‍රතිස්ථාපනය කරන්න. නිදසුන:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + “%s” සමඟ විමසුම ප්‍රතිස්ථාපනය කරන්න. නිදසුන:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s සුරකින්න @@ -2080,7 +2102,7 @@ %s සෙවුම - ෆයර්ෆොක්ස් හි ස්වයංක්‍රීයව විවෘත වීමට අඩවි, වි-තැපැල් සහ පණිවිඩ වලින් සබැඳි සකසන්න. + ෆයර්ෆොක්ස් අතිරික්සුවේ ස්වයංක්‍රීයව විවෘත වීමට පණිවිඩ, වි-තැපැල් සහ අඩවිවල සබැඳි සකසන්න. ඉවත් කරන්න @@ -2124,12 +2146,24 @@ තව දැනගන්න සමාලෝචන සෝදිසිකරු අක්‍රිය කරන්න + + නිෂ්පාදනය නොතිබේ + + සමාලෝචනයේ ගුණත්‍වය පරීක්‍ෂා වෙමින් + + මෙයට තත්. 60 ක් පමණ ගත වනු ඇත. + + වාර්තා කිරීමට ස්තූතියි! විශ්ලේෂණය යාවත්කාලීනයි තේරුණා දැනට තොරතුරු නැත + + ජාල සම්බන්ධතාවයක් නැත + + ඔබගේ ජාල සම්බන්ධතාවය පරීක්‍ෂා කර පිටුව නැවත පූරණය කරන්න. තව දැනගන්න @@ -2138,15 +2172,30 @@ භාවිත නියම දැන් නොවේ + + මිලදී ගැනීමට පෙර — ඔබට මෙම නිෂ්පාදනයේ සමාලෝචන විශ්වාස කළ හැකිදැයි බලන්න. + + සමාලෝචන සෝදිසිකරු අරින්න - බීටා + බීටා + + සමාලෝචන සෝදිසිකරු අරින්න + + සමාලෝචන සෝදිසිකරු වසන්න + + තරු 5 න් %1$s අඩුවෙන් පෙන්වන්න තව පෙන්වන්න + + ගුණත්‍වය මිල + + ඇසුරුම්කරණය සහ පෙනුම + හැකිළීම diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 58e100dad..79b11267e 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -67,6 +67,14 @@ Pogoste zmote o zasebnem brskanju + + + Ne pustite sledi na tej napravi + + Ko zaprete vsa zasebna okna, %1$s izbriše piškotke, zgodovino in podatke o spletnih mestih. %2$s @@ -95,6 +103,11 @@ Več o popolni zaščiti pred piškotki + + + Tapnite tukaj za začetek nove zasebne seje. Izbrišite zgodovino, piškotke – vse. + + Potreben je dostop do kamere. Odprite nastavitve sistema Android in v dovoljenjih tapnite Dovoli. @@ -311,16 +324,9 @@ Ne zdaj - - Nastavite %s kot brskalnik za svoja vsakodnevna opravila Naj bo Firefox vaš brskalnik za vsakodnevna opravila - - %1$s daje ljudem prednost pred dobičkom in ščiti vašo zasebnost, tako da zavrača medspletne sledilce.\n\nPreberite več v našem %2$s. Firefox daje ljudem prednost pred dobičkom in ščiti vašo zasebnost, tako da zavrača medspletne sledilce.\n\nPreberite več v našem obvestilu o zasebnosti. @@ -339,15 +345,9 @@ Prijava Ne zdaj - - Obvestila vam pomagajo pri delu z aplikacijo %s Obvestila vam pomagajo pri delu s Firefoxom - - Pošiljajte zavihke med napravami, upravljajte prenose in prejemajte nasvete, kako kar najbolje izkoristiti %s. Pošiljajte zavihke med napravami, upravljajte prenose in prejemajte nasvete, kako kar najbolje izkoristiti Firefox. @@ -1342,6 +1342,8 @@ Zasebni zavihek zaprt Zasebni zavihki zaprti + + Podatki zasebnega brskanja izbrisani RAZVELJAVI diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 0a5d1a41f..f57a833c3 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -329,16 +329,9 @@ Inte nu - - Gör %s till din favoritwebbläsare Gör Firefox till din favoritwebbläsare - - %1$s sätter människor före vinster och försvarar din integritet genom att blockera spårare på flera webbplatser.\n\nLäs mer i vårt %2$s. Firefox sätter människor före vinster och försvarar din integritet genom att blockera spårare på flera webbplatser.\n\nLäs mer i vårt sekretessmeddelande. @@ -358,15 +351,9 @@ Logga in Inte nu - - Aviseringar hjälper dig att göra mer med %s Aviseringar hjälper dig att göra mer med Firefox - - Skicka flikar mellan enheter, hantera nedladdningar och få tips om hur du får ut det mesta av %s. Skicka flikar mellan enheter, hantera nedladdningar och få tips om hur du får ut det mesta av Firefox. @@ -572,6 +559,16 @@ Autokomplettera URL:ar + + Förslag från sponsorer + + Stöd %1$s med enstaka sponsrade förslag + + Förslag från %1$s + + Få förslag från webben relaterade till din sökning Öppna länkar i appar @@ -2264,9 +2261,9 @@ Kontrollera nu - Inte tillräckligt med recensioner ännu + Inte tillräckligt med recensioner ännu - När den här produkten har fler recensioner kan vi kontrollera deras kvalitet. + När den här produkten har fler recensioner kan vi kontrollera deras kvalitet. Produkten är inte tillgänglig @@ -2274,7 +2271,7 @@ Rapportera att denna produkt finns i lager igen - Kontrollerar recensionens kvalitet + Kontrollerar recensionens kvalitet Kontrollerar recensionens kvalitet @@ -2284,9 +2281,9 @@ Vi bör ha information om denna produkts recensioner inom 24 timmar. Kom tillbaka snart. - Vi kan inte kontrollera dessa recensioner + Vi kan inte kontrollera dessa recensioner - Tyvärr kan vi inte kontrollera recensionskvaliteten för vissa typer av produkter. Till exempel presentkort och strömmande video, musik och spel. + Tyvärr kan vi inte kontrollera recensionskvaliteten för vissa typer av produkter. Till exempel presentkort och strömmande video, musik och spel. Info kommer snart @@ -2296,13 +2293,13 @@ Jag förstår - Ingen information tillgänglig just nu + Ingen information tillgänglig just nu - Vi jobbar på att lösa problemet. Kom tillbaka snart. + Vi jobbar på att lösa problemet. Kom tillbaka snart. - Ingen nätverksanslutning + Ingen nätverksanslutning - Kontrollera din nätverksanslutning och försök sedan ladda om sidan. + Kontrollera din nätverksanslutning och försök sedan ladda om sidan. Ingen information om dessa recensioner ännu @@ -2336,7 +2333,7 @@ Öppna recensionsgranskaren - Beta + Beta Öppna recensionsgranskaren diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 07d412714..1ca29abe8 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -322,16 +322,9 @@ Không phải bây giờ - - Đặt %s làm trình duyệt mặc định của bạn Đặt Firefox làm trình duyệt của bạn - - %1$s đặt mọi người lên trên lợi nhuận và bảo vệ quyền riêng tư của bạn bằng cách chặn các trình theo dõi trên nhiều trang web.\n\nTìm hiểu thêm trong %2$s của chúng tôi. Firefox đặt mọi người lên trên lợi nhuận và bảo vệ quyền riêng tư của bạn bằng cách chặn các trình theo dõi trên nhiều trang web.\n\nTìm hiểu thêm trong thông báo về quyền riêng tư của chúng tôi. @@ -350,15 +343,9 @@ Đăng nhập Không phải bây giờ - - Thông báo giúp bạn làm được nhiều việc hơn với %s Thông báo giúp bạn làm được nhiều việc hơn với Firefox - - Gửi các thẻ giữa các thiết bị, quản lý tải xuống và nhận các mẹo để tận dụng tối đa %s. Gửi các thẻ giữa các thiết bị, quản lý tải xuống và nhận các mẹo để tận dụng tối đa Firefox. @@ -563,6 +550,16 @@ Cài đặt tài khoản Tự động điền URL + + Đề xuất từ nhà tài trợ + + Hỗ trợ %1$s với các đề xuất được tài trợ không thường xuyên + + Đề xuất từ %1$s + + Nhận đề xuất từ ​​web liên quan đến tìm kiếm của bạn Mở liên kết trong ứng dụng @@ -2234,9 +2231,9 @@ Kiểm tra ngay - Chưa đủ đánh giá + Chưa đủ đánh giá - Khi sản phẩm này có nhiều đánh giá hơn, chúng tôi sẽ có thể kiểm tra chất lượng của chúng. + Khi sản phẩm này có nhiều đánh giá hơn, chúng tôi sẽ có thể kiểm tra chất lượng của chúng. Sản phẩm không có sẵn @@ -2244,7 +2241,7 @@ Báo sản phẩm này đã có hàng trở lại - Đang kiểm tra chất lượng đánh giá + Đang kiểm tra chất lượng đánh giá Đang kiểm tra chất lượng đánh giá @@ -2254,9 +2251,9 @@ Chúng tôi sẽ có thông tin về đánh giá của sản phẩm này trong vòng 24 giờ. Hãy kiểm tra lại sau. - Chúng tôi không thể kiểm tra những đánh giá này + Chúng tôi không thể kiểm tra những đánh giá này - Rất tiếc, chúng tôi không thể kiểm tra chất lượng đánh giá đối với một số loại sản phẩm nhất định. Ví dụ: thẻ quà tặng và truyền phát video, âm nhạc và trò chơi. + Rất tiếc, chúng tôi không thể kiểm tra chất lượng đánh giá đối với một số loại sản phẩm nhất định. Ví dụ: thẻ quà tặng và truyền phát video, âm nhạc và trò chơi. Thông tin sắp ra mắt @@ -2266,13 +2263,13 @@ Đã hiểu - Hiện không có thông tin nào + Hiện không có thông tin nào - Chúng tôi đang làm việc để giải quyết sự cố. Hãy kiểm tra lại sau. + Chúng tôi đang làm việc để giải quyết sự cố. Hãy kiểm tra lại sau. - Không có kết nối mạng + Không có kết nối mạng - Hãy kiểm tra kết nối mạng của bạn rồi thử tải lại trang. + Hãy kiểm tra kết nối mạng của bạn rồi thử tải lại trang. Chưa có thông tin về những đánh giá này @@ -2306,7 +2303,7 @@ Mở trình kiểm tra đánh giá - Beta + Beta Mở trình kiểm tra đánh giá From 93ef8c7c2598dfdd714a04189b5a4e4b4ac7c855 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Wed, 27 Sep 2023 19:01:59 -0700 Subject: [PATCH 024/238] Revert "Bug 1810044 1810045 - Delay reading clipboard and allow to paste non url" This reverts commit 00989444f65a9fe7c02ab8788462229443403b89. --- .../mozilla/fenix/utils/ClipboardHandler.kt | 23 +++-------- .../mozilla/fenix/utils/ToolbarPopupWindow.kt | 38 +++++++++---------- 2 files changed, 24 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt b/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt index 25d782cfe..eb61dd8fd 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/ClipboardHandler.kt @@ -39,7 +39,10 @@ class ClipboardHandler(val context: Context) { if (clipboard.isPrimaryClipEmpty()) { return null } - if (containsText()) { + if (clipboard.isPrimaryClipPlainText() || + clipboard.isPrimaryClipHtmlText() || + clipboard.isPrimaryClipUrlText() + ) { return firstSafePrimaryClipItemText } return null @@ -81,6 +84,7 @@ class ClipboardHandler(val context: Context) { } /** + * Returns a possible URL from the actual content of the clipboard, be aware this is a sensitive * API as from Android 12 and above, accessing it will trigger a notification letting the user * know the app has accessed the clipboard, make sure when you call this API that users are * completely aware that we are accessing the clipboard. @@ -97,16 +101,6 @@ class ClipboardHandler(val context: Context) { } } - /** - * Returns whether or not the clipboard data contains text. - * We cannot rely on `isPrimaryClipEmpty()` since it triggers a clipboard access system notification. - */ - fun containsText(): Boolean { - return clipboard.isPrimaryClipHtmlText() || - clipboard.isPrimaryClipPlainText() || - clipboard.isPrimaryClipUrlText() - } - @Suppress("MagicNumber") internal fun containsURL(): Boolean { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { @@ -133,13 +127,6 @@ class ClipboardHandler(val context: Context) { private fun ClipboardManager.isPrimaryClipUrlText() = primaryClipDescription?.hasMimeType(MIME_TYPE_TEXT_URL) ?: false - /** - * Returns whether or not the clipboard has any clip data. - * Reads the clip data, be aware this is a sensitive API as from Android 12 and above, - * accessing it will trigger a notification letting the user know the app has accessed the clipboard, - * make sure when you call this API that users are completely aware that we are accessing the clipboard. - * See https://github.com/mozilla-mobile/fenix/issues/22271 for more details. - */ private fun ClipboardManager.isPrimaryClipEmpty() = primaryClip?.itemCount == 0 /** diff --git a/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt b/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt index 0d75284a8..839916483 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/ToolbarPopupWindow.kt @@ -26,10 +26,6 @@ import org.mozilla.fenix.databinding.BrowserToolbarPopupWindowBinding import org.mozilla.fenix.ext.components import java.lang.ref.WeakReference -/** - * Since Android 12 reading the clipboard triggers an OS notification. - * As such it is important that we do not read it prematurely and only when the user trigger a paste action. - */ object ToolbarPopupWindow { fun show( view: WeakReference, @@ -39,13 +35,12 @@ object ToolbarPopupWindow { copyVisible: Boolean = true, ) { val context = view.get()?.context ?: return - val isCustomTabSession = customTabId != null val clipboard = context.components.clipboardHandler + val clipboardUrl = clipboard.getUrl() + val clipboardText = clipboard.text + if (!copyVisible && clipboardUrl == null) return - val containsText = clipboard.containsText() - val containsUrl = clipboard.containsURL() - val pasteDeactivated = isCustomTabSession || (!containsText && !containsUrl) - if (!copyVisible && pasteDeactivated) return + val isCustomTabSession = customTabId != null val binding = BrowserToolbarPopupWindowBinding.inflate(LayoutInflater.from(context)) val popupWindow = PopupWindow( @@ -62,8 +57,9 @@ object ToolbarPopupWindow { popupWindow.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) binding.copy.isVisible = copyVisible - binding.paste.isVisible = containsText && !isCustomTabSession - binding.pasteAndGo.isVisible = containsUrl && !isCustomTabSession + + binding.paste.isVisible = clipboardText != null && !isCustomTabSession + binding.pasteAndGo.isVisible = clipboardUrl != null && !isCustomTabSession if (copyVisible) { binding.copy.setOnClickListener { copyView -> @@ -86,21 +82,17 @@ object ToolbarPopupWindow { } } - if (binding.paste.isVisible) { + clipboardText?.let { text -> binding.paste.setOnClickListener { popupWindow.dismiss() - handlePaste(clipboard.text.orEmpty()) + handlePaste(text) } } - if (binding.pasteAndGo.isVisible) { + clipboardUrl?.let { url -> binding.pasteAndGo.setOnClickListener { popupWindow.dismiss() - clipboard.extractURL()?.also { - handlePasteAndGo(it) - } ?: run { - Logger("ToolbarPopupWindow").error("Clipboard contains URL but unable to read text") - } + handlePasteAndGo(url) } } @@ -127,4 +119,12 @@ object ToolbarPopupWindow { selectedTab?.readerState?.activeUrl ?: selectedTab?.content?.url } } + + private fun ClipboardHandler.getUrl(): String? { + if (containsURL()) { + text?.let { return it } + Logger("ToolbarPopupWindow").error("Clipboard contains URL but unable to read text") + } + return null + } } From 9b599dc07ab4be67de5aa03b9e8da41056997689 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Wed, 27 Sep 2023 16:14:50 +0300 Subject: [PATCH 025/238] Bug 1855449 - Normal Browsing search TestRail matching --- .../org/mozilla/fenix/ui/ComposeSearchTest.kt | 37 +++++++++------ .../java/org/mozilla/fenix/ui/SearchTest.kt | 45 ++++++++++++++++--- .../mozilla/fenix/ui/SettingsSearchTest.kt | 24 ---------- 3 files changed, 62 insertions(+), 44 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt index 019b3df95..efa722ba9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt @@ -156,7 +156,7 @@ class ComposeSearchTest { @SmokeTest @Test - fun scanButtonDenyPermissionTest() { + fun verifyQRScanningCameraAccessDialogTest() { val cameraManager = TestHelper.appContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager Assume.assumeTrue(cameraManager.cameraIdList.isNotEmpty()) @@ -177,7 +177,7 @@ class ComposeSearchTest { @SmokeTest @Test - fun scanButtonAllowPermissionTest() { + fun scanQRCodeToOpenAWebpageTest() { val cameraManager = TestHelper.appContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager Assume.assumeTrue(cameraManager.cameraIdList.isNotEmpty()) @@ -213,7 +213,7 @@ class ComposeSearchTest { // Verifies a temporary change of search engine from the Search shortcut menu @SmokeTest @Test - fun selectSearchEnginesShortcutTest() { + fun searchEnginesCanBeChangedTemporarilyFromSearchSelectorMenuTest() { val enginesList = listOf("DuckDuckGo", "Google", "Amazon.com", "Wikipedia", "Bing", "eBay") enginesList.forEach { @@ -230,7 +230,7 @@ class ComposeSearchTest { } @Test - fun accessSearchSettingFromSearchSelectorMenuTest() { + fun defaultSearchEnginesCanBeSetFromSearchSelectorMenuTest() { searchScreen { clickSearchSelectorButton() }.clickSearchEngineSettings { @@ -247,7 +247,7 @@ class ComposeSearchTest { } @Test - fun clearSearchTest() { + fun verifyClearSearchButtonTest() { homeScreen { }.openSearch { typeSearch(queryString) @@ -622,9 +622,10 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1850517 // Test that verifies the Firefox Suggest results in a general search context @Test - fun firefoxSuggestHeaderForBrowsingDataSuggestionsTest() { + fun verifyFirefoxSuggestHeaderForBrowsingDataSuggestionsTest() { val firstPage = TestAssetHelper.getGenericAsset(searchMockServer, 1) val secondPage = TestAssetHelper.getGenericAsset(searchMockServer, 2) @@ -646,8 +647,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154197 @Test - fun verifySearchTabsItemsTest() { + fun verifyTabsSearchItemsTest() { navigationToolbar { }.clickUrlbar { clickSearchSelectorButton() @@ -659,8 +661,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154198 @Test - fun verifySearchTabsWithoutOpenTabsTest() { + fun verifyTabsSearchWithoutOpenTabsTest() { navigationToolbar { }.clickUrlbar { clickSearchSelectorButton() @@ -672,9 +675,10 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154199 @SmokeTest @Test - fun verifySearchTabsWithOpenTabsTest() { + fun verifyTabsSearchWithOpenTabsTest() { val firstPageUrl = TestAssetHelper.getGenericAsset(searchMockServer, 1) val secondPageUrl = TestAssetHelper.getGenericAsset(searchMockServer, 2) @@ -707,8 +711,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154203 @Test - fun verifySearchForBookmarksUITest() { + fun verifyBookmarksSearchItemsTest() { navigationToolbar { }.clickSearchSelectorButton { selectTemporarySearchMethod("Bookmarks") @@ -719,8 +724,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154204 @Test - fun bookmarkSearchWithNoBookmarksTest() { + fun verifyBookmarkSearchWithNoBookmarksTest() { navigationToolbar { }.clickSearchSelectorButton { selectTemporarySearchMethod("Bookmarks") @@ -729,8 +735,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154206 @Test - fun bookmarkSearchWhenBookmarksExistTest() { + fun verifyBookmarksSearchForBookmarkedItemsTest() { createBookmarkItem(url = "https://bookmarktest1.com", title = "Test1", position = 1u) createBookmarkItem(url = "https://bookmarktest2.com", title = "Test2", position = 2u) @@ -756,8 +763,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154212 @Test - fun verifySearchHistoryItemsTest() { + fun verifyHistorySearchItemsTest() { navigationToolbar { }.clickUrlbar { clickSearchSelectorButton() @@ -769,8 +777,9 @@ class ComposeSearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154213 @Test - fun verifySearchHistoryWithoutBrowsingDataTest() { + fun verifyHistorySearchWithoutBrowsingHistoryTest() { navigationToolbar { }.clickUrlbar { clickSearchSelectorButton() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index 344b38da8..92e534834 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -32,6 +32,7 @@ import org.mozilla.fenix.helpers.MockBrowserDataHelper.createTabItem import org.mozilla.fenix.helpers.MockBrowserDataHelper.setCustomSearchEngine import org.mozilla.fenix.helpers.SearchDispatcher import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper.appContext import org.mozilla.fenix.helpers.TestHelper.assertNativeAppOpens import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton @@ -49,6 +50,7 @@ import org.mozilla.fenix.ui.robots.longClickPageObject import org.mozilla.fenix.ui.robots.multipleSelectionToolbar import org.mozilla.fenix.ui.robots.navigationToolbar import org.mozilla.fenix.ui.robots.searchScreen +import java.util.Locale /** * Tests for verifying the search fragment @@ -173,9 +175,10 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1059459 @SmokeTest @Test - fun scanButtonDenyPermissionTest() { + fun verifyQRScanningCameraAccessDialogTest() { val cameraManager = appContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager assumeTrue(cameraManager.cameraIdList.isNotEmpty()) @@ -194,9 +197,10 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/235397 @SmokeTest @Test - fun scanButtonAllowPermissionTest() { + fun scanQRCodeToOpenAWebpageTest() { val cameraManager = appContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager assumeTrue(cameraManager.cameraIdList.isNotEmpty()) @@ -230,10 +234,11 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/235395 // Verifies a temporary change of search engine from the Search shortcut menu @SmokeTest @Test - fun selectSearchEnginesShortcutTest() { + fun searchEnginesCanBeChangedTemporarilyFromSearchSelectorMenuTest() { val enginesList = listOf("DuckDuckGo", "Google", "Amazon.com", "Wikipedia", "Bing", "eBay") enginesList.forEach { @@ -249,8 +254,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233589 @Test - fun accessSearchSettingFromSearchSelectorMenuTest() { + fun defaultSearchEnginesCanBeSetFromSearchSelectorMenuTest() { searchScreen { clickSearchSelectorButton() }.clickSearchEngineSettings { @@ -266,8 +272,9 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/522918 @Test - fun clearSearchTest() { + fun verifyClearSearchButtonTest() { homeScreen { }.openSearch { typeSearch(queryString) @@ -641,9 +648,10 @@ class SearchTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2154215 @SmokeTest @Test - fun verifySearchHistoryWithBrowsingDataTest() { + fun verifyHistorySearchWithBrowsingHistoryTest() { val firstPageUrl = getGenericAsset(searchMockServer, 1) val secondPageUrl = getGenericAsset(searchMockServer, 2) @@ -759,4 +767,29 @@ class SearchTest { ) } } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1232631 + // Expected for app language set to Arabic + @Test + fun verifySearchEnginesFunctionalityUsingRTLLocaleTest() { + val arabicLocale = Locale("ar", "AR") + + TestHelper.runWithSystemLocaleChanged(arabicLocale, activityTestRule.activityRule) { + homeScreen { + }.openSearch { + verifyTranslatedFocusedNavigationToolbar("ابحث أو أدخِل عنوانا") + clickSearchSelectorButton() + verifySearchShortcutListContains( + "Google", + "Bing", + "Amazon.com", + "DuckDuckGo", + "ويكيبيديا (ar)", + ) + selectTemporarySearchMethod("ويكيبيديا (ar)") + }.submitQuery("firefox") { + verifyUrl("firefox") + } + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt index a98cb8f33..2f3b440bd 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt @@ -530,30 +530,6 @@ class SettingsSearchTest { } } - // Expected for app language set to Arabic - @Test - fun verifySearchEnginesWithRTLLocale() { - val arabicLocale = Locale("ar", "AR") - - runWithSystemLocaleChanged(arabicLocale, activityTestRule.activityRule) { - homeScreen { - }.openSearch { - verifyTranslatedFocusedNavigationToolbar("ابحث أو أدخِل عنوانا") - clickSearchSelectorButton() - verifySearchShortcutListContains( - "Google", - "Bing", - "Amazon.com", - "DuckDuckGo", - "ويكيبيديا (ar)", - ) - selectTemporarySearchMethod("ويكيبيديا (ar)") - }.submitQuery("firefox") { - verifyUrl("firefox") - } - } - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2233337 @Test fun verifyTheSearchEnginesListsRespectTheLocaleTest() { From 9353b6d87e029695eb62bbad63591208fb7509e6 Mon Sep 17 00:00:00 2001 From: William Durand Date: Wed, 27 Sep 2023 23:17:23 +0200 Subject: [PATCH 026/238] Bug 1855516 - Call `disableExtensionProcessSpawning()` when the user clicks the "continue without add-ons" button --- .../fenix/addons/ExtensionProcessDisabledController.kt | 4 +++- .../fenix/addons/ExtensionProcessDisabledControllerTest.kt | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt index 4d85768c2..65466426e 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt @@ -53,10 +53,11 @@ class ExtensionProcessDisabledController( * Present a dialog to the user notifying of extension process spawning disabled and also asking * whether they would like to continue trying or disable extensions. If the user chooses to retry, * enable the extension process spawning with [WebExtensionController.enableExtensionProcessSpawning]. + * Otherwise, call [WebExtensionController.disableExtensionProcessSpawning]. * * @param context to show the AlertDialog * @param store The [BrowserStore] which holds the state for showing the dialog - * @param webExtensionController to call when a user enables the process spawning + * @param webExtensionController to call when the user enables or disables the process spawning * @param builder to use for creating the dialog which can be styled as needed * @param appName to be added to the message. Necessary to be added as a param for testing */ @@ -84,6 +85,7 @@ class ExtensionProcessDisabledController( onDismissDialog?.invoke() } findViewById