From 9f7cc8d7bc890c3e95fab29f34856c2e8e9526b6 Mon Sep 17 00:00:00 2001 From: David Estes Date: Thu, 17 Oct 2024 14:54:33 -0700 Subject: [PATCH] Add view components --- .../project.pbxproj | 72 ++++ .../en.lproj/Localizable.strings | 45 +++ .../LinkPaymentMethodPicker-AddButton.swift | 99 ++++++ .../LinkPaymentMethodPicker-Cell.swift | 280 +++++++++++++++ ...kPaymentMethodPicker-CellContentView.swift | 138 ++++++++ .../LinkPaymentMethodPicker-Header.swift | 194 +++++++++++ .../LinkPaymentMethodPicker-RadioButton.swift | 116 +++++++ .../LinkPaymentMethodPicker.swift | 320 ++++++++++++++++++ .../Link/Elements/LinkCardEditElement.swift | 225 ++++++++++++ .../LinkVerificationController.swift | 49 +++ .../LinkVerificationView-Header.swift | 69 ++++ .../LinkVerificationView-LogoutView.swift | 65 ++++ .../Verification/LinkVerificationView.swift | 271 +++++++++++++++ ...iewController-PresentationController.swift | 211 ++++++++++++ .../LinkVerificationViewController.swift | 247 ++++++++++++++ .../LinkCardEditElementSnapshotTests.swift | 73 ++++ ...LinkPaymentMethodPickerSnapshotTests.swift | 101 ++++++ .../LinkVerificationViewSnapshotTests.swift | 77 +++++ .../testDefault@3x.png | Bin 0 -> 66050 bytes .../testNonDefault@3x.png | Bin 0 -> 78149 bytes .../testEmpty@3x.png | Bin 0 -> 14583 bytes .../testExpanded@3x.png | Bin 0 -> 60721 bytes .../testNormal_First_Option@3x.png | Bin 0 -> 14705 bytes .../testNormal_Second_Option@3x.png | Bin 0 -> 14702 bytes .../testUnsupportedBankAccount@3x.png | Bin 0 -> 60721 bytes .../testEmbedded@3x.png | Bin 0 -> 77265 bytes .../testInlineLogin@3x.png | Bin 0 -> 67219 bytes .../testModal@3x.png | Bin 0 -> 72599 bytes .../testModalWithErrorMessage@3x.png | Bin 0 -> 82548 bytes 29 files changed, 2652 insertions(+) create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-AddButton.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Cell.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-CellContentView.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Header.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-RadioButton.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Elements/LinkCardEditElement.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationController.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-Header.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-LogoutView.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController-PresentationController.swift create mode 100644 StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController.swift create mode 100644 StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkCardEditElementSnapshotTests.swift create mode 100644 StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkPaymentMethodPickerSnapshotTests.swift create mode 100644 StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkVerificationViewSnapshotTests.swift create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testDefault@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testNonDefault@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testEmpty@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testExpanded@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_First_Option@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_Second_Option@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testUnsupportedBankAccount@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testEmbedded@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testInlineLogin@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testModal@3x.png create mode 100644 Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testModalWithErrorMessage@3x.png diff --git a/StripePaymentSheet/StripePaymentSheet.xcodeproj/project.pbxproj b/StripePaymentSheet/StripePaymentSheet.xcodeproj/project.pbxproj index b2c4acde478..61e72cf064d 100644 --- a/StripePaymentSheet/StripePaymentSheet.xcodeproj/project.pbxproj +++ b/StripePaymentSheet/StripePaymentSheet.xcodeproj/project.pbxproj @@ -57,6 +57,22 @@ 3147CEC02CC080570067B5E4 /* LinkInMemoryCookieStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEBD2CC080570067B5E4 /* LinkInMemoryCookieStore.swift */; }; 3147CEC12CC080570067B5E4 /* LinkCookieStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEBC2CC080570067B5E4 /* LinkCookieStore.swift */; }; 3147CEC22CC080570067B5E4 /* LinkSecureCookieStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEBE2CC080570067B5E4 /* LinkSecureCookieStore.swift */; }; + 3147CECA2CC1BF550067B5E4 /* LinkPaymentMethodPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC32CC1BF550067B5E4 /* LinkPaymentMethodPicker.swift */; }; + 3147CECB2CC1BF550067B5E4 /* LinkPaymentMethodPicker-CellContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC62CC1BF550067B5E4 /* LinkPaymentMethodPicker-CellContentView.swift */; }; + 3147CECC2CC1BF550067B5E4 /* LinkPaymentMethodPicker-Cell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC52CC1BF550067B5E4 /* LinkPaymentMethodPicker-Cell.swift */; }; + 3147CECD2CC1BF550067B5E4 /* LinkPaymentMethodPicker-Header.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC72CC1BF550067B5E4 /* LinkPaymentMethodPicker-Header.swift */; }; + 3147CECE2CC1BF550067B5E4 /* LinkPaymentMethodPicker-RadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC82CC1BF550067B5E4 /* LinkPaymentMethodPicker-RadioButton.swift */; }; + 3147CECF2CC1BF550067B5E4 /* LinkPaymentMethodPicker-AddButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEC42CC1BF550067B5E4 /* LinkPaymentMethodPicker-AddButton.swift */; }; + 3147CED12CC1BF6E0067B5E4 /* LinkCardEditElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED02CC1BF6E0067B5E4 /* LinkCardEditElement.swift */; }; + 3147CED82CC1BF860067B5E4 /* LinkVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED62CC1BF860067B5E4 /* LinkVerificationViewController.swift */; }; + 3147CED92CC1BF860067B5E4 /* LinkVerificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED22CC1BF860067B5E4 /* LinkVerificationController.swift */; }; + 3147CEDA2CC1BF860067B5E4 /* LinkVerificationViewController-PresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED72CC1BF860067B5E4 /* LinkVerificationViewController-PresentationController.swift */; }; + 3147CEDB2CC1BF860067B5E4 /* LinkVerificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED32CC1BF860067B5E4 /* LinkVerificationView.swift */; }; + 3147CEDC2CC1BF860067B5E4 /* LinkVerificationView-Header.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED42CC1BF860067B5E4 /* LinkVerificationView-Header.swift */; }; + 3147CEDD2CC1BF860067B5E4 /* LinkVerificationView-LogoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CED52CC1BF860067B5E4 /* LinkVerificationView-LogoutView.swift */; }; + 3147CEE12CC1BFA80067B5E4 /* LinkCardEditElementSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEDE2CC1BFA80067B5E4 /* LinkCardEditElementSnapshotTests.swift */; }; + 3147CEE22CC1BFA80067B5E4 /* LinkPaymentMethodPickerSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEDF2CC1BFA80067B5E4 /* LinkPaymentMethodPickerSnapshotTests.swift */; }; + 3147CEE32CC1BFA80067B5E4 /* LinkVerificationViewSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3147CEE02CC1BFA80067B5E4 /* LinkVerificationViewSnapshotTests.swift */; }; 31699A812BE183B30048677F /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31699A802BE183B30048677F /* DownloadManager.swift */; }; 31699A832BE183D40048677F /* DownloadManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31699A822BE183D40048677F /* DownloadManagerTest.swift */; }; 316B33122B5F171C0008D2E5 /* UserDefaults+StripePaymentSheetTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 316B33112B5F171C0008D2E5 /* UserDefaults+StripePaymentSheetTest.swift */; }; @@ -437,6 +453,22 @@ 3147CEBC2CC080570067B5E4 /* LinkCookieStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCookieStore.swift; sourceTree = ""; }; 3147CEBD2CC080570067B5E4 /* LinkInMemoryCookieStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkInMemoryCookieStore.swift; sourceTree = ""; }; 3147CEBE2CC080570067B5E4 /* LinkSecureCookieStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkSecureCookieStore.swift; sourceTree = ""; }; + 3147CEC32CC1BF550067B5E4 /* LinkPaymentMethodPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkPaymentMethodPicker.swift; sourceTree = ""; }; + 3147CEC42CC1BF550067B5E4 /* LinkPaymentMethodPicker-AddButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkPaymentMethodPicker-AddButton.swift"; sourceTree = ""; }; + 3147CEC52CC1BF550067B5E4 /* LinkPaymentMethodPicker-Cell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkPaymentMethodPicker-Cell.swift"; sourceTree = ""; }; + 3147CEC62CC1BF550067B5E4 /* LinkPaymentMethodPicker-CellContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkPaymentMethodPicker-CellContentView.swift"; sourceTree = ""; }; + 3147CEC72CC1BF550067B5E4 /* LinkPaymentMethodPicker-Header.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkPaymentMethodPicker-Header.swift"; sourceTree = ""; }; + 3147CEC82CC1BF550067B5E4 /* LinkPaymentMethodPicker-RadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkPaymentMethodPicker-RadioButton.swift"; sourceTree = ""; }; + 3147CED02CC1BF6E0067B5E4 /* LinkCardEditElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCardEditElement.swift; sourceTree = ""; }; + 3147CED22CC1BF860067B5E4 /* LinkVerificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkVerificationController.swift; sourceTree = ""; }; + 3147CED32CC1BF860067B5E4 /* LinkVerificationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkVerificationView.swift; sourceTree = ""; }; + 3147CED42CC1BF860067B5E4 /* LinkVerificationView-Header.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkVerificationView-Header.swift"; sourceTree = ""; }; + 3147CED52CC1BF860067B5E4 /* LinkVerificationView-LogoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkVerificationView-LogoutView.swift"; sourceTree = ""; }; + 3147CED62CC1BF860067B5E4 /* LinkVerificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkVerificationViewController.swift; sourceTree = ""; }; + 3147CED72CC1BF860067B5E4 /* LinkVerificationViewController-PresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LinkVerificationViewController-PresentationController.swift"; sourceTree = ""; }; + 3147CEDE2CC1BFA80067B5E4 /* LinkCardEditElementSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCardEditElementSnapshotTests.swift; sourceTree = ""; }; + 3147CEDF2CC1BFA80067B5E4 /* LinkPaymentMethodPickerSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkPaymentMethodPickerSnapshotTests.swift; sourceTree = ""; }; + 3147CEE02CC1BFA80067B5E4 /* LinkVerificationViewSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkVerificationViewSnapshotTests.swift; sourceTree = ""; }; 3168698F2C61B0F5EC1240FE /* sl-SI */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sl-SI"; path = "sl-SI.lproj/Localizable.strings"; sourceTree = ""; }; 31699A802BE183B30048677F /* DownloadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; 31699A822BE183D40048677F /* DownloadManagerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadManagerTest.swift; sourceTree = ""; }; @@ -854,6 +886,19 @@ path = CookieStore; sourceTree = ""; }; + 3147CEC92CC1BF550067B5E4 /* PaymentMethodPicker */ = { + isa = PBXGroup; + children = ( + 3147CEC32CC1BF550067B5E4 /* LinkPaymentMethodPicker.swift */, + 3147CEC42CC1BF550067B5E4 /* LinkPaymentMethodPicker-AddButton.swift */, + 3147CEC52CC1BF550067B5E4 /* LinkPaymentMethodPicker-Cell.swift */, + 3147CEC62CC1BF550067B5E4 /* LinkPaymentMethodPicker-CellContentView.swift */, + 3147CEC72CC1BF550067B5E4 /* LinkPaymentMethodPicker-Header.swift */, + 3147CEC82CC1BF550067B5E4 /* LinkPaymentMethodPicker-RadioButton.swift */, + ); + path = PaymentMethodPicker; + sourceTree = ""; + }; 319DFD940EAA6EA0A0F4E771 /* Services */ = { isa = PBXGroup; children = ( @@ -900,6 +945,7 @@ 31CC9B872CB5F74A00E84A38 /* Badge */, 31CC9B892CB5F74A00E84A38 /* NavigationBar */, 31CC9B8B2CB5F74A00E84A38 /* Notice */, + 3147CEC92CC1BF550067B5E4 /* PaymentMethodPicker */, 31CC9B942CB5F74A00E84A38 /* Toast */, ); path = Components; @@ -1246,6 +1292,12 @@ B02DD1BA93CC92A187051B2F /* LinkAccountContext.swift */, 3147CEBA2CC07E960067B5E4 /* LinkUtils.swift */, A1928BE9DFF116368B1A19DC /* LinkCookieKey.swift */, + 3147CED22CC1BF860067B5E4 /* LinkVerificationController.swift */, + 3147CED32CC1BF860067B5E4 /* LinkVerificationView.swift */, + 3147CED42CC1BF860067B5E4 /* LinkVerificationView-Header.swift */, + 3147CED52CC1BF860067B5E4 /* LinkVerificationView-LogoutView.swift */, + 3147CED62CC1BF860067B5E4 /* LinkVerificationViewController.swift */, + 3147CED72CC1BF860067B5E4 /* LinkVerificationViewController-PresentationController.swift */, ); path = Verification; sourceTree = ""; @@ -1491,6 +1543,7 @@ children = ( C71284B45BF3D3B487C1B99D /* InlineSignup */, C684CBDA487CC3E78676F52E /* LinkEmailElement.swift */, + 3147CED02CC1BF6E0067B5E4 /* LinkCardEditElement.swift */, ); path = Elements; sourceTree = ""; @@ -1635,6 +1688,9 @@ 31CC9B762CB5F69600E84A38 /* LinkURLGeneratorTests.swift */, 22E4212F4A865B5AB5D72F99 /* LinkPopupURLParserTests.swift */, 9872CF28C8CA1D2C5499B8C5 /* LinkURLGeneratorTests.swift */, + 3147CEDE2CC1BFA80067B5E4 /* LinkCardEditElementSnapshotTests.swift */, + 3147CEDF2CC1BFA80067B5E4 /* LinkPaymentMethodPickerSnapshotTests.swift */, + 3147CEE02CC1BFA80067B5E4 /* LinkVerificationViewSnapshotTests.swift */, ); path = Link; sourceTree = ""; @@ -1845,6 +1901,9 @@ 31CC9B792CB5F69600E84A38 /* LinkNavigationBarSnapshotTests.swift in Sources */, 31CC9B7D2CB5F69600E84A38 /* ButtonLinkSnapshotTests.swift in Sources */, 31CC9B7E2CB5F69600E84A38 /* LinkNoticeViewSnapshotTests.swift in Sources */, + 3147CEE12CC1BFA80067B5E4 /* LinkCardEditElementSnapshotTests.swift in Sources */, + 3147CEE22CC1BFA80067B5E4 /* LinkPaymentMethodPickerSnapshotTests.swift in Sources */, + 3147CEE32CC1BFA80067B5E4 /* LinkVerificationViewSnapshotTests.swift in Sources */, 31CC9B7F2CB5F69600E84A38 /* LinkPopupURLParserTests.swift in Sources */, 31CC9B802CB5F69600E84A38 /* LinkToastSnapshotTests.swift in Sources */, 31CC9B812CB5F69600E84A38 /* LinkInstantDebitMandateViewSnapshotTests.swift in Sources */, @@ -2040,6 +2099,12 @@ DFA10770E494AFB895BA4EE2 /* TextFieldElement+Card.swift in Sources */, B6B3481CBA798CF22EE8411A /* TextFieldElement+IBAN.swift in Sources */, F90B7028426261188B66C834 /* Error+PaymentSheet.swift in Sources */, + 3147CECA2CC1BF550067B5E4 /* LinkPaymentMethodPicker.swift in Sources */, + 3147CECB2CC1BF550067B5E4 /* LinkPaymentMethodPicker-CellContentView.swift in Sources */, + 3147CECC2CC1BF550067B5E4 /* LinkPaymentMethodPicker-Cell.swift in Sources */, + 3147CECD2CC1BF550067B5E4 /* LinkPaymentMethodPicker-Header.swift in Sources */, + 3147CECE2CC1BF550067B5E4 /* LinkPaymentMethodPicker-RadioButton.swift in Sources */, + 3147CECF2CC1BF550067B5E4 /* LinkPaymentMethodPicker-AddButton.swift in Sources */, FB653AA92B68F73344835A50 /* Intent.swift in Sources */, 253EED99635621AC0E788EBC /* IntentConfirmParams.swift in Sources */, 313F5F832B0BE5FD00BD98A9 /* Docs.docc in Sources */, @@ -2084,6 +2149,12 @@ 6A5997192BC88E28002A44CB /* InstantDebitsPaymentMethodElement.swift in Sources */, E5571A970EB9DFC4B690636F /* STPAnalyticsClient+PaymentSheet.swift in Sources */, 0B142FE21B861925B513143D /* STPApplePayContext+PaymentSheet.swift in Sources */, + 3147CED82CC1BF860067B5E4 /* LinkVerificationViewController.swift in Sources */, + 3147CED92CC1BF860067B5E4 /* LinkVerificationController.swift in Sources */, + 3147CEDA2CC1BF860067B5E4 /* LinkVerificationViewController-PresentationController.swift in Sources */, + 3147CEDB2CC1BF860067B5E4 /* LinkVerificationView.swift in Sources */, + 3147CEDC2CC1BF860067B5E4 /* LinkVerificationView-Header.swift in Sources */, + 3147CEDD2CC1BF860067B5E4 /* LinkVerificationView-LogoutView.swift in Sources */, 6103F2BC2BE45990002D67F8 /* SavedPaymentMethodManager.swift in Sources */, ED75C8F47475E4BE5D496C93 /* STPPaymentIntentShippingDetailsParams+PaymentSheet.swift in Sources */, 4313D6635F10EC460D2ED21E /* SavedPaymentMethodCollectionView.swift in Sources */, @@ -2091,6 +2162,7 @@ F4EA474D60D0889E7D48E1CF /* BankAccountInfoView.swift in Sources */, 057A899F4123F3716F2AC0FA /* USBankAccountPaymentMethodElement.swift in Sources */, 985DAA770BC0289D24A5999C /* AddressSearchResult.swift in Sources */, + 3147CED12CC1BF6E0067B5E4 /* LinkCardEditElement.swift in Sources */, 31CC9BA12CB5F93100E84A38 /* Button+Link.swift in Sources */, 9DEDA3E0FFF73F9275F5F8F0 /* AutoCompleteViewController.swift in Sources */, A4CD99B2032CBFA7F957B1B8 /* String+AutoComplete.swift in Sources */, diff --git a/StripePaymentSheet/StripePaymentSheet/Resources/Localizations/en.lproj/Localizable.strings b/StripePaymentSheet/StripePaymentSheet/Resources/Localizations/en.lproj/Localizable.strings index 48ff5e600fc..7a3c93c8998 100644 --- a/StripePaymentSheet/StripePaymentSheet/Resources/Localizations/en.lproj/Localizable.strings +++ b/StripePaymentSheet/StripePaymentSheet/Resources/Localizations/en.lproj/Localizable.strings @@ -100,12 +100,18 @@ /* Button text on a screen asking the user to approve a payment */ "Cancel and pay another way" = "Cancel and pay another way"; +/* Title for a button that allows the user to use a different email in the signup flow. */ +"Change email" = "Change email"; + /* TODO */ "Choose a payment method" = "Choose a payment method"; /* Accessibility label for the button to close the card scanner. */ "Close card scanner" = "Close card scanner"; +/* Text of a notification shown to the user when a login code is successfully sent via SMS. */ +"Code sent" = "Code sent"; + /* Title used for various UIs, including a button that confirms entered payment details or the selection of a payment method. */ "Confirm" = "Confirm"; @@ -124,9 +130,18 @@ /* Label for CPF/CPNJ (Brazil tax ID) field */ "CPF/CPNJ" = "CPF/CPNJ"; +/* Label for identifying the default payment method. */ +"Default" = "Default"; + /* Text for a button that allows manual entry of an address */ "Enter address manually" = "Enter address manually"; +/* Instructs the user to enter the code sent to their phone number in order to login to Link */ +"Enter the code sent to %@ to use Link to pay by default." = "Enter the code sent to %@ to use Link to pay by default."; + +/* Two factor authentication screen heading */ +"Enter your verification code" = "Enter your verification code"; + /* Label title for EPS Bank */ "EPS Bank" = "EPS Bank"; @@ -160,6 +175,9 @@ /* Title shown above a section containing payment methods that a customer can choose to pay with e.g. card, bank account, etc. */ "New payment method" = "New payment method"; +/* Text of a label for confirming an email address. E.g., 'Not user@example.com?' */ +"Not %@?" = "Not %@?"; + /* Countdown timer text on a screen asking the user to approve a payment */ "Open your UPI app to approve your payment within %@" = "Open your UPI app to approve your payment within %@"; @@ -201,9 +219,15 @@ e.g, 'Pay faster at Example, Inc. and thousands of businesses.' */ /* US Bank Account copy title for Mobile payment element form */ "Pay with your bank account in just a few steps." = "Pay with your bank account in just a few steps."; +/* Label for a section displaying payment details. */ +"Payment" = "Payment"; + /* Text on a screen that indicates a payment has failed */ "Payment failed" = "Payment failed"; +/* Title for a section listing one or more payment methods. */ +"Payment methods" = "Payment methods"; + /* Text on a screen that indicates a payment has failed informing the user we are asking the user to try a different payment method */ "Please go back and select another payment method" = "Please go back and select another payment method"; @@ -222,6 +246,9 @@ e.g, 'Pay faster at Example, Inc. and thousands of businesses.' */ /* Title shown above a view containing a customer's payment method that they can delete */ "Remove payment method" = "Remove payment method"; +/* Label for a button that re-sends the a login code when tapped */ +"Resend code" = "Resend code"; + /* A button used for saving a new payment method */ "Save" = "Save"; @@ -259,6 +286,9 @@ to be saved and used in future checkout sessions. */ /* Title shown above a carousel containing the customer's payment methods */ "Select your payment method" = "Select your payment method"; +/* Label of a checkbox that when checked makes a payment method as the default one. */ +"Set as default payment method" = "Set as default payment method"; + /* Label of a button displayed below a payment method form. Tapping the button sets the payment method up for future use */ "Set up" = "Set up"; @@ -269,6 +299,9 @@ is not supported by the merchant */ /* Accessibility label for an action or a button that shows a menu. */ "Show menu" = "Show menu"; +/* Two factor authentication screen heading */ +"Sign in to your Link account" = "Sign in to your Link account"; + /* Subtitle shown on a button allowing a user to select to pay with Link. */ "Simple, secure one-click payments" = "Simple, secure one-click payments"; @@ -281,6 +314,12 @@ is not supported by the merchant */ /* Prompt for microdeposit verification before completing purchase with merchant. %@ will be replaced by merchant business name */ "Stripe will deposit $0.01 to your account in 1-2 business days. Then you’ll get an email with instructions to complete payment to %@." = "Stripe will deposit $0.01 to your account in 1-2 business days. Then you’ll get an email with instructions to complete payment to %@."; +/* Accessibility hint to tell the user that they can tap to hide additional content. */ +"Tap to close" = "Tap to close"; + +/* Accessibility hint to tell the user that they can tap to reveal additional content. */ +"Tap to expand" = "Tap to expand"; + /* An error message. */ "The IBAN you entered is incomplete." = "The IBAN you entered is incomplete."; @@ -296,6 +335,9 @@ is not supported by the merchant */ /* Error message shown when the user enters an incorrect verification code too many times. */ "Too many attempts. Please try again in a few minutes." = "Too many attempts. Please try again in a few minutes."; +/* Label shown when a payment method cannot be used for the current transaction. */ +"Unavailable for this purchase" = "Unavailable for this purchase"; + /* Title for a button that when tapped, updates a card brand. */ "Update" = "Update"; @@ -306,6 +348,9 @@ the heading the screen itself. */ /* Title for a screen for updating a card brand. */ "Update card brand" = "Update card brand"; +/* Two factor authentication screen heading */ +"Use your saved info to check out faster" = "Use your saved info to check out faster"; + /* Text shown on a button that displays a customer's default saved payment method. When tapped, it opens a screen that shows all of the customer's saved payment methods. */ "View more" = "View more"; diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-AddButton.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-AddButton.swift new file mode 100644 index 00000000000..3bb072a6432 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-AddButton.swift @@ -0,0 +1,99 @@ +// +// LinkPaymentMethodPicker-AddButton.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 10/20/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeCore +@_spi(STP) import StripeUICore +import UIKit + +extension LinkPaymentMethodPicker { + + final class AddButton: UIControl { + struct Constants { + static let iconSize: CGSize = .init(width: 24, height: 24) + } + + private let iconView: UIImageView = UIImageView(image: Image.icon_add_bordered.makeImage(template: true)) + + private lazy var textLabel: UILabel = { + let label = UILabel() + label.text = String.Localized.add_a_payment_method + label.numberOfLines = 0 + label.textColor = tintColor + label.font = LinkUI.font(forTextStyle: .bodyEmphasized) + label.adjustsFontForContentSizeCategory = true + return label + }() + + override var isHighlighted: Bool { + didSet { + update() + } + } + + init() { + super.init(frame: .zero) + + isAccessibilityElement = true + accessibilityTraits = .button + accessibilityLabel = textLabel.text + directionalLayoutMargins = Cell.Constants.margins + + setupUI() + update() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + if self.point(inside: point, with: event) { + return self + } + + return nil + } + + override func tintColorDidChange() { + super.tintColorDidChange() + self.textLabel.textColor = tintColor + } + + private func setupUI() { + let stackView = UIStackView(arrangedSubviews: [iconView, textLabel]) + stackView.spacing = Cell.Constants.contentSpacing + stackView.alignment = .center + stackView.translatesAutoresizingMaskIntoConstraints = false + + addSubview(stackView) + + NSLayoutConstraint.activate([ + iconView.widthAnchor.constraint(equalToConstant: Constants.iconSize.width), + iconView.heightAnchor.constraint(equalToConstant: Constants.iconSize.height), + stackView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), + stackView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor), + stackView.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor), + ]) + } + + private func update() { + if isHighlighted { + iconView.alpha = 0.7 + textLabel.alpha = 0.7 + backgroundColor = .linkControlHighlight + } else { + iconView.alpha = 1 + textLabel.alpha = 1 + backgroundColor = .clear + } + } + + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Cell.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Cell.swift new file mode 100644 index 00000000000..6a2a47fa3bc --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Cell.swift @@ -0,0 +1,280 @@ +// +// LinkPaymentMethodPicker-Cell.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 10/19/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeCore +@_spi(STP) import StripeUICore +import UIKit + +protocol LinkPaymentMethodPickerCellDelegate: AnyObject { + func savedPaymentPickerCellDidSelect(_ cell: LinkPaymentMethodPicker.Cell) + func savedPaymentPickerCell(_ cell: LinkPaymentMethodPicker.Cell, didTapMenuButton button: UIButton) +} + +extension LinkPaymentMethodPicker { + + final class Cell: UIControl { + struct Constants { + static let margins = NSDirectionalEdgeInsets(top: 16, leading: 20, bottom: 16, trailing: 20) + static let contentSpacing: CGFloat = 12 + static let contentIndentation: CGFloat = 34 + static let menuSpacing: CGFloat = 8 + static let menuButtonSize: CGSize = .init(width: 24, height: 24) + static let separatorHeight: CGFloat = 1 + static let iconViewSize: CGSize = .init(width: 14, height: 20) + static let disabledContentAlpha: CGFloat = 0.5 + } + + override var isHighlighted: Bool { + didSet { + setNeedsLayout() + } + } + + override var isSelected: Bool { + didSet { + setNeedsLayout() + } + } + + var paymentMethod: ConsumerPaymentDetails? { + didSet { + update() + } + } + + var isLoading: Bool = false { + didSet { + if isLoading != oldValue { + update() + } + } + } + + var isSupported: Bool = true { + didSet { + if isSupported != oldValue { + update() + } + } + } + + weak var delegate: LinkPaymentMethodPickerCellDelegate? + + private let radioButton = RadioButton() + + private let contentView = CellContentView() + + private let activityIndicator = ActivityIndicator() + + private let defaultBadge = LinkBadgeView( + type: .neutral, + text: STPLocalizedString("Default", "Label for identifying the default payment method.") + ) + + private let alertIconView: UIImageView = { + let iconView = UIImageView() + iconView.contentMode = .scaleAspectFit + iconView.image = Image.icon_link_error.makeImage(template: true) + iconView.tintColor = .linkDangerForeground + return iconView + }() + + private let unavailableBadge = LinkBadgeView(type: .error, text: STPLocalizedString( + "Unavailable for this purchase", + "Label shown when a payment method cannot be used for the current transaction." + )) + + private lazy var menuButton: UIButton = { + let button = UIButton(type: .system) + button.setImage(Image.icon_menu.makeImage(), for: .normal) + button.addTarget(self, action: #selector(onMenuButtonTapped(_:)), for: .touchUpInside) + button.translatesAutoresizingMaskIntoConstraints = false + return button + }() + + /// The menu button frame for hit-testing purposes. + private var menuButtonFrame: CGRect { + let originalFrame = menuButton.convert(menuButton.bounds, to: self) + + let targetSize = CGSize(width: 44, height: 44) + + return CGRect( + x: originalFrame.midX - (targetSize.width / 2), + y: originalFrame.midY - (targetSize.height / 2), + width: targetSize.width, + height: targetSize.height + ) + } + + private let separator: UIView = { + let separator = UIView() + separator.backgroundColor = .linkControlBorder + separator.translatesAutoresizingMaskIntoConstraints = false + return separator + }() + + override init(frame: CGRect) { + super.init(frame: frame) + + isAccessibilityElement = true + directionalLayoutMargins = Constants.margins + + setupUI() + addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(onCellLongPressed))) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupUI() { + let rightStackView = UIStackView(arrangedSubviews: [defaultBadge, alertIconView, activityIndicator, menuButton]) + rightStackView.spacing = LinkUI.smallContentSpacing + rightStackView.distribution = .equalSpacing + rightStackView.alignment = .center + + let stackView = UIStackView(arrangedSubviews: [contentView, rightStackView]) + stackView.spacing = Constants.contentSpacing + stackView.distribution = .equalSpacing + stackView.alignment = .center + + let container = UIStackView(arrangedSubviews: [stackView, unavailableBadge]) + container.axis = .vertical + container.spacing = Constants.contentSpacing + container.distribution = .equalSpacing + container.alignment = .leading + container.translatesAutoresizingMaskIntoConstraints = false + addSubview(container) + + radioButton.translatesAutoresizingMaskIntoConstraints = false + addSubview(radioButton) + + addSubview(separator) + + NSLayoutConstraint.activate([ + // Radio button + radioButton.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), + radioButton.centerYAnchor.constraint(equalTo: contentView.centerYAnchor), + + // Menu button + menuButton.widthAnchor.constraint(equalToConstant: Constants.menuButtonSize.width), + menuButton.heightAnchor.constraint(equalToConstant: Constants.menuButtonSize.height), + + // Loader + activityIndicator.widthAnchor.constraint(equalToConstant: Constants.menuButtonSize.width), + activityIndicator.heightAnchor.constraint(equalToConstant: Constants.menuButtonSize.height), + + // Icon + alertIconView.widthAnchor.constraint(equalToConstant: Constants.iconViewSize.width), + alertIconView.heightAnchor.constraint(equalToConstant: Constants.iconViewSize.height), + + // Container + container.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), + container.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor), + container.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor, constant: Constants.contentIndentation), + container.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor), + // Make stackView fill the container + stackView.trailingAnchor.constraint(equalTo: container.trailingAnchor), + + // Separator + separator.heightAnchor.constraint(equalToConstant: Constants.separatorHeight), + separator.bottomAnchor.constraint(equalTo: bottomAnchor), + separator.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), + separator.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor), + ]) + } + + private func update() { + contentView.paymentMethod = paymentMethod + updateAccessibilityContent() + + guard let paymentMethod = paymentMethod else { + return + } + + var hasExpired: Bool { + switch paymentMethod.details { + case .card(let card): + return card.hasExpired + case .bankAccount: + return false + case .unparsable: + return false + } + } + + defaultBadge.isHidden = isLoading || !paymentMethod.isDefault + alertIconView.isHidden = isLoading || !hasExpired + menuButton.isHidden = isLoading + contentView.alpha = isSupported ? 1 : Constants.disabledContentAlpha + unavailableBadge.isHidden = isSupported + + if isLoading { + activityIndicator.startAnimating() + } else { + activityIndicator.stopAnimating() + } + } + + override func layoutSubviews() { + super.layoutSubviews() + radioButton.isOn = isSelected + backgroundColor = isHighlighted ? .linkControlHighlight : .clear + } + + private func updateAccessibilityContent() { + guard let paymentMethod = paymentMethod else { + return + } + + accessibilityIdentifier = "Stripe.Link.PaymentMethodPickerCell" + accessibilityLabel = paymentMethod.accessibilityDescription + accessibilityCustomActions = [ + UIAccessibilityCustomAction( + name: String.Localized.show_menu, + target: self, + selector: #selector(onShowMenuAction(_:)) + ), + ] + } + + @objc func onShowMenuAction(_ sender: UIAccessibilityCustomAction) { + onMenuButtonTapped(menuButton) + } + + @objc func onMenuButtonTapped(_ sender: UIButton) { + delegate?.savedPaymentPickerCell(self, didTapMenuButton: sender) + } + + @objc func onCellLongPressed() { + delegate?.savedPaymentPickerCell(self, didTapMenuButton: menuButton) + } + + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + if menuButtonFrame.contains(point) { + return menuButton + } + + return bounds.contains(point) ? self : nil + } + + override func touchesEnded(_ touches: Set, with event: UIEvent?) { + super.touchesEnded(touches, with: event) + + guard let touchLocation = touches.first?.location(in: self) else { + return + } + + if bounds.contains(touchLocation) { + delegate?.savedPaymentPickerCellDidSelect(self) + } + } + + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-CellContentView.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-CellContentView.swift new file mode 100644 index 00000000000..5fe2fe5bcc5 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-CellContentView.swift @@ -0,0 +1,138 @@ +// +// LinkPaymentMethodPicker-CellContentView.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 11/19/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripePaymentsUI +@_spi(STP) import StripeUICore +import UIKit + +extension LinkPaymentMethodPicker { + + final class CellContentView: UIView { + struct Constants { + static let contentSpacing: CGFloat = 12 + static let iconSize: CGSize = CardBrandView.targetIconSize + static let maxFontSize: CGFloat = 20 + } + + var paymentMethod: ConsumerPaymentDetails? { + didSet { + switch paymentMethod?.details { + case .card: +// TODO(link): Needs refactor +// case .card(let card): +// cardBrandView.cardBrand = card.stpBrand + bankIconView.isHidden = true + cardBrandView.isHidden = false + primaryLabel.text = paymentMethod?.paymentSheetLabel + secondaryLabel.text = nil + secondaryLabel.isHidden = true + case .bankAccount(let bankAccount): + bankIconView.image = PaymentSheetImageLibrary.bankIcon(for: bankAccount.iconCode) + cardBrandView.isHidden = true + bankIconView.isHidden = false + primaryLabel.text = bankAccount.name + secondaryLabel.text = paymentMethod?.paymentSheetLabel + secondaryLabel.isHidden = false + case .none, .unparsable: + cardBrandView.isHidden = true + bankIconView.isHidden = true + primaryLabel.text = nil + secondaryLabel.text = nil + secondaryLabel.isHidden = true + } + } + } + + private lazy var bankIconView: UIImageView = { + let iconView = UIImageView() + iconView.contentMode = .scaleAspectFit + return iconView + }() + + private lazy var cardBrandView: CardBrandView = CardBrandView(centerHorizontally: true) + + private let primaryLabel: UILabel = { + let label = UILabel() + label.adjustsFontForContentSizeCategory = true + label.font = LinkUI.font(forTextStyle: .bodyEmphasized, maximumPointSize: Constants.maxFontSize) + label.textColor = .linkPrimaryText + return label + }() + + private let secondaryLabel: UILabel = { + let label = UILabel() + label.font = LinkUI.font(forTextStyle: .caption, maximumPointSize: Constants.maxFontSize) + label.textColor = .linkSecondaryText + return label + }() + + private lazy var iconContainerView: UIView = { + let view = UIView() + bankIconView.translatesAutoresizingMaskIntoConstraints = false + cardBrandView.translatesAutoresizingMaskIntoConstraints = false + + view.addSubview(bankIconView) + view.addSubview(cardBrandView) + + let cardBrandSize = cardBrandView.size(for: Constants.iconSize) + NSLayoutConstraint.activate([ + view.widthAnchor.constraint(equalToConstant: max(Constants.iconSize.width, cardBrandSize.width)), + view.heightAnchor.constraint(equalToConstant: max(Constants.iconSize.height, cardBrandSize.height)), + + bankIconView.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor), + bankIconView.topAnchor.constraint(greaterThanOrEqualTo: view.topAnchor), + bankIconView.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor), + bankIconView.bottomAnchor.constraint(lessThanOrEqualTo: view.bottomAnchor), + bankIconView.centerXAnchor.constraint(equalTo: view.centerXAnchor), + bankIconView.centerYAnchor.constraint(equalTo: view.centerYAnchor), + + cardBrandView.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor), + cardBrandView.topAnchor.constraint(greaterThanOrEqualTo: view.topAnchor), + cardBrandView.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor), + cardBrandView.bottomAnchor.constraint(lessThanOrEqualTo: view.bottomAnchor), + cardBrandView.centerXAnchor.constraint(equalTo: view.centerXAnchor), + cardBrandView.centerYAnchor.constraint(equalTo: view.centerYAnchor), + + cardBrandView.widthAnchor.constraint(equalToConstant: cardBrandSize.width), + cardBrandView.heightAnchor.constraint(equalToConstant: cardBrandSize.height), + ]) + + return view + }() + + private lazy var stackView: UIStackView = { + let labelStackView = UIStackView(arrangedSubviews: [ + primaryLabel, + secondaryLabel, + ]) + labelStackView.axis = .vertical + labelStackView.alignment = .leading + labelStackView.spacing = 0 + + let stackView = UIStackView(arrangedSubviews: [ + iconContainerView, + labelStackView, + ]) + + stackView.spacing = Constants.contentSpacing + stackView.alignment = .center + stackView.translatesAutoresizingMaskIntoConstraints = false + return stackView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + addAndPinSubview(stackView) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Header.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Header.swift new file mode 100644 index 00000000000..3064dd16451 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-Header.swift @@ -0,0 +1,194 @@ +// +// LinkPaymentMethodPicker-Header.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 10/22/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeUICore +import UIKit + +extension LinkPaymentMethodPicker { + + final class Header: UIControl { + struct Constants { + static let contentSpacing: CGFloat = 16 + static let chevronSize: CGSize = .init(width: 24, height: 24) + static let collapsedInsets = NSDirectionalEdgeInsets(top: 20, leading: 20, bottom: 20, trailing: 20) + static let expandedInsets = NSDirectionalEdgeInsets(top: 20, leading: 20, bottom: 4, trailing: 20) + } + + /// The selected payment method. + var selectedPaymentMethod: ConsumerPaymentDetails? { + didSet { + contentView.paymentMethod = selectedPaymentMethod + updateAccessibilityContent() + } + } + + var isExpanded: Bool = false { + didSet { + setNeedsLayout() + updateChevron() + updateAccessibilityContent() + } + } + + override var isHighlighted: Bool { + didSet { + if isHighlighted && !isExpanded { + backgroundColor = .linkControlHighlight + } else { + backgroundColor = .clear + } + } + } + + private let payWithLabel: UILabel = { + let label = UILabel() + label.font = LinkUI.font(forTextStyle: .body) + label.textColor = .linkSecondaryText + label.text = STPLocalizedString("Payment", "Label for a section displaying payment details.") + label.adjustsFontForContentSizeCategory = true + return label + }() + + private let headingLabel: UILabel = { + let label = UILabel() + label.font = LinkUI.font(forTextStyle: .bodyEmphasized) + label.textColor = .linkPrimaryText + label.text = STPLocalizedString( + "Payment methods", + "Title for a section listing one or more payment methods." + ) + label.adjustsFontForContentSizeCategory = true + return label + }() + + private let contentView = CellContentView() + + private let cardNumberLabel: UILabel = { + let label = UILabel() + label.font = UIFont.monospacedDigitSystemFont(ofSize: 14, weight: .medium) + .scaled(withTextStyle: .body, maximumPointSize: 20) + return label + }() + + private lazy var chevron: UIImageView = { + let chevron = UIImageView(image: StripeUICore.Image.icon_chevron_down.makeImage(template: true)) + chevron.contentMode = .center + + NSLayoutConstraint.activate([ + chevron.widthAnchor.constraint(equalToConstant: Constants.chevronSize.width), + chevron.heightAnchor.constraint(equalToConstant: Constants.chevronSize.height), + ]) + + return chevron + }() + + private lazy var paymentInfoStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [ + payWithLabel, + contentView, + ]) + + stackView.alignment = .center + stackView.setCustomSpacing(Constants.contentSpacing, after: payWithLabel) + stackView.translatesAutoresizingMaskIntoConstraints = false + + return stackView + }() + + private lazy var stackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [ + paymentInfoStackView, + headingLabel, + chevron, + ]) + + stackView.axis = .horizontal + stackView.spacing = Constants.contentSpacing + stackView.distribution = .equalSpacing + stackView.alignment = .center + stackView.isLayoutMarginsRelativeArrangement = true + stackView.translatesAutoresizingMaskIntoConstraints = false + + return stackView + }() + + override init(frame: CGRect) { + super.init(frame: .zero) + + addSubview(stackView) + + NSLayoutConstraint.activate([ + // Stack view + stackView.topAnchor.constraint(equalTo: topAnchor), + stackView.bottomAnchor.constraint(equalTo: bottomAnchor), + stackView.leadingAnchor.constraint(equalTo: leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: trailingAnchor), + ]) + + isAccessibilityElement = true + accessibilityTraits = .button + + updateChevron() + updateAccessibilityContent() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func updateChevron() { + if isExpanded { + chevron.transform = CGAffineTransform(rotationAngle: .pi) + chevron.tintColor = .linkPrimaryText + } else { + chevron.transform = .identity + chevron.tintColor = .linkSecondaryText + } + } + + private func updateAccessibilityContent() { + if isExpanded { + accessibilityLabel = headingLabel.text + accessibilityHint = STPLocalizedString( + "Tap to close", + "Accessibility hint to tell the user that they can tap to hide additional content." + ) + } else { + accessibilityLabel = selectedPaymentMethod?.accessibilityDescription + accessibilityHint = STPLocalizedString( + "Tap to expand", + "Accessibility hint to tell the user that they can tap to reveal additional content." + ) + } + } + + override func layoutSubviews() { + super.layoutSubviews() + + if isExpanded { + paymentInfoStackView.isHidden = true + headingLabel.isHidden = false + stackView.directionalLayoutMargins = Constants.expandedInsets + } else { + paymentInfoStackView.isHidden = false + headingLabel.isHidden = true + stackView.directionalLayoutMargins = Constants.collapsedInsets + } + } + + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + if self.point(inside: point, with: event) { + return self + } + + return nil + } + + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-RadioButton.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-RadioButton.swift new file mode 100644 index 00000000000..b2078ae3046 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker-RadioButton.swift @@ -0,0 +1,116 @@ +// +// LinkPaymentMethodPicker-RadioButton.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 11/15/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import UIKit + +extension LinkPaymentMethodPicker { + + final class RadioButton: UIView { + struct Constants { + static let diameter: CGFloat = 20 + static let innerDiameter: CGFloat = 8 + static let borderWidth: CGFloat = 1 + } + + public var isOn: Bool = false { + didSet { + update() + } + } + + public var borderColor: UIColor = .linkControlBorder { + didSet { + applyStyling() + } + } + + /// Layer for the "off" state. + private let offLayer: CALayer = { + let layer = CALayer() + layer.bounds = CGRect(x: 0, y: 0, width: Constants.diameter, height: Constants.diameter) + layer.cornerRadius = Constants.diameter / 2 + layer.borderWidth = Constants.borderWidth + layer.anchorPoint = CGPoint(x: 0.5, y: 0.5) + return layer + }() + + /// Layer for the "on" state. + private let onLayer: CALayer = { + let layer = CALayer() + layer.bounds = CGRect(x: 0, y: 0, width: Constants.diameter, height: Constants.diameter) + layer.cornerRadius = Constants.diameter / 2 + layer.anchorPoint = CGPoint(x: 0.5, y: 0.5) + + let innerCircle = CALayer() + innerCircle.backgroundColor = UIColor.white.cgColor + innerCircle.cornerRadius = Constants.innerDiameter / 2 + innerCircle.bounds = CGRect(x: 0, y: 0, width: Constants.innerDiameter, height: Constants.innerDiameter) + innerCircle.anchorPoint = CGPoint(x: 0.5, y: 0.5) + + // Add and center inner circle + layer.addSublayer(innerCircle) + innerCircle.position = CGPoint(x: layer.bounds.midX, y: layer.bounds.midY) + + return layer + }() + + override var intrinsicContentSize: CGSize { + return CGSize(width: Constants.diameter, height: Constants.diameter) + } + + init() { + super.init(frame: .zero) + layer.addSublayer(offLayer) + layer.addSublayer(onLayer) + update() + applyStyling() + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + applyStyling() + } + + override func layoutSubviews() { + offLayer.position = CGPoint(x: bounds.midX, y: bounds.midY) + onLayer.position = CGPoint(x: bounds.midX, y: bounds.midY) + } + + override func tintColorDidChange() { + super.tintColorDidChange() + applyStyling() + } + +#if !os(visionOS) + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + applyStyling() + } +#endif + + // MARK: - Private methods + + private func update() { + CATransaction.begin() + CATransaction.setDisableActions(true) + offLayer.isHidden = isOn + onLayer.isHidden = !isOn + CATransaction.commit() + } + + private func applyStyling() { + CATransaction.begin() + CATransaction.setDisableActions(true) + offLayer.borderColor = borderColor.cgColor + onLayer.backgroundColor = tintColor.cgColor + CATransaction.commit() + } + + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker.swift new file mode 100644 index 00000000000..805777205e4 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Components/PaymentMethodPicker/LinkPaymentMethodPicker.swift @@ -0,0 +1,320 @@ +// +// LinkPaymentMethodPicker.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 10/25/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import UIKit + +@_spi(STP) import StripeUICore + +protocol LinkPaymentMethodPickerDelegate: AnyObject { + func paymentMethodPickerDidChange(_ picker: LinkPaymentMethodPicker) + + func paymentMethodPicker( + _ picker: LinkPaymentMethodPicker, + showMenuForItemAt index: Int, + sourceRect: CGRect + ) + + func paymentDetailsPickerDidTapOnAddPayment(_ picker: LinkPaymentMethodPicker) +} + +protocol LinkPaymentMethodPickerDataSource: AnyObject { + + /// Returns the total number of payment methods. + /// - Returns: Payment method count + func numberOfPaymentMethods(in picker: LinkPaymentMethodPicker) -> Int + + /// Returns the payment method at the specific index. + /// - Returns: Payment method. + func paymentPicker( + _ picker: LinkPaymentMethodPicker, + paymentMethodAt index: Int + ) -> ConsumerPaymentDetails + +} + +/// For internal SDK use only +@objc(STP_Internal_LinkPaymentMethodPicker) +final class LinkPaymentMethodPicker: UIView { + weak var delegate: LinkPaymentMethodPickerDelegate? + weak var dataSource: LinkPaymentMethodPickerDataSource? + + var selectedIndex: Int = 0 { + didSet { + updateHeaderView() + } + } + + var supportedPaymentMethodTypes = Set(ConsumerPaymentDetails.DetailsType.allCases) + + var selectedPaymentMethod: ConsumerPaymentDetails? { + let count = dataSource?.numberOfPaymentMethods(in: self) ?? 0 + + guard selectedIndex >= 0 && selectedIndex < count else { + return nil + } + + return dataSource?.paymentPicker(self, paymentMethodAt: selectedIndex) + } + + private var needsDataReload: Bool = true + + private lazy var stackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [ + headerView, + listView, + ]) + + stackView.axis = .vertical + stackView.clipsToBounds = true + stackView.translatesAutoresizingMaskIntoConstraints = false + return stackView + }() + + private let headerView = Header() + + private lazy var listView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [ + addPaymentMethodButton + ]) + + stackView.axis = .vertical + stackView.distribution = .equalSpacing + stackView.clipsToBounds = true + stackView.translatesAutoresizingMaskIntoConstraints = false + return stackView + }() + + #if !os(visionOS) + private let impactFeedbackGenerator = UIImpactFeedbackGenerator(style: .medium) + private let selectionFeedbackGenerator = UISelectionFeedbackGenerator() + #endif + + private let addPaymentMethodButton = AddButton() + + override init(frame: CGRect) { + super.init(frame: .zero) + addAndPinSubview(stackView) + setup() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setup() { + clipsToBounds = true + accessibilityIdentifier = "Stripe.Link.PaymentMethodPicker" + + layer.cornerRadius = 16 + layer.borderWidth = 1 + layer.borderColor = UIColor.linkControlBorder.cgColor + tintColor = .linkBrandDark + backgroundColor = .linkControlBackground + + headerView.addTarget(self, action: #selector(onHeaderTapped(_:)), for: .touchUpInside) + headerView.layer.zPosition = 1 + + listView.isHidden = true + listView.layer.zPosition = 0 + + addPaymentMethodButton.addTarget(self, action: #selector(onAddPaymentButtonTapped(_:)), for: .touchUpInside) + } + + override func layoutSubviews() { + super.layoutSubviews() + reloadDataIfNeeded() + } + +#if !os(visionOS) + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + layer.borderColor = UIColor.linkControlBorder.cgColor + } +#endif + + func setExpanded(_ expanded: Bool, animated: Bool) { + headerView.isExpanded = expanded + + // Prevent double header animation + if headerView.isExpanded { + // TODO(ramont): revise layout margin placement and remove conditional + setNeedsLayout() + layoutIfNeeded() + } else { + headerView.layoutIfNeeded() + } + + if headerView.isExpanded { + stackView.showArrangedSubview(at: 1, animated: animated) + } else { + stackView.hideArrangedSubview(at: 1, animated: animated) + } + } + + private func updateHeaderView() { + headerView.selectedPaymentMethod = selectedPaymentMethod + } + +} + +private extension LinkPaymentMethodPicker { + + @objc func onHeaderTapped(_ sender: Header) { + setExpanded(!sender.isExpanded, animated: true) +#if !os(visionOS) + impactFeedbackGenerator.impactOccurred() +#endif + } + + @objc func onAddPaymentButtonTapped(_ sender: AddButton) { + delegate?.paymentDetailsPickerDidTapOnAddPayment(self) + } + +} + +// MARK: - Data Loading + +extension LinkPaymentMethodPicker { + + func reloadData() { + needsDataReload = false + + addMissingPaymentMethodCells() + + let count = dataSource?.numberOfPaymentMethods(in: self) ?? 0 + if count == 0 { + headerView.isHidden = true + listView.isHidden = false + } + + for index in 0.. listView.arrangedSubviews.count - 1 { + let cell = Cell() + cell.delegate = self + + let index = listView.arrangedSubviews.count - 1 + listView.insertArrangedSubview(cell, at: index) + } + + for (index, subview) in listView.arrangedSubviews.enumerated() { + subview.layer.zPosition = CGFloat(-index) + } + + headerView.selectedPaymentMethod = selectedPaymentMethod + } + +} + +extension LinkPaymentMethodPicker { + + func index(for cell: Cell) -> Int? { + return listView.arrangedSubviews.firstIndex(of: cell) + } + + func removePaymentMethod(at index: Int, animated: Bool) { + isUserInteractionEnabled = false + + listView.removeArrangedSubview(at: index, animated: true) { + let count = self.dataSource?.numberOfPaymentMethods(in: self) ?? 0 + + if index < self.selectedIndex { + self.selectedIndex = max(self.selectedIndex - 1, 0) + } + + self.selectedIndex = max(min(self.selectedIndex, count - 1), 0) + + self.reloadData() + self.delegate?.paymentMethodPickerDidChange(self) + self.isUserInteractionEnabled = true + } + } + +} + +// MARK: - Cell delegate + +extension LinkPaymentMethodPicker: LinkPaymentMethodPickerCellDelegate { + + func savedPaymentPickerCellDidSelect(_ savedCardView: Cell) { + if let newIndex = index(for: savedCardView) { + let oldIndex = selectedIndex + selectedIndex = newIndex + + reloadCell(at: oldIndex) + reloadCell(at: newIndex) + +#if !os(visionOS) + selectionFeedbackGenerator.selectionChanged() +#endif + + delegate?.paymentMethodPickerDidChange(self) + } + } + + func savedPaymentPickerCell(_ cell: Cell, didTapMenuButton button: UIButton) { + guard let index = index(for: cell) else { + assertionFailure("Index not found") + return + } + + let sourceRect = button.convert(button.bounds, to: self) + + delegate?.paymentMethodPicker(self, showMenuForItemAt: index, sourceRect: sourceRect) + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Elements/LinkCardEditElement.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Elements/LinkCardEditElement.swift new file mode 100644 index 00000000000..7e75b07f195 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Elements/LinkCardEditElement.swift @@ -0,0 +1,225 @@ +// +// LinkCardEditElement.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 9/30/22. +// Copyright © 2022 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeCore +@_spi(STP) import StripePayments +@_spi(STP) import StripePaymentsUI +@_spi(STP) import StripeUICore +import UIKit + +// TODO(ramont): Remove after migrating to modern bindings +fileprivate extension ConsumerPaymentDetails { + var cardDetails: Details.Card? { + switch details { + case .card(let details): + return details + case .bankAccount: + return nil + case .unparsable: + return nil + } + } +} + +final class LinkCardEditElement: Element { + let collectsUserInput: Bool = true + + struct Params { + let expiryDate: CardExpiryDate + let cvc: String + let billingDetails: STPPaymentMethodBillingDetails + let setAsDefault: Bool + } + + var view: UIView { + return formElement.view + } + + weak var delegate: ElementDelegate? + + var validationState: ElementValidationState { + return formElement.validationState + } + + let paymentMethod: ConsumerPaymentDetails + + let configuration: PaymentSheet.Configuration + + let theme: ElementsAppearance = LinkUI.appearance.asElementsTheme + + var params: Params? { + guard validationState.isValid, + let expiryDate = CardExpiryDate(expiryDateElement.text) else { + return nil + } + + // TODO(ramont): Replace `STPPaymentMethodBillingDetails` with a custom struct for Link. + // This matches the object that was returned by CardDetailsEditView, but won't work + // with `collectionMode: .all`, because extra fields won't match what expected by Link. + let billingDetails = STPPaymentMethodBillingDetails() + billingDetails.name = nameElement?.text + billingDetails.email = emailElement?.text + billingDetails.nonnil_address.country = billingAddressSection?.selectedCountryCode + billingDetails.nonnil_address.line1 = billingAddressSection?.line1?.text + billingDetails.nonnil_address.line2 = billingAddressSection?.line2?.text + billingDetails.nonnil_address.city = billingAddressSection?.city?.text + billingDetails.nonnil_address.state = billingAddressSection?.state?.rawData + billingDetails.nonnil_address.postalCode = billingAddressSection?.postalCode?.text + + return Params( + expiryDate: expiryDate, + cvc: cvcElement.text, + billingDetails: billingDetails, + setAsDefault: checkboxElement.checkboxButton.isSelected + ) + } + + private lazy var emailElement: TextFieldElement? = { + guard configuration.billingDetailsCollectionConfiguration.email == .always else { return nil } + + return TextFieldElement.makeEmail(defaultValue: nil, theme: theme) + }() + + private lazy var contactInformationSection: SectionElement? = { + guard let emailElement = emailElement else { return nil } + + return SectionElement( + title: STPLocalizedString("Contact information", "Title for the contact information section"), + elements: [emailElement], + theme: theme) + }() + + private lazy var nameElement: TextFieldElement? = { + guard configuration.billingDetailsCollectionConfiguration.name == .always else { return nil } + + return TextFieldElement.makeName( + label: STPLocalizedString("Name on card", "Label for name on card field"), + defaultValue: nil, + theme: theme) + }() + + private lazy var panElement: TextFieldElement = { + let panElement = TextFieldElement( + configuration: PANConfiguration(paymentMethod: paymentMethod), + theme: theme + ) + panElement.view.isUserInteractionEnabled = false + return panElement + }() + + private lazy var cvcElement = TextFieldElement( + configuration: TextFieldElement.CVCConfiguration( + cardBrandProvider: { [weak self] in + self?.paymentMethod.cardDetails?.stpBrand ?? .unknown + } + ), + theme: theme + ) + + private lazy var expiryDateElement = TextFieldElement( + configuration: TextFieldElement.ExpiryDateConfiguration(), + theme: theme + ) + + private lazy var checkboxElement = CheckboxElement( + theme: theme, + label: STPLocalizedString( + "Set as default payment method", + "Label of a checkbox that when checked makes a payment method as the default one." + ), + isSelectedByDefault: paymentMethod.isDefault + ) + + private lazy var formElement: FormElement = { + let formElement = FormElement( + elements: [ + contactInformationSection, + cardSection, + billingAddressSection, + checkboxElement, + ], + theme: theme + ) + formElement.delegate = self + return formElement + }() + + private lazy var cardSection: SectionElement = { + let allElements: [Element?] = [ + nameElement, + panElement, + SectionElement.MultiElementRow([expiryDateElement, cvcElement], theme: theme), + ] + let elements = allElements.compactMap { $0 } + + return SectionElement( + title: String.Localized.card_information, + elements: elements, + theme: theme + ) + }() + + private lazy var billingAddressSection: AddressSectionElement? = { + guard configuration.billingDetailsCollectionConfiguration.address != .never else { return nil } + + return AddressSectionElement( + title: String.Localized.billing_address_lowercase, + collectionMode: configuration.billingDetailsCollectionConfiguration.address == .full + ? .all() + : .countryAndPostal(), + theme: theme + ) + }() + + init(paymentMethod: ConsumerPaymentDetails, configuration: PaymentSheet.Configuration) { + self.paymentMethod = paymentMethod + self.configuration = configuration + + if let expiryDate = paymentMethod.cardDetails?.expiryDate { + self.expiryDateElement.setText(expiryDate.displayString) + } + + self.checkboxElement.checkboxButton.isHidden = paymentMethod.isDefault + } + +} + +extension LinkCardEditElement: ElementDelegate { + + func didUpdate(element: Element) { + delegate?.didUpdate(element: self) + } + + func continueToNextField(element: Element) { + delegate?.continueToNextField(element: self) + } + +} + +private extension LinkCardEditElement { + + struct PANConfiguration: TextFieldElementConfiguration { + let paymentMethod: ConsumerPaymentDetails + + var label: String { + String.Localized.card_number + } + + var defaultValue: String? { + paymentMethod.cardDetails.map { "•••• \($0.last4)" } + } + + func accessoryView(for text: String, theme: ElementsAppearance) -> UIView? { + paymentMethod.cardDetails.map { cardDetails in + let image = STPImageLibrary.cardBrandImage(for: cardDetails.stpBrand) + return UIImageView(image: image) + } + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationController.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationController.swift new file mode 100644 index 00000000000..8de873a7703 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationController.swift @@ -0,0 +1,49 @@ +// +// LinkVerificationController.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 7/23/22. +// Copyright © 2022 Stripe, Inc. All rights reserved. +// + +import UIKit + +/// Standalone verification controller. +final class LinkVerificationController { + + typealias CompletionBlock = (LinkVerificationViewController.VerificationResult) -> Void + + private var completion: CompletionBlock? + + private var selfRetainer: LinkVerificationController? + private let verificationViewController: LinkVerificationViewController + + init(mode: LinkVerificationView.Mode = .modal, linkAccount: PaymentSheetLinkAccount) { + self.verificationViewController = LinkVerificationViewController(mode: mode, linkAccount: linkAccount) + verificationViewController.delegate = self + } + + func present( + from presentingController: UIViewController, + completion: @escaping CompletionBlock + ) { + self.selfRetainer = self + self.completion = completion + presentingController.present(verificationViewController, animated: true) + } + +} + +extension LinkVerificationController: LinkVerificationViewControllerDelegate { + + func verificationController( + _ controller: LinkVerificationViewController, + didFinishWithResult result: LinkVerificationViewController.VerificationResult + ) { + controller.dismiss(animated: true) { [weak self] in + self?.completion?(result) + self?.selfRetainer = nil + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-Header.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-Header.swift new file mode 100644 index 00000000000..4005ed91de8 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-Header.swift @@ -0,0 +1,69 @@ +// +// LinkVerificationView-Header.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 12/1/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeCore +@_spi(STP) import StripePayments +@_spi(STP) import StripeUICore +import UIKit + +extension LinkVerificationView { + + final class Header: UIView { + struct Constants { + static let logoHeight: CGFloat = 24 + } + + private let logoView: UIImageView = { + let logoView = UIImageView(image: Image.link_logo.makeImage(template: false)) + logoView.translatesAutoresizingMaskIntoConstraints = false + logoView.isAccessibilityElement = true + logoView.accessibilityTraits = .header + logoView.accessibilityLabel = STPPaymentMethodType.link.displayName + return logoView + }() + + let closeButton: UIButton = { + let button = UIButton(type: .system) + button.setImage(Image.icon_cancel.makeImage(template: true), for: .normal) + button.translatesAutoresizingMaskIntoConstraints = false + button.accessibilityLabel = String.Localized.close + return button + }() + + override var intrinsicContentSize: CGSize { + return CGSize(width: UIView.noIntrinsicMetric, height: 24) + } + + init() { + super.init(frame: .zero) + + addSubview(logoView) + addSubview(closeButton) + + NSLayoutConstraint.activate([ + // Logo + logoView.centerXAnchor.constraint(equalTo: centerXAnchor), + logoView.centerYAnchor.constraint(equalTo: centerYAnchor), + logoView.heightAnchor.constraint(equalToConstant: Constants.logoHeight), + + // Button + closeButton.topAnchor.constraint(equalTo: topAnchor), + closeButton.rightAnchor.constraint(equalTo: rightAnchor), + closeButton.bottomAnchor.constraint(equalTo: bottomAnchor), + ]) + + tintColor = .linkNavTint + logoView.tintColor = .linkNavLogo + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-LogoutView.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-LogoutView.swift new file mode 100644 index 00000000000..0bafc76033c --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView-LogoutView.swift @@ -0,0 +1,65 @@ +// +// LinkVerificationView-LogoutView.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 2/4/22. +// Copyright © 2022 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeCore +@_spi(STP) import StripeUICore +import UIKit + +extension LinkVerificationView { + + final class LogoutView: UIView { + let linkAccount: PaymentSheetLinkAccountInfoProtocol + + private let font: UIFont = LinkUI.font(forTextStyle: .detail) + + private lazy var label: UILabel = { + let label = UILabel() + label.font = font + label.adjustsFontForContentSizeCategory = true + label.textColor = .linkSecondaryText + label.lineBreakMode = .byTruncatingMiddle + label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) + label.text = String( + format: STPLocalizedString( + "Not %@?", + "Text of a label for confirming an email address. E.g., 'Not user@example.com?'" + ), + linkAccount.email + ) + return label + }() + + private(set) lazy var button: Button = { + let button = Button(configuration: .linkPlain(), title: STPLocalizedString( + "Change email", + "Title for a button that allows the user to use a different email in the signup flow." + )) + button.configuration.font = font + return button + }() + + init(linkAccount: PaymentSheetLinkAccountInfoProtocol) { + self.linkAccount = linkAccount + super.init(frame: .zero) + setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupUI() { + let stackView = UIStackView(arrangedSubviews: [label, button]) + stackView.spacing = LinkUI.tinyContentSpacing + stackView.alignment = .center + stackView.distribution = .equalSpacing + addAndPinSubview(stackView) + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView.swift new file mode 100644 index 00000000000..77ff077d193 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationView.swift @@ -0,0 +1,271 @@ +// +// LinkVerificationView.swift +// StripePaymentSheet +// +// Created by Cameron Sabol on 3/24/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import UIKit + +@_spi(STP) import StripeCore +@_spi(STP) import StripeUICore + +/// :nodoc: +protocol LinkVerificationViewDelegate: AnyObject { + func verificationViewDidCancel(_ view: LinkVerificationView) + func verificationViewResendCode(_ view: LinkVerificationView) + func verificationViewLogout(_ view: LinkVerificationView) + func verificationView(_ view: LinkVerificationView, didEnterCode code: String) +} + +/// For internal SDK use only +@objc(STP_Internal_LinkVerificationView) +final class LinkVerificationView: UIView { + struct Constants { + static let edgeMargin: CGFloat = 20 + } + + enum Mode { + case modal + case inlineLogin + case embedded + } + + weak var delegate: LinkVerificationViewDelegate? + + private let mode: Mode + + let linkAccount: PaymentSheetLinkAccountInfoProtocol + + var sendingCode: Bool = false { + didSet { + resendCodeButton.isLoading = sendingCode + } + } + + var errorMessage: String? { + didSet { + errorLabel.text = errorMessage + errorLabel.setHiddenIfNecessary(errorMessage == nil) + } + } + + private lazy var header: Header = { + let header = Header() + header.closeButton.addTarget(self, action: #selector(didSelectCancel), for: .touchUpInside) + return header + }() + + private lazy var headingLabel: UILabel = { + let label = UILabel() + label.numberOfLines = 0 + label.textAlignment = .center + label.font = LinkUI.font(forTextStyle: .title) + label.textColor = .linkPrimaryText + label.text = mode.headingText + label.adjustsFontForContentSizeCategory = true + return label + }() + + private lazy var bodyLabel: UILabel = { + let label = UILabel() + label.numberOfLines = 0 + label.textAlignment = .center + label.font = mode.bodyFont + label.textColor = .linkSecondaryText + label.text = mode.bodyText(redactedPhoneNumber: linkAccount.redactedPhoneNumber ?? "") + label.adjustsFontForContentSizeCategory = true + return label + }() + + private(set) lazy var codeField: OneTimeCodeTextField = { + let codeField = OneTimeCodeTextField(configuration: + .init(numberOfDigits: 6), + theme: LinkUI.appearance.asElementsTheme) + codeField.addTarget(self, action: #selector(oneTimeCodeFieldChanged(_:)), for: .valueChanged) + return codeField + }() + + private let errorLabel: UILabel = { + let label = UILabel() + label.font = LinkUI.font(forTextStyle: .detail) + label.textColor = .systemRed + label.numberOfLines = 0 + label.textAlignment = .center + label.isHidden = true + return label + }() + + private lazy var codeFieldContainer: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [codeField, errorLabel]) + stackView.axis = .vertical + stackView.spacing = LinkUI.smallContentSpacing + return stackView + }() + + private lazy var resendCodeButton: Button = { + let button = Button(configuration: .linkBordered(), title: STPLocalizedString( + "Resend code", + "Label for a button that re-sends the a login code when tapped" + )) + button.addTarget(self, action: #selector(resendCodeTapped(_:)), for: .touchUpInside) + return button + }() + + private lazy var logoutView: LogoutView = { + let logoutView = LogoutView(linkAccount: linkAccount) + logoutView.button.addTarget(self, action: #selector(didTapOnLogout(_:)), for: .touchUpInside) + return logoutView + }() + + required init(mode: Mode, linkAccount: PaymentSheetLinkAccountInfoProtocol) { + self.mode = mode + self.linkAccount = linkAccount + super.init(frame: .zero) + setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc + func oneTimeCodeFieldChanged(_ sender: OneTimeCodeTextField) { + // Clear error message when the field changes. + errorMessage = nil + + if sender.isComplete { + delegate?.verificationView(self, didEnterCode: sender.value) + } + } + + @objc + func didSelectCancel() { + delegate?.verificationViewDidCancel(self) + } + + @objc + func didTapOnLogout(_ sender: UIButton) { + delegate?.verificationViewLogout(self) + } + + @objc + func resendCodeTapped(_ sender: UIButton) { + delegate?.verificationViewResendCode(self) + } +} + +private extension LinkVerificationView { + + var arrangedSubViews: [UIView] { + switch mode { + case .modal, .inlineLogin: + return [ + header, + headingLabel, + bodyLabel, + codeFieldContainer, + resendCodeButton, + ] + case .embedded: + return [ + headingLabel, + bodyLabel, + codeFieldContainer, + logoutView, + resendCodeButton, + ] + } + } + + func setupUI() { + directionalLayoutMargins = .insets(amount: Constants.edgeMargin) + + let stackView = UIStackView(arrangedSubviews: arrangedSubViews) + stackView.spacing = LinkUI.smallContentSpacing + stackView.axis = .vertical + stackView.alignment = .center + stackView.translatesAutoresizingMaskIntoConstraints = false + + // Spacing + stackView.setCustomSpacing(Constants.edgeMargin, after: header) + stackView.setCustomSpacing(LinkUI.extraLargeContentSpacing, after: bodyLabel) + stackView.setCustomSpacing(LinkUI.largeContentSpacing, after: codeFieldContainer) + + addSubview(stackView) + + var constraints: [NSLayoutConstraint] = [ + // Stack view + stackView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), + stackView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor), + stackView.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor), + + // OTC field + codeFieldContainer.leadingAnchor.constraint(equalTo: stackView.leadingAnchor), + codeFieldContainer.trailingAnchor.constraint(equalTo: stackView.trailingAnchor), + ] + + if mode.requiresModalPresentation { + constraints.append(contentsOf: [ + // Header + header.leadingAnchor.constraint(equalTo: stackView.leadingAnchor), + header.trailingAnchor.constraint(equalTo: stackView.trailingAnchor), + ]) + } + + NSLayoutConstraint.activate(constraints) + backgroundColor = .systemBackground + } +} + +extension LinkVerificationView.Mode { + + var requiresModalPresentation: Bool { + switch self { + case .modal, .inlineLogin: + return true + case .embedded: + return false + } + } + + var headingText: String { + switch self { + case .modal: + return STPLocalizedString( + "Use your saved info to check out faster", + "Two factor authentication screen heading" + ) + case .inlineLogin: + return STPLocalizedString( + "Sign in to your Link account", + "Two factor authentication screen heading" + ) + case .embedded: + return STPLocalizedString( + "Enter your verification code", + "Two factor authentication screen heading" + ) + } + } + + var bodyFont: UIFont { + switch self { + case .modal, .inlineLogin: + return LinkUI.font(forTextStyle: .detail) + case .embedded: + return LinkUI.font(forTextStyle: .body) + } + } + + func bodyText(redactedPhoneNumber: String) -> String { + let format = STPLocalizedString( + "Enter the code sent to %@ to use Link to pay by default.", + "Instructs the user to enter the code sent to their phone number in order to login to Link" + ) + return String(format: format, redactedPhoneNumber) + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController-PresentationController.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController-PresentationController.swift new file mode 100644 index 00000000000..fbd2417c131 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController-PresentationController.swift @@ -0,0 +1,211 @@ +// +// LinkVerificationViewController-PresentationController.swift +// StripePaymentSheet +// +// Created by Ramon Torres on 11/7/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +@_spi(STP) import StripeUICore +import UIKit + +extension LinkVerificationViewController { + + /// For internal SDK use only + @objc(STP_Internal_LinkPresentationController) + final class PresentationController: UIPresentationController { + struct Constants { + static let padding: CGFloat = 16 + static let maxWidth: CGFloat = 400 + static let maxHeight: CGFloat = 410 + static let targetHeight: CGFloat = 332 + } + + /// A bottom inset necessary for the presented view to avoid the software keyboard. + private var bottomInset: CGFloat = 0 + + /// An area where it is safe to present the modal on. + /// + /// This is always equals to the container view safe area minus `padding` on eat edge. + private var safeFrame: CGRect { + guard let containerView = containerView else { + return .zero + } + + return containerView.bounds + .inset(by: containerView.safeAreaInsets) + .insetBy(dx: Constants.padding, dy: Constants.padding) + } + + private lazy var dimmingView: UIView = { + let view = UIView() + view.backgroundColor = UIColor.black.withAlphaComponent(0.5) + return view + }() + + private var contentView: UIView? { + if let scrollView = presentedView as? UIScrollView { + return scrollView.subviews.first + } + + return presentedView + } + + override var frameOfPresentedViewInContainerView: CGRect { + guard let containerView = containerView else { + return .zero + } + + return calculateModalFrame(forContainerSize: containerView.bounds.size) + } + + func updatePresentedViewFrame() { + presentedView?.frame = frameOfPresentedViewInContainerView + } + + private func calculateModalFrame(forContainerSize containerSize: CGSize) -> CGRect { + guard let contentView = contentView else { + return .zero + } + + let targetSize = CGSize( + width: min(Constants.maxWidth, safeFrame.width), + height: Constants.targetHeight + ) + + let fittingSize = contentView.systemLayoutSizeFitting( + targetSize, + withHorizontalFittingPriority: .required, + verticalFittingPriority: .defaultLow + ) + + let actualSize = CGSize( + width: fittingSize.width, + height: min(fittingSize.height, Constants.maxHeight) + ) + + return CGRect( + x: (containerSize.width - actualSize.width) / 2, + y: max((containerSize.height - actualSize.height - bottomInset) / 2, Constants.padding), + width: actualSize.width, + height: actualSize.height + ).integral + } + + override func containerViewWillLayoutSubviews() { + super.containerViewWillLayoutSubviews() + + guard let containerView = containerView else { + return + } + + dimmingView.frame = containerView.bounds + presentedView?.frame = frameOfPresentedViewInContainerView + } + + override func presentationTransitionWillBegin() { + super.presentationTransitionWillBegin() + + guard let containerView = containerView, + let transitionCoordinator = presentedViewController.transitionCoordinator else { + return + } + + containerView.insertSubview(dimmingView, at: 0) + dimmingView.frame = containerView.bounds + dimmingView.alpha = 0 + + transitionCoordinator.animate { _ in + self.dimmingView.alpha = 1 + } + } + + override func dismissalTransitionWillBegin() { + super.dismissalTransitionWillBegin() + guard let transitionCoordinator = presentedViewController.transitionCoordinator else { + return + } + + transitionCoordinator.animate( + alongsideTransition: { _ in + self.dimmingView.alpha = 0.0 + }, + completion: { _ in + self.dimmingView.removeFromSuperview() + } + ) + } + + override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { + super.viewWillTransition(to: size, with: coordinator) + + coordinator.animate { context in + self.presentedView?.frame = self.calculateModalFrame( + forContainerSize: context.containerView.bounds.size + ) + } + } + + override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) { + super.willTransition(to: newCollection, with: coordinator) + + coordinator.animate { context in + self.presentedView?.frame = self.calculateModalFrame( + forContainerSize: context.containerView.bounds.size + ) + } + } + + override init( + presentedViewController: UIViewController, + presenting presentingViewController: UIViewController? + ) { + super.init(presentedViewController: presentedViewController, presenting: presentingViewController) + + NotificationCenter.default.addObserver(self, + selector: #selector(keyboardFrameChanged(_:)), + name: UIResponder.keyboardWillChangeFrameNotification, + object: nil) + + NotificationCenter.default.addObserver(self, + selector: #selector(keyboardWillHide(_:)), + name: UIResponder.keyboardWillHideNotification, + object: nil) + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + } + +} + +// MARK: - Keyboard handling + +extension LinkVerificationViewController.PresentationController { + + @objc func keyboardFrameChanged(_ notification: Notification) { + let userInfo = notification.userInfo + + guard let keyboardFrame = userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect, + let containerView = containerView else { + return + } + + let absoluteFrame = containerView.convert(safeFrame, to: containerView.window) + let intersection = absoluteFrame.intersection(keyboardFrame) + + UIView.animateAlongsideKeyboard(notification) { + self.bottomInset = intersection.height + self.presentedView?.frame = self.frameOfPresentedViewInContainerView + } + } + + @objc func keyboardWillHide(_ notification: Notification) { + UIView.animateAlongsideKeyboard(notification) { + self.bottomInset = 0 + self.presentedView?.frame = self.frameOfPresentedViewInContainerView + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController.swift b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController.swift new file mode 100644 index 00000000000..5f4f09b5267 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheet/Source/Internal/Link/Verification/LinkVerificationViewController.swift @@ -0,0 +1,247 @@ +// +// LinkVerificationViewController.swift +// StripePaymentSheet +// +// Created by Cameron Sabol on 3/24/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import UIKit + +@_spi(STP) import StripeCore +@_spi(STP) import StripeUICore + +protocol LinkVerificationViewControllerDelegate: AnyObject { + func verificationController( + _ controller: LinkVerificationViewController, + didFinishWithResult result: LinkVerificationViewController.VerificationResult + ) +} + +/// For internal SDK use only +@objc(STP_Internal_LinkVerificationViewController) +final class LinkVerificationViewController: UIViewController { + enum VerificationResult { + /// Verification was completed successfully. + case completed + /// Verification was canceled by the user. + case canceled + /// Verification failed due to an unrecoverable error. + case failed(Error) + } + + weak var delegate: LinkVerificationViewControllerDelegate? + + let mode: LinkVerificationView.Mode + let linkAccount: PaymentSheetLinkAccount + + private lazy var verificationView: LinkVerificationView = { + guard linkAccount.redactedPhoneNumber != nil else { + preconditionFailure("Verification(2FA) presented without a phone number on file") + } + + let verificationView = LinkVerificationView(mode: mode, linkAccount: linkAccount) + verificationView.delegate = self + verificationView.backgroundColor = .clear + verificationView.translatesAutoresizingMaskIntoConstraints = false + + return verificationView + }() + + private lazy var activityIndicator: ActivityIndicator = { + let activityIndicator = ActivityIndicator(size: .large) + activityIndicator.translatesAutoresizingMaskIntoConstraints = false + return activityIndicator + }() + + private lazy var scrollView = LinkKeyboardAvoidingScrollView() + + required init( + mode: LinkVerificationView.Mode = .modal, + linkAccount: PaymentSheetLinkAccount + ) { + self.mode = mode + self.linkAccount = linkAccount + super.init(nibName: nil, bundle: nil) + + if mode.requiresModalPresentation { + modalPresentationStyle = .custom + transitioningDelegate = TransitioningDelegate.sharedDelegate + } + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func loadView() { + self.view = scrollView + } + + override func viewDidLoad() { + super.viewDidLoad() + + view.tintColor = .linkBrand + view.backgroundColor = .systemBackground + + view.addSubview(verificationView) + view.addSubview(activityIndicator) + + NSLayoutConstraint.activate([ + // Verification view + verificationView.topAnchor.constraint(equalTo: view.topAnchor), + verificationView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + verificationView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + verificationView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + verificationView.widthAnchor.constraint(equalTo: view.widthAnchor), + // Activity indicator + activityIndicator.centerXAnchor.constraint(equalTo: view.centerXAnchor), + activityIndicator.centerYAnchor.constraint(equalTo: view.centerYAnchor), + ]) + + if mode.requiresModalPresentation { + view.layer.masksToBounds = true + view.layer.cornerRadius = LinkUI.cornerRadius + } + } + + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + if let presentationController = presentationController as? PresentationController { + presentationController.updatePresentedViewFrame() + } + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + activityIndicator.startAnimating() + + if linkAccount.sessionState == .requiresVerification { + verificationView.isHidden = true + + linkAccount.startVerification { [weak self] result in + switch result { + case .success(let collectOTP): + if collectOTP { + self?.activityIndicator.stopAnimating() + self?.verificationView.isHidden = false + self?.verificationView.codeField.becomeFirstResponder() + } else { + // No OTP collection is required. + self?.finish(withResult: .completed) + } + case .failure(let error): + STPAnalyticsClient.sharedClient.logLink2FAStartFailure() + self?.finish(withResult: .failed(error)) + } + } + } else { + verificationView.codeField.becomeFirstResponder() + } + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + STPAnalyticsClient.sharedClient.logLink2FAStart() + } + +} + +/// :nodoc: +extension LinkVerificationViewController: LinkVerificationViewDelegate { + + func verificationViewDidCancel(_ view: LinkVerificationView) { + // Mark email as logged out to prevent automatically showing + // the 2FA modal in future checkout sessions. + linkAccount.markEmailAsLoggedOut() + + STPAnalyticsClient.sharedClient.logLink2FACancel() + finish(withResult: .canceled) + } + + func verificationViewResendCode(_ view: LinkVerificationView) { + view.sendingCode = true + view.errorMessage = nil + + // To resend the code we just start a new verification session. + linkAccount.startVerification { [weak self] (result) in + view.sendingCode = false + + switch result { + case .success: + let toast = LinkToast( + type: .success, + text: STPLocalizedString( + "Code sent", + "Text of a notification shown to the user when a login code is successfully sent via SMS." + ) + ) + toast.show(from: view) + case .failure(let error): + let alertController = UIAlertController( + title: nil, + message: error.localizedDescription, + preferredStyle: .alert + ) + + alertController.addAction(UIAlertAction( + title: String.Localized.ok, + style: .default + )) + + self?.present(alertController, animated: true) + } + } + } + + func verificationViewLogout(_ view: LinkVerificationView) { + STPAnalyticsClient.sharedClient.logLink2FACancel() + finish(withResult: .canceled) + } + + func verificationView(_ view: LinkVerificationView, didEnterCode code: String) { + view.codeField.resignFirstResponder() + + linkAccount.verify(with: code) { [weak self] result in + switch result { + case .success: + self?.finish(withResult: .completed) + STPAnalyticsClient.sharedClient.logLink2FAComplete() + case .failure(let error): + view.codeField.performInvalidCodeAnimation() + view.errorMessage = LinkUtils.getLocalizedErrorMessage(from: error) + STPAnalyticsClient.sharedClient.logLink2FAFailure() + } + } + } + +} + +extension LinkVerificationViewController { + + private func finish(withResult result: VerificationResult) { + // Delete the last "signup email" cookie, if any, after the user completes or declines verification. + LinkAccountService.defaultCookieStore.delete(key: .lastSignupEmail) + delegate?.verificationController(self, didFinishWithResult: result) + } + +} + +// MARK: - Transitioning Delegate + +extension LinkVerificationViewController { + + final class TransitioningDelegate: NSObject, UIViewControllerTransitioningDelegate { + static let sharedDelegate: TransitioningDelegate = TransitioningDelegate() + + func presentationController(forPresented presented: UIViewController, + presenting: UIViewController?, + source: UIViewController) -> UIPresentationController? { + return PresentationController(presentedViewController: presented, + presenting: presenting) + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkCardEditElementSnapshotTests.swift b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkCardEditElementSnapshotTests.swift new file mode 100644 index 00000000000..ded3d7b0db0 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkCardEditElementSnapshotTests.swift @@ -0,0 +1,73 @@ +// +// LinkCardEditElementSnapshotTests.swift +// StripeiOS Tests +// +// Created by Ramon Torres on 10/3/22. +// Copyright © 2022 Stripe, Inc. All rights reserved. +// + +import UIKit + +@testable@_spi(STP) import StripeCoreTestUtils +@testable@_spi(STP) import StripePaymentSheet +@testable@_spi(STP) import StripeUICore + +final class LinkCardEditElementSnapshotTests: STPSnapshotTestCase { + + override func setUp() { + super.setUp() + // self.recordMode = true + + // `LinkCardEditElement` depends on `AddressSectionElement`, which requires + // address specs to be loaded in memory. + let expectation = expectation(description: "Load address specs") + AddressSpecProvider.shared.loadAddressSpecs { + expectation.fulfill() + } + + wait(for: [expectation], timeout: STPTestingNetworkRequestTimeout) + } + + func testDefault() { + let sut = makeSUT(isDefault: true) + verify(sut) + } + + func testNonDefault() { + let sut = makeSUT(isDefault: false) + verify(sut) + } + + func verify( + _ element: LinkCardEditElement, + identifier: String? = nil, + file: StaticString = #filePath, + line: UInt = #line + ) { + element.view.autosizeHeight(width: 340) + STPSnapshotVerifyView(element.view, identifier: identifier, file: file, line: line) + } + +} + +extension LinkCardEditElementSnapshotTests { + + func makeSUT(isDefault: Bool) -> LinkCardEditElement { + let paymentMethod = ConsumerPaymentDetails( + stripeID: "1", + details: .card( + card: .init( + expiryYear: 2032, + expiryMonth: 1, + brand: "visa", + last4: "4242", + checks: nil + ) + ), + isDefault: isDefault + ) + + return LinkCardEditElement(paymentMethod: paymentMethod, configuration: .init()) + } + +} diff --git a/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkPaymentMethodPickerSnapshotTests.swift b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkPaymentMethodPickerSnapshotTests.swift new file mode 100644 index 00000000000..240a5ffb90c --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkPaymentMethodPickerSnapshotTests.swift @@ -0,0 +1,101 @@ +// +// LinkPaymentMethodPickerSnapshotTests.swift +// StripeiOS Tests +// +// Created by Ramon Torres on 11/8/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import StripeCoreTestUtils +import UIKit + +@testable@_spi(STP) import StripeCore +@testable@_spi(STP) import StripePayments +@testable@_spi(STP) import StripePaymentSheet +@testable@_spi(STP) import StripePaymentsUI + +class LinkPaymentMethodPickerSnapshotTests: STPSnapshotTestCase { + + func testNormal() { + let mockDataSource = MockDataSource() + + let picker = LinkPaymentMethodPicker() + picker.dataSource = mockDataSource + picker.layoutSubviews() + + verify(picker, identifier: "First Option") + + picker.selectedIndex = 1 + verify(picker, identifier: "Second Option") + } + + func testExpanded() { + let mockDataSource = MockDataSource() + + let picker = LinkPaymentMethodPicker() + picker.dataSource = mockDataSource + picker.layoutSubviews() + picker.setExpanded(true, animated: false) + + verify(picker) + } + + func testUnsupportedBankAccount() { + let mockDataSource = MockDataSource() + + let picker = LinkPaymentMethodPicker() + picker.dataSource = mockDataSource + picker.supportedPaymentMethodTypes = [.card] + picker.layoutSubviews() + picker.setExpanded(true, animated: false) + + verify(picker) + } + + func testEmpty() { + let mockDataSource = MockDataSource(empty: true) + + let picker = LinkPaymentMethodPicker() + picker.dataSource = mockDataSource + picker.layoutSubviews() + + verify(picker) + } + + func verify( + _ view: UIView, + identifier: String? = nil, + file: StaticString = #filePath, + line: UInt = #line + ) { + view.autosizeHeight(width: 335) + view.backgroundColor = .white + STPSnapshotVerifyView(view, identifier: identifier, file: file, line: line) + } + +} + +extension LinkPaymentMethodPickerSnapshotTests { + + fileprivate final class MockDataSource: LinkPaymentMethodPickerDataSource { + let paymentMethods: [ConsumerPaymentDetails] + + init( + empty: Bool = false + ) { + self.paymentMethods = empty ? [] : LinkStubs.paymentMethods() + } + + func numberOfPaymentMethods(in picker: LinkPaymentMethodPicker) -> Int { + return paymentMethods.count + } + + func paymentPicker( + _ picker: LinkPaymentMethodPicker, + paymentMethodAt index: Int + ) -> ConsumerPaymentDetails { + return paymentMethods[index] + } + } + +} diff --git a/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkVerificationViewSnapshotTests.swift b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkVerificationViewSnapshotTests.swift new file mode 100644 index 00000000000..2763e508613 --- /dev/null +++ b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/Link/LinkVerificationViewSnapshotTests.swift @@ -0,0 +1,77 @@ +// +// LinkVerificationViewSnapshotTests.swift +// StripeiOS Tests +// +// Created by Ramon Torres on 12/7/21. +// Copyright © 2021 Stripe, Inc. All rights reserved. +// + +import StripeCoreTestUtils +import UIKit + +@testable@_spi(STP) import StripeCore +@testable@_spi(STP) import StripePayments +@testable@_spi(STP) import StripePaymentSheet +@testable@_spi(STP) import StripePaymentsUI + +class LinkVerificationViewSnapshotTests: STPSnapshotTestCase { + + func testModal() { + let sut = makeSUT(mode: .modal) + verify(sut) + } + + func testModalWithErrorMessage() { + let sut = makeSUT(mode: .modal) + sut.errorMessage = "The provided verification code has expired." + verify(sut) + } + + func testInlineLogin() { + let sut = makeSUT(mode: .inlineLogin) + verify(sut) + } + + func testEmbedded() { + let sut = makeSUT(mode: .embedded) + verify(sut) + } + + func verify( + _ view: LinkVerificationView, + identifier: String? = nil, + file: StaticString = #filePath, + line: UInt = #line + ) { + view.autosizeHeight(width: 340) + STPSnapshotVerifyView(view, identifier: identifier, file: file, line: line) + } + +} + +extension LinkVerificationViewSnapshotTests { + + struct LinkAccountStub: PaymentSheetLinkAccountInfoProtocol { + let email: String + let redactedPhoneNumber: String? + let isRegistered: Bool + let isLoggedIn: Bool + } + + func makeSUT(mode: LinkVerificationView.Mode) -> LinkVerificationView { + let sut = LinkVerificationView( + mode: mode, + linkAccount: LinkAccountStub( + email: "user@example.com", + redactedPhoneNumber: "+1********55", + isRegistered: true, + isLoggedIn: false + ) + ) + + sut.tintColor = .linkBrand + + return sut + } + +} diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testDefault@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testDefault@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..414b5cee83e9d630bd249d19d61e9a32ae54ced6 GIT binary patch literal 66050 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 HJ>vck*ns>w literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testNonDefault@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkCardEditElementSnapshotTests/testNonDefault@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3cacc7b7113184e9eff2f3c231d7a837b7f431af GIT binary patch literal 78149 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

2dlQlO$-LCIWhxJNHeWoSp)Zo(=ltmPmMK$l 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 Tr%S#kkV562=3Tg=`HTMpw$GdF literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testExpanded@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testExpanded@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..34ca7b2b625bfb1913bac4c6eae06d6650a4b76a GIT binary patch literal 60721 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 `$3PE$J7GP0R4!=Fuz zRsn_B*>`%6ej>_!sK{CnDI8=&3?A=`asq-NQ9bs7P6= z$4Qk=SZJe2v_-~9@5sjsF0`M*+wymhTXv!?J-$crmzgO0drb{3w=N_GsPIh0b7xVc zlhxI`XEhXb7qLo)W&W7exyJ1H*5|v5YAcbR4=W%3ll;zFn`s%diEzjSY9xcxT#*=} z!qYl*7kl;bnx+$3UwZ6L)sdG(v1&t%M3)g=R=Qh4GvR|w;mqv=NHs6c>FEt^P@*5K^Rq!TG@uPZsf2f@|3sx2nXEmDE zzX^EzAq}GanhO4e^=;sPb@lj1*~!0)P|k7=tRHgGeX6G!ALRDs1sM87Miz@Ur>94` zDd^P&2XAHdY>bU&g}UDen~B_bNtK0J>GJqM4DaGUxaIPX6&ob=-I^y~ZZYX?aF@I5 z(6WUAjap57CI00t{6_{nYW2k{@sYPw-BifTziuS(>nrwL(Eba CJ#)DL literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_First_Option@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_First_Option@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..31861aa33547ec0026c3817dc085854ae76f53f5 GIT binary patch literal 14705 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 literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_Second_Option@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testNormal_Second_Option@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..50b5afa1ed5083873233cd692ee76b2f4e69da5d GIT binary patch literal 14702 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 literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testUnsupportedBankAccount@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkPaymentMethodPickerSnapshotTests/testUnsupportedBankAccount@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..34ca7b2b625bfb1913bac4c6eae06d6650a4b76a GIT binary patch literal 60721 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 `$3PE$J7GP0R4!=Fuz zRsn_B*>`%6ej>_!sK{CnDI8=&3?A=`asq-NQ9bs7P6= z$4Qk=SZJe2v_-~9@5sjsF0`M*+wymhTXv!?J-$crmzgO0drb{3w=N_GsPIh0b7xVc zlhxI`XEhXb7qLo)W&W7exyJ1H*5|v5YAcbR4=W%3ll;zFn`s%diEzjSY9xcxT#*=} z!qYl*7kl;bnx+$3UwZ6L)sdG(v1&t%M3)g=R=Qh4GvR|w;mqv=NHs6c>FEt^P@*5K^Rq!TG@uPZsf2f@|3sx2nXEmDE zzX^EzAq}GanhO4e^=;sPb@lj1*~!0)P|k7=tRHgGeX6G!ALRDs1sM87Miz@Ur>94` zDd^P&2XAHdY>bU&g}UDen~B_bNtK0J>GJqM4DaGUxaIPX6&ob=-I^y~ZZYX?aF@I5 z(6WUAjap57CI00t{6_{nYW2k{@sYPw-BifTziuS(>nrwL(Eba CJ#)DL literal 0 HcmV?d00001 diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testEmbedded@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.LinkVerificationViewSnapshotTests/testEmbedded@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..73994a01b5c36146236d1b53f2f7f1a671e15b6e GIT binary patch literal 77265 zcmeFZXH-*N*ER|W(xoX?0hOXukuF_91Ox=6mxxkCKzfHnkRl*OkzNG^l_tFt>C$`e zHT2MHNY09PdGGsuzVVH5ew_2`aSY5(va{D(bFDS!HLrQ?9sER1k(`8)1P2F)TDAFe`-z%%gSRV#V*r{EPdg8he!1pnRo;}v%c2PfT%otZ-&2S*l1 zNnY-$JMKnp(9xCVa}4Gzs!mDhReFobN4<277fKtvhbD!-Us+jM)89Bh!IzV7^7A8l zM{)xXPZJ;iTmNNwS%h1vXsSoC+l-;b(biP88}dbWrRCA<_>s;R7M6(00kq89w>bE$ zIJiWzICzwA{ya=`#z({Zo8J-1{o}(w51&z@%<%qoHueiyVq(@~mAJ3+#Q$@ZKY#FM zmXqS27ysj9N0wkNq!hc-F zmzr93JNAx7F!g_o4yRt7`LB`wPeY#~as1%^!OEZhw=r<=h@iXw(Wq>iKRzXj{qfUu z{D0dHTv2vAitsRLQ@O|L*Rs>$vzZVw&h%|2YYisKx(i z^uJT^&o%JhDfqp@|GNwRv9JE?i2g9fe;v_3V$}a%vB2!nY$Jtb{CWYrb`?&}Bw|6& zUGtAn_EG_aH=W1A4P>}Pmt%g$6)tpP&ZZnxF?o80-+#O(qW?QAypfd#f#<}&g#@3q zmjfKye(aT}`FlhqAb!F~*{J3Gaqta-KuB}2Ds@Ae6gwgEM`t2r(1R7Svx0wL?B#XP zEUhw+9|>qS_4nEPy^Y4nfyzd1=eA*__|gylijcmvH{Q(JeQvt(6-4_T5bc>_9}=Nk z3Y#teif8RgAf$IYv+IBpqKLo=gv|9bVr9o*NWbI1tT^~pM|^%02_EH3YS7JvpEr-0 zT4__S|G7zTae@!U2cq>r#8bt#cGVr6G&=uxf0wW!)Ut}2n@BcI3I8Jznq4I({sQ48 zk;S74JGgML>_X>_|H~C4<+u4EXw|6uV+j^isJ!^s{)~Ux&3Bnfc3U(;D&{)QZs=ySNhxhg@)pFPEfzIsIZc*!z{2IQCHQvT+P@(Z zrfUh~k|o>-POmuMxn-ls;`A!>8dJCovy0=)n%5OO-K}IS^X-^>0T1S= zQYE&$f1GM8jzC~8MKrD&<3a=8m$b5KUZ}||pnC1?CM#}t<__%iAo$75x70gGxjeq7 zh;uaUq|zB}nIRLb?OaIUnDmqAa+@iOly!;T zB=`9lt>%dqxdylG$PX4Xbv|<~H@Y*G1WTV(d#8QX-Clq3YX^3cBgk?P{%Boj?29>L zxpr0My)PZTpEJ6~EFl{ku(a(O$R6(cN0kDHqMhAd z4Pnzg^litK{lF+6?8e!Aj8i|;{Y`xmtj$j1Px{*`ms8xP&DCzyb1S3H)^=ely`LW) zqP>bvQ=e}0>urA#-^naq3ojN$y-GHLLm!x--l}n2(S4-=-^&k5YA`97)pbu@8EsD9ZxIQ!)G^1p4$_->j@cLVxiN4n5AJZpPK7GauDZ+OV1|ke5KELp z44oTJeU7Tg^n<+Ud}~8^t>gZ7jv*{^My|ErwUn+Pr=YUAty|v`(?N`^Mna#3pA1;3 zK`%D5Z;dK(rrJtlP^8&EMnl`Vj`zBwVmJ-|4|dVsp7A+qj3>RJYD2d?FaLCWkIxU1 z7inC5&?#AmzJu91YL%dHpv-3T!^A?M0-S90evtvQBcrDSYBD{+6CYrb-|m*oA$}}U zNaepiQoQPs9!0Ktg8^|Wi5Pa7PIXnnV9*pWfr6U5*ZIV*Av$gyCw}0RcvEx%c(=4L zV3Y~5o#1=;tdUZ_cY#slIj@NEjih>x%Ww%M5=J<zOWQcK!GYp=$R^``p45 z+oIg+RolyqSQD6Y0DtJTMlDJt%j$+_PJ>$OPdT7>Ex7e@g~V~%x@a#xpX`9 zwMG&$yH9={^4P387#cfbXDj8a9=1~7os+e$ZWY(9XK9w$Fw*gZI2;EpG=(EDdom6h zTh1mdHVyN$Qqs?UMyef+Ur_B+L>Dd^b+wGXP?%spaz z-hwux^u^{K!sbBh4xbitn?Tg41jd(yY33 z6BjA3ksqs7M>DBZE2&bWm;7XUB&{lofX8F)4F^Npj9Y7B0Na(`m(5QmSk}H)$8WOv z3sr>ZjH6wy7zTaT^-$$QWuWeel6O_bLlUU!pxZKp-=5@1TX*JaM}3Rp`oQ|l_oNXO zI%pxQEaI()VT_hSrUoXjr>c-i^V}SEYVpfgbKC6dHWv$G!rwb4)XuO=Ifr?sRd`4C zx4vUTPunjfYsm2!$3pp$7K?3K|gJ!UC3G`YcRUm%;&XYkRy>&B>6IHm*g;+#&%#^Om9+PMkQ<`;XH}_dk+F*RNV$WV zes>GFyQBsQ=arYSX|7cdjaL`&v$}Jted1KOjycs+7?-shBdVnd4Khq>x#yGe`%3x9 zbPLcTgVkH=2d=vhT(i_u8P?QCiI*s1@2oK%)DSrVM+WqDT^fh|M z-0?wJHieTCKHOr}E{le<^m+B-OvTdPWeVek`Pk)VA}0g9U4I(P)?&|>SQDmY)kTLc zONZUt2(hu_k!IbXQ|*WKGaHf&B#AUw45X|Eu-z^`hbP$Xb@=VKjt6pM`PTAZ%xB2w ziykntAD4<$g~pK?YW!qs`FhTskFv{6)>4-c9Sj9a?)!n*pll1LklIv0jzw*RQ&med zzbZZb@^TMkWie>uJ^hJtoM>SyHYkm$jhY3UUq&hXiYg3lCHUR+|1d?edqkf!wu6E{ zinZqp4$e3r-a43Q_lPQQ!w-h5)$sCk3lPZ-46YxBlOt&IUR|L`E3PqG9nlEnQgVieWzd64h$|dlJkP86XpNO zx54qhR@G!XL`aTLDP;;9Zgc8qsqQgko>vm-7}Fg3vIj>#zB^`=P~uXlXnMS$!P&a( zn-MNOwlM>j8B}qJa@#>PgyxeSJm54M(5K<4>g1-hc-$yzG;j*C0|HO2hxHJDNd}_C zxBqE$0C%^hyy9aol6UNLp7C{SOESBm;`yctOfrruiBc^{(acf{hSSFLABKcgV)-Z* zR}(C#dleiQ^XD4aUs<(Org|?g262SEca-wnciH89#r)->Fbx;n39?UwlEc zGfuLfr`P@(;gH{EgFK#SXJyFD!MdowhlUiiN6I*f;yQPWAFqNy6Q_ZF|# zDXe%|381Cm6cu_1^F6LXdG6)5-e2~3SmP^U153gWc~aoKF5%*1OtS?qT<9X zbPk`Ig`+rXUFg#-3$8Q|@xxK`B_cjg-Mo`S7d&^^=LDw>{bL~xFLGsyoOGL%iH8d+ z@;r%~0`w8W8|=TXAHV%-PX-#n!S4rzUH0b|DeUomkhf60wYpM|L1K)MY~4oqMzkZ3 zlZ2M;$oH6VlRya|9eh>xCv!p9Qby5sZfA!qNn6)MY#wKOofDR{`>BWx(xjQV%?0R+ zjgc7cQrAQ5NbF^Pr(1e}MpW_R1;@T**hU`MT&XV*$2anSW-{_gbsKiN>djfFH3LQ3 zFQ34rt~t%sIV>C{Zym5yU|}1o>ac18RnCEijjtla$JQo}nq}csC|^A>qTkuoZE#5~ z*#%lGDli3(BdDz;WY&!wfrV5x+YOO}aNG-%Tj!_iryQF(meT=^-(sgyVi=qm2ABuO zrF%)ZrscMDShC~!bz1seBwFP*P1kMX1y^=?3+dTe`~3NWYwalU&ei#h|@vD zbHAeTgLQ*Rj_WGjcaZ5sn0v2TVOHd|Tjvdq72kV*8Ss%Kyhy>oupVoZ?7TZBS1!Ra zuWRK?+B4_44c1V~&dXNNQxZWb>-M~Y|e5y z6eOE^t8y>FTA}59Gb@wyChx}a(dLAuQHzm^(I$xf_V`ZI)-LrjAonZ0vA3LvTuuA# z!~L_dETgq%*uiJA8`FO>s3&92z1f=lAm~zjaZfnr$91MEzD{x$>6Y6`yOxcCVW!jm z%<7tI*N-0vIR4&mDqts+%ipDX1j3It5!<&%*mQXyJvzwUCT7+xxv7g3Q+LMVLan#Z z3ZJXx?W^Nh@B#?t1Zzmf5IY4gm;H za#-Eky55hU<|HpPij0X~YcR4)$mzt~x1Yu7CWmAA z!!WBGm~of6J^aq(vv0*Rir0LK#;RNlv$y@P*~iQF-R-5VXL0lPX3-h$2v_Xj_@ zkAug1AEzEB_PK}_g>|sBa_b{@Vpl1Hq)NH0#U%=Qi6`Jo!(LrjKQ+5Pr&8s*zPfmn zsFiiCuB}}6Vmfe zHE?YCn+kueNPkB(x30t)yNs|Q1^}6x=TDiDQ(m$+U`wKYGSu9hzs;8ddbq75j|0+2 zog2W3L%iFDv_G(ZjywRVR(k8f@^$87S`^=lpLuDgNL4p+Vqv>!NAd!juk6!bzQ7h* zREKtEMT|5Iee6f!Fu3R=;WIGRVf7bLW13dM=qY4`I?uiH$wkGapX8*_h?K3UwYIIU z@=5Eub64XyH;cB9=0m7iiWh@0^38XS@bkk&@ufj08i)R%_vP8OcF@tn;+FMm(U^p| z-E^37^e-7EC_ao_4GkO_W5NOQ&Y9BT&n3$$}W@vo1RVUA#ApU!i;jRE=9{kS0|EQgz=t-p!|hHA5N4;U$v zzBB1D^1uSH4q^SK<0Y%hU*sC!OY?XXIE{_8-iS51FqOKNJZfhRX*4iHlnnH!Yz7^W z)~AYOJFsB={&TRs=x$ykA^_Nz8jP%wIKFgtB+ioie*fzp3Cv8;1^ORHW0s_v6UTdn z*-T;CYBVBUK%y_N`or;;H+89 zDxnl%)&Elrv{R6BSrNUHIrv=X{*<|x!qpz!3xS!J9`x^*j#wZ1=w_SX(3!X^JZKOD z`A|0Tv{Blj04M&fEDX}h{7mQyFLeNcFD25d!!<|^>!~l>-R)RFMsMJ_#DXL zeHZCu-C||PQC~1bB$P6hD(!$78qd>56uSyqc8jz!Bg%MQ7}3`vusLNh0Gw5RIT6%S zsj6i~Z$!ylAt!oK5*66w zC-7}HHcvZem_D!7q^H7(yGqC!?s@5D)^TS3V~{K(cOM-!t!DEbhdCxZM$QFQoA3H6 zs_DF)0vgas_wdN&E+ zxi7Eo0)pm=F=LmD?U9h*Ov|HrRpafYpevgB6Qo>G1>`IOWiL*o*DXKVj^Se_)umNB zH9B}i##djw4kq`lVHfgCCOm2@Qd)1Tmhj|fSUzs$MdMovDGl2~pWQY~)l`JZom2XZ zFWp7<+`9Q93Hq2J2O8CxI({8nW2eo$hknQuud2BGDbEB1A(_Y;SDn{U3eV%1?ue5; zx_iMoXBrApJg%GL$=pFM>ve*~7F_}$$eEtX$oz6%-OcRF^c6)P@$HSiP*3!|01+ur z_a5j>k?OITu3<0#VHF;%&(f0zmDh~;P`w2mHS!ozU5+tC<^?(cLe`=$o&8}Wu01wh zu=Y-arMsDoZo-mj*!P$5BBT$W-l)d_-aV08?LBtdv4JHXxb0}Ih#!9v@CK1TTf$}% zZ-zfEo1D~z42hl?lRm%k>-RNqe5(LZUVr$G@Q=5+L>1JdWwzCQNf*m<>N*bRRq|aA zQr7<}NpAx;2Kf&P|Z31AS0%kF7&&~Ehy&PqWF0;7g(w_Ya|3P@j1KTraEb& zmw}#Ff1_BiFtBV-l;FZ8>>|OocY`QX-;qD}3nc0~`f$RIYFLcmuPf7o>7!=||Eq=& z86vCWhl!I(9=19^eu_KK@y8`(6M^3-w`!oV{qubWkr_xRuQFfy!$df~`@m+aV-B2u zbpaQ@h!O>m4(+U9&|jl^1fp-MKkdk$_G6_~Nn@@rSUR0fIfUkt^I>fbpp`5u2!}E$ zRJwn5o;C7~EMq;UdWOYrs~V#LrhObgrsDEn4c`J@`qsUqza$c@0=|Ggtl8reoT@&$ zo1>GbWD~^nR|npK4HL24sQ;H;sHyb|pGU_Ft@7^8t2A~N*PbR~SDzw_*Y_$cSQgwW zRk8rsr7QfJ1kGvZ(qD7Ob{(+v_d|bUpTByE?fD-7W9A02!X0c}|Myo)V24Ka&Kvx% zkFl5)i|HQSr+WOKUtwbqTS*1&pQHVsYxdp%2Iu|w1pj~PN`EyM=@0Bj%$tuTm;T+0 z5+X3$p=_7yvE0tTzxwZx{;$0PJ4ZdoSCM zZz)b7{UN5^shX8MAD5Su)t_T2YOq(|fs$H8dZRe@O*lTs<2a+6yXWZ;47P5QVb>RX zP13#Bd#Cxv9_mf~a(6ZJU0sMzu{b6bBaofqnvbn2bOKoYGsz7N?{XQLv0(PvuqyW0 zi;<<+BXfF&BNiut+b`+1NbfI8?i%+DW^N!_i%y?~7Ec6HgagtJ(ZBL3+me-NVa!+dtvvr5H+s?-ViLp-Z&SWyDG%Nf^ zds&}b@8I7f+DBqOYMuCWm6p3sHeLej&DRs`fc4LZ>f3+gM#_aUSJAHN6J5X1`>1>5F~n*PqS zcg2(={!pbU)Cp-9OSoA5SfK8PwanK5c%P{nqhh|DByNAr&ig_fUoo(g#O@~r;ouhm zFVK^43k@Qct>QD(v1n4Wd%pu}qRdu(s>m(?7CCEY7B|6n!R+!}t=CZksH!!ip{Skg zr?g6YPe&_=@#29qv<#u?0b7U=PzHpLjPStpv4;FCGUrYr0C@?>UDurXlyY*f9HVW2 zUrs{7?}8dWvu8z)mUO?_d#kHfDS?bfvaE)nS2iB=O!%yn>Nxc*J@2@&`?87Jefu-# z^Jar`&eX7jR#-jY2)KtK@SjH*3Tjl*z}Gux3qN6^cww|C5(2BO7+NC&--p=pXb2A) zI9DvYU}`3Yr6^f(al6uBWAFmfD+pcfnC^*kI|v?2n0_59@d*Z%Zh|SO*o7}|S|Jk) z>I`0q*pAzXyhcrXpC35V3=`B)nW|lu^4kG;OTgsPSpyy>h zcsO7#i*DGj^j^oZ?@sjrx^XwdB|q;<^clJLMO*C0jdT{k(FvoSUdSGMTGR!|)r3*l zRHRFs7J*;lcl=#S)Lr?6s5#bNNpQX8!q&U^b>^s?i-y4fuEC+Ju2H?3{lHiK$5lth8|}5o&X@C7;u>wLJZcP zmjh)n2tsjUG}g1h{aYjx-5Asq2 zn{e$N$7(l~jfS^bf)>4t zxk6rtsL|DFi)+}F?qohx!D2r1c9vTz-Q%OJ+Rit)58iY14^$u|jTi{vI%L1&*ujpG zAQZ*4e1iM7>t=*&!R|Gom+sL=t;I3|IXbXJ!g)p}klYyxr`GLtJ7=8Gn7Et1^C&9% zl|8(COkHZ%nzCni@|jh1Do30*YRB?@%(ttO z?*1N5?LvF2*?V1pt8wxw`R1SDVplH#;*%QI+lTc`q?)Hf&;S2{xDIQzIf@ z6wxEH#}pR$Bvg5YA!N;?u~ z8=*Pr-#^S_vQrNetOl|YgIKmK)FfAV5I=5v(?J|dKe!v0*(i|tc4ybFzBmHO$WzWU znB>}G?|$7}i-ZKz8T_V4R^{XFRQQk6!o{x{>aHQNam-$m@mXhDwORrPijuYr&(8Hr zUItep(TZX1?8rUZ5*R4`Ge$R4zg2KnfL`P+ut3l;h5y*B@!0Dk7oDU^q$|1Kp(;9M zJDjV}w4$Bj2OmSu$>LlE;olLERz26mFJ7lqm*vF=dI4pd=KEKA1iK|=rW@aJJHwt3 z48u0otX~IjFKvJ0jgIL-oL&;*OgVPrgq^!?z=B!BRMo3oYsuTN#d|pCvSB+av|7ab@PlQtTb{t5W!4zcqENsX>g( z?9W&%xudz@!t4jXg`7)x2V5Gck%J9A(EEZOuMdB#@`wsS(o#N?A9~2Mn7c*#z2xFG zt)q3Z@@Mt2!G=n2Z9F2*_xw7#P7j#oAG_U4Eh#F9IhR0s{t71agVSuO5z<0WqQwtN zP6O&h`McI_v5LhCUJzx z^SaZu?bh~(r05&9L2u(60bl+LsDxx-%XdG42prsni)|LLj*eAR5sWNX*XV7}O)T+%3 z%{{*Sv1V5m||E zf3k<8twT^`T)7I}{4rmq1;T!j?rQOF|ItaqEE^D~mH~DVjg=X`PN^i@p;xIR`O(#F z=>0D~D9cG})cx3wfx8CzQKVI)j+GB{2%31k*uLgR`vl0W`adQ@caQ0)Y~C)Y$TW=^ zk=*NaO1?m2zj!FY{7cHF6|+?E*+W?6q6vKWGKxvWMkt?K$-PkziH?VzXKNuZjog)G z@%xzH8_9Nwy3(T}UFNMq55Mxw(oYc2)lzb9?)^H4_*KYBN2v z^S%NPPxWS+!%xODgl6Sn!l9B8HkhB}?EI2bqtP@zM6M^Ho*Zj`gUtB)0gXbMoM0tz#GEO^mmlh!#hGD8V@!>jzy{%-(9+yW!qaMgTBq47{?9%(qvm>M^ zRifDbT%{b#X zuhNUv7W>HQTHSPSF3jLO<08r`6O;d9wzSi@_xxVg5MF~(j8#4Yv)f_!_><23=lCNQ z*nIq}gd9SDPXVhFg^p<#;6Wn-6^a+!Y0cln$PSV)GHNa|ieOv}9E^zD7?`oQ zOZpuX&-g?=UAH4vQJc84jb>^G=!cCXEtS@93O8@PmTRTuL$xCnx-gzxX9;XiSgx4( z9JuV&6SBmsFZ-Bm3fuw3qBXIZyt*$3MVB?FAMLO7jRd#ymUE;wUhlY54V5ff{mOjh zw3lXiu=dmr2JgMSwX3yYn=$z!LTYm{)*#2S^H|JrqgI-ajbS}+_@yr59;O~-Cd+H) zT`u}r9{pn-{9ixep4w9{LeCF$1rIil-p9VLzCL?;y}L!OkrH}pWfueq8@+uhI7)J&z%r^17%F*>Csrs>9JCW^%WuCZ zVHY$_Wzdb><^Bk}Tzt}^uuXR^HTkY4JQX+?tiEBfv*H3?C3P>gL>V4s`T2DV4j-m% z<7!ulQoV0q?(^|FCVUP+dDUT$jELM#}Z3_Lv)_B#8jv5*v_y?3`w z^O487EkQkhVT_rDllF7=6d);Zu$9x1)=s(P^r|qTLu-wF=U}9xvF59IzIQ?B_$oI6K>Ovqd%I!vmN`5O+MP}23I89NaJuHKd&unq&m z9P_rxIFv>#mSQuddpz^kv4;`PefUx#APF2I-*OWPbzn9Dv z`-^Sy-#nM!%MXIGYLB6m(y(rS|qF9Kv+6bBMk3~4De)IEG^-0~HH zS{`z|g<+1s%^I@9+4QAkS%RW+f8Md|mdu#DKJ9q@wT#+!d4pGlh6ghYcrr8K9NOF+ zgz*#Zr@0|<)vg5a8K*dtq_*_7Xp1;YKbBXzS~)2Lv>(~q$NZYQo^+U@Dd|r3ybbjf zN#V|%(S=Q(V-}x{+u0?Wp4|!2-oZr<(fWDDyA7fIRGdxAs!OD?}mD&H%AK` z)^PNz_FFe+RdeV#^9q`AD{q&#dyTdvgTi^Q5jKn4ZM}z|L|oBrcHSl0Hx*RsACXrf zZ`;WA)8K-{nzUE`bo@7A>)Hcu8>R!_n@Z*~-=llkeaE%8t> z7K{*ggHOfcTk>nOf$Pj!q~lGdkAb6Fqw?Rq7*L-0a1-KEM#Fw=xFod^CUFK_z#ho| z5?h%&C?Cns2G9kHX zhTG&x8X|wgH55%&rVLfO(Ii|6F+iNw8!uUWnzf5QvNuqh1acxXP)ASYRrh`?+enoA z{hcOvN_v@tpze(8*?A%QYe#;}EfPni7~TGg(GvJqG0&a=?ZK$0hXc+%`$bluP!1%j zg&s;)Ur>W2YBYsbS?D9Kj@sILuhaYP?J(x#3@>|a`82JJ^*hESyz6$+3!R5#(LzTM z5E{F2_V)hF+Q0+%)V;6gKPn#@b>R4jJ*8U}+WMeaEfG+x;RpZ2tfk|MO9EbMQPr>F z?n`yMH2dAEN49IvshwRK_7RzOnD}vIFO^h52jFNpfTI#I$N0X1H1_%=j|Fk9bDu>< zy~7Nos)zanyKN2&t{kov{#M2;a1rXKjG!*cfq)Gg?BgVyN?FmXCV`G9W$@Lkw98BG zRp~WCgg(R!_epQLm&eZyEKc1ehK_u>f$^wca^cKa*R(hlqge#K{^DaWQtMSPy8F~4 z>+eo?70&M3SU-n*PVtscum8DpD@=4Iu}S&^U~+OrZ(o2qjSQWZyU&I0Nain~OBVIw z1~h&6u4L5Y$BR3;K6|qFb;Gc6lj~TRZ;U;;bW&d|)YqDZs%wNw*z#U9XJj^}4E^)}^x_d#%iF7A{0@8epIZr)!v}tv}Lvp1)`H3yEFn zLb~hTwOc?g?4Vp-_<|EZp*@4lo|l42*ecc9Q)r#RnH*BQ7rOq6RNsFOKy&-{5e>f? z;ThpGsjJ7&9D!c$S2CE#-xM$?Dz#H`Xm0EP(ML^7WDIRFqM?lXuET3k5GzFg!T_af zv&T^Hp2yQeTYTW2DLgzfwM=?zD7zeEjXcA&=%Xz$jtw*KJuh??!aBI--;A*`aRa)f`|gkb75?ps|9#PjsJHj0`JzwUCGLmMJ-xNS~COVUQ3y zi0yv$YF2e^`O~A+&7m2Yu* zG+!r^n%NtJs_}d(2TZPXZ>nVb8=yO6Tb)awc>65N=VFw9LHx-QxB(?;FVPeCi%S8V z8B;h7jeGxlv#E6ip8@jI29yDcmxApme}%p2V0*x5$#b+;5nLF}5Ekp^aCW#U$oIlJ zLTncw%e~O?GdZe)Ezh*g|KDtRK&g0MLi}= z?J6IC)f#%UygDped)-7cyJ8~5V{%ygWvSmRW@ZoeU2Adxx(_tFk>Y?;12>CQ-HBCX z=(YK4V|FMyoF%26jKC5g&=Yo^i2&x2CvQmktNL$4I{tK6x5(5$@>mHnT|@}e3lM;Q z4wlb^f+-<+8@m1BrHhNfe47q5y$manS~JgHAC#CI(uG8v2ZUvJW)#_7n9BEq?7(L0 zIg@t%cH8Eg+o~Jtq&9sxF{OjiGnL`d+9R0E*QfjOYIB-3K$jD1;%eMKt5eX!mHG-A z`4utk^%^Um3KCWl-3Eo|O9wI$chkoFARqX51@*`wp^LG_Jq~BTGEq`CqjA07bgnm) z*6VCWkKE#50K8u!l>m3e_XgMoxuvS;SPTn+bWp#g$zdh0m_b>e;g zy6uFBWH)^q=_lx3uFKFPY>24Rm3sEE0*JwMf@uAhR4@*@^)o<`uQoS?x@u*lbK*SQ z>Xh7Y`;tM>Ibc7#>(6J3G3u6>k$lorPF65FB0o6bb*SsKcU6GAsPPecA2HB5&km75 ztlQP;YbReGgowzWgIgWI09`LO1%MFu01S{Rgs$g$uO42)OP=oyX-L) z1%4!5p2Bweqtxe&g4VEg*j$)2U>&QxtKfWX*^|N&mID{*&IkUmb_t0k@chPCy>(8W z;-UT96$zQ(6?y#{Q~L{(*n78fxL5+_QN;-U+WqlI{Cl@9gs>im0&2zA0OTg|cCsGZ zqYK@4Olcl^3NC+SXUfOP{Oef&9n{euL}0DNXdQP7FYzD$B8IAny^l>#gYD3qUl1_{e27L`41|yxo?^J%IkJ%X3#>rw}Ni~l%mge#p&`|kg z)oBxFSZtBk7w3(X(l|Sny}XDm^;ybXBxht^ROk{|>e=hYlozLpbmsfPW@7`k)A&jo;YH4NfCegJ-i8^(^t8ag_N0+R z0QcY%=XxG#yN5tRVKo{fr%N61Zzqx8t~df(-&Tmf6{~WRKN&y0#(CU4ER1REv8V~M zJuL>+=L7&^XN=H#LBM@KmDAvUo5z|tmUWFH_cLC0szY7zW=4egkYrzJ5MZ^HTFs!0 zu!1jfCE;Z;J5I?sYCBH}?t=b|l^+&g)*M#1HB{KP?sAU3PCt$Mru@V6>&xd#U*OA` zy-gng^Js5Q5JHo*Hw3u<>&`K*v29$nrd6mACamh&+LQF9X2}7FHwr!aUPl1g_K>9} z3jxOcDM~)$u3PdI@qDg9payS#0*~^H?)m>UJlsT){9A`AZ8hXJkF{9Jr$8q_!|Q@A?xz;^x3Kc z;-WPdMx98rbl#C40mh=<6%&q+0HEQOz{g-7y`;Xat=ZVm*Rep|;!rDjnM-w9x8U7j z&>5D%28v{n-#MpI6cO~GVrN2SSH`ZsU>AWUXSh3+<~i#Z*LHzp;5ZIFCi5J~`E}CF z)D6l$F&-(yMX-dpA}T-lSEMPw)*+U6#g=EWcdte=;EpI~!=Fn5ZArYpTy(|5(oD}r zNzanA?YEL#XSB?IGarv3v7;unDLpks8(oB)Db6}B_j4O{GLD2k$1F!~pMG$KEI12O z1Q-E26JM_XgtEq=&2T&PZA<^rI%4?MD!KJXpS&hYQKi&|d8{q-&FwN;x4jnfb}L@? zq=|Yfbn&C_ysCKeQIgRmZ<)QX>60T?F<1T$X&OKZl20M*ZN?{7vP7&;M1A?|^gdNQ zPjBnS%0ORFm{4HVItqHpAH{eyuCOO-k#2JCNgpMIO!Z(xr!SDjU9xMIX=8iu;PEqM z!Cbg$NE z;qXu4ou+k*N1`Ib6Zv{O+$)<5C38g+=}UA>eAPpb&y;lOh}t_&N5z2Va(E(;7;2sN z2x-d1Q3gVb69_Gd9W3jVzx>~DaVS;u<}kg!Ir&}N`u*^fj>^j?OPp;2#19Xy_LB7| z8Do(P2R@u#qk3r9lR|RaokLJ3)w^BX0tEQdi_~bXBebDiHNSS<;KnZc3qBM3@fF@e z?EP|Vm#hWB(#>nzAG~%ilmd3TvNJf~qvTr6Njl+ z_eAx5jpbz{*_y<`}KiWJ?_W&w~?@`s?p2NVsCyz&7OLc)H zS9e5KxB0TJ3Ert#dVWoU%za*CEY3CZnzGf_IQx|`mD4JuV|W9DNL{D#cDT%bt2A>6 zXtd*FgTlWbaxh4`%a?N2e^(YOM*X6siva~j`F|=BAH7@?*R(zbw}BfbCmUP812=V` z#0nf`3R0-Bg2Gp~H!&#IfiE3V%T?=kg8vc}CXCu2Zg^PiE%R0e6-<%Qt}>84hb*Gf zr=78!^dU3DJ?D}>wvVDy&gGS7TR}NJb6B;|6>c2{V_l(EuZowq@4K@`vVd#>np^mv zkEHn(1`;#TLHd6@a^O!z+@d02CRnU_uoBC^L~?%|I^G0TTyo*S|0U)E==TIGS7>Ea z`CmT(esU7)Cm)1e$4Y$u^{p%v`1q5;mj8Sl534Ak^(LRZAo}+YfQanB!y)?b?EH7J zz4`Cn`Txol^orrB)R|b-8Jw!NB7ge64HFFP;Z>Tg4oj5S4ccul+mtZ4%Z&fmQ$m2` z?I$3(W|FVy-cS31|GKuk`UGigECH2p-Qu&+Bi3^wdhc%TsEB@I;sI-!T*k-G`G*gz z#5&Eud*i*4MKDVrl4na!lO?L*F5DoJ z2W+O|&$hk6&@iVq(Rm0f#Bc3yhFpt?C>CfreDV{%1$rJCPd`iyt;#pt$r;^a4%Q)XIMWa%)pjVwE za%SxUyD}+QmR@T4LE;(!8*7c=+l@)Ca3R6&B4l0gF{nThUO)4k!% zYiJpL2Ci9`piAekXnFPLqz0|vRM2)Jbi+@JvL0HVtzQ}KnDXh7sY&$Dfp1VB!tkQ$ zhp!V&1@Fq@a^7~kkXCYX9Umrl_YGuQ-P77r?tYBwom<}N;=>(;^(uN#jTQ;^W&KiyW$0%qTY{MnR~~Ilp3Dj+hgXuIKWA|0Ag}F>8(JXiQgg(F_@<%q zD`R$ggz2U0B065{tCREXBm$=Splh_CYs;0Zf(VyIjiuJ18K|YYu+0QnqSDO=m5HD9 zP6`ya>Da=kPy|ZvI0!PP8yMp?&y`YrZcd zWRB$_#c;<-B;#DR%`87zjYro^hxr+WL~S-x(G0df_y6DaXD-F`1&0ffEq8_RKJsnE za{LVRERT`E#j*^6?a&z)?`hNw`o};kUa++MWU3#2wM+iGvB5NrwGd^}Yxu~)Q%K#5XFE^>l;)nJ!hx>2V%v?<1s60%< zV9(Iz^j-#o=uYz5q@0N|7^Le-Inv%*G^syUfGt*m~%- zckyzk=uEDG;d#UK>ctsfRl~BO(I;*X?7qlh@_dkou@?xvr2{ZSVh#FE2whG-#=DMw zeT?6=rsJ&!mjtZJ^Tjw$U*!fH3`VanX%y(j%4+(4502`u$USKyMzgqXd@sZMCb2wA zwb1pWFY3EPA7h6>|83G(b5AoW<^mR`x|!z|J!k3TAzyTg zOh;~q2pn^oig2PelW8kt_JQPk99b1rmvnO4Jq{B3*Q&P%X&O>tATt9>_{X3-CJ%~0(H2&7UD`LJit!YlvJ;W zyPmg%<7pBsHBOznJn5}WYkOnk`#q2ATB`S`$XuzfhsWlqvXgO3p-VY6;&HJ(l1nEG4T!FMB<_!SfBQd19pH8AWJm zMrkhlI^b+aPJE4UDA<4V(_nh;8&iQ|P-%sy# zJ>R&phuO2%tXb=xHEZtOW3(-R?gQ6wi@m~KgrbI~k6wG?6@h{u~$ zX*PlIvH-M5zwF3TA5=J;rVExSD-;|)c}5BTm*Ds>EN>e}C^ zuX~mgY|qkM9P13brECTSjpbjMcr)Q*t)h)-mtrN8fQZ#|0lwYb9(Fq@{J@_`Z6(kB z?_ENb@z1uI#lu0xhSp-GuU@3KM65np{3x6#bH~YjvZX6EBeBKh44cluGBLHS?Lp_! z{qyK)mO)EAi?)H&Pd+Ft<{@g}hG)xUkhbiVT94AYRWMA=}G$WKetLz@OO zy}olrs5QaEP1+xhDxkUGT2h6^qtdm`v50l1>oa38EQYEAsl=Ve%@}kNK)6z3jV60UC)#`!Ig%?ceRzE=LVP&6!G08K-L6Hwm4ggL z%&c-2&Dz5}r%a4}`eA;(^_N-Ii`2B>%+E%zZS1Nr<@cdqy-aIRIbfPDV!C?JyFd0! zuyQnE%8u@%$THF&F|iQK*;LpSwM6}b_A_O$kwnG2Xv=F$PQQ2VAN>qMtCP?4rP4fk z)@bISS+#d(CA->u-fC|;*saF_@3l4Xz;Ujk}RQbBvwLr!X0DKVj!PP z^rc3=yMoQ}gn0z>W8l=KC66FX=5^jQUaK88=#%d5f16DJVHJ zR3xJ%`zu1OxcCS!H(sl39P4SjdtdH}!KLSg1w4d&`QVn^NK1&EsG~rkPV51bc(}g& z-CnaT3#ms(r}}FKv)tuc2`KJ?j|-Vp z6z*!BRE{&Yk>&Ab)_9!IsEK4(Uvcpb3DcG(RB^g1h!ppI1GoEnh6S*E*AL+Bb#r|I zzj1i`RA6mM=u$%;^QWnoZYS{=;4aA95pn4}%V|H|@n)5sZF+&vYgLPt`3dh}iS{0w z^sY)8+`JjS=P8e34_+C`kDB#&Yf=oiK}cxuph|ciNR=cWR|*m}zYNkb~N9_K8A$HB|A^7r|G% z%@uOF$wLVaJ_^>Vb8!pf0D%U-_6e6SdZwasK52FQ&Ffs74v%O@0P<6kniY@!3>{T+ zy%$$4hZVCLFR3_;NM#)dgxLpaCORJ>RgJg0;AL?rDDNhT3)lp(|6xAS`4rnN-E*I7 z=_7ygTJ!Rn9?M}pFG2tkr*3>`6C&s2KawWd8KX!-mU@ABw=Nzhv$Z~*XWDbMJ^H)_s#=NucB^B}_SJokeNn?Hoh%{T+@h_jWkKY^v zrXS^Z{%Ph#Zn*D}Irp*>QfFN9MV1oQrWp3G{)Qt{%!jxxB$92rO^-|y z$}pdFWlaPA2tT)z1ZaxV9+-#d-zz@5Z38{QcB@N@T8Z;gX5DI&=#9UU!3>;vjws$3(IU0rBQcwIZp>ZNw z##M{N)DgyxJU?T@ZTqdOga+HT$onRDPV{QF0eLl2ccChziX%Pak)!LNpw;uzkTW0w zl>D$CcA!yR8)fzTQmD#gX~kmkiJe~aszyDZexa9Y+J}{E#XdzE zEu5IU8B?tJgi2Rd>bZ}}W;3q)W*8!aNFjd?X#%^1UmFZ zS2N%@KGDJ^B0uoHJZPk^K&s|$Qnu+F>2u)&3{Zx3{`$iXBb_OGRX1*Yi;A`FGWF5V zDU+nsoZtkY4fiVXBUtpkeMWHwTHk&&xcwJ+Ku;2%r6r2?qeZQXDunFc)||~0pG8Rk zr8wGI;U%#o)tZm3h49WNri36LOw_#Xq4&8t=93f&zV);}*k;^d38rBhg#VWc4u`Zw z^{FmTecs_c*ssGjB0FP~$HqM(&Y+jq8aI1pl)Bq&m8r4f$qrIQa^wOErN^~DZSO;k z!f)CfX;wa8k;d3vur-}_!7q0D(*`d7pg2Iizjt|O@Z_axs{E**^)_ZNzs@@jfS7sPfobZxTV2SEM3ni? zqW2>p@%<>%qpfD8K zX_s7u0&~v>ZGuRc`j(DQ$1+%hv;D&Q%4E{Eo+IDHG76XeC_VA8@l#c7wmj9;CZ>{XLP zjzfPXR-Mne^={fa|0?15ZdCiN)0=_m2He}8iyQ^J$_kn*YlCIj$Xs4koIE;tQrwOL zZS{LUcx(}t41|g6s11)0Sqvp`N0Q2|lW4O}OWH6#3~1-@qg|>XC}rFW>++II;&qsP z=U^ptc+Ti>PlKLK7*j+J_!N{X)_mj__S_`LgRAGLAt&Q%h2G@5nV2}-Z#L1!Dix)u zKfbgr%>V&o9>L(=$4eR`7E+7-L4$W$SNS5Zg4g<##`% zQd&dTV0ycR?~U^`P_!Hthuff%b4$COvi+mIE5@9m0Z7K6c+Jdb^}3gby%a81#&}JZ z-*p4%LW#BmE6exAbOTcrw}ao$iclIwz4sOKonZrFcJ*wjO+`}GuSltu~Eq{5InF3K{VKS&sg>A}8$KzDf6DjrNWHA(6+OFXO^5Q4RBE>`JcXA z|6K2V{~)p^EtS<8Jkgt%M$KoR^lY#->n1;cYc7aaMK&LOh{a+8I$Q2Fn_PTE2 z?54@S#tru{w57bQQRfp_wRHAO-z`DBupa-z>8_tZCP?Pfy{-4Wh`r;hyoZb0(L+)~ z={n2AC#)Y6d5sCgU-d_xw0SDo1#LS>W~>JC7cH zjx*3Owbmh@gpGIp9uBRy$EQEd=T&H6Bnl$Fv>em}ixjF5d!pUlG5%A1dpVv{!c4U) z487GLQPuvVz7C*5y8)}l17Xsu4$_pUZogX=MDGu>Rr2&ela5mcvOZ2PoB!!X22F2) zleG^K5+Nw(R_`}G1_nM?e39Xe$^EH=7*fyRiS3nFrF9VxxBXR(p9ME@hZ z>UkJy@e4e$n_MBW2Y|Y{m?c(97^~gnxeqoJti_99Ep1!_w-)pgn`r(LYWr#Ahwo-U zYSHGkg;tiJ*P?@A*EGvh2QO9t+Hwom|G_-uGi!1ozd?o9nRiHsM;>T5WQP(y1W?U8 z7NwJ|M#htIbvy|YPE*sX)2A-#k*4!aK`#5-!cA}xu*iAF)Jjg1lga)$ssJ-hX?JHz zKGWHip3H(gDrpbm=tF=<4!$MYx-o%w>t9TZu=W3jH``o)qx^M<+nuyUHfnZq`c=2P ztKHYR7hwOXxRL_^bjj_$2@bzE4YX`9++K8Qz$s}aL6-yizFNl9_?u24klKh^FqWw(opBM!LGwQ{ zUmi@T-$mZHbYe;Il#2i$Y*(V`w(yCaVeUtdaRQg@0OqTuaZ~j~Ix#4jL$>8pYWs7T z*z%s%V^w?jg<3!hN~AhYL~!K01)f7ofyn)+G%+o~-Q&DBdm&Zy9-C}qw~Oh|E8Twd z{K~kN* zB#JZ%XDVyFfi%?Qc9(PPTs;TrA2^}ZaqQ@w%EA875ywvvY>@q(*Y`sITNjLN(iT+_oB~*5+=6~++LWa+<#zldxqdR99SqSPr84SLzWdacU|@>^*#J_xu~2IIAy6! zduyy+D+fM^eOAr~+>TDIWfFQH4L4hrrJ7W`R$atf0+o~{sm z$a28gvro2BY!7#F$&XF(1+Tfp{2O!&Wevh-Hxc?08aFMQxbIFD zcdRYO=KcYtvZiqsPkt=kLps^-eQ0m)%U@usytY0T^$nAHh5pgB&uUc%+^1LzhQ!s*z^A%>K&jwS#O`fKOrZ!vsAjSqw=oX zqxwdk@2{R9HTs~HvHPo>ni1>cZwhZnWZrX^H+HHO;4(&SY-(hqB2RM}BxsWpZIN%4 z(wh;cDJwlOOHjrgA$endt_vSijZ}ED=C+Q080+4i>Q6Odq=nC^X=Y{rd2s?y2zPIDZ+WsSGZEgNb)u@r-<|?m^6c0R>?G@RDvpVtnW2HcU$R4rkPE< zd_;e?EqoAn{Pijm7()F;M!}_P|3&-3Q_fQ)xwDL}Q6*ecNVL9F$X?|iw44lxc|E$#`H?2NxdLF26aA zYEW5fXn5phyX<{~-c0`Ff(`Bbil4_FbG}&mapsA;u=w+3dH$G`__f*C>OUY8wj@qm z*)Y+r4JT~N90!!&5A*+#S(*vb5r*osG>}?16+o*Nj>efq3PKZ*_@oo!)KKQTdst&x z5)$X~5j=a(juj!>QYp_gK0w*_ubf8Ztg9!uI8ifs)r0bqq-D1R zZa}Qt{}PMwg|H-fu)zgOnT84W0Kn zU!m8h)HVu?@d4WVmwN;(a(O1imIRB2vYd^Mdli!4lCWu4Z0yJuUP+Y9SBVf`7;(ko zX6ljYXGoo4gVa#A;@df;Ur!G?a^smA*ehm=mcvHqKMBRMk01J0hyQg2tWC(8Y(eV= zlb9`Qb5Q^<*|G-|gCg%>g;$dAM^0@SN8c&T1t&=C&{8Ph{Px}C4j3{tIm?E@!uVFu zYm|11u4(Ti??Zb^Zd_0JHg6bLzgx}JJ$;jN(;q-nz4_qxHTLh~t$ILS1Y$hr8P(Lf zd+X;uw5zSFBRJqi6t6y++%S>z-;DsU+>vngGEne5cK8@cugx%Xd@(&SkTDZ_HQ zk5w$>1VFqM1aiX~2zX;OZA0I$ZONFlVM-?8?CK~W{j<8DtXBZ+z7k%{>-@NBt z8F57wFuq+qJ$5`?zvpEcStfZIXE6z+ES||+x%huq5aj?z*GY4&qW|}k2SC+PSTtSW zDT(R-B%g}92W$*;q;~#c`u+DxrWcohqic(-bKn2he*lawZvpBR_&u#h|3&-te@dCI zozi`>tSa99_n!VCXZknZp8qw#Hh?$qKO((X{Qo*jY8rnK*)v}ggV0t%Us7M69>Iz{ zFx|zeWtNQ1d^kr%%P2uX@!>voR7d$Yn_pgRl3sC){K8cZGtuE4m$w&z1I49vCPa^l zo4lkGiV*Fyo|XjAwZW4w$4kXcMbC7nH@DJLtOBMqUX;^>Ue zBxCHR8DlYrte0$CNZ8GOe#)QoV_CzWLA;naCT!o=l<ol-Sw7m4--1%IUqEMl<6AUw>4G)q)xjOjllSdfYQAgU)yJ&ffC>^ z)D2SZCYtA6fZUtt?oo-P9N{ve^m}M-9iF-AR#0fv#lY{;rz7qctosAPK#(=n1j(tX zo=1~K@YUV7WIGJ$oy|22^RA!EP*9Z8x1`gO?5s$DlJ8soDUp(!yy@@!+XW9wl%17} z*|i`}39HlgFFLfzE?1tbef#P2$krs;2NHcAZG^|J?!MEM7KldIJXGoY{vUIN&WluyZ@KqfrLBZJ5-BI^+NT4IjtSI}>j(<+V+7#KTc z48vVlPHomiD>Lw0fG%6-U0CB(@k~j6QcbdztR^(K(80*noQ2|_+8Wj;Kz;52H30g; zt~&uqpZF(!PMOtukJ&V922A_J zy~+>)fSMJ!7Y3d*JkAdseXCE(;*NTDCR3KP4syA5#uef4d%P=BOkHy!PZESo|XxfviBN$Ie_m z*-SS6>?I4-1Xb(WF@gX!16Lq{baw2mLtPmPTgn%!H{V_XPQxx-aofJF302u%juQC_ zd{^nT`Z)E>*WmZ?9}#Kwzsi^pvQRcj2OOAz02@ihap1d=5Cv=`s>95A`_HZNw_|Fe zmgAR1mny5jJl!dI5c?~z6Pp~VVEFo40%*lF2Miewv^&z zP$W(`Aa0-^?ZT3~zT;lRTKKdii@^|f5imC(P3 zKo<#?du~i}_&UTey7-&`1<0ahMP-_OgWqP!-HZSL|5a#6FfGhCczxws2tdx31eE$n z=n8a?ss5tpkSjGR_OJD>9jo-y&NVJ$I5CVPkjkuouc(S!eoBzL%r5{vv31JzKF{%U zZmfi~M3j&0#$E(*S{8->y^z5ISV-G*s>f$P&`~gOdFGfq=qIVJRV^V|;HsK&7{Uo4+qSkN>uaDVx_gBHoFKx#uJVUN3A zuo#k+dS)w_3PUxckUUv`P&z2Hzwwr%VpXxB+ah{fz{SPUcjT<0&e6u6uqb>aGuvbU zYfuao+w+6f`jTVGb;3v8veEv9IN z%-6yFgO-*yETo4>FE8(TR4oWbecfK-c@$fiLY^vO06W2Hj6z(S2;J=WZc%Qp`|SXX&{0m{r@$G6ARDf}>p*3fqYsV!Y-x zMShVp?FYmDl6Yl4MMl6Atsj58z z$0a7(>rD1SS?`@C_crI2%)V=!ZkL0O91uqaC0A|vc&+%{N4#k$Z$7y7uPQX8po zJZ2iA)u1OhPD&r!dFepwu&g3~>}M|SJDfFBoF=?=@8sQpu-M}^a8S&4m73WXfwPcz z-Mt!VP@)gkG8elT|NF8@inz>5f+d0AW0c{a$2_STHEp5Z zI?8K?;G6|F^YuWIqua3)^3)^oWJ`fj>&cU^$9Q9C+DXj<|8gYsV7+ZZofY|_iFuC! z$`d1_I$y1g9SJIvSQBOSl`pn=g#5mdqFA;q$TY&S=qnt|VynAx!LCH>b$naQK~rde zGs@$mVrE=2_lfByenR80eo|t=@vn+T=+G4?BrdVXkMhcA-S>eCz0mLa=dPDLQtWqL zUKEggOSkL3xVWt=FL^@?kRIxjGv?_{0n^Xj(9LBHd$X96o(riQ?c ziQL2l?Am}Ffs0cv!A9#WNR0n!CPc!~*K=XdYns4@Fa3pRL^4u1*7_ES7Amm!A_wkR zR$qO~kKBffw2L!;v_~+QOoe9nycEL(g%%$aM7lR?@R>|nPpzjbG|IiS-?+e<4EIX; zd_Z){=6hEmSj$*2&Sk$a8ag6b#Wkf?A;EGlcKJ_>d+iJ;wQduPO!jNSMVg7zq>=sb zq^|gN$VPQ}x5E?ME0P=tV&1Ua^J!qI(ZJ*76~&v-vkas|!sqLB8b5Z=n3J1YlFsq) zJeub%82qpk^!l+l&%UxUo|{1R#uwRn)D_B*>io5E>AIAgr~AYFvc)e1Q(zw4bmt5` zxk^X(Y? z6-Nc=+Z+{On1yc~3t)9e6Lhi%cs?3k@CdBLQerAPrBoAclhW*q-Z{;%| zYR*4DoZsRyl2km~eU7qce~YWt_F*HxGKecaunx;VFdSc6ViTt*wQmCYU2x4boF@3K zy$vh{@M&c54Ds8bT`=Be{bF{#T59!seyZSLI#}weecH7_{ib5|p@0`@*Dh-N>(!!~ ziXxvOYHB=@P8(BLsN9adPBYScQ(yc3Mz?fGj`^aGa%Z(MJ!-8BI+8*BK%UB2PFa5& zORkk^Ic|{=Tg&ZXXs;R1@4SJCxZS_-;m%H6uN_yytILhjK6Y;xLbbGN1deBY1IZXh z!IMT0Y&QdRod_KYoUxcFIq@rQq@7O-RQO^;iu@r0h#NeHE%a!mNT8ygb#9koT(D(9 z1YM|u`GCTj{fxx}hcBlU4W6(2^n>H|8ZLKLuF6r$FCH67(BNW#%CVN(>6Ee2sSEpk znWzbPqIrFV-hMRRQghr|Czx1S5A7#F|Nr?iGoM*Y6&dcQlB*;P7M|lG3&88J^PIOx?FW+0|+;h3ZzPlz& zFl3oGij>hV>n{^Wps?Qtp3Qb9y}DeX-B%$eKI(8yKkNX5)=+tJ*xgSk3!DK8C&Xr} ze@omarz5mmy!mF4tgHTXAI7fVoP}?aEH{1czV>|KEZo1$2;F{;BPthu>XMe$N5YE zR(yF8>FY63sSGM4GJ@^Oi&uhqo}Ei8+zlUTujA49Q`zuef*{xbz#7;7+V1A*B+g*P zr|*cE0LyvyK+c{s|NY|G<_}M}tmrOyc+_kt7Skm?J99{rNymU-_Yd?4WPG^kJv*{} zCmi^ILLj;q_-J`xUy5)&rg7!Zi%9c5f)-rXWY?yuo#VxB8!r%~7lQAw%O5Q>^Hg3V z^FJEUvy?cQ%bq&aG;5w&cp5r)J5`_fhp?F*HSjhFTJ}oJ1wOikaG#SUm+J@Nf*G4e zvY*V`}QmR{4YB>H4c{#aN2y16G z=l+WK&&V~xJTs69}j1l6{pKbrj#;*N~f#0b{1+) zk$kMpua+s_(-ls+P9l~r%h$+rRxdbFe5NA?Db-1;Se;RN8h&w0G~KS$I#9-+Z(6@ijik z3gn!4m3@~cD*l<^3Ta<(_09?>)WSG}WR6(7W_W$l?i0!je2UEqHA2>(-Y}QQD@FyUmu~d|vHSNC7I%YZvd*qhWjQ{+fgn$` z6o)8uD%t;@Hs?MWL2fVOLY}>6*My&SG6g`$tj(3QLOY{re*wa)x-u2*(fm6ahkPN+ z%Urz|VQ0?V=1_gAr00c>R&5p|`05P2g(N?D5@Khj06H400WjDm(Qm3->(!^0BWd%e6HmNd^Y6~W+o7<*Ky@Rn z@MD7}YP-)2UiM7xR1Rkoa1N-^-9xIO**K1Rg)}?0>XsZ9s&(-i#484FFR@*9kp^~P z2h~BZjDEywL1wP|WiN`U9=3cHNUm*EJJ&2w=Y{mG>B6)_c{L8j_3CVW7Aql14)5l3 ztlgM#ee-+_aNbd|8?{^6FN%Jph#ydla!^{^7VjgFN(MO2!8QbX?ULJN% z^t-m>=C)Rg{-uMGqoid~qEXy-um}J3wXHqekqm*DLxTp80RU#dcrlQgd*Z-1MeYL5 zRmnqAV1nv{1l^Umy8w)@3mvGiS!ty6gaexn*NNScq{TX!-E=0T`JXMkuYNO&@vT`d zR5Lc6ifcNoQ2w1;bE`{fKldzV;Un~y?d_Tz<;cCg#F2#oA0H0@`aJ6r6EtVIo?bG@ z?X5OQ#Pw5i_K1KN9|U;tZ4UX`c<=X-2&8P8JuRam!lte|8uZcC!Z&=8h{rCxEER07W};aBnJjOVxUeol~dUFlsEm5DbE8XMwI0 zpFW9w-)8Xqu$%^V_^N_00O7mVS7rTCI5dQp2KZ8J+OO8sEk5+5vtIKZZO6X*0vb7C z<8oWe=FP%GLo;v=eC6cKOuYo*3(omt`*x$-h{wuyM{Rc(VYUNC7JKtz@gh25uRcxK zx^bC)oj!Q4ySAHwR}stpXfRJkj&67cF1O!`RZnCLP?CB>nmdS+7phdH;nFpX+tz-A zp5dOY9{(@@GQ&N7L`PA6>RYv$r)H>-6OH!MAl)=*fN#&g}!n8N_GM;x0iUlo_hb{tR@ zz3hdr&ddq1c;#i*jK&uoKN*jgLI|Ho@GIffrSjocvq)XiZZ9Ee5u|w-55&mbU?3oN za%jP?_gm61ek%*P+&z9ZBJOSq`e}DalOmsai?pG8z0y>Mjsg_62KnDJ=U1cMw@%zlB~pLM~E}?YL_nf7Ut}Y+Q%|-%GAyZKf#7EK$Bi!@hRLV z1`|QJnLUwd;7`qir1`4z(8x0sLrefZD^{qyBXWDYQvuB)T_dBj(^V5RIa9q=8jW4% zIbq$(zY#yBaCro&JF3tiuG^=+>ek(o5rRHBr_94+-PiMpOMpnmb+$Na9N=Ai;hx5y z0%88m!uC_$at}kmGT+~Lv#A&pGZt+IpDTE}&v?bVZWALP&J5{q^LHj0A2c^tJ{4Ui zc#v~mANb+ZWRN~I=rx&_^J>+_8Fr(t=VGR}B~%#fpkgxXr#PR(jdm7QVL zLyz@faCNbFaLbW+q9TSz<|s!N5K@%Q7$W`;wbHG>6bnH{}_3yvGR2}m$xepADLs_NuJ8_jIHhr8Ls!U+o@ z{Ztl5Q18gEJ1UXkh^pPw>Ensk-&(||qMY{wj&B3o+Y7c&!_nbF^?neZ7HnUtCX`9z zAa@baM!d~oHM`9#nADDGT5I`3=j|quvxB}X)-oab*$tKC7ws=*X42eTMV$;Eu-FWa zY#&^cv)Hvb-g8kVtl}cyYH!qe^Q#{g;R%`yP=rIv8n$-5TVxsmmiGVAP!(<BExonr10X+CQbO~v%P*&a7pcnts%(Az4U+HX zg+yz?lV4WJt#px$u(lUToos@c_h%Es7olj?W~W+*S0{2_J1p&f@qw@y$R@B;h-e)h zn((Y$+73NK5ltPntulC3?A%%KP3&4dT^Z-^?S;7y2|;B3kQvyY?YV6|x!qolpAJ)1 zvU0Ec%g=#5-H4Fkks~xZdbI;W)yf+HGMvnOydcKm|r-@;FZ0_ep zkqdI>ik<14f`^_mH`0o??Y`DJp6#bJn|*Y?K%K8_QX&eZ5({6%xg2inUS8GLcVI3K zr=o+zrGNPyTfaHwPmo(ZFg$s8ZLvZg~c~ zUPl8P_atcgfR80VdcSI6)Kl5)M;8S zCaWZljunMfQKj_{E_@j$+a1=9BLaK8hKiVH55$CKK{H01r+(26{?`MTtOK7uJg!x1 zR_JV$5H8kp8aRKZGWz2giUS}Ad9XD6S&`?%cB70}l)*uPUnK6*%J%EZyR(?jXE`S0 z1&6p^!tu5Ij34gl=w-y?iTnyf4rlq$a;BX{y}`|aXf@+5`Eviopy)O0d$X9XdrFs7 zg51SJ;0)mporqg+n-)H>HZi21uvFhCB_1h!F$JL^zQSHS zwwB5}xro|XuMQ%Z?}mGG6WL@c5L^vf2@FJELSaJK)1Fq`^`VK1AvDCQn#&T&>wC#A zC`TajImk;=*IL3Q{GR#+AMeLm}U3-p^6}~ zKCk9s<=;%M1v2TlNKJ<#Yd~i<1kvA21oQg1#p#&_+p^Vot|dfmd)}{(@Ij6%)NOuK zZASVE{uR2i55Q{2erDIOMwqfecX0h??EquEOw)5EAT>n^q^8#BjRJmreorUn5zm8t zuc0ucgrMsuhPbZro)qXY?%bQDMzf9jfs%jUb3r~_9s1dorO=Ne$S4juuR4!yk!602 zW~LQr-Tn&Fj)zBYOR67QB5t9I(Ua?Uv?HbmUu1K2$!7*Cwe(<(@!pOf4HhNn+p0JP z4cwjT#*s(DVhu-JaH!d6Y6uJzw_ShU{-s)*<-ku?&4yfo9<`fm*V10}d-?&1@QD4C zQ81r#+}Go3s*33C;BMeEcoL5KT@2sCR-ZqEc;paJGNnR3 zh#W-Ut8?H>r7W{;#;$F-q7?wu92h#Xnf`O^z^shaJgD@28AkTfi_Bn`q<^79JYhde zS;u&D7TcS^bEm)HeGu2$O$|I@?L8Quv1WaIXUcOx4#Ij+Q0M+|HZ4Gf!E{70#Rlof z=Kk?Qw z`3ffB%R3;hcD=U+km=cd5)tKO8cD+=SSMEy&Vcy9iK_9Qfy#_4?bZ4pkA*zVJX3f7 z0TwSJC-y%28gq3&b^H{A@M#&G%<0s4IA{@WM2Ct=<(q zxIjB7ik)I|LpiFdT)kBETBL&08gf3U!+>Y40IcQ$!%sha2K?6zCKk13 z@|GW0gvO)1&bc5x5tf%u<;B406dO)Yh7K+ZJ~?w1$lyHqV5oWMm94Gh?TBCROqfA^ zT`4soK?uIcqy}r$Yms%iU&prqk%-rTskBB9*!}IE^WrbN=F?qUH1`Y-u^aU6`BE=< z#oTGc{^12&!=V@;(fjw|XK2vjqLqIYax?0Z;4B#B;^ulxC=XaU$_Ru#zYwruW556m zVkHScPkl09mTsTwZXcxBCl7mrC1t~WNk{kNG>tvEy$UD4PLlu3cLHZ~u?nQ4w1wY% z9oFU}{K#_`;`0x0{(awf;C;6w^iN0o&n*1&=GQ!m%}zX;a{vC@X%iM;yTxXq%k)1Q z0}l)U{TK`m2mH@o-oO7(_y1AOKQ{Cq%K_HRf0os$kNb~P_>WWgk5l;XQ28IH@c%ET za5-yvnK_0wkrbaQ?v_H1c+Bwv@42G-86V_x&m9KBACv_RLmn9q(GR@^pY<`kj z8}+(NsQ=!o13o}*NY+mk2Qy$>ueuDk%STGxju`)ZC(JTx8>E*Ge)YW9v?k6UH+3WC z_o3UvB&p;F0EF1^*<-wL9%F2jk$yTDPOQ+fH7|JmC*&|BnH zbh4SDJY>t?)n853af1pqWCK5b49RF*RlgOHL#Dd@MSt#YqdW~EkDiQu!(KYWeURd4 z4Ef?kBDFJPTXp;)gYIyV9xU!bL=Fz07>HIRjaS-tj_onW&V!eo;=pj3*wm!@uOMRy$IjeIrb~Rt}+VM zTz`We({n7t_82w%casyM1FI|vZzULU;*rws$3SAo34oSkh0#PPcjs{5lCON$BWn-8 zojYliQ4k$~PufDDRp*^t%>8tY+Yxi?iH((ck%Y`fmhzb|$lPO=zj_He<1!p%QQy5X zPs%g>V5NR%mVVM*|Hxb9EIj6ydLoQkz7v+q^R1DZ5r#`T7D{-`-ZseCws|um)ZtLm zI4jkJ-iVIG~(B2{f=(2Em z?wG^n8VI&uDgK~CMbj6q*mks{ybda4}w)sVHIwbQQd4CZGn42&EmS_8Ql~UX2?OeHxSunIYucL2; z^QxKxrF{Qr7C2JkGQ6bE7HFeQJ7U<6#UoZ)#0A( zxV9vs71+0+A#LbX$_Ah}vMUTe$FiZw3(>QK9oM*9`8;8> z4N1bFE^fm12C!y`q}6Uo;0^nFlbaP^GHZBZ-j>jiSKXEqV<3p{Go@55g%!f=bGeOM z1y@u|JGEf7tpodn*Vm0+-%x?2eJW-!E0Z?lR2Ge2@a@W@)qH z)L?x8gGl+8K^V2_Oj2NsC4UN>EDM_ob-Q17?wBC7~D?Gy+aXhH&QeD0-73#N%tagl|L6Z-wYUvo74{b3*- zxl>3cQm%P?5BNR}SvkB_q4R`v(r7SK4cL7Z_dJ-+5cIjMFFKHxZ(G%U{lP2Q6RecV{|n7xu`EOPOR3UMX(xAB-hdt2jlF=RtBtyRRV zKGbW@hGl1dG)Bsmp+W0*zdpO>Aa6I8PH2`4#F1>u?YYH+;zJ`(Ru6sV7hLs$V91QY zt%&iMjSkn(nb3XRjiL?y2n(?4lPH zKs_hr<9qLHgX>~Jwz!9;k|Jb-0g8hdf0D9OFXQUI6>&VEU0Pj+kP3yMObNf8WJ1gv zJejbq10r)BMLaGG+}>$VzagZOvosTCI82(!N0{6M21U&|#UzKbunfBY_dQ{Y57ux% zBuN+@7C(O$S30xoAl?M#bs0{uYXF8dx0xbeS%?74?(E;iF1xwG515@NV0J*<`p4{m zLHiXsRXFz3kS|}D?kRf@bM7DY^(_5WHQw%8cXcJBul|*lq{{jr@Fr{pFs7KE7$*yl$>qtclmE0mkBS-xeVvM=(dzITy2nnbUIYTBl{np(7 zua8D-pr|GVL55hTbF{COUJN5{-UPi^=p!QXFci1v^ldYKDlbwnU%8rHO`UZmChGCU zdy0=A`(kNsp`udv1NW!3U3*n~Rkaj4?#%sVPX*5-5oA-VZGv$?5zac`Xb%~_@Y{`PG4P1Wtc|81yK^Yy{)DA(SrC(o2W zjV)a%`TaxiokTE8dLZ?yg~?{CpI(jjbRYh{y(j-iP5R#-P5AdE1kaudkSZaR5UGB1 zF%`I!Im(I}QT+RM!*i^4sUP1f_X@t#y2=nXst7d5W%s+BJ^ESbRHX8&CC(X9f1h8! z@Pj`5=HCH?-&IO2;eK8E!T5K@+xMIQ4}0$w)>PNE3qL9r6a+yw+NJ#d|%KN?h+W$V>C;!27n(JcC zQSNb%dyci3bDy5N)*>m|vhm}+4jCO8@6JTW5*O;K&SFY|ohM>kgzyHEt2sA6t{2Bp zJy`#)FP|L!qUD6^GtbryV__E1#P_dXx!UppE9gfCwR$)JhnxaY8};wwWco>svs_BZ zaA-XB&kIChM?Wir4#?a%iztc*4II`8n-V++#P>#<;&+jngIcOr-myrdza`W}6mDQ0 zIc_X*G)@oY3KSkW63z(N{PWqA#7FS2@3L@dGoJcN4L|q!dzNmus0l4DD-$sX{owr5 z%%M$9UGqDImgmBEpPxy(v6!WG$BY{Kq|aH)PE^PD&O1SAKjrQ_XiR|iUrhOakU+Ki zyJ64+cQfaii+5QcsS7EUQ;jnGrS*FS%o%+wK{to`2Qu>#-0Z5L$5&3C4GjTo@}#5a z-q=VFr@KX67ivBI?K9Q9QjMO5F3<9f+M0S?qh4yi`A+yv2J8+*qp&mSl!jz(CJ!n5LMG}{@Q zLgZvXJSTW2MKSV%$*zB9bE%t?8s_&WUPs#UfXj;?Z+p}a`i?9U%gn4fWlW76=C2ZJ zfrj^Ld*fUYTD@X&D{F{gJZoh7DZb$IWfV^%3X%Xgs&0%xgLd4sLGK;T2A^G|E#P^) zy<-vZ&#$96iOo<+?gup=A%B|+vOxy~=$-BY)f747=I!zqdYoqdh1c)sm1xEM_8;^G zW)N%^_gBgWUQ?r2!Q%Qr8$`r|8xA%(AlN!SwyZeNjL!}WvzcQB*CALhyR*}b&;A}Q zBJ4zs9@KKG#TZO%_*(6GeX8j`-#>=&tAVCp_DT`GqC~^RF$UFOn&~IQue}rn$>-&h zGFfF1tCI6{Uv#Kgr8_OZ%M4=m`_lK7P0%v5OcoXfV&(~Eidt6s-8yD}L8_|Q&>ZTe zx~x;a%KC1c%1#Nok4!J;{?|8T>81Rgfhr3p^siNL22Z$ z#zPcovHq`XV61(L<2swc-)tH7ltAweP(4I<>&o!} z0lCpO6}g%}r9pjUzM{u1Lv=8kdG9Zq4Y7i}yo#X@XXFKm&H2*ZiS~0~vc8N5I$xqO zE2B`8Jr-nEiK|``tTbl5A#M2XA?SN%>}Ad&6);^UY}^OJv@-5gX?hH&5tD^c{m^6) zHJ-!WVdOR%7&i4boF>6aLt$4lk)ELUTAs{ax7lb52&oy~6$DFVvhD}_*h}i)-#yRm zs-Oirpl)1BPbCRtsS_*i=2g)A{HsqiFR@U~*HWVUT=)Xy<-OC7vSS56gvCB*^%$cD z2jn6xDq0NVZfWZ%fyT>dY2Lb$3i4vBpi&f?26RQO2rmZ{YV_7vwnbVk!NgL@h)NPD zjabcF_i2es+YTJPM8n0Ur_wAmN>?yupbrFD0wf-gL-MW(&H&ersBQ@A&U_EGr#2K# z1s$y@u&*Zd+<{X-%w(J5sUS;mM2xXif?#}Omy5`vx}0l}syhLq<@Mu%4qdQkQGJsI z(ei*_@jQs$vohVGt+Z^mzHCar1`-qG$?3pl9zU3$S}rlX%Dpx;T1q(mEWwZ!Y{M1o9!Gn?@;dt69{v_&MKfrbCyi)5U;oZMM*}+D zd9OPsL7=B*J~uAsq|wTHT0&tw=%H)K*f~G2I=!FR?b3*LH`=QB5g1Jqo31~(DIljA z!E}tBFVSpo`Z22=2_|cCV$rIJ*2LV5FF*8bqh>hsNP1=hxcs7KWAS4N(0A^FuH_sN zTDocoeQq>THW6Wu%MGVtrDnANivZ*4s=WhA0iPck6%4}&fGq`X#C@1V^FHxa+N)~X z0_OKiN@QrIviN4G?<|P5bi#9t1L%PIuS6}dP?DfYzDBejYxe5}_Wu$>Gv2}Rt41dX zvG~tEcP@g7rIOJnY9of`T3gbyfQdViywuss3|4vTKTXkBX{I+?s?C5b0TNF?HHc=6 zGDnv50h~i#9@SA$riusKRX<0663BjDk>81cGSQDz7^K+d&by%n2;E552?(BY*2t zyJuylY#tsY+Po-^a08HZx^G&w8t&3K?ZE$+WfQFfUI}6J@t`GZ=`QybDro|0v#H~D zq8v4jml;oSb}NI++ntV#&7k>iZ}U(Uehy66a7!qnlUBwa{Xd>SX;>LCaD(H)4hr|o zplpKA_Y6EwGL-@=t*G{3dHM_JJ(`1#vr7eBVCnS7*lvI}0lgP%|Bn zl(krfoxwtxUK?w!Jxw!T=+p()5b*J6<|A1`)RqI#MDT#aH+m|Eg@su)85NT%5QRNk=oC>7vq67>IL_ct9{x1zsu@=k(`&SFf2;Ws`odK6(xWW|pVs zBnrgL_u+af$g&bsE1F%XV04*H$W5hcmQ=?f!Sj_=aW06_&A-HUX}LT& z)$e&3j5aLmfpOLljTH+*zP#853;*6tQ%*~e6%E3-|(_{MJ~0wo+Ay7uwK0K z5bS`Xx1FnEc)?`JRPO(|4OjW0ARL%y>%SSq!C&m_x^f%&+uIN_fN!r|i&Tbg>Y9TAu^_|LxXe$MCHe4zOur*1=! z(0J{_Cv71u5Me^I0`q0m;DB6|NOiv8mdTft5YTwf#Lvce6=~W^Cxk1Tx`_bxWQpu6 z10^8D_!pt?TfoFp$><>pd8m)}q7l+a`{3Js;?-p2{>p4BEG@@PQZL^G} zMYH2`v4H}O(;8BK0H6egPsp>TWDYP{UDe%fAvB>m^+W9aVk9+=505=i6{po%La^00 zd(d}?X+pmql$I{|X8JUZluOMeZW*xAumT@4n>+;LIr(K7DGxrMgBv*Nj@H02g^CAK zf}r;jC-0y1q%BY#Y;EI7E0yjudFh-W)|579htZ$|F|Q?QJ2I)-yPJhaY384P(DM2k z_;?BB7b~Y}>ZK^n%hcf)*m&usu4RMir*hFCxFfS^|GOhWGalXCT(U{qaR!R*NHfxm zM-QsS$AMcEkvllcTVP_TWOReth-;s;H?z<-C=9Z_@e#D~PsEWB-upDuU$uPrNt0t# z;>n-}5fpgYRGc3@p5p%&jQimB;0^)o@hcqqcu^2Dxo~i6{e3Z8*d5e^X1-agc2v!h zZMsX};sPq%>-+@_L;v*+M2p~)ze*r_7eAl_?P=L`=8)!Kr%im6zWodpp(z&c=%9E@ zaG(LY2GUZkaiY^U7{7slVfWs6b&3)5U)R(@so7#G!V3Nt7xuu=@3>XgeZ z^#_Tz^x$`~F+Uj1d@);R107I3DM;Y3BJps1t)V%>TaJiCJ#<$oQHHK7ZJrKHU=!2rh(?m+} zfSU$}Hr2)=IIV%#+17r!1c);N{DDXhRdGBR5R|Y6JcjYA&5MYm&Z5uq)00pPxBuJ(I zj#U30ss1}s{dc5FZC3w|RKZ^S?@0BR?Y|?{|M!uqj_C$ue?F$*mhl%6oqICClrku3 zP;Wo546eSKQ;^^kH*E+X%)cI9{|sf)l@*RM9+HC(wm9C143oWS+a$U`Z#<;u$FvF+ zlW9a!J}w+PQsvhf=f8rkl{vEThm+&_|GfSEp~P9vtD}V<$c;?os@#q`%;Jr1%`>Ri zS9KVS3jZkU0esXE`oe&-drrR#9>Yosk1x1%>Sx3isTON3m?X1qWb%v=HqUWT&wy|I zS*Wa|YDyyZn*pb!g6k6SL5wO-gi)SGD_Yxl%0)lfKNriaomT{i9gn57ivrF*pV|Nsm})$bHCZpi;u=os;Q3 z|9!>6bVv_9=S?o2_Tn4xEzk8?y&iGkuJ>3qlCEf*`A2T1U*NlHSC3%i`oSBa28}q# z#s7D^rtAEku}IP12fl*A2pmBMMR4#z{hGCwyKm*KI*5*1}V&e z8?&n89|QxxynNw-p+k9Cz%wIr1;#W32KB_Z2ksW-V{(M$|F~7~>u>KnKyicpf%^`f zV}p8TVnfc50!+?mKV$*=F&L&Khs7{1`B*+b3=tgrAQT9E!QipFm1i!rWFWPg&%TD(JFv{UK-hn=_!N-Vm!nIk-dsVyr{}J{YGdIo^8-KInW@$1nctjM1`?p>Wr5 zkvK$0ao_sN)|)8)Q`h6kqw))506+|_F_jveL#eMse3?rl$9{z$+M0<;)~DW~hE5UU zV)9DXQ6npH-L6a4@ov~H4Z{t$RjnEC>5p&nNO{9gAoH~=?YLZI$HL4iLbR=;+#oYD z|M#$4ylgJyBy{7dEnp)XXrn*GY8bFF2(a!-9tUWn{x1sr@*5+qnn=HBOoe}Cs6bv84yCblmz z<9lAD<7uB&SK!;yi2Qz`K?C54nVpu7OF5a}ql+KBxCe!wfBx+bj9-`#`z9jkE4o+!m3T@MeLHB=9@S#WtnYmbmo_vmBsAv^WkMKkilr-=_mOkP*s=NE<~wt0z1xb za#x!(qF2WZ@eTNv?7J<|#D`NdR(mTL7G_d8yZLfvWat^aYBFa=`KuQm3*kWvx-t=y zIhlW&^VXwebK~rChZ7$IPwS;V?KE-p6F>sL0O(Zy2RccQRkgmpo@jp>}THwB786pZ3CNRlCd#OH{yt+4;3 z8NHh0PzKyG^KgrDi;qjPDHD4xQ!@O8$KT$D@8(0odz{x+e@EMsh2VoEj`GGPff2nc zgm%@vB$xI<{cY||N~OZSV{W$Alv@eJ(Q)Yg!O*-c`));p8#75}kNx7}G+OlB_x9;w zH(#DgK5h(8n)!7>?Rg;6`q;#QoXjlij6Y1PIiDF(p9K3tWN&h7)oYYY=f@)xrp9%F z>?CLo*D}DLh*Ao7rb1*LPdm{eud*ioBOrP`c>`AO9pv^Hg2gdC6+e80Uw9j&XYr{t z3-~n0;j*9O3B+oSpPxgLs>=j-`J2tJhgpBne_8CUfSPu9`l{(RsCW6%E%C5>S1|UE zHSYjtzq08LGoMqK-fiI5VZ4AZ62KgOT!^xXDzF$q<<=GZa95w!#q=%mUJbFlktM4k z+G?4+RMguM;W2291!{ZuHfC(_95K_xsSQ@-1fOpkp2x3AVcNAv0N%}r%)NS#)8M|l z{}t#sx0X)Ym?Sfa)z@{bj^C`RJfU=RsA-l(hoowzzL;T)>ZSO2>6o`3XBe^zE!hYmn-#Eo62glX*aC*HhhHN;^X=6ai4QmkC%lZCeWj_#FI6i((YjKmdSunMvZz(-XBN zb>4?_qwiv!O1=ph?s1>-LAni8iEuREy>_B_Fmtcj@O_JESM6{P?>Lg33V(q$AxpxC zN1Ww0lnw;iyH@+#)OX(1oOeN7aAi&dJ=HtTR|!_SSxo<*BfEifgsp+&!GHf;Is1Pd zDb5U>0S-A~bMSwk8?G$yVkU~=3-R)?1r_D`*!q>GtXN?awwq6R4*3V&yizRIx%%7EK+67a)p0xQ)dLs8;U2*MhK&}jp z+89~HPx=!lM+a;=OBti0$j6ecW2Ub$^K8_6iu5Rw+C`bjhJ~iArtfhqSAQUy=0^GB zp)s7^JKskYiQLiaWo<`BEvBV!$q|0Xl!jk~#uk{=7G69(qIjUYH`S^A+roFNa8x{M zEK8J+PheuYG;&lVU|dDjT6H1-T9M^rQ|vsxk`;d9uC-J9!H|uSjm)WgSMNQA>P$dz z1kTWkyhB`_qqTZP{W-qCJHTZaNQN(;kRR2yn4SVB;&YbrYj7uAZg=sS5VzL(8-C(t zF1`F_bL(2JlUvu>6;5-cYtm$>V^5JCp6oduC@i?%C`QURXx?EJcC0a=bzRdhGkZEV@-(5Z#nZj$OPyWg2GdY6t8Kd{X=dwP@PWF4|-7+M#6S^sic<$g$ zOvc+9S$HaW@9oFis&e5cXRg1PY#?)PAKP61u-y0QpWx~9ZkZ7ny4ewwAEA%J3T>Ho zz#l8gjD%z&SvLEoHprs5t%!7+veW_fRyaoLb93cVLHNT$mPcKv**csxaTi+)*-n=` zU=0q!rH_{uP59p5^8wE2Mfv{HJ{CRunnIDKd|2C@QlO|X_UkE!;I7@4d#Po1*G~3X zwu`=}^K15Ti?^qzF927outlqrh&+uHTY#MER{`ZBdwMn@4(m*&iZBx`rxanG|YiPHrGcX-^tr5^a* z@BW1P!+ON(nc5w)sv`6I!!e9oJ9)cQjzJhXh8H;{BG((A_`a9k8-I`}j*1rcw-T>(Jp^u*{ML4%=GF3bV`XB2Fyx1ovPm#61mDW6M1x)*D|Mss0VYIZHEz_i}>M^PW8 z<=EL94J=swzC$9G@1;e2k#85puMj_Oj-2|SiyZR7pH&=idMrqRPmU^iBT!Ngt`0JD zUb`81@<_l@=YYNUwS&ii@83uBZ^zZmKz8466O}F;zB;e4n(v%sw1IiCyf_sb9Uc%R zC%ZkNaS&w`(>;{e3E4L4Z5`HiJA@*Jc9l+=Ps`!|HoCc9?yiy7L1$KfDJaJb$KU;y zusG@OpKP1a+`=S`na)J?9FMnQvk0`wB97-(sd|m_3YA=OYshrl{&Gg7yRaI&*ub1( zXdV74T$r+4vRfZuQdGNHL7oq=`?7tAh*aw1GT(Z>SKNz}_?;R88~}b+e&_Ye!-9%& z-lW~?)lv^M!&GF9MYi9k_^tIKqHlW})9PMGXn^0achIn3{ElaVJf_xRtcn9t>^`Rt z_iB$l3`iq}cC!vivS=NXoj=+JZ6MrEEp9 z4yuJ}a5ad^&10R2K^)$_OeJ|n^3v#b)@eZn9jLdB+Xz>T6}I+Tt;0fzCf=Fo(zFzDQoub(%fFx_-hF>y{^L9R6(95H^`SiR z$>EZ^_-Xg`uqpdXL)j^6>3YH^r{Hk!XKs9*^6ztVyW3KXA-^H`ji^o@;1goto;Hn} z#R~wFi>EpLDn(KTf0brIw!ck^L1(X{w@yB^;p)sj=HH!yA~u9FaB}RQd{l!wNSc<( zLUQl%LA*yXX%FNYwD1<2J?M%t*V&srQfK9B%5KoJFTJwhUe>xR^<8*%(vAF$bC1ik zxAI!Q|G>(UHhk;eQQg0GBSmbU=-AxSUf8FVQM65>#{%hqR1vUa)K4EVr>*Fz*6ftf z>v~w8rj88GFIx9}E}FF((o}O+%5~yX5Io9_DNtdh%yUwQ6_z(su{L`l;USx}AvZ30 z#&~nNBP_^mIV=E$^@4167|f-H2jLExY-`sKlheuOC@h>f_1Y@8Q%v}iRYA7kReM57 z=?cp6sLDQ8%6*W7Q3bOc#vto1_5H$rCM)Br(e_6|Lls^Q=l7ICH^@gk2)ft^Q%U}` zS)y?*(YY3-`t;*2$yQlS%}` zP(jO^N?$si$8A1qOvt$xj!5ld+fuWGit*QPPfs-{Y<_lA38r)`gqK33F-b}oVughd z_9g4m`QLc>(7TpVr+`X9(oXR>+gQ-S8?>ExO!!j!>2ajrW zYnb+@GI#I^Ej?o!q}^iOP(2Jeg?hu#?53qG@LvjsGf_V|03?x}4!wX^ET*)89* znLZZDaOHQ9TmdkDx8O9dd4&@zVt=QgO@agev2^NSw(W~yVhnKINaM=atUPO3b-j?< zxKZ1-phr;p9_}0=SPforP)BWp2)}VoUc1Zj>+6(;=W1>b6nEW8H|*@BCjITQ{tQaU zD)Sg3(*t(lS8=3|%Y*7K)C(TDvh5WH*OGT@bi!QLKeM8w%6h8Wv{seFA7TkH7Y+{J zOyP!-A|^J4ETemiflGN4uY{6LkCK1w1?+C^57H~s-=It__iY_$3tkn38Zho>#`vX@ zijoBnzAB!@Og2b3NHmrOqdH`7bSRDDB#&Arxqh+_H7mmFBiYh-ccLSseQ%g@xjmfvATlP_I-+JJJ$Q30n zXFL>f4mzyn-9AkKPVe3IdZ`|Do`GIXq5LWYd4H-xkus)UYs&^P$7Z}J%-84(U7JS* z99Ey)Jxnp&5HeJ7xaL;0T)OD@*;~1}Sy`d}MXYFg;L2*C-g_)DKBXjJ@!|7j<+dtT zJ=bJAu5vAJg2IRv!)Wf^b0pUO(x0DzJnA3SuyKbOucR3n5r({u^HS<&#f&i7=SVD; zJMR9ySC$$x9CR$a@WqULLvaqHsbTS@U;&xIeG?8?n27Dq#AR z=eKdxfTQ~xSd%IL%%OC%vQd4M;%q=d;UjL}KlHptYVe;3%3uCB#Vc2XmK4|uUFC?D zUxgY2_AZ4!WVLS&4H=Je+CK)T_pqC;?*Q(i5I|9-o_6IIZN&?c5t`R)#PaLp5B}tm zZ@b!QuF1Vg?4L~{(zQ!wS>FL)W@IHTnQ_(tVSnah*EV4{z^<$Y}zcxe3 z!q>>k6fSt?%P=b*jK1kVEr)QSkiAK%sh3j<%q#HgF5@-7cDr9)d>Fh;Eby7AMGgpj z(ubyV3*Or%FFWQs4z=(nvA1M=mi%~M$NxF1dIY!=%+>t2K6JJ+C#JY3VqcH=p=j-( zJK7gA+F83--VutxyQRBpN;qWIvR_{PB`MiY@JMA_dvSYOCqPdGG) z(pirFG!~-mo96r1qH|1n!^kA|4{+2Y1kTK-%SR~xp`1*yzsAYnC_PtoH)4h|>=Vf; zdvzcdLZ4jsVI=kj%rxV5_y@&w+pB>wN;;!Vb5vpLX}zRA@s)@~`q2 z#xm`$ME&k-Z^|pIcejV}z(~>3*{OcdaPwUo1q?Nl_kT^`VZ55}5^+(hF5^XtaQM)= z(bjIR-ifwUkKqqNyOP*D5omKN$TI#21{JXeE2>Tk6z2%4ZEuIzm%U$v6O>(_ymrjY zF~PPSez}|8`tH&^YJ{vTzAv{ZTP?93c+M{gTZ(1$`TMYlMe&ZQ#YU~rC`(5Tw=5F3 z@27$5uo$>vh$S8f+HvbH=VBrF_}F`Lew)IhO;f-fs{H=Wc8G6yP(lnk#<_MHx2k2lbmjt-Ke8W? zi;ByR4DOHI%b9T>TsR%&cqf+2)I!i-V%AJAriy}!PnIr= z#J()bFd?#Z#0&7>a!jn!F#_OUV*8F(&FTWL-ivZW3_D4yLw*1i)l^T9Jeyh z(WMLZ%T}jd8|#U)2&Y2@ZnYHK_A*I2xgyNB@NwffuBvp7>KK*-m&favjvCi~cet*% zM~5h0yFtcw93SGxR$g}r&2c)$lstSsf+Jy2n~eSOV&K#p-A-cWVMmpjY2X!qQck!@ zQKHecK_Gb;S^9m$9Vj_2vIL$cc$uK-C3bx}A3wMMWf*F;PdMzAmH9TFA84C zpJHeH8&z`2=Ykw=ysCG&VSam;+^NH{q)m~UjGQGb8&oF^Zk2yO$G>k2O*%!EcUSDy z0LFTvjgf^A^$j6sMs9rQ6^*ACCh-;zH#$?0x?hD*Hc8s|)a+|^Q)~Vz$aC~o4tX~g zsdtm|qH31>rm{>r59uc)j+l?eu^q7~s&FI(jb;U)pa`YP56h1-Aw^A>?buRVM%tNR zd{L|ioQF2rZE4Y(!hC=sE8C&Hfe~7lbiYQCZPo$<)habUd(e1 zTa?QEphys+>9`-wRKw3VxJ6!`S05E9UUbwhQW50oI7Pk$e|)!)MBn6q%rjO<%J4{gco!7E|p=~h5i;Erjgn9CBIS<4k-F?^x9g(k7(v7pmZp(fTqsQvQ7`d z>#d9tqE@}IMQA*S_|x>fRTW{;t9X=n-~&-qgZ2YL{soPO74H+s1Z1t{R+x^RlBF2Z z>4Dk?M)?(_ai*=13z^gTE1C<>Z!ut32a}|kc4~>IvB$-wtR0>(spc{ zLeBNcCibIp4J!aCXK=195*SnX@cDA`=sw(VI^KO0%iU%FOKuXE;ATUI3b8(@=-}8P z9&&gQehooK`%BBism1blOK^O^g~7-|Ja7hjKA<08<1?}Z=`Kx|JpTuV@A7PFD&9W1 z8WUnbY&h`bnP2kk^N^bM9{Io&Y?!2C(&D;&%IBOx%t3~URa~4_21GRrKM6Sec z1!OECt@hng?Wx^;DK-w-K~=Sl&MaITp1VQH`X(XSb{Ri1{h8cV%$@QC#S<`%_|(Z8QW|>|5jp2FpLwi^fo5s zY+aN*V&|6U<;EhrV&cgSw8io0-#a7RQtgIpbSN(IrM5hL4SRu*>%LuL{Ehb{gJCiJ z5YhWkXfd6=uLNi}0;iI)s!b-t3q^>*k9rw;b>!o4n29rNAp+D=n77KE3k+}U-d%xs z>l~d5A5mh?S1=DuRfhT zp2X10b^}&bNVp*oHjPEli)3RvloRjJ!&_V^=zjGImzt-+hOqBT{xrG zy;m4U>5$M`UMeMf&v?Hk1#Q{r2vm``1sNU$Ly)_&koy^>20OWC|Cn=dSFe_3v^)yp zZeoMLP-6id_Y>mSNH$z5pCOkYznMv;V&0~tQw+^~Z$n2(DBT9wt@w9+LNZmJjoh}Z ze?K!~)l53(q#)~(xY%1GBBx@MU{iV~7>2jR=vgX?<1Li7C9N8iL$Jj|B>+<^Zc=B{ zqY}tMxBAr=@`I#fyS;9;s`k+{J~g?kYrs_&X#tj#Vl_C#WAyE(l_cp#+%&8(`_#M{ zgKMD<;~bMh$>U6gj`=^Mn=r}r&wmH%*lX;dcyFhRfeVThI)=8q{29?Ct8T#=XG}R@ zoC_ye*5){}zd1mWl@f#~e9@<#3SiwfnLrMma#CyPbsYJGIy$Y_OFNN*&i)@agxEzctps7}zEF|&;|NXS3avk(mrTuFvdcA z&x^fFe0LOd!e_&QYFgCrgb>{0fJYnm!?NGc6x9Hs-+sc22?1ucN>2!dQW6Am`mtXb zuN*=ju`2H4KVdpjAYCPZm(Nvwm~$^LXS*b(PZkszL0fJ*LYYbLw0Lx4M%7>J7cWg? zZk$N`hMeGg8-Vp$HooGQG^dE$+r`oK_j;s>DAkB9uI4T079(Sg@!i^viIATyx3xEj zz0ORWWoHNq~T z3~B1M_PdLWs8hjVSV%>3KC{LCsN1#zlnf3B-v(}dwGGOG-}Gfu;Avxc|B_$w!Xcts z=Sha;VKb@O>?Tsm|1@%E{PNL1gSduPXuO-Sje`F_|@9+y9=H5JtA>7*&Rw z8quM`bp(z0d=JCcN#+Ec`Bg_X5v3K`>2Z&xQLq7n=<8k`hUG0L-gzJ1sr=_86FUBRn~A)$DSZE->rzt^3Eq8gif zU6S|HARYHR%M3Pj0VbYteO`t;+ z-X*fOugv_JRE0gUWJ?V^TOfz=A>Z~0tL|IdEFBXu?R~rXK-uSV6=_$1WBU?2}TY&f?QIKC7%7JjsS$i`^soo)^?onsHDQ3g7$wVr@QmG zxJ+!h`qT4pJuvz&fyAzIyR(Q9kJPHg_m7D;6^{0f7GO?OUeB@;#h0E&L~q+cMvjz( z_$-B9a|-?uSj&eumgZE}LGNhV?=F#BCyTh0HZZG^+bX==9d{{ro|_^q8gU1^IQRHT zdDuepe%^>fXjm4Qb9|}p?ww-7=Bkqxyr=_Qz#g%-%AG+w|bLN$vdVAdlli4 zm-3C`XL=#=WMC|%fcCK&Yp-r2husH8%3BZGREvnmxAe16H{-%)HDc&ca2FmzUd|(D z0x+>uWSn9;)x}GImp|`y7CMk}4vAanbly5k@8-EkCbKM=!1AVs}@QdPJSnYO65J`wDvRTRY37 zzsp6Eth-*t0{5X&nd{|7?o92D)^BD?6ILRz`rZA^V<`{zcAi{x(Mily886kA-4_Oh zf!gU{m>(f;n~96%WnwoXZg1wmAc4zZ>C7W7-8i?nV3^=7b4m>~T@&q0@V8DfD-vlG zg&npX>qtdO)scoTJ`av+#1ZN#dv2VifxE{;NYuWgw9z0F$^l$?YAEL^J zk5r|n%H60Lqc;Dp7+a+G(Q6cT7LsW%cSQkQLM%-act2^}^r%g8G89Af`s*+RDfOki z3RUH>&nQzDh76i3hR{(=mY^Rwy$E54C?)^WozOzrMdHVq4V@f9M!zto_eVj)_Q`G6 zYEqtUQ zofI&#n?XquCqp5YO2sR=$b>~5@9!~o>D7k7?i&yWtIVWCC+i8dQn9*h=wjT|j{sy& z9o<|dw#wtCxa@umD%4z%S{bq_B)PZUfDDtHmnrE!doeZ{ZS6_5OZ^e&%MlJXjRi_V$z@G>lH2}&vFlti-v2+l#n1#-t(jd zzPIq+YUBldvIEz#x4 z#K%TqA+E9EwsMj%5TkWKjtA+m(?_#yvftlnW}Q_p-s%hq*$FSUNv`5pgftu`QprPGe{Slo_kLe_2o## za`dKPH@*(u|J1M2A~_f)(>{Ii8Va${oGd=MUC4Szbuu8RqO*ItcjuBy%QB+3_lPdv z@7?-vgQAWhl}_wt=d<}krFt`ng?|V3)ou!s6q&H-^tsZ6IKbEFMxB)SeMYP%qO1z^(4a;m*;m*>9#f?1o)w0e`|B66gKMHN9{LT(dy^rkA$Ro7` zrCw8Q;Hy!%yu^M4Lbu)t(6tyyzq!?dbV3P8zd7U-)b>zd$ zh=C;1Ls{5oqTS9mZ{(KwK0HV*klT-RTVKIdtI1z!y>II65fnvdFQgeW^&BSsHnq?q z*$>OFq|{tKb$KZeVqHO*q~`w4{#q1A^~_%(QmX1yctLYph7jU|!`6=s*8A+OqR)gv zawUcH*gt2PJjXLhyq`^Wlj07@Rp^G8h*1aM1dd$jKOs)F4f_vhJ;uCEM{+ z3T4{SGe#DQeYGx4mBhM~7nCvKcx$0LnPWRhrAq6yiOymO2NbjJtM9A*CF4sJacUr5 zfF6Mv^V-cPogdneAD^n?*fNu%ze=c07^%+8eYBzRm53j%eU;`O3_EJ@t5q0d0WVi( zwO?^pO`Y_AW?Vvq7O_upu_#}=T9Z8vlcFF7V%I-(lYI8`Rtuw|@P!R4xlu?M@OhPi z6SNWDxgyC&80vi!Z!Y8YM!R#B?$w_a<#252(A@Brpz@9h>(2|43(oQN7ZIvne*S+Xcx*d==l>oO<q#s1z*$WxV23t~7N z4*@M=-(9_uq90bw&xsu5N1q$Zj(0HppMrBe-m#tJHIT#5>k!|czeky3^=kO%7LlwX zh>PPi`it1`Q*PsHEb^74hmmvL^%znc_P*<#w`u<9+zSMJ>K1Tngnk5UG^3hvqzso6!0BMO!Y~B8`ChNc2uFleSos|Qc1tAc*`a( z(1ac_`y;L9JT~2lDp=VES5EjPivr`nj{sCHStuLQF|L1L`xyi;) zAxW4=LCd3mdRnWDptA$9xh|+0+;8Unn{+4)abW6$M}+2c1hI&{qbTMA)^QC8$sRW@ z;_Zj)F^8lNW+PFB9mq-_m`{KGZci^MF9h!7>q&lBREi-$Dm>tbp_wIN%I96@#LsZzxV~eL(paxa8!h)2#y=Ro?O<(&`OXat)M) z^f!I{VwqM>2vnigDEZ!#0^nu4zR~zQLNzY?0?D=B57SJYK0QzqY?Qd4ZMh-nyA$7u z8c`RI_|P$ZbN=(&8118uAAdWT4gF7=_7=#?91&%S5^UXNn%O4gVS}ihH%R+EeBE_Y zH+rwD0<{^e*+l9r^HWv@h8BT;@_ZJ^QN2?r(I?xAlogqi*6|7@x7pM$7xUFpH>Xm0 zz{zwr;|WZYcf2wdC%(;wJ>TB*3TUbok+HR&e`S?5OXjXUs7*-u^>i|KkD8>@h_>F0 zyPbmo?WJrdk9YwiC3HJHk9Wx0B+*)fb;seZgBBOR-n_DhLE{RS@95AEv+%3{oZHHN z;iVl8IH!D6(r-6YZfgyECI(>zwHb(&o;<1Oh7LQbkZqB9tgz}JWJ=kMiEio4=gL%v zVWX4^45ymh{R|^U9mB4RM#5Q}-NNI_u02u|10zegQ*-Rd#2>c(n#U8dh7UO$T~7{G z2-LBL!XJ(!&!KZM%9&3)P9N6k$e#PVSDrY2-@I8_Qp_#9oI7=-H+Oi1jF^x=X|St5 z9En{~JZu~<2@2?S8X4N4OtOYh@FlE7BY!;g+vu#=&W^-f7a6F*&<`K2|JB}=$3yvr zd!`X8Aqj<1L?I&y*=8bXrCntiDcMQcH8Vy@MM;tnQ`(g5Yr>F3mMFWyOj3j~wpq-2 z&#T|Pzq@?yy?@;Q?&mju%{%Y=p7T84^PKPVoO7OYCPXVyI4(ET@344e=jSZB-w_!` z#%b5-pIj_=UZ&oR%x}@76-I>Bk1L~a#8dS2(YTZGMd=6p&Ki6yQxS!eR2+4!MPQ%c z8V}|Y?2=}ByYUv5hs4S2u~hqgV@}`pgiep%^hazpJ5ZO~?qeqL034=%6OP;{LNJo8 z82SB~WoVB7*1EV@A($O`77NGs%PNGMUA+NP+SOnZxCxLM?zvOcxs3!eX7=VWxekJz zpZh?D_*Y`n^g*+!A>zVO>rB48Rl8ikPQ}M`IrPkN39#u<1wM@Z9cZ0ZJypPyLsW!& zT3Aprmy1fET~$F2bNG0n9$c+M5muS8+qx*2?u#2S!1ToqPYOmGPkq5pTAz2NHbsHV z>8NO9P}m;WdONywOK+!`UF1xUm9$}hhJSh3bfDR)+!SI*euoGON?_lj2D08n>U+Tp zk&>SN;=pC^?>96nQ$1SIh>K-vWs^OG>YStmucF2{y?5G?1*}2F%fWey%Samoobf(5 zNL7MY+EG;$5IZ%7gJIO4)wg6(fo)3t{^d@OY51{|{bk0FQ>y7jat0Pkb*SA>ScuAz z(LD7{mLUBb1}0SCO+lhSLlGDQOiB0FXSe{2bsfo(19gsi=2!PLjm2Qc=OZJvL>D}5 z*2C3A2;soRk8N(^$Uu8YI!*&%KD}JtsCEx7dW#8i$PFTAw_S8*>U;N2# zpl0@Mu)3gqzmEWIIv{+K?NB#Ya0WRnbdW&q`xtKm7nOLv+x0j-G1@pk!o=)5A-zb& zzf!;RISwBJ67iutYbKOF7DAJnB?Wh@d)2BP019XW1x^eGK}`fI`FERIZh~ZeMC^|0 z|MW9>B5MtL#F&XqvI|5)BX)%*k6KbH1SzxltB%}e!y@cDJ>!n|S(2cbe z!eHPfJHV~l{kKp06mcuOKi^sns`B)b@)W+{KVo_qF0p4e5m2;1nJNlbyJtesB3?Cc ze0R|q9Pcrc+_1R?(W2^Dt>*|%sqp>r=`df%^K2}{x@wxDw9p_i40j_fp#<|yu+?xA zn!AJ6+vm{GDuacXUlHUqA>2Ozj|jL|77VSfFsbzkca`-g-*>M{xbsllG+G3HQR_*P z$N)y3)>1-z2E7%927gP zP&BgrRK|WJ0Z6zDHbDA`*xo!NP}Z=t0t)DBL{W{e$9X~GTZ$fb`bjCyzee5W_{fjq z@i7tz6bUaO&fAcf*A9*LR-4Pof;tX?IxhYa%Lg9vu55=zu3*op^}m{v`FA&`UIM>a z!3HRc_1sd_Xd*VIf-MTc;0{nqe)>@c@~UpI2-Q;517ajI?#wJC^I_NkeUZDHrr@=t zuq()P320H6TmtBDdilbQIh27(NB30sk^yX8Gvh(;#U16^LT+AEq7UrgAs03nKt)>; z$g>ba&VyIlTn`e5s|P{toA4#woAx6zi1^tloeym^M_=ea$EQC*Z%) z`0Dei8qTZX(xMWIprJM_`(zI6%!qK(r&oHlFZkoLKR&#_L*wOu{Zb>KYr!rw$_<@U z8-XwjlI(=6vu(S#orHpwC-!Krb!ak%yZGG;I0<8aO0l_3Deg ze$)whcS!D9ttb2}Io^LG$cVena`9rYcoDr~sR6wlNKz)BjnuZmeBm)l_Uq65371et0$ zOu6aTtr;btTCKh)GpXL34MH>Y6K??7n_F(u(C?jalY1}LLbb+g)#5IjBXCeT`bbf@ zunK+#0ih}?y86P(+L@gY46h^$h|iZE?*lAGo@+1#4X+O#kh8OV3dR60BnpVSF}Gr% z0$ZW2ojXiVU55(H6cI1_u{fgxfx%4bf@BqS1kt@?&FNSX_!`Yxg71gVT0ua%wc!2> z{lcYQkP5<6kG+kzA>;cbM@5JHC0{M>{(A6}+TXnZ{Q)R)*kn;f68p0`x&PaXgRz31 zJZEy^_{7R(c`K*-?ez+%Dp0K}L9Hv_^g&W}sMiv7-8({H!a1byKEFen-_b#_Goy7e z3%pr~yp>yBQSWM_L!sJr0j}G!-Q*xZ63|J~7xJs-ny0K0oFl(U(s*`#e@e~53ttKr zX=!vPkwdT_cOKC;Sy?x#-2J<={YI%8HS_YQ8&{eY)b&&k*eR- zUjcx9ho@atGs~xjYQZyS<2^2r{mPx8eUmplma#5wjMC4D85j+wR@P>J=6)7KhKoZc zPz_9*)~1pPnoLToV{};v>ocVW(_=(F1g-N<>LpCVo@vsx6skrc=m<>E z=H8nm&#iqzM9~Zf`0%Z8- zgGIn~UCxqP=P50E{q^BIphfBbq{SIA(!GHGqRpN1c;m+uyv2O$jt!aegXuSbKI_l^ zOo^F<<@`_jjLGso;KnjSFQVquQ3jhhDB)szN^>)?ref!i{>_mT?r=)AfRW$sve@i! z5kISd|0=AS%zJ;a<>59Rcde3+He8srx~*pRPQWVuVj&V!Q-x@u@P{bwBvvG;H^I8~ zqi2tnhPi{eQ;<`%xezCuY9P8MH2E; zdB>bR_k4C7o_jbYM`Z5_`5vRdv^SC3b!M*qe1gS8T5-E&KS?l2x`^lZ;xnozz~X^m zMp~#J*=RQW)gzGE@6o=~YO_(V_GE#ERZ>G*712;q@fp+=HUY}FU2X@u1={p4({osd z;e1QED#*Kc{7j3*A0`J9-6_W?u|s z;yE(B0Ni}K?Z?!-9tE)CR}(h!5pNgv&f!+)K_ocsew50smqwX$zascwW$}+QvU>5{ za=gyw>9<#rYj_y$K<|OZxd{i7DY+u>N0iO@9o2MpCadaINgGNykD_DtCv0Tfn|!}M zwW~ec&WqxtM_K$5YIjxn`Cd401SuHlDmzKeIhDKOsWL~;$RWp6d4={|EU;nqXHU!^ zlGg-1S@ZPv6`)tEwE!Y;jG+pN!g>5%iLJK^j+oJ_<~3cqL#_0LoF6E`kN%%27*zwZ z(9XKB@fJVO;d6Iy8QI^_(-C!=qq>F{F;HjE`)D6u&~{}OH3_e)U=pOSx@t!j@f(o1 z?ZxYOw#tEfnDr=L{c-Luw_ci*4ef357ww&Hwf)T`?7SpSLv2B8=u;0`OK-TQ>E#q0*xPFD5Q!1YrFd*G@>ML{h6;)?qsQ)Dt{gs^crEf(vqC<9MxKC~h&z%nidAPSXYcLgq4OzK~f?8Y1CQ zqj3){XeFI{IXGZyJEZubh3tINycwyJsPLWrBcZ)!K7)QixJVSH{yw!FuLRPdl-HI% za>|`7*z)OrMQG0zyS0n?jjEAT`)W{gi3#z#+;|Ujbu(bQwhy}%D$@{^+9XDgV}dUJ z#~tIleLYyJ4a_Bp!SBZKyPHgJYjx>j9q=3LkeMjPaa6K%&{rFEJ+EVCQsu1F_pD~G zY_B3zdA#rq8L1jE4ifbjp2v7tOrEI=F2S9Q#>mNX1QjgPce385Pi0NdJp);FFLi`p zGKFt$34`u$p%{v~Y*9$l+MSTKYDpvgwV1bbz!LEdQ8>s$od&+b@mqrthz|@2nuw+^ z>g>&3)((!FAI%k0@-ZaKFvbZ7zs8-1n}1<`KlJR}Lb%!~?~3X8&7X8(Rr1`di2?6^ zKAb8h@~1i|`?WF*OX4k0bMq{%HXSe5dK@wFnzO4<W&2499784TNqd`${+gyvjAu259fMJvJ#2sHl3!ce&N{ih5yz}+EQd@Z zy7{vkiH14&nugK!&sNXRHt+^V`4VzOi9cR;ev?;Pdq5y6eB?ufcNc&#qyn8Ci z)kvdPPUeA>R=z9kJx@|nkhPIkBP0iq_!1kORocr*d@@Ppj9t>UhhCtca+@lf-NE`0 z<9>deG4N#WgA=GkYGI>l3lD|AT#e^7;*|^ekVAOki^205>XXgwJevIWcb~HBk6nsi z2V#S7TQ0OhVfoDiV6so%I0M89TV*}x2)@bDLaBf->q}M^KRF44@r1qb2Osa>h_~k? z4S^+sj#x{>V^(R@ZKTKCx7@dzp8%StU(`AER`E>epu+a6(vpHCd&}_0j(o~$OExv} zQ7}HTCPve6)%Mo>SMBRJKYa&RKFB&7LzNy93T6}V=A)mwC|=_=^W7j(?`Q0)$&b6o z;rI7SvA1dVDh7`?uH#~XvnV{%f%q@6Boszz!-a7e-pHX4tE4CIU>&;ic0ng+-;6yQ zBTE?%-m?JV1hFsS7d)&%$0ZT_`yi&-&`0=uT|Emdk;|>rEIk6a3uSn`+P`fJ+3G{p ziaNw?$9i6lXXOiZj8DXxJ^jq0lxp7#d=QMddoq^V{K%z56bKBJl*ERh&`KX{R57l* zeH3yHG&x>cBF`B2!+5X23U(k`JE$FJNq_qJ=bW2wT6^Vyl6P7z$}p8|LSC#Yn@-1o?R>{DCW!6aN}-QpM#qj*IS%c>f)P@i-F>8K{PRTu@AuyZxsRLfZ3$eUOjK0-aH!0!MS*0%!7?A%KuIlTo0(B zDb_fy6m)d1wKJdHgK90L1D{`hceHv%op5l>GW26!X2lVk<0@nG*w*ch4~$gObmvxL z*dIDLOP2POx(V+&hchr(Q3=fxxLN_P6fM6L(+q^hkoL{!q&!Xiu=!2dfOk&eYusWB z#&T25Lenk_7r%$3WF3dQw03^BQvc39PCI%hFEmuhiEwCuv`?arp?=`&r0Wg~9I>WcjsARmqT z$UK=JkvthOm7`i723#gfE50j9^{&at&8dfu{z`A>3lp%uAL$eUjiSo4oNfbgvVKvX z;$UE-iggYkXSb6qBSZN4FVcsH?Y}6k&jG_18BaJEOsId0k^`bDKm;AKt}b8sx6*XD zY&MsQt@}B4`D>PqdJAdX2HAWn--U);ca`KnR5>;Mp8iE+W{{Xy%kk@cdH9T=U1+f& zNb|{4n%%$s=a_l{)42xZ7F&!UiAZdw;aiLY3qM(o)2Z;6j~0%^Ay*Gr@@DF-w{GA} zZwm--X{z+d2<~xB1yNzpXlR4^=dxdKI+9k;RT&m-rnp_cb2N65?S}IQ_NOV%0n=n^ zt~S8_Y}Ns|(Q``>=TMQAFiu%{^|nU=&ie(W7;dSoEaQf8)kY9Ip1-7meeF?80>cF5 zGe}g)*@We-D@#;D`kr>=;qIBV=0B5^m~R^hWq5332Y=HrY}$+03vbv)zJ2W&gcuuykwX$%QQUza&4_{Egn=bq~% zJ`Dk}{_+%j@B888p%Aj4dX8sF?IcFXNetGQ4&GE7@bqc-n(MDJLefZm)N0LnE}tUg z%aU!hbak;Q$9tkN*zv^6c2%7GG(HwM_g2*~DnTHFzje`KjebzeHIfVPH#iz_KD$ZK zXpG74Fv#;-8=Lu3CQU_Hj}R0%`p%qvU@S#z?|nVeqpmrxwPx)+5{&dc5-d66wRu8K z&EBlAH+?sFk0!z>z~8Hwk1q}HyFo;KQm#Q28u7kbGAPwLe1p6LJSOdiwL+SnT5tw9ZZ?eyw zg(h++ac6Ioo!;-G@lPAsUb~!2F_l4H`k~OcWToHaXd>q!jkuUf-0CzPzvGLgp)y26!BL*|c5*0S%>Pwn+uQH%r zIGxeeUO}f1SDO{m*-zUF+tp_pjjF zZW%T7larzZ(n*&LIkgTC!ei+R$CnAYAkE7KrXn2?7fZb3xcu5~*%USV6=#0bBoqs0 zO{+T}YT0MTR}V%y5uee&5K$QOh=uWzycP<1J+}&m_uXT@1*!J~;U|1f3bg0(xvUnN zzu8RVfwJ=QxEzQ4Ow&A07}BYtgS{&H@=U$(RtqCwuwoX^P$`!(k7W9GHN3`;{T}GS zg-z@&VXS0o#ntGUj8tca4m1|L)TjKnocUQ(zVheYMnDVw~Qt|V@+BWHlAwU2|Ihdj+U+zDY78VfF8FA5q z8NOW5mj`AS9!S615PFN3y2GQHtZj+qoRDn=$TyG72}~Suw1Lu*ss3WQF{FQI1(qAK zm;moq6E?(xR!9Lp_T3dZZcW&%+v1^X`^zN^b1x3(6%R|Nm*vtZm-CYR0^SQGWz_Vg zMG1J-=APYAXr!2OlaYO7)pB}Uy7ABcu1MCjygku!+i-QH!$+O($5JG6+leS-{_2|t znFtil=_9{yHjQ*f*Y7TN-4CbD>&h7ovSHd*-|K4@Wt>$$*EX0AJq|T${l> zS?S5RcRcp&`8n?q@96RX%DTYG{pN=H%s4QhOkOveu=;gNm2(OfwJIRkAUMA>Q$!Tj z27}>?6EKjRrBTcJU;j4LKtIufOcD98m44x(i7hFV;)&QIF2KSG5 zdhLrs+rzs)XC5kP(?GkP1BUcrJok|ZA#bJ0JsM{f*%AgnCf4=&#BLf;ze87T#+b`a z2ACXQ*(H4;;qKj+)3(+?nxLa<6K>UZA%PqG