From 89b6736fb83c102dd08d31f3e00352edff7cd6c6 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 20 Sep 2023 18:28:41 +0400 Subject: [PATCH 01/12] Implement `ValidatorCore` --- .swiftformat | 64 +++++++++ .swiftlint.yml | 132 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/Validator-Package.xcscheme | 123 ++++++++++++++++ .../xcschemes/ValidatorCore.xcscheme | 78 +++++++++++ .../xcschemes/ValidatorUI.xcscheme | 78 +++++++++++ CHANGELOG.md | 2 + Makefile | 19 +++ Mintfile | 2 + Package.swift | 24 ++++ .../Core/Interfaces/IValidationError.swift | 12 ++ .../Core/Interfaces/IValidationRule.swift | 22 +++ .../Core/Models/ValidationResult.swift | 16 +++ .../Extensions/IValidationRule+Erase.swift | 12 ++ .../Extensions/String+IValidationError.swift | 10 ++ .../ValidationResult+Equatable.swift | 19 +++ .../Classes/Rules/AnyValidationRule.swift | 27 ++++ .../Classes/Rules/LengthValidationRule.swift | 39 ++++++ .../Classes/Rules/RegexValidationRule.swift | 37 +++++ Sources/ValidatorCore/IValidator.swift | 48 +++++++ Sources/ValidatorCore/Validator.swift | 42 ++++++ Sources/ValidatorUI/ValidatorUI.swift | 12 ++ .../Rules/LengthValidationRuleTests.swift | 64 +++++++++ .../Rules/RegexValidationRuleTests.swift | 60 ++++++++ .../Validator/ValidationResultTests.swift | 53 +++++++ .../UnitTests/Validator/ValidatorTests.swift | 127 +++++++++++++++++ hooks/pre-commit | 38 +++++ 27 files changed, 1167 insertions(+) create mode 100644 .swiftformat create mode 100644 .swiftlint.yml create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/ValidatorCore.xcscheme create mode 100644 .swiftpm/xcode/xcshareddata/xcschemes/ValidatorUI.xcscheme create mode 100644 CHANGELOG.md create mode 100644 Makefile create mode 100644 Mintfile create mode 100644 Package.swift create mode 100644 Sources/ValidatorCore/Classes/Core/Interfaces/IValidationError.swift create mode 100644 Sources/ValidatorCore/Classes/Core/Interfaces/IValidationRule.swift create mode 100644 Sources/ValidatorCore/Classes/Core/Models/ValidationResult.swift create mode 100644 Sources/ValidatorCore/Classes/Extensions/IValidationRule+Erase.swift create mode 100644 Sources/ValidatorCore/Classes/Extensions/String+IValidationError.swift create mode 100644 Sources/ValidatorCore/Classes/Extensions/ValidationResult+Equatable.swift create mode 100644 Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift create mode 100644 Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift create mode 100644 Sources/ValidatorCore/Classes/Rules/RegexValidationRule.swift create mode 100644 Sources/ValidatorCore/IValidator.swift create mode 100644 Sources/ValidatorCore/Validator.swift create mode 100644 Sources/ValidatorUI/ValidatorUI.swift create mode 100644 Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift create mode 100644 Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift create mode 100644 Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift create mode 100644 Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift create mode 100755 hooks/pre-commit diff --git a/.swiftformat b/.swiftformat new file mode 100644 index 0000000..b743fe2 --- /dev/null +++ b/.swiftformat @@ -0,0 +1,64 @@ +# Stream rules + +--swiftversion 5.7 + +# Use 'swiftformat --options' to list all of the possible options + +--header "\nValidator\nCopyright © {created.year} Space Code. All rights reserved.\n//" + +--enable blankLinesBetweenScopes +--enable blankLinesAtStartOfScope +--enable blankLinesAtEndOfScope +--enable blankLinesAroundMark +--enable anyObjectProtocol +--enable consecutiveBlankLines +--enable consecutiveSpaces +--enable duplicateImports +--enable elseOnSameLine +--enable emptyBraces +--enable initCoderUnavailable +--enable leadingDelimiters +--enable numberFormatting +--enable preferKeyPath +--enable redundantBreak +--enable redundantExtensionACL +--enable redundantFileprivate +--enable redundantGet +--enable redundantInit +--enable redundantLet +--enable redundantLetError +--enable redundantNilInit +--enable redundantObjc +--enable redundantParens +--enable redundantPattern +--enable redundantRawValues +--enable redundantReturn +--enable redundantSelf +--enable redundantVoidReturnType +--enable semicolons +--enable sortedImports +--enable sortedSwitchCases +--enable spaceAroundBraces +--enable spaceAroundBrackets +--enable spaceAroundComments +--enable spaceAroundGenerics +--enable spaceAroundOperators +--enable spaceInsideBraces +--enable spaceInsideBrackets +--enable spaceInsideComments +--enable spaceInsideGenerics +--enable spaceInsideParens +--enable strongOutlets +--enable strongifiedSelf +--enable todos +--enable trailingClosures +--enable unusedArguments +--enable void +--enable markTypes +--enable isEmpty + +# format options + +--wraparguments before-first +--wrapcollections before-first +--maxwidth 140 \ No newline at end of file diff --git a/.swiftlint.yml b/.swiftlint.yml new file mode 100644 index 0000000..77ee1c7 --- /dev/null +++ b/.swiftlint.yml @@ -0,0 +1,132 @@ +excluded: + - Tests + - Package.swift + - .build + +# Rules + +disabled_rules: + - trailing_comma + - todo + - opening_brace + +opt_in_rules: # some rules are only opt-in + - anyobject_protocol + - array_init + - closure_body_length + - closure_end_indentation + - closure_spacing + - collection_alignment + - contains_over_filter_count + - contains_over_filter_is_empty + - contains_over_first_not_nil + - contains_over_range_nil_comparison + - convenience_type + - discouraged_object_literal + - discouraged_optional_boolean + - empty_collection_literal + - empty_count + - empty_string + - empty_xctest_method + - enum_case_associated_values_count + - explicit_init + - fallthrough + - fatal_error_message + - file_name + - file_types_order + - first_where + - flatmap_over_map_reduce + - force_unwrapping + - ibinspectable_in_extension + - identical_operands + - implicit_return + - inert_defer + - joined_default_parameter + - last_where + - legacy_multiple + - legacy_random + - literal_expression_end_indentation + - lower_acl_than_parent + - multiline_arguments + - multiline_function_chains + - multiline_literal_brackets + - multiline_parameters + - multiline_parameters_brackets + - no_space_in_method_call + - operator_usage_whitespace + - optional_enum_case_matching + - orphaned_doc_comment + - overridden_super_call + - override_in_extension + - pattern_matching_keywords + - prefer_self_type_over_type_of_self + - prefer_zero_over_explicit_init + - prefixed_toplevel_constant + - private_action + - prohibited_super_call + - quick_discouraged_call + - quick_discouraged_focused_test + - quick_discouraged_pending_test + - reduce_into + - redundant_nil_coalescing + - redundant_objc_attribute + - redundant_type_annotation + - required_enum_case + - single_test_class + - sorted_first_last + - sorted_imports + - static_operator + - strict_fileprivate + - switch_case_on_newline + - toggle_bool + - unavailable_function + - unneeded_parentheses_in_closure_argument + - unowned_variable_capture + - untyped_error_in_catch + - vertical_parameter_alignment_on_call + - vertical_whitespace_closing_braces + - vertical_whitespace_opening_braces + - xct_specific_matcher + - yoda_condition + +force_cast: warning +force_try: warning + +identifier_name: + excluded: + - id + - URL + +analyzer_rules: + - unused_import + - unused_declaration + +line_length: + warning: 130 + error: 200 + +type_body_length: + warning: 300 + error: 400 + +file_length: + warning: 500 + error: 1200 + +function_body_length: + warning: 30 + error: 50 + +large_tuple: + error: 3 + +nesting: + type_level: + warning: 2 + statement_level: + warning: 10 + +type_name: + max_length: + warning: 40 + error: 50 \ No newline at end of file diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme new file mode 100644 index 0000000..ec134cc --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorCore.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorCore.xcscheme new file mode 100644 index 0000000..57f8c0c --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorCore.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorUI.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorUI.xcscheme new file mode 100644 index 0000000..ef67b36 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/ValidatorUI.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2e9885a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# Change Log +All notable changes to this project will be documented in this file. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..856d64b --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +all: bootstrap + +bootstrap: hook + mint bootstrap + +hook: + ln -sf ../../hooks/pre-commit .git/hooks/pre-commit + chmod +x .git/hooks/pre-commit + +mint: + mint bootstrap + +lint: + mint run swiftlint + +fmt: + mint run swiftformat Sources Tests + +.PHONY: all bootstrap hook mint lint fmt \ No newline at end of file diff --git a/Mintfile b/Mintfile new file mode 100644 index 0000000..1f32d33 --- /dev/null +++ b/Mintfile @@ -0,0 +1,2 @@ +nicklockwood/SwiftFormat@0.47.12 +realm/SwiftLint@0.47.1 \ No newline at end of file diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..7578da7 --- /dev/null +++ b/Package.swift @@ -0,0 +1,24 @@ +// swift-tools-version: 5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "Validator", + platforms: [ + .iOS(.v13), + .macOS(.v10_13), + .watchOS(.v7), + .tvOS(.v13), + ], + products: [ + .library(name: "ValidatorCore", targets: ["ValidatorCore"]), + .library(name: "ValidatorUI", targets: ["ValidatorUI"]), + ], + dependencies: [], + targets: [ + .target(name: "ValidatorCore", dependencies: []), + .target(name: "ValidatorUI", dependencies: ["ValidatorCore"]), + .testTarget(name: "ValidatorTests", dependencies: ["ValidatorCore"]), + ] +) diff --git a/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationError.swift b/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationError.swift new file mode 100644 index 0000000..0863ae1 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationError.swift @@ -0,0 +1,12 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// `IValidationError` is the error type returned by Validator. +public protocol IValidationError: Error { + /// The error message. + var message: String { get } +} diff --git a/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationRule.swift b/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationRule.swift new file mode 100644 index 0000000..1fe4726 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Core/Interfaces/IValidationRule.swift @@ -0,0 +1,22 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A type that verifies the input data. +public protocol IValidationRule { + /// The validation type. + associatedtype Input + + /// The validation error. + var error: IValidationError { get } + + /// Validates an input value. + /// + /// - Parameter input: The input value. + /// + /// - Returns: A validation result. + func validate(input: Input) -> Bool +} diff --git a/Sources/ValidatorCore/Classes/Core/Models/ValidationResult.swift b/Sources/ValidatorCore/Classes/Core/Models/ValidationResult.swift new file mode 100644 index 0000000..2730d1b --- /dev/null +++ b/Sources/ValidatorCore/Classes/Core/Models/ValidationResult.swift @@ -0,0 +1,16 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +public enum ValidationResult { + /// Indicates that the validation was successful. + case valid + + /// Indicates that the validation failed with a list of errors. + /// + /// - Parameter errors: An array of validation errors. + case invalid(errors: [IValidationError]) +} diff --git a/Sources/ValidatorCore/Classes/Extensions/IValidationRule+Erase.swift b/Sources/ValidatorCore/Classes/Extensions/IValidationRule+Erase.swift new file mode 100644 index 0000000..8283d94 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Extensions/IValidationRule+Erase.swift @@ -0,0 +1,12 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +public extension IValidationRule { + func eraseToAnyValidationRule() -> AnyValidationRule { + AnyValidationRule(self) + } +} diff --git a/Sources/ValidatorCore/Classes/Extensions/String+IValidationError.swift b/Sources/ValidatorCore/Classes/Extensions/String+IValidationError.swift new file mode 100644 index 0000000..74419e4 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Extensions/String+IValidationError.swift @@ -0,0 +1,10 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +extension String: IValidationError { + public var message: String { self } +} diff --git a/Sources/ValidatorCore/Classes/Extensions/ValidationResult+Equatable.swift b/Sources/ValidatorCore/Classes/Extensions/ValidationResult+Equatable.swift new file mode 100644 index 0000000..a602167 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Extensions/ValidationResult+Equatable.swift @@ -0,0 +1,19 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +extension ValidationResult: Equatable { + public static func == (lhs: ValidationResult, rhs: ValidationResult) -> Bool { + switch (lhs, rhs) { + case (.valid, .valid): + return true + case let (.invalid(errors: lhs), .invalid(errors: rhs)): + return lhs.map(\.message).joined() == rhs.map(\.message).joined() + default: + return false + } + } +} diff --git a/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift new file mode 100644 index 0000000..fb6c60d --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift @@ -0,0 +1,27 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +public struct AnyValidationRule: IValidationRule { + // MARK: Properties + + private let validationClosure: (Input) -> Bool + + public var error: IValidationError + + // MARK: Initialization + + public init(_ rule: Rule) where Rule.Input == Input { + validationClosure = rule.validate + error = rule.error + } + + // MARK: IValidationRule + + public func validate(input: Input) -> Bool { + validationClosure(input) + } +} diff --git a/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift new file mode 100644 index 0000000..d59f20c --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift @@ -0,0 +1,39 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A length validation rule. +public struct LengthValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The minimum length. + public let min: Int + + /// The maximum length. + public let max: Int + + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(min: Int, max: Int, error: IValidationError) { + self.min = min + self.max = max + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + let length = input.count + return length >= min && length <= max + } +} diff --git a/Sources/ValidatorCore/Classes/Rules/RegexValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/RegexValidationRule.swift new file mode 100644 index 0000000..cc8d799 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/RegexValidationRule.swift @@ -0,0 +1,37 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A regular expression validation rule. +public struct RegexValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The regular expression pattern. + public let pattern: String + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(pattern: String, error: IValidationError) { + self.pattern = pattern + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + let range = NSRange(location: .zero, length: input.count) + if let regex = try? NSRegularExpression(pattern: pattern) { + return regex.firstMatch(in: input, range: range) != nil + } + return false + } +} diff --git a/Sources/ValidatorCore/IValidator.swift b/Sources/ValidatorCore/IValidator.swift new file mode 100644 index 0000000..c516259 --- /dev/null +++ b/Sources/ValidatorCore/IValidator.swift @@ -0,0 +1,48 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A type that can be used to validate the contents of an input value. +/// Each validator accepts a value as its first argument and a rule or an array of rules as its second argument. +public protocol IValidator { + /// Validates an input value. + /// + /// - Parameters: + /// - input: The input value. + /// - rule: The validation rule. + /// + /// - Returns: A validation result. + func validate(input: T.Input, rule: T) -> ValidationResult + + /// Validates an input value. + /// + /// - Parameters: + /// - input: The input value. + /// - rules: The validation rules array. + /// + /// - Returns: A validation result. + func validate(input: T, rules: [AnyValidationRule]) -> ValidationResult + + /// Validates an input value. + /// + /// - Parameters: + /// - input: The input value. + /// - rule: The validation rule. + /// + /// - Returns: A validation result. + @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) + func validate(input: T, rule: some IValidationRule) -> ValidationResult + + /// Validates an input value. + /// + /// - Parameters: + /// - input: The input value. + /// - rules: The validation rules array. + /// + /// - Returns: A validation result. + @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) + func validate(input: T, rules: [any IValidationRule]) -> ValidationResult +} diff --git a/Sources/ValidatorCore/Validator.swift b/Sources/ValidatorCore/Validator.swift new file mode 100644 index 0000000..fb1afa5 --- /dev/null +++ b/Sources/ValidatorCore/Validator.swift @@ -0,0 +1,42 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +// MARK: - Validator + +public final class Validator { + // MARK: Initialization + + public init() {} +} + +// MARK: IValidator + +extension Validator: IValidator { + public func validate(input: T.Input, rule: T) -> ValidationResult where T: IValidationRule { + validate(input: input, rules: [rule.eraseToAnyValidationRule()]) + } + + public func validate(input: T, rules: [AnyValidationRule]) -> ValidationResult { + let errors = rules + .filter { !$0.validate(input: input) } + .map(\.error) + + return errors.isEmpty ? .valid : ValidationResult.invalid(errors: errors) + } + + @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) + public func validate(input: T, rules: [any IValidationRule]) -> ValidationResult { + let errors = rules + .filter { !self.validate(input: input, rule: $0) } + .map(\.error) + + return errors.isEmpty ? .valid : ValidationResult.invalid(errors: errors) + } + + @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) + func validate(input: T, rule: some IValidationRule) -> Bool { + rule.validate(input: input) + } +} diff --git a/Sources/ValidatorUI/ValidatorUI.swift b/Sources/ValidatorUI/ValidatorUI.swift new file mode 100644 index 0000000..63c2173 --- /dev/null +++ b/Sources/ValidatorUI/ValidatorUI.swift @@ -0,0 +1,12 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +public struct ValidatorUI { + public private(set) var text = "Hello, World!" + + public init() {} +} diff --git a/Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift b/Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift new file mode 100644 index 0000000..18d07bf --- /dev/null +++ b/Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift @@ -0,0 +1,64 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - LengthValidationRuleTests + +final class LengthValidationRuleTests: XCTestCase { + // MARK: Properties + + private var sut: LengthValidationRule! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + sut = LengthValidationRule(min: .min, max: .max, error: String.error) + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatLengthValidationRuleSetsProperties() { + // then + XCTAssertEqual(sut.min, .min) + XCTAssertEqual(sut.max, .max) + XCTAssertEqual(sut.error.message, .error) + } + + func test_thatLengthValidationRuleValidatesInput_whenInputIsCorrectValue() { + // when + let result = sut.validate(input: String(String.input.prefix(.max))) + + // then + XCTAssertTrue(result) + } + + func test_thatLengthValidationRuleValidatesInput_whenInputIsIncorrectValue() { + // when + let result = sut.validate(input: .input) + + // then + XCTAssertFalse(result) + } +} + +// MARK: - Constants + +private extension Int { + static let min = 1 + static let max = 10 +} + +private extension String { + static let input = "lorem ipsum lorem ipsum lorem ipsum" + static let error = "error" +} diff --git a/Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift b/Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift new file mode 100644 index 0000000..466a9d5 --- /dev/null +++ b/Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift @@ -0,0 +1,60 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - RegexValidationRuleTests + +final class RegexValidationRuleTests: XCTestCase { + // MARK: Properties + + private var sut: RegexValidationRule! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + sut = RegexValidationRule(pattern: .pattern, error: String.error) + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatRegexValidationRuleSetsProperties() { + // then + XCTAssertEqual(sut.pattern, .pattern) + XCTAssertEqual(sut.error.message, .error) + } + + func test_thatRegexValidationRuleValidatesInput_whenInputIsCorrectValue() { + // when + let result = sut.validate(input: .input) + + // then + XCTAssertTrue(result) + } + + func test_thatRegexValidationRuleValidatesInput_whenInputIsIncorrectValue() { + // when + let result = sut.validate(input: .invalidInput) + + // then + XCTAssertFalse(result) + } +} + +// MARK: - Constants + +private extension String { + static let input = "abbat" + static let invalidInput = "abb" + static let pattern = "[a-zA-Z]at" + static let error = "error" +} diff --git a/Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift b/Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift new file mode 100644 index 0000000..f5cbab9 --- /dev/null +++ b/Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift @@ -0,0 +1,53 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - ValidationResultTests + +final class ValidationResultTests: XCTestCase { + func test_validationResultsEquality_whenValidResultsAreEqual() { + // given + let result1 = ValidationResult.valid + let result2 = ValidationResult.valid + + // when + let result = result1 == result2 + + // then + XCTAssertTrue(result) + } + + func test_validationResultsEquality_whenResultsAreNotEqual() { + // given + let result1 = ValidationResult.valid + let result2 = ValidationResult.invalid(errors: []) + + // when + let result = result1 == result2 + + // then + XCTAssertFalse(result) + } + + func test_validationResultsEquality_whenInvalidResultsAreEqual() { + // given + let result1 = ValidationResult.invalid(errors: [String.error]) + let result2 = ValidationResult.invalid(errors: [String.error]) + + // when + let result = result1 == result2 + + // then + XCTAssertTrue(result) + } +} + +// MARK: - Constants + +private extension String { + static let error = "error" +} diff --git a/Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift b/Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift new file mode 100644 index 0000000..55b8e70 --- /dev/null +++ b/Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift @@ -0,0 +1,127 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +@testable import ValidatorCore +import XCTest + +// MARK: - ValidatorTests + +final class ValidatorTests: XCTestCase { + // MARK: Properties + + private var validator: Validator! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + validator = Validator() + } + + override func tearDown() { + validator = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatValidatorValidatesInput_whenLengthIsLessThanTenCharacters() { + // given + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + + // when + let validationResult = validator.validate(input: String(String.text.prefix(.max)), rule: validationRule) + + // then + XCTAssertEqual(validationResult, .valid) + } + + func test_thatValidatorValidatesInput_whenLengthIsGreaterThanTenCharacters() { + // given + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + + // when + let validationResult = validator.validate(input: String(String.text.prefix(11)), rules: [validationRule]) + + // then + if case let .invalid(errors) = validationResult { + XCTAssertEqual(errors.count, 1) + XCTAssertEqual(errors.first?.message, .error) + } else { + XCTFail("The input string must be greater than 10 characters") + } + } + + func test_thatValidatorValidatesInput_whenLengthIsLessThanOneCharacter() { + // given + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + + // when + let validationResult = validator.validate(input: .empty, rules: [validationRule]) + + // then + if case let .invalid(errors) = validationResult { + XCTAssertEqual(errors.count, 1) + XCTAssertEqual(errors.first?.message, .error) + } else { + XCTFail("The input string must be empty") + } + } + + func test_thatValidatorValidatesInput_whenThereAreCoupleOfRules() { + // given + let rules: [AnyValidationRule] = [ + RegexValidationRule(pattern: .pattern, error: String.error).eraseToAnyValidationRule(), + LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule(), + ] + + // when + let validationResult = validator.validate(input: .text, rules: rules) + + // then + if case let .invalid(errors) = validationResult { + XCTAssertEqual(errors.count, 2) + XCTAssertEqual(errors[0].message, .error) + XCTAssertEqual(errors[1].message, .error) + } else { + XCTFail("The input string must be empty") + } + } + + @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) + func test_thatValidatorValidatesInputWithAnyRules_whenThereAreCoupleOfRules() { + // given + let rules: [any IValidationRule] = [ + RegexValidationRule(pattern: .pattern, error: String.error), + LengthValidationRule(min: .min, max: .max, error: String.error), + ] + + // when + let validationResult = validator.validate(input: .text, rules: rules) + + // then + if case let .invalid(errors) = validationResult { + XCTAssertEqual(errors.count, 2) + XCTAssertEqual(errors[0].message, .error) + XCTAssertEqual(errors[1].message, .error) + } else { + XCTFail("The input string must be empty") + } + } +} + +// MARK: - Constants + +private extension String { + static let error: String = "error description" + static let text: String = "lorem ipsum lorem ipsum lorem ipsum" + static let empty: String = "" + static let pattern: String = "" +} + +private extension Int { + static let min: Int = 1 + static let max: Int = 10 +} diff --git a/hooks/pre-commit b/hooks/pre-commit new file mode 100755 index 0000000..956fdcb --- /dev/null +++ b/hooks/pre-commit @@ -0,0 +1,38 @@ +#!/bin/bash +git diff --diff-filter=d --staged --name-only | grep -e '\.swift$' | while read line; do + if [[ $line == *"/Generated"* ]]; then + echo "IGNORING GENERATED FILE: " "$line"; + else + mint run swiftformat swiftformat "${line}"; + git add "$line"; + fi +done + +LINT=$(which mint) +if [[ -e "${LINT}" ]]; then + # Export files in SCRIPT_INPUT_FILE_$count to lint against later + count=0 + while IFS= read -r file_path; do + export SCRIPT_INPUT_FILE_$count="$file_path" + count=$((count + 1)) + done < <(git diff --name-only --cached --diff-filter=d | grep ".swift$") + export SCRIPT_INPUT_FILE_COUNT=$count + + if [ "$count" -eq 0 ]; then + echo "No files to lint!" + exit 0 + fi + + echo "Found $count lintable files! Linting now.." + mint run swiftlint --use-script-input-files --strict --config .swiftlint.yml + RESULT=$? # swiftline exit value is number of errors + + if [ $RESULT -eq 0 ]; then + echo "🎉 Well done. No violation." + fi + exit $RESULT +else + echo "⚠️ WARNING: SwiftLint not found" + echo "⚠️ You might want to edit .git/hooks/pre-commit to locate your swiftlint" + exit 0 +fi \ No newline at end of file From 38287faffc2d854d8d24bfb4fc4bdcd6854e9da3 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 20 Sep 2023 18:34:59 +0400 Subject: [PATCH 02/12] Integrate `GitHub Actions` --- .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++ codecov.yml | 48 ++++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 codecov.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..91a51f9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,95 @@ +name: "validator" + +on: + push: + branches: + - main + - dev + pull_request: + paths: + - '.swiftlint.yml' + branches: + - main + - dev + +concurrency: + group: ci + cancel-in-progress: true + +jobs: + SwiftLint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: GitHub Action for SwiftLint + uses: norio-nomura/action-swiftlint@3.2.1 + with: + args: --strict + env: + DIFF_BASE: ${{ github.base_ref }} + Old: + name: Test Old (iOS, macOS, tvOS, watchOS) + runs-on: macOS-11 + env: + DEVELOPER_DIR: "/Applications/Xcode_13.2.app/Contents/Developer" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=13.1,name=iPhone 12 Pro" + name: "iOS" + scheme: "Validator-Package" + sdk: iphonesimulator + - destination: "OS=13.1,name=Apple TV" + name: "tvOS" + scheme: "Validator-Package" + sdk: appletvsimulator + - destination: "OS=7,name=Apple Watch Series 6 (40mm)" + name: "watchOS" + scheme: "Validator-Package" + sdk: watchsimulator + - destination: "platform=macOS" + name: "macOS" + scheme: "Validator-Package" + sdk: macosx + steps: + - uses: actions/checkout@v3 + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean | xcpretty + Latest: + name: Test Latest (iOS, macOS, tvOS, watchOS) + runs-on: macOS-12 + env: + DEVELOPER_DIR: "/Applications/Xcode_14.1.app/Contents/Developer" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=16.1,name=iPhone 14 Pro" + name: "iOS" + scheme: "Validator-Package" + sdk: iphonesimulator + - destination: "OS=16.1,name=Apple TV" + name: "tvOS" + scheme: "Validator-Package" + sdk: appletvsimulator + - destination: "OS=9.1,name=Apple Watch Series 8 (45mm)" + name: "watchOS" + scheme: "Validator-Package" + sdk: watchsimulator + - destination: "platform=macOS" + name: "macOS" + scheme: "Validator-Package" + sdk: macosx + steps: + - uses: actions/checkout@v3 + - name: ${{ matrix.name }} + run: xcodebuild test -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "./${{ matrix.sdk }}.xcresult" | xcpretty -r junit + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3.1.0 + with: + token: ${{ secrets.CODECOV_TOKEN }} + xcode: true + xcode_archive_path: "./${{ matrix.sdk }}.xcresult" \ No newline at end of file diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..b415604 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,48 @@ +codecov: + # Require CI to pass to show coverage, default yes + require_ci_to_pass: yes + notify: + # Codecov should wait for all CI statuses to complete, default yes + wait_for_ci: yes + +coverage: + # Coverage precision range 0-5, default 2 + precision: 2 + + # Direction to round the coverage value - up, down, nearest, default down + round: nearest + + # Value range for red...green, default 70...100 + range: "70...90" + + status: + # Overall project coverage, compare against pull request base + project: + default: + # The required coverage value + target: 50% + + # The leniency in hitting the target. Allow coverage to drop by X% + threshold: 5% + + # Only measure lines adjusted in the pull request or single commit, if the commit in not in the pr + patch: + default: + # The required coverage value + target: 85% + + # Allow coverage to drop by X% + threshold: 5% + changes: no + +comment: + # Pull request Codecov comment format. + # diff: coverage diff of the pull request + # files: a list of files impacted by the pull request (coverage changes, file is new or removed) + layout: "diff, files" + + # Update Codecov comment, if exists. Otherwise post new + behavior: default + + # If true, only post the Codecov comment if coverage changes + require_changes: false \ No newline at end of file From bb9a3ba34da4146b0b555c335631f76fac771689 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Fri, 22 Sep 2023 18:33:32 +0400 Subject: [PATCH 03/12] Implement `UIValidator` package - Remove `AnyValidationRule` - Get rid of support for older operating systems --- .../xcschemes/Validator-Package.xcscheme | 27 ++++-- Package.swift | 13 +-- .../Extensions/IValidationRule+Erase.swift | 12 --- .../Classes/Rules/AnyValidationRule.swift | 27 ------ .../Classes/Rules/LengthValidationRule.swift | 2 +- Sources/ValidatorCore/IValidator.swift | 20 ----- Sources/ValidatorCore/Validator.swift | 16 +--- .../Extensions/UITextField+Validation.swift | 29 ++++++ .../ValidatorUI/Classes/IUIValidatable.swift | 89 +++++++++++++++++++ Sources/ValidatorUI/ValidatorUI.swift | 12 --- .../Rules/LengthValidationRuleTests.swift | 0 .../Rules/RegexValidationRuleTests.swift | 0 .../Validator/ValidationResultTests.swift | 0 .../UnitTests/Validator/ValidatorTests.swift | 27 +----- .../UnitTests/UITextFieldTests.swift | 82 +++++++++++++++++ 15 files changed, 234 insertions(+), 122 deletions(-) delete mode 100644 Sources/ValidatorCore/Classes/Extensions/IValidationRule+Erase.swift delete mode 100644 Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift create mode 100644 Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift create mode 100644 Sources/ValidatorUI/Classes/IUIValidatable.swift delete mode 100644 Sources/ValidatorUI/ValidatorUI.swift rename Tests/{ValidatorTests => ValidatorCoreTests}/UnitTests/Rules/LengthValidationRuleTests.swift (100%) rename Tests/{ValidatorTests => ValidatorCoreTests}/UnitTests/Rules/RegexValidationRuleTests.swift (100%) rename Tests/{ValidatorTests => ValidatorCoreTests}/UnitTests/Validator/ValidationResultTests.swift (100%) rename Tests/{ValidatorTests => ValidatorCoreTests}/UnitTests/Validator/ValidatorTests.swift (75%) create mode 100644 Tests/ValidatorUITests/UnitTests/UITextFieldTests.swift diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme index ec134cc..ea021af 100644 --- a/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme +++ b/.swiftpm/xcode/xcshareddata/xcschemes/Validator-Package.xcscheme @@ -65,13 +65,6 @@ BlueprintName = "ValidatorCore" ReferencedContainer = "container:"> - - + + + + + + + + AnyValidationRule { - AnyValidationRule(self) - } -} diff --git a/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift deleted file mode 100644 index fb6c60d..0000000 --- a/Sources/ValidatorCore/Classes/Rules/AnyValidationRule.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// Validator -// Copyright © 2023 Space Code. All rights reserved. -// - -import Foundation - -public struct AnyValidationRule: IValidationRule { - // MARK: Properties - - private let validationClosure: (Input) -> Bool - - public var error: IValidationError - - // MARK: Initialization - - public init(_ rule: Rule) where Rule.Input == Input { - validationClosure = rule.validate - error = rule.error - } - - // MARK: IValidationRule - - public func validate(input: Input) -> Bool { - validationClosure(input) - } -} diff --git a/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift index d59f20c..3974896 100644 --- a/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift +++ b/Sources/ValidatorCore/Classes/Rules/LengthValidationRule.swift @@ -24,7 +24,7 @@ public struct LengthValidationRule: IValidationRule { // MARK: Initialization - public init(min: Int, max: Int, error: IValidationError) { + public init(min: Int = .zero, max: Int = .max, error: IValidationError) { self.min = min self.max = max self.error = error diff --git a/Sources/ValidatorCore/IValidator.swift b/Sources/ValidatorCore/IValidator.swift index c516259..2f06e09 100644 --- a/Sources/ValidatorCore/IValidator.swift +++ b/Sources/ValidatorCore/IValidator.swift @@ -15,25 +15,6 @@ public protocol IValidator { /// - rule: The validation rule. /// /// - Returns: A validation result. - func validate(input: T.Input, rule: T) -> ValidationResult - - /// Validates an input value. - /// - /// - Parameters: - /// - input: The input value. - /// - rules: The validation rules array. - /// - /// - Returns: A validation result. - func validate(input: T, rules: [AnyValidationRule]) -> ValidationResult - - /// Validates an input value. - /// - /// - Parameters: - /// - input: The input value. - /// - rule: The validation rule. - /// - /// - Returns: A validation result. - @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) func validate(input: T, rule: some IValidationRule) -> ValidationResult /// Validates an input value. @@ -43,6 +24,5 @@ public protocol IValidator { /// - rules: The validation rules array. /// /// - Returns: A validation result. - @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) func validate(input: T, rules: [any IValidationRule]) -> ValidationResult } diff --git a/Sources/ValidatorCore/Validator.swift b/Sources/ValidatorCore/Validator.swift index fb1afa5..291eacc 100644 --- a/Sources/ValidatorCore/Validator.swift +++ b/Sources/ValidatorCore/Validator.swift @@ -14,19 +14,10 @@ public final class Validator { // MARK: IValidator extension Validator: IValidator { - public func validate(input: T.Input, rule: T) -> ValidationResult where T: IValidationRule { - validate(input: input, rules: [rule.eraseToAnyValidationRule()]) + public func validate(input: T, rule: some IValidationRule) -> ValidationResult { + validate(input: input, rules: [rule]) } - public func validate(input: T, rules: [AnyValidationRule]) -> ValidationResult { - let errors = rules - .filter { !$0.validate(input: input) } - .map(\.error) - - return errors.isEmpty ? .valid : ValidationResult.invalid(errors: errors) - } - - @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) public func validate(input: T, rules: [any IValidationRule]) -> ValidationResult { let errors = rules .filter { !self.validate(input: input, rule: $0) } @@ -35,8 +26,7 @@ extension Validator: IValidator { return errors.isEmpty ? .valid : ValidationResult.invalid(errors: errors) } - @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) - func validate(input: T, rule: some IValidationRule) -> Bool { + private func validate(input: T, rule: some IValidationRule) -> Bool { rule.validate(input: input) } } diff --git a/Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift b/Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift new file mode 100644 index 0000000..837ce08 --- /dev/null +++ b/Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift @@ -0,0 +1,29 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +#if os(iOS) + import UIKit + + extension UITextField: IUIValidatable { + public var inputValue: String { text ?? "" } + + public typealias Input = String + + public func validateOnInputChange(isEnabled: Bool) { + if isEnabled { + addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged) + } else { + removeTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged) + } + } + + // MARK: Private + + @objc + private func textFieldDidChange(_: UITextField) { + validate(rules: validationRules) + } + } +#endif diff --git a/Sources/ValidatorUI/Classes/IUIValidatable.swift b/Sources/ValidatorUI/Classes/IUIValidatable.swift new file mode 100644 index 0000000..c7cb980 --- /dev/null +++ b/Sources/ValidatorUI/Classes/IUIValidatable.swift @@ -0,0 +1,89 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +// swiftlint:disable prefixed_toplevel_constant + +import Foundation +import ValidatorCore + +// MARK: - IUIValidatable + +public protocol IUIValidatable: AnyObject { + associatedtype Input + + /// The input value. + var inputValue: Input { get } + + /// Validates an input value. + /// + /// - Parameters: + /// - rule: The validation rule. + /// + /// - Returns: A validation result. + func validate(rule: some IValidationRule) -> ValidationResult where T == Input + + /// Validates an input value. + /// + /// - Parameters: + /// - rules: The validation rules array. + /// + /// - Returns: A validation result. + func validate(rules: [any IValidationRule]) -> ValidationResult where T == Input + + /// Validates an input value. + /// + /// - Parameter isEnabled: The + func validateOnInputChange(isEnabled: Bool) +} + +private var kValidationRules: UInt8 = 0 +private var kValidationHandler: UInt8 = 0 + +private let validator = Validator() + +public extension IUIValidatable { + @discardableResult + func validate(rule: some IValidationRule) -> ValidationResult where T == Input { + let result = validator.validate(input: inputValue, rule: rule) + validationHandler?(result) + return result + } + + @discardableResult + func validate(rules: [any IValidationRule]) -> ValidationResult where T == Input { + let result = validator.validate(input: inputValue, rules: rules) + validationHandler?(result) + return result + } + + func add(rule: some IValidationRule) where T == Input { + validationRules.append(rule) + } + + var validationRules: [any IValidationRule] { + get { + (objc_getAssociatedObject(self, &kValidationRules) as? AnyObject) as? [any IValidationRule] ?? [] + } + set { + objc_setAssociatedObject( + self, + &kValidationRules, + newValue as [any IValidationRule], + .OBJC_ASSOCIATION_RETAIN_NONATOMIC + ) + } + } + + var validationHandler: ((ValidationResult) -> Void)? { + get { + objc_getAssociatedObject(self, &kValidationHandler) as? ((ValidationResult) -> Void) + } + set { + if let newValue = newValue { + objc_setAssociatedObject(self, &kValidationHandler, newValue as AnyObject, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + } +} diff --git a/Sources/ValidatorUI/ValidatorUI.swift b/Sources/ValidatorUI/ValidatorUI.swift deleted file mode 100644 index 63c2173..0000000 --- a/Sources/ValidatorUI/ValidatorUI.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Validator -// Copyright © 2023 Space Code. All rights reserved. -// - -import Foundation - -public struct ValidatorUI { - public private(set) var text = "Hello, World!" - - public init() {} -} diff --git a/Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift b/Tests/ValidatorCoreTests/UnitTests/Rules/LengthValidationRuleTests.swift similarity index 100% rename from Tests/ValidatorTests/UnitTests/Rules/LengthValidationRuleTests.swift rename to Tests/ValidatorCoreTests/UnitTests/Rules/LengthValidationRuleTests.swift diff --git a/Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift b/Tests/ValidatorCoreTests/UnitTests/Rules/RegexValidationRuleTests.swift similarity index 100% rename from Tests/ValidatorTests/UnitTests/Rules/RegexValidationRuleTests.swift rename to Tests/ValidatorCoreTests/UnitTests/Rules/RegexValidationRuleTests.swift diff --git a/Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift b/Tests/ValidatorCoreTests/UnitTests/Validator/ValidationResultTests.swift similarity index 100% rename from Tests/ValidatorTests/UnitTests/Validator/ValidationResultTests.swift rename to Tests/ValidatorCoreTests/UnitTests/Validator/ValidationResultTests.swift diff --git a/Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift b/Tests/ValidatorCoreTests/UnitTests/Validator/ValidatorTests.swift similarity index 75% rename from Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift rename to Tests/ValidatorCoreTests/UnitTests/Validator/ValidatorTests.swift index 55b8e70..0cce545 100644 --- a/Tests/ValidatorTests/UnitTests/Validator/ValidatorTests.swift +++ b/Tests/ValidatorCoreTests/UnitTests/Validator/ValidatorTests.swift @@ -29,7 +29,7 @@ final class ValidatorTests: XCTestCase { func test_thatValidatorValidatesInput_whenLengthIsLessThanTenCharacters() { // given - let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error) // when let validationResult = validator.validate(input: String(String.text.prefix(.max)), rule: validationRule) @@ -40,7 +40,7 @@ final class ValidatorTests: XCTestCase { func test_thatValidatorValidatesInput_whenLengthIsGreaterThanTenCharacters() { // given - let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error) // when let validationResult = validator.validate(input: String(String.text.prefix(11)), rules: [validationRule]) @@ -56,7 +56,7 @@ final class ValidatorTests: XCTestCase { func test_thatValidatorValidatesInput_whenLengthIsLessThanOneCharacter() { // given - let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule() + let validationRule = LengthValidationRule(min: .min, max: .max, error: String.error) // when let validationResult = validator.validate(input: .empty, rules: [validationRule]) @@ -70,27 +70,6 @@ final class ValidatorTests: XCTestCase { } } - func test_thatValidatorValidatesInput_whenThereAreCoupleOfRules() { - // given - let rules: [AnyValidationRule] = [ - RegexValidationRule(pattern: .pattern, error: String.error).eraseToAnyValidationRule(), - LengthValidationRule(min: .min, max: .max, error: String.error).eraseToAnyValidationRule(), - ] - - // when - let validationResult = validator.validate(input: .text, rules: rules) - - // then - if case let .invalid(errors) = validationResult { - XCTAssertEqual(errors.count, 2) - XCTAssertEqual(errors[0].message, .error) - XCTAssertEqual(errors[1].message, .error) - } else { - XCTFail("The input string must be empty") - } - } - - @available(macOS 13.0, iOS 16, tvOS 16, watchOS 9, *) func test_thatValidatorValidatesInputWithAnyRules_whenThereAreCoupleOfRules() { // given let rules: [any IValidationRule] = [ diff --git a/Tests/ValidatorUITests/UnitTests/UITextFieldTests.swift b/Tests/ValidatorUITests/UnitTests/UITextFieldTests.swift new file mode 100644 index 0000000..9eefe9c --- /dev/null +++ b/Tests/ValidatorUITests/UnitTests/UITextFieldTests.swift @@ -0,0 +1,82 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import ValidatorUI +import XCTest + +#if canImport(UIKit) + import UIKit +#endif + +#if os(iOS) + final class UITextFieldTests: XCTestCase { + // MARK: Properties + + private var textField: UITextField! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + textField = UITextField() + } + + override func tearDown() { + textField = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatTextFieldValidationReturnsValid_whenInputValueIsValid() { + // given + textField.validateOnInputChange(isEnabled: true) + textField.add(rule: LengthValidationRule(max: .max, error: String.error)) + + // when + textField.text = String(String.text.prefix(.max)) + + var result: ValidationResult? + + textField.validationHandler = { result = $0 } + textField.validate(rules: textField.validationRules) + + // when + if case .valid = result {} + else { XCTFail("The result must be equal to the valid value") } + } + + func test_thatTextFieldValidationReturnsInvalid_whenInputValueIsInvalid() { + // given + textField.validateOnInputChange(isEnabled: true) + textField.add(rule: LengthValidationRule(max: .max, error: String.error)) + + // when + textField.text = .text + + var result: ValidationResult? + + textField.validationHandler = { result = $0 } + textField.validate(rules: textField.validationRules) + + // when + if case let .invalid(errors) = result { + XCTAssertEqual(errors.count, 1) + XCTAssertEqual(errors.first?.message, .error) + } else { XCTFail("The result must be equal to the invalid value") } + } + } +#endif + +private extension String { + static let text: String = "lorem ipsum lorem ipsum lorem ipsum" + static let error: String = "error" +} + +private extension Int { + static let min = 0 + static let max = 10 +} From 8ed55e8ee9759c5299aa6e998dc47ed9e50f66b6 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Fri, 22 Sep 2023 18:36:49 +0400 Subject: [PATCH 04/12] Update `ci.yml` --- .github/workflows/ci.yml | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 91a51f9..7199da3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,36 +27,6 @@ jobs: args: --strict env: DIFF_BASE: ${{ github.base_ref }} - Old: - name: Test Old (iOS, macOS, tvOS, watchOS) - runs-on: macOS-11 - env: - DEVELOPER_DIR: "/Applications/Xcode_13.2.app/Contents/Developer" - timeout-minutes: 10 - strategy: - fail-fast: false - matrix: - include: - - destination: "OS=13.1,name=iPhone 12 Pro" - name: "iOS" - scheme: "Validator-Package" - sdk: iphonesimulator - - destination: "OS=13.1,name=Apple TV" - name: "tvOS" - scheme: "Validator-Package" - sdk: appletvsimulator - - destination: "OS=7,name=Apple Watch Series 6 (40mm)" - name: "watchOS" - scheme: "Validator-Package" - sdk: watchsimulator - - destination: "platform=macOS" - name: "macOS" - scheme: "Validator-Package" - sdk: macosx - steps: - - uses: actions/checkout@v3 - - name: ${{ matrix.name }} - run: xcodebuild test -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean | xcpretty Latest: name: Test Latest (iOS, macOS, tvOS, watchOS) runs-on: macOS-12 From 44555a93c4ea35233184b6eea8b5169ca8dce797 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sat, 23 Sep 2023 19:52:14 +0400 Subject: [PATCH 05/12] Implenent a validation extension for `SwiftUI` views --- .../SUI/Extensions/View+Validation.swift | 38 +++++++++++++++++++ .../Extensions/UITextField+Validation.swift | 0 2 files changed, 38 insertions(+) create mode 100644 Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift rename Sources/ValidatorUI/Classes/{ => UIKit}/Extensions/UITextField+Validation.swift (100%) diff --git a/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift b/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift new file mode 100644 index 0000000..8d5b2b4 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift @@ -0,0 +1,38 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +// swiftlint:disable prefixed_toplevel_constant + +import SwiftUI +import ValidatorCore + +private let validator = Validator() + +public extension View { + /// Validate a binding item using a set of validation rules and perform an action based on + /// the validation result. + /// + /// This function takes a binding item, an array of validation rules, and a closure to handle + /// the validation result. + /// It validates the wrapped value of the binding item against the specified rules and then + /// invokes the provided action with the result. + /// + /// - Parameters: + /// - item: The binding item to validate. + /// - rules: An array of validation rules to apply to the item's value. + /// - action: A closure that takes a `ValidationResult` as its parameter. + /// This closure is called with the validation result after the validation is performed. + /// + /// - Returns: A view that can be modified further or used in your SwiftUI hierarchy. + func validation( + _ item: Binding, + rules: [any IValidationRule], + action: @escaping (ValidationResult) -> Void + ) -> some View { + let result = validator.validate(input: item.wrappedValue, rules: rules) + action(result) + return self + } +} diff --git a/Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift b/Sources/ValidatorUI/Classes/UIKit/Extensions/UITextField+Validation.swift similarity index 100% rename from Sources/ValidatorUI/Classes/Extensions/UITextField+Validation.swift rename to Sources/ValidatorUI/Classes/UIKit/Extensions/UITextField+Validation.swift From f468c0fa2c8727b9c5af5318fb19cc76d5ff59f7 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sat, 23 Sep 2023 20:02:30 +0400 Subject: [PATCH 06/12] Implement a validation `SwiftUI` extension --- .../SUI/Extensions/View+Validation.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift b/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift index 8d5b2b4..f54f2db 100644 --- a/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift +++ b/Sources/ValidatorUI/Classes/SUI/Extensions/View+Validation.swift @@ -11,6 +11,29 @@ import ValidatorCore private let validator = Validator() public extension View { + /// Validate a binding item using a set of validation rules and perform an action based on + /// the validation result. + /// + /// This function takes a binding item, a validation rule, and a closure to handle + /// the validation result. + /// It validates the wrapped value of the binding item against the specified rule and then + /// invokes the provided action with the result. + /// + /// - Parameters: + /// - item: The binding item to validate. + /// - rule: A validation rule to apply to the item's value. + /// - action: A closure that takes a `ValidationResult` as its parameter. + /// This closure is called with the validation result after the validation is performed. + /// + /// - Returns: A view that can be modified further or used in your SwiftUI hierarchy. + func validation( + _ item: Binding, + rule: some IValidationRule, + action: @escaping (ValidationResult) -> Void + ) -> some View { + validation(item, rules: [rule], action: action) + } + /// Validate a binding item using a set of validation rules and perform an action based on /// the validation result. /// From 596ae17a605d28d828042b88751f83d88811c772 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 24 Sep 2023 14:26:13 +0400 Subject: [PATCH 07/12] Implement `ValidationViewModifier` --- .../Extensions/View+EraseToAnyView.swift | 12 +++ .../ValidationViewModifier.swift | 94 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 Sources/ValidatorUI/Classes/Extensions/View+EraseToAnyView.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/ViewModifiers/ValidationViewModifier.swift diff --git a/Sources/ValidatorUI/Classes/Extensions/View+EraseToAnyView.swift b/Sources/ValidatorUI/Classes/Extensions/View+EraseToAnyView.swift new file mode 100644 index 0000000..9db85a8 --- /dev/null +++ b/Sources/ValidatorUI/Classes/Extensions/View+EraseToAnyView.swift @@ -0,0 +1,12 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import SwiftUI + +extension View { + func eraseToAnyView() -> AnyView { + AnyView(self) + } +} diff --git a/Sources/ValidatorUI/Classes/SUI/ViewModifiers/ValidationViewModifier.swift b/Sources/ValidatorUI/Classes/SUI/ViewModifiers/ValidationViewModifier.swift new file mode 100644 index 0000000..26ce221 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/ViewModifiers/ValidationViewModifier.swift @@ -0,0 +1,94 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import SwiftUI +import ValidatorCore + +/// A validation view modifier. +/// +/// The validation view modifier automatically tracks validation errors, +/// uses the content view builder to construct an error view, and displays +/// it to the user. +/// +/// ``` +/// struct ContentView: View { +/// @State private var text: String = "Text" +/// +/// var body: some View { +/// VStack { +/// TextField("Title", text: $text) +/// .modifier( +/// ValidationViewModifier( +/// item: $text, +/// rules: [ +/// LengthValidationRule(max: 10, error: "The error message"), +/// ], +/// content: { errors in +/// Text(errors.map { $0.message }.joined(separator: " ")) +/// } +/// ) +/// ) +/// Spacer() +/// } +/// .padding() +/// } +/// } +/// ``` +public struct ValidationViewModifier: ViewModifier { + // MARK: Properties + + /// The result of the validation. + @State private var validationResult: ValidationResult = .valid + + /// The binding item to validate. + @Binding private var item: T + + /// A custom parameter attribute that constructs views from closures. + @ViewBuilder private let content: ([any IValidationError]) -> ErrorView + + /// The array of validation rules to apply to the item's value. + public let rules: [any IValidationRule] + + /// Creates a new instance of the `ValidationViewModifier`. + /// + /// - Parameters: + /// - item: The binding item to validate. + /// - rules: The array of validation rules to apply to the item's value. + /// - content: A custom parameter attribute that constructs an error view from closures. + public init( + item: Binding, + rules: [any IValidationRule], + @ViewBuilder content: @escaping ([any IValidationError]) -> ErrorView + ) { + _item = item + self.rules = rules + self.content = content + } + + // MARK: ViewModifier + + public func body(content: Content) -> some View { + VStack(alignment: .leading) { + content + .validation($item, rules: rules) { result in + DispatchQueue.main.async { + self.validationResult = result + } + } + validationMessageView + } + } + + // MARK: Private + + private var validationMessageView: some View { + switch validationResult { + case .valid: + return EmptyView().eraseToAnyView() + case let .invalid(errors): + return content(errors).eraseToAnyView() + } + } +} From 43fbc45bcd821998228080bcf152a6924ebda71f Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 24 Sep 2023 15:36:08 +0400 Subject: [PATCH 08/12] Implement an extension for `ValidationModifier` --- .../Extensions/View+ValidationModifier.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift diff --git a/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift b/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift new file mode 100644 index 0000000..50fa9d3 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift @@ -0,0 +1,23 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import SwiftUI +import ValidatorCore + +public extension View { + func validate( + item: Binding, + rules: [any IValidationRule], + @ViewBuilder content: @escaping ([any IValidationError]) -> ErrorView + ) -> some View { + modifier( + ValidationViewModifier( + item: item, + rules: rules, + content: content + ) + ) + } +} From 9b4d7435117a8d41bf4e215df07bc39419d0f45d Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Tue, 26 Sep 2023 18:42:30 +0400 Subject: [PATCH 09/12] Implement a form validation logic --- .../Extensions/View+ValidationModifier.swift | 27 ++++++++ .../FormField/FormField/FormField.swift | 67 +++++++++++++++++++ .../FormField/FormField/IFormField.swift | 20 ++++++ .../FormFieldManager/FormFieldManager.swift | 34 ++++++++++ .../FormFieldManager/IFormFieldManager.swift | 19 ++++++ .../FormValidationContainter.swift | 37 ++++++++++ .../IFormValidationContainer.swift | 34 ++++++++++ .../FormValidationViewModifier.swift | 52 ++++++++++++++ 8 files changed, 290 insertions(+) create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/FormField.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/IFormField.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/FormFieldManager.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/IFormFieldManager.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/FormValidationContainter.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/IFormValidationContainer.swift create mode 100644 Sources/ValidatorUI/Classes/SUI/ViewModifiers/FormValidationViewModifier.swift diff --git a/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift b/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift index 50fa9d3..de52186 100644 --- a/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift +++ b/Sources/ValidatorUI/Classes/SUI/Extensions/View+ValidationModifier.swift @@ -7,6 +7,14 @@ import SwiftUI import ValidatorCore public extension View { + /// Creates a view validation modifier. + /// + /// - Parameters: + /// - item: The binding item to validate. + /// - rules: The array of validation rules to apply to the item’s value. + /// - content: A custom parameter attribute that constructs an error view from closures. + /// + /// - Returns: A modified view. func validate( item: Binding, rules: [any IValidationRule], @@ -20,4 +28,23 @@ public extension View { ) ) } + + /// Creates a view validation modifier. + /// + /// - Parameters: + /// - validationContainer: The container to validate. + /// - content: A custom parameter attribute that constructs an error view from closures. + /// + /// - Returns: A modified view. + func validate( + validationContainer: any IFormValidationContainer, + @ViewBuilder content: @escaping ([any IValidationError]) -> ErrorView + ) -> some View { + modifier( + FormValidationViewModifier( + validationContainer: validationContainer, + content: content + ) + ) + } } diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/FormField.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/FormField.swift new file mode 100644 index 0000000..07160e0 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/FormField.swift @@ -0,0 +1,67 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +public typealias ValidationPublisher = AnyPublisher + +// MARK: - FormField + +@propertyWrapper +public final class FormField: IFormField { + // MARK: Properties + + @Published + /// The value to validate. + private var value: Value + + /// The validation. + private let validator: IValidator + + /// The validation rules. + private let rules: [any IValidationRule] + + public var wrappedValue: Value { + get { value } + set { value = newValue } + } + + // MARK: Initialization + + public init( + wrappedValue: Value, + validator: IValidator = Validator(), + rules: [any IValidationRule] + ) { + value = wrappedValue + self.validator = validator + self.rules = rules + } + + // MARK: IFormField + + public func validate(manager: some IFormFieldManager) -> any IFormValidationContainer { + let subject = CurrentValueSubject(value) + + let publisher = $value + .receive(on: RunLoop.main) + .handleEvents(receiveOutput: { subject.send($0) }) + .map { self.validator.validate(input: $0, rules: self.rules) } + .eraseToAnyPublisher() + + let container = FormValidationContainter( + value: subject, + publisher: publisher, + validator: validator, + rules: rules + ) + + manager.append(validator: container) + + return container + } +} diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/IFormField.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/IFormField.swift new file mode 100644 index 0000000..e5e6f01 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormField/IFormField.swift @@ -0,0 +1,20 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +/// A type that represents a field on a form. +public protocol IFormField { + /// Performs field validation. + /// + /// - Note: Create a form validation container that keeps track of the validation. + /// + /// - Parameter manager: The form field manager. + /// + /// - Returns: A validation container. + func validate(manager: some IFormFieldManager) -> any IFormValidationContainer +} diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/FormFieldManager.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/FormFieldManager.swift new file mode 100644 index 0000000..b3ee0f2 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/FormFieldManager.swift @@ -0,0 +1,34 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +public final class FormFieldManager: IFormFieldManager { + // MARK: Properties + + @Published public var isValid = true + + private var validators: [any IFormValidationContainer] = [] + + // MARK: Initialization + + public init() {} + + // MARK: IFormFieldManager + + public func append(validator: some IFormValidationContainer) { + validators.append(validator) + validate() + } + + public func validate() { + // swiftlint:disable:next contains_over_filter_is_empty + isValid = validators + .filter { $0.validate() != .valid } + .isEmpty + } +} diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/IFormFieldManager.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/IFormFieldManager.swift new file mode 100644 index 0000000..4791223 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormFieldManager/IFormFieldManager.swift @@ -0,0 +1,19 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +/// A type that manages the validation state of a form. +public protocol IFormFieldManager: ObservableObject { + /// A Boolean value that indicates whether all fields on a form are valid or not. + var isValid: Bool { get } + + /// Appends a new validator to the manager. + /// + /// - Parameter validator: The validation container that encompasses required validation logic. + func append(validator: some IFormValidationContainer) +} diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/FormValidationContainter.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/FormValidationContainter.swift new file mode 100644 index 0000000..039bbe2 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/FormValidationContainter.swift @@ -0,0 +1,37 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +public struct FormValidationContainter: IFormValidationContainer { + // MARK: Properties + + public var value: FormValidatorValueSubject + public let publisher: ValidationPublisher + public let validator: IValidator + public let rules: [any IValidationRule] + + // MARK: Initialization + + public init( + value: FormValidatorValueSubject, + publisher: ValidationPublisher, + validator: IValidator, + rules: [any IValidationRule] + ) { + self.value = value + self.publisher = publisher + self.validator = validator + self.rules = rules + } + + // MARK: IFormValidationContainer + + public func validate() -> ValidationResult { + validator.validate(input: value.value, rules: rules) + } +} diff --git a/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/IFormValidationContainer.swift b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/IFormValidationContainer.swift new file mode 100644 index 0000000..84c1e96 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/Managers/FormField/FormValidationContainer/IFormValidationContainer.swift @@ -0,0 +1,34 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Combine +import Foundation +import ValidatorCore + +public typealias FormValidatorValueSubject = CurrentValueSubject + +// MARK: - IFormValidationContainer + +/// A container for form validation logic. +public protocol IFormValidationContainer { + associatedtype Value + + /// The value subject used for form validation. + var value: FormValidatorValueSubject { get } + + /// The publisher responsible for emitting validation events. + var publisher: ValidationPublisher { get } + + /// The validator associated with this validation container. + var validator: IValidator { get } + + /// An array of validation rules to apply to the form field. + var rules: [any IValidationRule] { get } + + /// Performs form field validation. + /// + /// - Returns: The result of the validation process. + func validate() -> ValidationResult +} diff --git a/Sources/ValidatorUI/Classes/SUI/ViewModifiers/FormValidationViewModifier.swift b/Sources/ValidatorUI/Classes/SUI/ViewModifiers/FormValidationViewModifier.swift new file mode 100644 index 0000000..eb2a8e1 --- /dev/null +++ b/Sources/ValidatorUI/Classes/SUI/ViewModifiers/FormValidationViewModifier.swift @@ -0,0 +1,52 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import SwiftUI +import ValidatorCore + +public struct FormValidationViewModifier: ViewModifier { + // MARK: Properties + + /// The result of the validation. + @State private var validationResult: ValidationResult = .valid + + /// A container for form validation logic. + private let validationContainer: any IFormValidationContainer + + /// A custom parameter attribute that constructs views from closures. + @ViewBuilder private let content: ([any IValidationError]) -> ErrorView + + // MARK: Initialization + + public init( + validationContainer: any IFormValidationContainer, + @ViewBuilder content: @escaping ([any IValidationError]) -> ErrorView + ) { + self.validationContainer = validationContainer + self.content = content + } + + // MARK: ViewModifier + + public func body(content: Content) -> some View { + VStack(alignment: .leading) { + content + validationMessageView + }.onReceive(validationContainer.publisher) { result in + self.validationResult = result + } + } + + // MARK: Private + + private var validationMessageView: some View { + switch validationResult { + case .valid: + return EmptyView().eraseToAnyView() + case let .invalid(errors): + return content(errors).eraseToAnyView() + } + } +} From a2dc270f774bfbfbbd071a97e88c26cb09fe8b8b Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 27 Sep 2023 18:24:13 +0400 Subject: [PATCH 10/12] Implement validation rules --- .../Rules/NonEmptyValidationRule.swift | 30 ++++++++++ .../Classes/Rules/PrefixValidationRule.swift | 34 +++++++++++ .../Classes/Rules/SuffixValidationRule.swift | 34 +++++++++++ .../Rules/NonEmptyValidationRuleTests.swift | 58 ++++++++++++++++++ .../Rules/PrefixValidationRuleTests.swift | 59 +++++++++++++++++++ .../Rules/SuffixValidationRuleTests.swift | 59 +++++++++++++++++++ 6 files changed, 274 insertions(+) create mode 100644 Sources/ValidatorCore/Classes/Rules/NonEmptyValidationRule.swift create mode 100644 Sources/ValidatorCore/Classes/Rules/PrefixValidationRule.swift create mode 100644 Sources/ValidatorCore/Classes/Rules/SuffixValidationRule.swift create mode 100644 Tests/ValidatorCoreTests/UnitTests/Rules/NonEmptyValidationRuleTests.swift create mode 100644 Tests/ValidatorCoreTests/UnitTests/Rules/PrefixValidationRuleTests.swift create mode 100644 Tests/ValidatorCoreTests/UnitTests/Rules/SuffixValidationRuleTests.swift diff --git a/Sources/ValidatorCore/Classes/Rules/NonEmptyValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/NonEmptyValidationRule.swift new file mode 100644 index 0000000..2a4dd40 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/NonEmptyValidationRule.swift @@ -0,0 +1,30 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A non empty validation rule. +public struct NonEmptyValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(error: IValidationError) { + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + !input.isEmpty + } +} diff --git a/Sources/ValidatorCore/Classes/Rules/PrefixValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/PrefixValidationRule.swift new file mode 100644 index 0000000..62a70a8 --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/PrefixValidationRule.swift @@ -0,0 +1,34 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A prefix validation rule. +public struct PrefixValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The prefix. + public let prefix: Input + + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(prefix: Input, error: IValidationError) { + self.prefix = prefix + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + input.hasPrefix(prefix) + } +} diff --git a/Sources/ValidatorCore/Classes/Rules/SuffixValidationRule.swift b/Sources/ValidatorCore/Classes/Rules/SuffixValidationRule.swift new file mode 100644 index 0000000..c6de6ef --- /dev/null +++ b/Sources/ValidatorCore/Classes/Rules/SuffixValidationRule.swift @@ -0,0 +1,34 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import Foundation + +/// A suffix validation rule. +public struct SuffixValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The suffix. + public let suffix: Input + + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(suffix: Input, error: IValidationError) { + self.suffix = suffix + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + input.hasSuffix(suffix) + } +} diff --git a/Tests/ValidatorCoreTests/UnitTests/Rules/NonEmptyValidationRuleTests.swift b/Tests/ValidatorCoreTests/UnitTests/Rules/NonEmptyValidationRuleTests.swift new file mode 100644 index 0000000..22a8979 --- /dev/null +++ b/Tests/ValidatorCoreTests/UnitTests/Rules/NonEmptyValidationRuleTests.swift @@ -0,0 +1,58 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - NonEmptyValidationRuleTests + +final class NonEmptyValidationRuleTests: XCTestCase { + // MARK: Properties + + private var sut: NonEmptyValidationRule! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + sut = NonEmptyValidationRule(error: String.error) + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatNonEmptyValidationRuleSetsProperties() { + // then + XCTAssertEqual(sut.error.message, .error) + } + + func test_thatNonEmptyValidationRuleValidatesInput_whenInputIsCorrectValue() { + // when + let result = sut.validate(input: .input) + + // then + XCTAssertTrue(result) + } + + func test_thatNonEmptyValidationRuleValidatesInput_whenInputIsIncorrectValue() { + // when + let result = sut.validate(input: .empty) + + // then + XCTAssertFalse(result) + } +} + +// MARK: - Constants + +private extension String { + static let empty = "" + static let input = "lorem ipsum lorem ipsum lorem ipsum" + static let error = "error" +} diff --git a/Tests/ValidatorCoreTests/UnitTests/Rules/PrefixValidationRuleTests.swift b/Tests/ValidatorCoreTests/UnitTests/Rules/PrefixValidationRuleTests.swift new file mode 100644 index 0000000..fd6371f --- /dev/null +++ b/Tests/ValidatorCoreTests/UnitTests/Rules/PrefixValidationRuleTests.swift @@ -0,0 +1,59 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - PrefixValidationRuleTests + +final class PrefixValidationRuleTests: XCTestCase { + // MARK: Properties + + private var sut: PrefixValidationRule! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + sut = PrefixValidationRule(prefix: .prefix, error: String.error) + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatPrefixValidationRuleSetsProperties() { + // then + XCTAssertEqual(sut.prefix, .prefix) + XCTAssertEqual(sut.error.message, .error) + } + + func test_thatPrefixValidationRuleValidatesInput_whenInputIsCorrectValue() { + // when + let result = sut.validate(input: .input) + + // then + XCTAssertTrue(result) + } + + func test_thatPrefixValidationRuleValidatesInput_whenInputIsIncorrectValue() { + // when + let result = sut.validate(input: .error) + + // then + XCTAssertFalse(result) + } +} + +// MARK: - Constants + +private extension String { + static let prefix = "lorem" + static let input = "lorem ipsum lorem ipsum lorem ipsum" + static let error = "error" +} diff --git a/Tests/ValidatorCoreTests/UnitTests/Rules/SuffixValidationRuleTests.swift b/Tests/ValidatorCoreTests/UnitTests/Rules/SuffixValidationRuleTests.swift new file mode 100644 index 0000000..87ab30a --- /dev/null +++ b/Tests/ValidatorCoreTests/UnitTests/Rules/SuffixValidationRuleTests.swift @@ -0,0 +1,59 @@ +// +// Validator +// Copyright © 2023 Space Code. All rights reserved. +// + +import ValidatorCore +import XCTest + +// MARK: - SuffixValidationRuleTests + +final class SuffixValidationRuleTests: XCTestCase { + // MARK: Properties + + private var sut: SuffixValidationRule! + + // MARK: XCTestCase + + override func setUp() { + super.setUp() + sut = SuffixValidationRule(suffix: .suffix, error: String.error) + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + // MARK: Tests + + func test_thatSuffixValidationRuleSetsProperties() { + // then + XCTAssertEqual(sut.suffix, .suffix) + XCTAssertEqual(sut.error.message, .error) + } + + func test_thatSuffixValidationRuleValidatesInput_whenInputIsCorrectValue() { + // when + let result = sut.validate(input: .input) + + // then + XCTAssertTrue(result) + } + + func test_thatSuffixValidationRuleValidatesInput_whenInputIsIncorrectValue() { + // when + let result = sut.validate(input: .error) + + // then + XCTAssertFalse(result) + } +} + +// MARK: - Constants + +private extension String { + static let suffix = "ipsum" + static let input = "lorem ipsum lorem ipsum lorem ipsum" + static let error = "error" +} From fc6d5f3901af9d0f37082d8fefeb69bb782ca249 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 27 Sep 2023 18:24:53 +0400 Subject: [PATCH 11/12] Update `README.md` --- README.md | 269 +++++++++++++++++++++++++++++++++++++++- Resources/validator.png | Bin 0 -> 284837 bytes 2 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 Resources/validator.png diff --git a/README.md b/README.md index f1030a7..f9ef98e 100644 --- a/README.md +++ b/README.md @@ -1 +1,268 @@ -# validator \ No newline at end of file +![Validator: xxxxx](https://raw.githubusercontent.com/space-code/validator/dev/Resources/validator.png) + +

validator

+ +

+Liscence +Platform +Swift5.5 +CI + +

+ +## Description +Validator is a framework written in Swift that provides functions that can be used to validate the contents of an input value. + +- [Usage](#usage) +- [Validation Rules](#validation-rules) +- [Custom Validation Rules](#custom-validation-rules) +- [Requirements](#requirements) +- [Installation](#installation) +- [Communication](#communication) +- [Contributing](#contributing) +- [Author](#author) +- [License](#license) + +## Usage + +The package contains two libraries: `ValidatorCore` encompasses all validation logic and predefined validators, while `ValidatorUI` implements extensions for integrating the validator into UI objects. It supports both `SwiftUI` and `UIKit`. + +### Basic usage + +If you need to validate some data, you can use the `Validator` object for this purpose as follows: + +```swift +import ValidatorCore + +let validator = Validator() +let result = validator.validate(input: "text", rule: LengthValidationRule(min: 4, error: "error text")) + +switch result { +case .valid: + print("text is valid") +case let .invalid(errors): + // handle validation errors + print(errors) +} +``` + +### UIKit + +If you want to validate a user's input data, you can import `ValidatorUI` and integrate validation logic into UI components. Your UI object must conform to `IUIValidatable` prototocol that requires to define an `inputValue` and `validateOnInputChange(_:)` method. + +`ValidatorUI` supports an extension for convenient integration of the validator into `UITextField` objects: + +```swift +import UIKit +import ValidatorUI +import ValidatorCore + +class ViewController: UIViewController { + + let textField: UITextField = UITextField() + + override func viewDidLoad() { + super.viewDidLoad() + + /// Adds validation rule to the text field. + textField.add(rule: LengthValidationRule(max: 10, error: "error text")) + /// Enables automatic validation on input change. + textField.validateOnInputChange(isEnabled: true) + /// Handels validation result. + textField.validationHandler = { result in + switch result { + case .valid: + print("text is valid") + case let .invalid(errors): + print(errors) + } + } + } + + /// Setup UITextField ... +} +``` + +### SwiftUI + +If you need to validate a single field, you can use the validation view extension and handle the validation result in a validation handler: + +```swift +import SwiftUI +import ValidatorUI +import ValidatorCore + +struct ContentView: View { + @State private var text: String = "" + + private let validationRules: [any IValidationRule] = [ + LengthValidationRule(max: 10, error: "Text error") + ] + + var body: some View { + VStack { + TextField("Text", text: $text) + .validation($text, rules: validationRules) { result in + // Handle a validation result here + } + } + } +} +``` + +You can also use a view modifier where you can pass an error view: + +```swift +import SwiftUI +import ValidatorUI +import ValidatorCore + +struct ContentView: View { + @State private var text: String = "" + + private let validationRules: [any IValidationRule] = [ + LengthValidationRule(max: 10, error: "Text error") + ] + + var body: some View { + VStack { + TextField("Text", text: $text) + .validate(item: $text, rules: validationRules) { errors in + Text("Text is bigger than 10 characters") + } + } + } +} +``` + +### SwiftUI Forms + +`ValidatorUI` supports form validation. If your screen contains a number of input fields and you want to handle validation results in one place, you can use a validation form manager as follows: + +```swift +import SwiftUI +import ValidatorUI +import ValidatorCore + +class Form: ObservableObject { + @Published + var manager = FormFieldManager() + + @FormField(rules: [LengthValidationRule(max: 20, error: "The first name is very long")]) + var firstName: String = "" + + @FormField(rules: [LengthValidationRule(min: 5, error: "The last name is too short")]) + var lastName: String = "" + + lazy var firstNameValidationContainer = _firstName.validate(manager: manager) + lazy var lastNameValidationContainer = _lastName.validate(manager: manager) +} + +struct ContentView: View { + @ObservedObject private var form = Form() + + var body: some View { + VStack { + TextField("First Name", text: $form.firstName) + .validate(validationContainer: form.firstNameValidationContainer) { errors in + Text(errors.map { $0.message }.joined(separator: " ")) + } + TextField("Last Name", text: $form.lastName) + .validate(validationContainer: form.lastNameValidationContainer) { errors in + Text(errors.map { $0.message }.joined(separator: " ")) + } + Button(action: { self.form.manager.validate() }, label: { Text("Validate") }) + + Spacer() + } + .onReceive( + form.manager.$isValid, + perform: { value in + if value { + print("The form's fields are valid") + } else { + print("The form's fileds aren't valid") + } + } + ) + } +} +``` + +## Validation Rules + +| **Validator** | **Description** | +|----------------------------|-------------------------------------------------------------------------------------| +| **LengthValidationRule** | To validate whether a string is matching a specific length | +| **NonEmptyValidationRule** | To validate whether a string is empty or blank | +| **PrefixValidationRule** | To validate whether a string contains a prefix | +| **SuffixValidationRule** | To validate whether a string contains a suffix | +| **RegexValidationRule** | To validate if a pattern is matched | + +## Custom Validation Rules + +To implement a custom validation rule, you can conform to the `IValidationRule` protocol, which requires defining a validation type and implementing validation logic. For example: + +```swift +/// A non empty validation rule. +public struct NonEmptyValidationRule: IValidationRule { + // MARK: Types + + public typealias Input = String + + // MARK: Properties + + /// The validation error. + public let error: IValidationError + + // MARK: Initialization + + public init(error: IValidationError) { + self.error = error + } + + // MARK: IValidationRule + + public func validate(input: String) -> Bool { + !input.isEmpty + } +} +``` + +## Requirements +- iOS 16.0+ / macOS 13+ / tvOS 16.0+ / watchOS 9.0+ +- Xcode 14.0 +- Swift 5.7 + +## Installation +### Swift Package Manager + +The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. It is in early development, but `validator` does support its use on supported platforms. + +Once you have your Swift package set up, adding `validator` as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. + +```swift +dependencies: [ + .package(url: "https://github.com/space-code/validator.git", .upToNextMajor(from: "1.0.0")) +] +``` + +## Communication +- If you **found a bug**, open an issue. +- If you **have a feature request**, open an issue. +- If you **want to contribute**, submit a pull request. + +## Contributing +Bootstrapping development environment + +``` +make bootstrap +``` + +Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request! + +## Author +Nikita Vasilev, nv3212@gmail.com + +## License +validator is available under the MIT license. See the LICENSE file for more info. diff --git a/Resources/validator.png b/Resources/validator.png new file mode 100644 index 0000000000000000000000000000000000000000..2b73771013bf7fe159782551fa8d9e913630037d GIT binary patch literal 284837 zcmeFZS5%Wx*DVZKv4EiTCROQ5?@>`uiu6uEq!W7Y5eq0)6o}MF4IKfg0isf+MQZ4w zhaL!o5=ip%oiomO;k*5BU&hE7Pc}FE*?a9d=bCHneA0cXe)AgZH3|xfn=hU})u*7i z{D^|$g6Y-Erz07a-1`(1lzz^ts=6RmbyW{n4{rlc8(aIQ&OV;5HbJ_Q6cqOp{XREq zw(8z#*D2Ber|^-6gI(g2>hRz-e=jHDJI@{%UMew23#WDqh*P5hMX z7DGM5&-u_vaK3o9si*VpkQh`kE7>mNFvWE6noDH;3lW&&Ug#A_w0&94yRjMQhzX>f zeNC^|=C%NHw60#n#Y=PGlc9J(yr{RyD_yY!Dv|D|FX(Ppwe9}PwxO5sy83wSbG^@c zIBnVSUpF@_!#6k2e({NkCl};0v%ii^P6S?LW~Fdn(~>q+U(4QK_WpHD{oor_B=&x_ z&GH}afDrJFm5{j;+Z)>)RQ}1k6}?t`4Y=?e#KZ3>~& z=c^QyQO*<>PoF4HKdh%83JR+4RR3?}@}ut;{@?Qj)BpKr^PKlQ1;rzZ7f&A>22yS` zU;kHzGDFuL1lXCyQ{P=v$Py5BzM}uCfX`qs_0i-b$26_mgEFtUV7ISL$z)zF2CWs+gtL-A7mN_KY6+L&>{J z6u+68Q6FnW^HLD9x*t|O`S30U<<&S6jf7ju^LGa(h z@LweOFCzYz4*pAv|J4Nl)kgmnhW}N?|5e5RRmJ~5RB@mH^#=6s;$q}EU74kPajWHc z6B#mB0c<&(e-{PW5cd}!2U<1R)dAWnOu0_KaQSnA$GF@lIri(?J*3>PAMFOfiEi-e zx!P76NL8zQKqZ=E20XTjMxcR8wUfY(-~-b4e~2gHawiU5;esdV0J#lx9sJ`Fj&Mv< zw}C$J;;P5BfUqr?I;iq+;hl5f7FclAlM<(ucu)N7ZmV3QwuBQn>QsV{#8r+w>z52@ zArL4%6El>RiS8j*VeK+D^7ZCxdJy}XhO5~5u0<*g>zG@ zU#0Fv7ftQmKQ$WuBTXaHV}7ARNf)4jm58P4`L}ZkZKAEP4*oV+8?Y6@ba2CDP3#X7 zLyrer$IZ?^#o`b3zktR&{W`oo=4xCuO3Waf5^;_NA3IsmFTpEr0vx{@r)8|$pntzJjaVhDnSg3cVUIAF+ zE6LsmTwCJefb}2fFyj-)0u|x#xASP6j;GToGvHIU5n4UtgTOAng=b%|O5|PpCH1y4 zwC|oyAo~@I%n8gMJs;2g=c959^~T6aDn1Ueo!h)o2snI-JhnBzZCf`Lyc0lL<2^Vj zS^(A(BL)h#5S-UV69P}EBE9N5rci8TR4j>1FuU0t9ah_eCH@|!$9})ZKl40WEi`;d70q30I_W$0 zp)Gu@1N%V3Dn=^Kf?;WJ`KAw16B;q_;2$CC_ras-SbE})48Si*I(DL2dcnO3JiIx&7jd1jWBSCuTNrw)Q> zPqNpKg}vq~W2~ddd})U!RqI@kOPcQh39@3`xF@ee9_m6arYHxoHU@n5;Q#2@F?#7k z$$g{yRh(Ft{&ec1*MZYMlj}UH5N6gOJ$fHtPLf5IpzEES3b{2gzDvL<-TU4Cru;>y zs8$t{K7Jamy1fPVpWFneBLH?iu^eajHB0p3-XzuKvqN{cMR>N?kRg*X3jk+)`_4gN zsM$#vCv+Ja{4et451F+7ZeLTPtqG70dcoBy4zYb~@DREQbB~cJ<^1BR%SW6vx2p%mC0#kQz!B+LziN;T z{yn+m4o%YVoad1}>0|MJHMD2$WUW z3Oa$zHw4)fr?sZPW0eDq?Xqf7+-=eR*uZ*>|9XA>(r>~Lb0-s5W8CL5amKZ4uNrtv zQ!?)YV)1WZO&Pp*sE!Y7*M_tlnyww>KUK6ZHcfz1{cW_ge#VONehA{$ki7PB_L9aQ zu~#ouM!$MP-C2b7n*d@tq`GMva=C2yfii%7N49h7TXn>FmU&18L);GR(BOV}E;?RO z9W?LF0m6u$fxs!&lO3;!#GAxgQ#Rs4+V6^kk(ml;&gbSOx-tvA|3QYajYF8j&gLU` z!d&_Vx8`_x2uEp~A02OXF1lud1kUF!<^ z_7N?Z*ErC%=Vsbzg%hvQ0$-UXZ`gp3I;MBI!Z7KaM{DY^EQWKl+t#}M&qDD$2OQqN z>$y2m6N4t~Fd=-wl_6nCyXuDeR-8}O!>!)735Uw;13iIK!~BmeX&0w|JN3i#fbR`e z!EJvXz->s+5mLp+^+uncg|Cr&N9mth*ge%umc}7mDxD|Pakb1OhHQO#bB8WX+T#R* z!3d1=gWz&1LD7hasc$P$dseY~C+gXNT0iD!PsZMp$V7+L<_bKijGFmBbj9(B`fNbl z3cO5xm`P?4i5NZ`KJ^XMQ(*^_(1RUBFfnExkmu{Mha-PZ-x>EcfzNOp|B_!e3{@uf+9o{w6{z)?D>~Y)NLomAuk*4$9GHF~PM# z^#X?9bRhBdBp7&OLivMn@YWQjz-RSdt^#sR_RxdA`}Ljeir2(P8(ZYj0Q9bKi8$y# zJbHTcW>@)V>-J!>!sF-Ee#Ep1Fl^zvdvo|?W)zVmJTo4?kz7?Q@cl8b+-x;tWrKHXwi)-Jide1>mwfm1WgVote1Cw)?q)z;$aPKi1{7 z6=^2n*61@`lZ{<*Es4eq#V7qmsN&Z~Blg_Y?aGFrG6n}L-!7jbfX{QrN`-iQO@-#y zZSv+ToLho50vA~qjs*ftIF-21sR7v6H#3X>3%!T5W@jMEzS1P`UD>B>M6@0@ymk!E zf(@?vYo(2+*Varov><0#Y7>?KPzEy@bY94*}D za}_t3O|E@pBaLX8c!XI-zK>vCWgT}%`);C8hc4@IO6a}~2z}!_bE~zy(DFDusa6?p zqU^u75ffAXuq~JLW5nEc7;vI#)m;uKEg)LL;$9b$mLLAfQ{rUok{kV-rd`oC(cci=7rIFTX1mIyN8d@=_7>Z#S;w@ z{7%-7|8+tw;r^TRb>R8-fDUUJD-r~uuvj?1MDfOFPEz;6qQZqyE5E z(v25Y{4+OqU6UNIs4R|aV;zD@t688lBTtdb!9gbP!hE;Z{bnGXOZp@$Q2BDW#@Nxwp653Ek>znU>BgvZ)DOEs4-}3|$u1qXS9eJGcc5drL&$fkaEr^<@ z)j35Q|K+#_C`xR`0?2pdt+B z-B^S1uD$)96Ra%uIG$(8-{6gHaZ^yxpu6KeA5Xz7ow$TGt}C$_#oX*3UDm%Apozl0 zz54Bx(tHOx z4{?)isX5?y)3|U{eS7>lYU^ie_%%N(W-Z{AZ*ScjD{w=8qg99O;w9qN`az(>oV&=8 zKJuV1(NFkR&NlPQ8f`^u<`sumcmCDHg~4CyUUEBpAJ+E52cx^)ZaqmmmqpVe^`%)n zzJr^8Z-qWNPfRJV@O`rSI$*V18))pf`B}R ztxfLILdD?0-+-{Y*0Q_PT~P9if{nVm7IB&k*9QKs{6&pP!J0BZR9bL_Z9MtN)t!XC z`{7f-jJ7K(KNyakdL?KyE8oq<%;A=TZ!|D64&Xu83EhP1fItSc!>4> zEHt(sub2ZRep<6}tboIg{s5US|FQp?Q6g?Ncy;zNVN}D4RbuoT-PC)?FwwV9n%yJV zRB|~Hz-M)^5tyR5)vF@x9qGlLbCE@TRGIx%86bAeTy41~#UlQP4re7xX`Uygv+qJw zg6(w}5}vOcEEaYt^JLS{5bO?oWL;4B{jd}IVRz+edn-Se$sKv)L{!vtE;o4s8Zx)( z5%fRVXaIljxzPF*rGD2M4Nzh#J;#icboB?Ya^-o}l~@@JN-n2s{x+IoX5{KC1_+n#fw8#mb`B3xIh+LDn>(L! zg_>R@Y#z7bel!0s)0EpeT2Amafyv`Jv+We)#~yW_))XWe4TdS6${6x zEzJ+^d5*10qt2_w*W0J$YfEMEj-lfkbL!MXVmjhS>r|@8XgYAF!2Bnp zj_9a zv9E|0*q;2mm#st#?NczUu;3(%`r>Rj7PO-`h%fqDS9ut<5T^n_t(obq4YnG+s4A8H zkiS#tS0>)K$l5yd@HA7OUI~~YPgfjH=Fd@|D&$CP`tBdA$%LeNLG3636lZt_c_xQBKV13GTHMP2e>QU=o_ z-Q3DAZYB}(%rK9QM)BEJw4ylm)GU&q_y%cM^VckQedEs>PIX>H0H03aHEB=8(mQ7e z$E0o9?{haB9H5@uiQ#O3c&B+eEG@H{hgvp-W`YwR5bY{i z!X74O=dVzSrcBLb*&DCBtiUDyN>|B4DPQxd#@XD7IfRMPFE2d?-bk`ZBUsWmeAA|^ zWSL#8o6zjBhT<=5Bh_0Fkn)T)MXYj5UAwBR`xq)TX(vx8N z8`$vO5UZUFnGxsn7&+D1y#QLr*js18an^zF|K?$&zvzRdTX1~>mF;%921tY^;WV6cqiZWomyL_41mNF*?Q6At8 zPhyS7ah5o_hVJvFb7JGc)k9J6RnzlP3ZD)$;UfL)>FEhj!w?eed8ck}e1q86^i>yG zmuGa6iNwKJAU!;b4&TOGGP zO*VdcaHz`VKLlSC^D~x0CSCD}!k4xS-C+}u1UtMybPFnWR#-#|BH!+HnR+$J^b)>$ zd=f}c99=cASFz~dA5;?Rsu6#l^$kJHC5Z(s0fgXmT*na4G`xCY9Gs>gvHdWK-yAwRtaJnmQR=r26~R0H(3-bXj>#8~ zkudKpRu~d(TaYwwGJr)*jS^5&Wn2OhH^ahdHif<}dSqX;_5E@62V#sIXCVeSWI*Gx z5Zf);4riGnB0b~H%(wGd;GBg6F3t^`3em6W6lO;K2ryZNTEuiTRC-iqg z)izg3eanZKZc95RUkVyUhbLSA7JA#d%sv;&^kA?@LS})za{EKi_NGKXv}|L^T2T0f zgSDLniPt;SyeF0C(IzCvb)r+g2r-CWX&|agu3`qI5)jT*J~)4t}j01D$1(Hb)?UjcZ!z{ zH&GzQ2eh!HD`Y|Ryt_3)mB-klnRW8_d&G9$T`YH)GANGuqL}S9t zqsERLEIaj9Oid^*{hdQ%T_=8+HYLQPA;Kk(M@Qa@{KDuJTOtAif`X7l^g%b6hx#1% z$qGjtse!BMXQ$4n8(HayQ%yFCl;0>1wP<1ne=+aQy`7mp#&wV~*+FzVfOhIozJJn; z^{K?^U}1=NNZ*%+UcyDF+#oSD^90J%D-kGfU}@#%8Gh}yMZTtK8Nh6|u(LlM>iW6L zr+em-;Z*c&jX1!rAUllVA0^Mf0utqqjn3*n%eAi$QdPtMSYKAp?Y}=~7@az}WMgQy zC7g)*YaOMnxbzb|ZnPh-a3SSY+Wi+aa0~u9C4{ixr1$5?_J4b6ZoS@Q=%jRkCW23E z0Eqp4@(L4Yi~r_Cz83SDm%CLzesvL!>+^T&zkY^4BS2u1DAzHmGwVQm;7Pds-q#TT zQmyJ3HR9y{a$Khz?<9w*y<=buHV3@>FcXKvduQkP{u)?;(xs&ACnA)pi&y;AvrLT_ ztb%0p*4c-e6c?AWQbRfW=!H`lS?a(9zV{q5zCAkJKc~$d8E(-@l)r7~5m09);k0Y! z{a${OiDKE(7cs7kO@z>?1b!Oq&AFERAt_{R>N7agTu)K|sG*82EZmRN;%|rrEH{>5 zp=;J_^1*0r1U{PIwNO&EXf`u3A-*)Bqv|#>D>)+0knPVD#Qk)Paa+@P!et*8r*$SwgIIze*1@+nC*ieS zo?C#`G+yID&Vfw95LD%(e_-Aoe>ba!RXTyc(7naDW|)U~EW+_>nCsYeKWd=R`muDu zfb$QjtEx=@d^)a9*B^d5ELv-H-5Sf+jOukvxrQ)P7ZsYOR(A#-eB}N5^2A=m@1^8D_ zKc^8!2s-LCq;>I|vyNoy87;_CL{JNa@%dab_0Bc#Lc`$;GI}j`x zb7n~pGq2f`SZ9^~+m8<_56u^>^EL@{=E$B9uLZ57G|9a(u1hlA>6nQLInUL6wv!=nvIodWj{$)k#`IPrY5%=~n_hBD z@;{GuE2wm@m2cyOd0f z!r86c*Yno-o3mQegdpUCSLDPFzUmv*F{PYx%xE2rME!MuA{==*!#N6?^4PMLvi zQv7@Hof>;fJyAA1X3i4PpVPWQ8gK^(VbamN(TEY3b9sys=IV-D+Br7H z+>K}@wLnySF-zeGkt>JcuAD#ECdc)y6#u1j`p9ltI7l8LYuJz}?JBl)dRnl!z-Qa0 z^!|pjB_)5YNLA&{8`8yZy*hRO^bL85_?k^55O_0|I3D_%Yx9!%BHH~Zb(?nsjo;v& z+bnNJHnp`Jb`h#W?}^6YgnRG1<& z7*p*X3+GUZD+%)JL2n7X##t@v?npZM1CIUo;QQ(wU&Y@b5_UsON#1LOC>^K9{`+#b zI5-tHxI%~)hy!78EB?V*Ghw#j$s_F6ITTZZU2R&AZiFl8g%UH*R0x#%;$=}n| zs2)%0zqZNgGPnt!XpDnf9t>PqHJ5RXCF+-2S`F8h-^ksNn@1(%;YuO_--gu-OA!`x z3{?xzi&rCj%I6f-qIo-U$B+=eUD|NW7ylj6=q!?H&_&! z-#3eqC)UhJ=4B_XDn#Jd3(s3Z!TM!{(tyEy(p9MzkVFqvw-}&mp6qif|An{6q>z?- zsypWp-RJ$IW?_IjP3zhIdUtm!lZx=pWSt3OcZnEn6oOrJiD|_iwK>msyU)s6#tkhVUTf-6o*WWz)o#4UQ8fumpLGSd;SStX*>;93RXpJlC5Y>U(L#?s@x zFOROuF@Y*Gmw&eO>f<}T{RI15yYI!`_!sH?<04~Jd68UCYut$o+~ggYv1zU%F!ybP zzqWzCu|yd>^4?#7i?hy$H9dUA)V*C^(%eG?pjaapxzu=NwyMmuO2c5<#I^W-kYtK> zte!omlE43#LFby$`xL|@jvbTof9XLT9C*L)|7ef8L_Q62k|uVu>WbF5<6s#`hmS$GpFhUq7hy`?J-Yba3WejrE{H?6a(%(jyqyDZ|%?(adG6dRe0ge|y-2iKPs* zi8)+q4L@M;2trPyA3i&09Byy$>3Vb_`zMN6&%QDoaR{5ioiMd*cZUrOgoQ~(Kw(=x z(zxp{@j-Prk6d-rfy{QTii&@5eMMMi68B zJ!jSBYZ5w)K!qM7RMK8USYqOS=Ka*R;P>TMzml6ox(Gn)d#ukV(Q6B4%b;hZSNyw< zB?fVWJf4x3{l?FPa7s%_Mjh2BnY^##4}rg4jMIpIP-DmnS18$+NemuEdkeS9_-U;0 zT}V+1xnahC=X#t%SlbOUVP;RnK5d20c&_$wQg<}JL4t@a;yCWKLOtR^YEeWpv?O<3 zJ}(UzZ^?xXg)!dI{&YqW$;w8UfOqPewo}vr%i!k|!tk-<^D>u=Ve!h1Y6`ae2b_{`A?bVG zZbNY)`4ER2vL{h@nHUg*NXvWpfNce1>zSv^f2WK@2f_r9`X9{9)r4Y%9WsY!%vx0U zPZkd$UST}i;!jDW=Ot|pbMm`lP-{k$C-QCLl|>H$fc7$Px$& zp0#YZUGF|X`$KPz==1)^sraR>Gh1^SFSnT>5bPLmgY@dpN6xL_xojrOI=>RZ4F`A4 z1oWFBr{4;S2pa3Y?F|=7OK1%yD5U1BCaEH-_NMsZO&w6+Ymz$N<9Z>LY}A-LeaNBHX$>XU zEGaZQ8%V=ePokHxb&J2QyJ2Qq`4SfXzCTE4wYb#pN&J!mEjCpz$8CQZL1+kPD=^5E zObEU6cEyyd5;8m3bKr?o$EVm-gp+~CI!Yi%A+m=3k zLml#B{QYeGs*3piJ0g+kV>RoJ((q|5YwZHCU$f)wnGsj2zPMr5af$0`AM6fX0GU1kZdrM>Y7(_W2vsF z?9SZQw=!Q&ld+TZMdr5P- z=@Wp`_-A?R3GqP%D686N=NGJanPhv(4b_6kkT?m>t+F2aY8y1AE2n(b=pNT&bH-zD z_R*R0UQ~701IaPZ!2Ks0QOQm~Ov^=3GPkq4I)q!lKK$5)#&KlWcS!B^&7NwKgG&FG z9U)XCxWPSZeJ9#lu`YR!GyCY3;cgssI|Q)xe{FQr{u^hL% z0)g$c6519%(%Xb92T`pUN5}D-(_01#}gu%YOGO0@Hi-h##8Mp#T_cGtHT)E(?oZwUvOS;gb_TC!iPO_bOqHx_w z=fS-syjhn3gZzl?Du!$RKeMu_quzuqu$XMNwbNewj;hH~MHDhPq+dxZpjgvY?$PKxms zH<$Ml1k+m{f(%RQso(?YaSqOEl-acQf0u@@$(H-11pNh$OBooz*LpLGu9jR=T-GQw zU#=g3_CqQnpK!<)=dWFpu)V~AiNOn7n%1N+pw=-=Yd14?v12RFn ziL{qR->YB|Qr5`Ch@{iZgqQa+@!!L%M+kRT`HbSqKZ2%2TGkFI*?tMCWTK!X){586 zQ@3#m!|}7-RcV342kzdzgxrEQ`XJ2;OLcreTb0(Aqb>rfS_H(h=*8jE_^joGWT}>O z?9tq`xjwT!BYsr&tdIUbQA0t6l#2+j3F}z@PI2~-@kNA?)9Z-8i3Kv;kb zdPw4A`eTJvO^F~}+T}%xV|qMqfVP-mwPJXqC|=wq`h}?prDmO?o!O&%-G1`!hfz>A zT)Jsuh@TF!e1|XWsy;)49wMV%X#rVd46_w1ud4mD#8TQnre&vl^Q7_lb}Hdt*=D1{ z#JAA+t08{?v3XmuJ;8H`LyvE97n>i%<~o&2ugiiNaw-pF?VbBobk?l<`J#qF1Ky$@ z55i?!vEl0nXyQBBf4t|^%FxSS*d?8i*Ysz7(|AQrht?IZT`BG`2d+X;f)mQ}bwG#eK0K0>pXO_2ovl zste}HxzG2Q*w*(5JzeE(NE%^5j?lXTYsCust1qv7=_!D^e`89?=Y|F|=~kaemaZj` z-B2|aKF?o66(9lER8Z@VsjrKCdHcW zj6btyCyDMprMCBIAk5*A)V_JqO>!1Z=SJ?jP|?dT*gRHI{O6Md>* zH$1$@-Ls&#>>F!5%q;iX*qv{y`PZf&D0)H2bmY&yF$sg~Plv=(DrHSJoAyIr8s`U4 za#YNBH+JfmLUmLOFy*8UtGv2c4HOnZQ5?wzdR zP1H^B>$z_*6*q1CI#8E=#ui)5e~fJP3AoFImjE{yJr2BKi8``(7+tly5n|ViAG41e zs-JjBRW7XwR7bC!FnE={DncXy!JRjTt}T>u2qMR6I=^a3r~ItmVJERv??$Hbp0@Yl zxGxxffBqT}*@Ga;B@VgEZ4)%YE;Qu=$90Kz&i9 zzV8Cx(ugx(<67EM?_0vm$3=@9*Sy}Zt)wNNPXo6k3GDBEy_r~F1xlSc==EbO;6 zR2!uqWNBjUUenL6b~#hCX&!oV(xLEdDY>x$xz~@8qL24ed|vR7#!5QUzbnIv=iXNp zo^1w zV?-N@27-xFH1ubI`DBa!U%K!)b4`aWqN0(|!8GN6bW)*cxnX_#MMb?=8i$4KfNEmj zvg@|L^R$l|2ZJ4rhtwsSI8#=@sFp$%ERn+Xp(zcFoRT z{;VAaBc5{N#U)bhRZp=Q{Jx7&)8ltJcwRk&`*_8sqF6#l4C1#jq(-n5#e)DB3Mqo3 zBCdD+S~YRZDz#4;om+_cc9TrQ;0%1Ec)ukRCd8L&RpbLSNL4GXp|)Nh(O6gUAt*k+ zBnd`xG$xch>1#r9dmTAj%)3?Uzn>CfNJD@1z2A^h{l%8F>B@_O9@7-mEbbt7Pk?WJ zc3Y3cCWsU9%tkbyn9Qm(Y=4Gy3Z>cxr3}~PwOB5fEVUj7M5BF-*aZ`OM+g*BVHYr=l)-8e%@`HcDlYv&ehJxr0r?LMdA=dema>HQQ~)rGviS;jwh#wPsbeoIXI}{#mArn2T7s=3bk}nDSmj1pUmWW0?F1c;5SLv^3KlY5F$6x$* z`zPy7(e*xsOZP56`+pm%zp6Dr`k&2 z9@DA-e*2Yz^7P@BJEoSltKZY49i(J4>qtOrMmP{cj$I*k+jR#sIA5vym^uy*0Vewn zDQyf_?O*yO;zRxY5$nwd>)2(#=pi&-K6pvzhQzg;?B! zfY?cN0qh+Lf1j{Yjv`A(9oKZ$k3647DHnm6-|LiC_xo2=Cq7Om0m0pm?e#i+UZ}B)`Nb`YRILe%a|i1)ajEJ zz+cXCX6IK3_9#`F=UmgV(#XZV+VgcFENcYHI&8&9JRmA6_tWu}(~i4}@8b<|Nk=jh z;MYxxmE-E7?S+DDIBqr{*$Dg3n1?9<1I<4`D`QR$Cfc5kp%Yi-5)HcP2lmH zPH7Bv>8MWjCz&bb^4Fa_c^{7$`D+px8i`Ct^N=1r54Ed_j%+h;5TI+-H_6)-jEEEb zYKjWr>L*5ko3u!pmqt0PWG92`t&DA(!(}<;m9KMLB+^V^`L-T7(mJ(by{c-_l_(~z zWgoEMWyd_py37T?`oO!rc11%*9DqZ^eoiR+%WYINuUr89PbDFEbBCtmY*%LlEa_LE zTbM>J{f+-9*4cu4+tSwC`%KDM0$%pCUp;1Y)J6IcladP!sPHSBt&DTYYKfJzMV^&0 z=&Rp-q61vWEh8)3)YPXSVaaKfQ#M`a+SP@c@0EH=MYWJif||!dy~I%DuGFdumr4|W zzjLP$`F@D>fkm<-YafZu!$opWo;0`W(^a5v@@7PF>Gmrl^NyNYug!jyx>ZL>AkM8C zy+uQhDy6^I1ELy@SP~g@HSZ0aTqlIB%LzW;gTGGCZcJ*7+;G$8?`F_s#Zm zBNUphce;8CCutbFt*pVNafLQ6xxc1&wPmCEXUIbO+@IOMI1`a^mkjbjz~~CSa#U-A z^%m`Ev)%!EmsWz}yyy1e;+iO4@W%6ViE`7{5^d8-_uTyN!@mhk_Pes_xzlgs;z8x} z+EQ!-xx40ZGmUqPdJqvW$RyMN(%LTf%^>%Eowa;m+U zHIJI~t#zf-#u%w}Nw>9%A2xazubXKcJylB0eXluBIO;&-GH8pjUc1I{zViIVmZzy& z(d|Fh^cz>MF0On<-1a4=icC$kJMJ{ua}4@IkJdkPZ%{O+{Uki#r$rp1StZSq4si1D zwIA$$nNMGaSidZ^vK^hU?P<)5SBXh#qPI`!FPdTt8nYv2ZwFNMe=#m9`6l_OwA`AL z27Qvw6*wb%Li;}jER(0_wc9nSqeg<^#q)};Wq)ll96|Ci8K59ax(7sS$ULf61j29Y z=jLX1j6bUFD_|+Tydm+^K(dy#SiO3Y(`Kau+i;aP>>^v=?6^^i=jATeDJOp_tg?le zto3rnni_HF#I9ykz+NVUK_hqFdoitq5_ow>Yfc}5{1Rb~pwc34(`d^s0J{ut(w7|H zNtr7wW3nK*-EK4+b-2%)fns{$0DH4utGRf2^#E)79p4T8TF*7L6PXg?;P;ffk?FPZ^85K) zu-m~|VHOOMAPaFNiD1HM6=Os`ewq25cBw@&Ud+K>zhMx@)!EcJL&5H}SoqE&?2k1@ z&txK8Oz`Ahdj1c~c&FT-wtw{qHkcmT>kc%UQsPGvy4;#^2!OgzP!H19ts`pc(u>WS znE3IY)iP{%FDS^^Vc{Ec6sk5?dGT{hB%s2^yB9p{e}Tl(erd6QZw_Xzl=6UasVT|u zbRkUJ1q_}lU0N%1fCdb6QR1;#<8Y*p=6Cd}1>8!q44EIfGX^mwvD0gzgy>~r@`AFfJJwfL2rxENRpS$0^n#WEHdj|;gmVek>dC zHJf156U&gOPTb@@rOlC`>Mep|WSBmyYw^yOskiTP8m!Kcdl!>o*`p*1X&k*@3+ZEK zXiRM{IFRpgij&5D11EE*pI#ga61&u8nyvN9COiMN7zKlKxWpz;I`e9|Jmbqu+>M+O zb_aQWjIn}N>{Yqf5WacwliZxD&-yC%nZTuda+?ezC;^FnA>Sp%w0cHADQ&69@3slyO6|IGu~jNSZ$Hrkf4o- z+lL4>ZBo%L(taRRVB8yzx)#Ygs;&TCvATo z9!jMX@-3%r%j)T0!d-Hpi$2X&Rwq1fb0SMY#%AW?m@na>Tt;tPx|#;}o{z5v4>Jg* z1{#hqn56x@ZnM04;tZg&vstw&a=1tha3zIpWsLr@e1&uzgbD1thd#Ukzq(>BwGN&8 z7xF0@dt-a?kgIe3v}XS1qNzL^@;PFXh@1OCzD|4cD>FgFO5}f8^D84?&b0vCdp0{U zg0072IJOQaF4-IqJOgK37qZB=(F{@+1(SyZ+ajxatk6*@vthm{K4cD9elifZ`w0lP8leSAvyDMc;USFPLf2^A)c6{R&4nFQui8{T{ z+VI3Q)tAS_(9xn>IA6r@%{%*tOGY+*c|_is+qeKxu~!ze&V*rPr)M2m>6g;5RKkeM z-Dm0_eHMlKm#))-!_x`JhyT-x>r>jk7?rz166qn0IoHcYF570`b~dJv)H#wWAE6`P zipS~<|7?t{`QsjGD`bS?3LfX8P5z>u-1C(+wMMi#{^&1`RtHuUa9MLszqcD81To+5 zT=1?7IVej2kh*1w+rnUyX(#8|vy8c#5mKS#7Bg$L z`IxaG$M@NRz3%!D18L`xnT>cSnamLA&50i+Bq!PDOPK!6s+R{+Ne|RIOSIcRKUdx2 zT{1P<9iJX8MF$OX19u0+SlYB5Kq%s9STKjtSFiYPzxuRRqZ!tcX$KB%+ogTE9>fJZ zV8gy6U82I+ELX5ehF%!+kv-?}&k=L2jx7rF&id>gPe3s^10(0zuAgA}tfEO+N16!Y zV6=fWbUN#QZ86WUdb_k=YBv1s#-G<^4)A#M$mESCu1kiY`5SU(;Eg+-iJB(#llEH* zZ9g=RMZTALXGZj^tikDwK4hx8q0~=M1f$BBPb)a&HQq-!lMWhVhwM$Is;{nIYkq2S z<~={6I6}l~bIire_XyVQ^B~SZY$o>FivsVf4rk9T`|W>e~)x5c$LaytJp zn#tVhZ3Ml%P*GPcRG7%ZW7=z`|7^zc&ePY{6eA)?shKW*4UZ3N7ku}$mUdwQ%o?yx zITKgVbWOp`dVcsl7h)`T3e4hAY(ZRV@P67_ai74{Iv3L zbawgpN8rf@tjx97Et4N5CvVbLB@&aO2W=;5$f}@|!QHK(P>itZxPsQOF=bxq9kZ5x zI@`YFw^eBGt*6;s4N28R(Vp2)_ip#5Nosff>2wJb*%b3i$!@kaTMlDAPMoWwj5bm` z>^k&l0T``61ZRq`n`8ntGk>nr+N=!`w|U{6v;ocdDC`m0Qs&&R9>h~0HsehD&xJ4i z^a}K>j^#KOO?RL4-8{j?)TKUqL;k}^8hfLwQMtAbOAXl1t_LKQl^<_CJ}Y8$tx6BR z;p5DU90mD1%BIAdteu|h9(~5iIaxcJ@`gw@w2^%e&*!u*R+aLEAj`)=?8+#f=23Ru zIC|JWyV+}AL39mhG3Oq`}UxjsIKLWRgEu!Q+eAT<6t2dspDr#Vz8WD0j3qI;>|4=NXmu zxpU!ACk`3&Ik366yhLfu$VaNo7LbeV@JeT6?d(PGWrz`dD?haeIMZcw*^X+S7Q(Gq=ZxNpH^Wd`yasBA(q!ukCOS z1&;_9_@l_nio||Xh4CVH`vdRk)nXpK+p6DGT}liXd+y3Frh`F8OW)~Sd*3(nE(qSM zg|b!LlCGveevE+0dUxYuG~%rEw^C~k@(dhiSjl7eO>Wq$&8GfnIHH+&bxrzsGnVS7 zi(c7^!B!gTJQU?GTp1psIz@{L$_gc8${^GGT*2~WaUNXEJC7$DPoh*bkj((vKb8W6 zasMn1M);dD{j)g~@an7yc-s#4b)ExKMfW8)Xc$WjeRhws+O!++jBI|H<&ZK%mHVEH z*8O$z>}X8A#Md&b0xuYy$jwWcA%CC`7!|Caw4=NmIuu!1tZ=f1d5 zxN{RZkW7>CDKnn*c96gIV?D)o0z)I7_&fXWyBtGhP-fN$Q2>N6Ce6DQJ#JL)nnka> z84)Hi6+?{p`8@laL`a@AN1=!6I^RWd=E}WokghQlVpCNpGpfS`BYyi6nyCeBLKF-GFUaE~!@ICzE z$`-~`R}Xryb^JI}4&%Rh!0Qb@7HZqOiG3)rjctLWGHv~}-s4pLN7l*wPj+pd1$R6` zPA|?4X_rp%xJR-IQ!E1kh2u+Z)m4;G^x5U1Bb|j}6M^LqWp%}{Z-p1*VK`6Y#E#AL zVaG<>CMsk29|yBO(${`m0D-68>?gw~X7#Y;(X3%CSe-0~r?9*MS0$R~@*@|Y^tBVd zC)iX{8(UW4y3bIMvT=X3=d5;r^@N`SqP|f^5^0poWW>={nk(=!#a}A&Bl!^@d~M*( z-CQ9lFBdyf^fcFc%x>qb*+9wX5U9*EyL&eXdNheXRqNmV!b%tUww$dZxyNjV=jb>uW^X@t3DLWAT}Ze^Jv;SYiB=$Vhp@$$IuyhqRC zZGDh`eYYPj*?#^B)#ORU9^=a z{qjz6Xks)VdX25uT_?!q zJ$pk*>3VOiM^CYBz&)knz{30pCBz#wTLkGS%8`R2gd+;qp$v=)zxBavUw*?r+IsFg z@GS7vN_sSfTKdciwe5bb;|Qb%gV|)JOQm}9=02J3CQR$m&O!=|X7@GvI8G&9Xl*PE zo-fdq>Tbh1xbT`Ig?!KI`XDFN|M5H`N&E|$I=K>#9Wwm&`K~cDoz-SPwX>L*G=5g# z7kJA15_)j%0d*e!8NZ0LY~QERZ1ZhUb!FNoy0*C@p?5)L&K}Tc&@qt=ri8lNxl)lN z?aYWIsfc|u)>=;kUcUD4`;_MKNPk-5!c;xIx*I3X33wW2Mo-9o2~ahxnHTnJSXivy zm|DmP&C#?(CaBn%=C0108`&30z9c#`MZFe1B!fDgOaO+9fF360f=q`n_VWv^SNgLR z;A6I-EkTIF%xtC5{F_=GvPE3cO%77CrmT0)#_>P3t{4$~Q(-8BkUCqYQ9drwA2B1h zEIxo_yiD>sf|(*l)iXBeOiV-VY55z6mK!6|!|KD+uBLDI^oFOdy)8Z_B{I9v)9lVN z+d}L4EyxtDmk>M_9;p_bY~v#wLyghQ`?L&|FKDKL2Z(|Dcm7s%36TZ(jkGr6j#&SH zTF^eCy0%bjOGbNFOa|ejOa(KgMbI+R*u<4I>#4lG<*gQLtP%UDfisrY#nha@=uf>{ zS~1?>c6rkfpg%G-KdK!IP`K4{1qS5~#O!7KE+I3V-MRXBL`X7=vzNv+FJIKUsWnw9 zIlSd6-u}<*a0~(Kbl*1+J?QWhg?M5; zG&IsSz&25j@z4=sPS|Kq4BO!9(8yT=1x-!gR{WIre?d@KZwQT)AI17*Qx!XR>muwEccCaoAMeZ0RqsP(0=ad5UH_q6s~BS|*?-zlj|Ibp zH4ZP=#KAqd&ElH()Y+vsRr_x&>*jX*N_`9KORCin`wlaJ-lEk|EjZO8W{CwHGU#_} zU+=RvXnXoJ&i&|a2>45AyhMct|NhxE}--Z(idhZo}>}2;D zuzf<531mL31H9@+`%FOl8G|0z_kE-Lg0(XQeR6^DN8|oYP%h)QAF+3~8?}gNh>@>I zteA{1r+8PY8us(3_M#AgH$vA?GUkqhIUo<_h_Qw zIi}G=hHZVzQxCVFO3gEfWXuEnx_`0lqfky)duwkk#RBKx7*~11BGQS}P6p1>Cv}}o zPr-M`$5dq?eofA}j_|R;G+m;PMFq~Yw1X;-%N!#)j3p>cE7;CNvd6k+$k8h z7$zseV!9h^%XR>8_X4f56=Q$dMWotOXdlj%4c_6@Mq(lKgMQmH-tx~oWI397eft*9 z<#!rtz46w)M=+tXGSd}G=K9e=@9rm~N0JXjAH$j&qJB~>p6RbDJ!;g9s2(IUC~$ZC z9a*#@7o9~20RK!6kLw#ewbWuZA4Rht?i3!)8vMYzkmoWJXTn6U=etuc9+GuHZNRVJ zy6Xr?rg<@*h#hEeB!$SHUL=}G>TR5+sSyL-Q(J33J-KWOZs(r+ICY@$+@ zKT$>p5EezYz zS5e#;Lr^~kUn)zkr+CNj$TajG!oFMY7zBwrPFdpq8Yx-?Elri=`O0Sx2o$o>Q1C}z zokOYU*&P3@U2|XnLK8Sbsf;WmU0m!dm54GGe%*lzZYgY6nha->=8AvL*O@Em^(E2u zIxF=(R9(1=*gvqhN8dX_x1e3){DpR$2O-xFtJ%|r2=@Xb%a)a);q4d^(!p8^4KUm> zrTakU>}mS-x%QvFi!s=jDC93^w|3VU{}qD2g#%Cxlvzac6QZt<=JB{Z)?v-|2k5h$ z@4)e%)ka2DdRj7pSy68RqS$Y9!3}$zJV8uqpgMJ-&6<>XI!DWb@3&C3{nq=#x(msm zc~krA3`@GjnL=LyS9afLijgXlHK>IT&Tu> zET^*NxSA0> zD(J^7T)*m-tNj48xh<;sQ-!MoZjqtC#wBN|TdLS~N$K2i#IO;U{67(HWtcAS5v9c< zGagTmy122ck2`-zN4C4=UwbbByX1e?74N9T$ou}sdP_(wV73(=0Hjgba$KeL$QIYv z+EpI`M(2ac59eQV{;JZ?cJQ%k=1u>mFfwtZd9xibJI}E!2n0M%#A(r|0!Y|6{JdIO z>4?`s(`Vsw)1+y4Ac^3ko5G_01)5IacMw`<8PxB&raY zj~+Z3NxyvKCU@4R#pAMRC^kYSaWIYp^s8dq-6ceh4(lFolz{o((^#hM?vp-fijDD8 z{C=eEc>iT7DBNAJJSi7X-P_CaG57VUO8Z*?@kg$5E>~Dy$;)GVLH2Jl&o84YsgMh7 z+Fwt;J*Z7TO|Y>$I9>C#wBAhS{P;((@o47Z;CrBvpaF4lOWWdfCyU$AYwo>ZwMhN; z>#^Biy{6>Fpk9*eB^82c#GbSQ7V3Z|X7Y}pD|Cj>FR3Pj%?SKGm+HwRxT&h&*o1Qb zGCi~l;g0t>M(r5cN|L|x7XdjdWl=wkfWj=C{ub#GeLekw)G7|S=n8PqqL*?zld z4C9|z+J8S|82&qDKN%)-2zNLscqbWiu&OiZT=?X?xw5OI%w>a~&3+hjNV{(vf9+{( z?l)0%jUl)ZyejVY`x$Fj@c8(jzQCkHAy(@f?Hj#2)QTL?qNO$8_{G#R=Y> ze@ro(91A$!ZnesjL!g_l^|i7JuKZ?pX=m(Ht`&?gpq24zG$g>%A?asD zJfWEn*h>PQ?XKCT=aMnAW?RXXj0&@xjflsW(;m-z-cI)$b>%k>TbKZx<~`=u^$8*% z44F^2ptCq7W-efI`ZM9Z_bE@0L#JKBe&?pc%vQm8J*?%UhgZC_d$3DDlI-f?{e9Ve zt11L7U)(Br8lIgzd+XV9tZ;G{N|OE;uIl3x(O;A&7?8})j9Q(zQ&O}UF#we<_Wu2Gx_F*f zpij|)qPIzo#Wr<7u=gO7@8MefzP>in**|RUR86})MU$EP(DpY7yJwu|sZhq%+re5v{4nG$hwwJ}n%dEwyt4uOQI~(s-7~T9ps&`S!!ha`@S?O2%tXVJ zz9pn?tRtbDHC9g7=H?U3H++2eozq$96$&HTB;eE% zGEwtZsM`u^B&PUPEw>iYyc}C_Ek5_bjaVw!y$RDt%m3xYq(b}yM||^)!pSJbrSqoA z4dtbg?WBI1Xza_egp8Ql{>^Li<@{%I{nz>G_Z$!kFqH%^B`>Uhp*S(@STv zn$#*^^h=nzBBhK8CD8{ze%6z`+)TR-4$X`#fU|wIA4ShxS@qTT-EVk(-$UQg8YJff zUZ|FKS@ot6TtDwOMJ{l&OpWBB7_QDbW_k-UbO~GQ1T$yzdNXOmR`Ead zP;`)q0S4^|UIBmdyU8&wKeaZu{NdU_A1IKV@b3XG^eqaD;}__lCj9BoZ)v8=bhT+< zh$q!I*!U;14lDQ_hv)Aj?ep_%uje8+IFY?=vP|X_qOL|CJ*A{Wbu#p zC<=d0(|C7}muMq*(AbKQ8nAz7tBaT*4MJh2uWx+pcmBD-tDUR~`&) zM}`2|_bsQ8`#!kRM4n-QP7cYZX9oXyG=z~ftf##!4?o|Crtcsc|-$uTvX# zUJWCm&jcvZ`=FAaZx1JUbQI^#gsn0k!{A1YVbFeGEs)+q@N)1O`FRCsY^Wx9o-^Cg+snf8vz#1w$^ z`y$tqW1*steyAUlz3($$gfg#h8I=`(!ep|Cj5o~z6w5%qauSN)XmC!r6 z@$sGQ=cn3hT=)O352y zxBdi)@IJ+tSBaNSYdN6cIIp_jS2El-0d(K_+yt$c4?u0{Py2UUTTRJNQ;{orzP=9s z=R^L#r~KLJwbMa|bhUon|3BdWoU`&X)ff{PoW+RjcD9@R6i{GXC=we*U^R*@ax#>f zJ?b@JiL280`Mo^0RO6seoPvK$k_JuIjuauPd@y|-O1B7=>}xB^3sporR5+#bPmBIz zA$Js&Lle~oiE!XX9--{phpp7EQQlYDZOEQ3q*K>#s499+?>19^5j31S1u`6tQST!u zPUxE}3SMXq4YR1ec&&znjZ&)o-s|mDLr2`3*#OBA{V9>3S9GX~d)ZF%)B%&KHfRxe zJ6PKHm!Y)%de?_jivjXNTunkU4bw)Bm%}_BxF@d zqs<1D^=-gV3WpeZBE-u)HXkPXFiHPf7}~(}bY!uUs8`Tja!W!#O(7ZwIin#f0UuXq zBbZ{JYFH#rK`Zc>*`<$?t@ZyLy3yT>yJiShwl%=+pF5gsyS`t2yaIr@?^llZwi<8Q z6f#eF^}5=5)q{WIVvA_W5`H(IHKxH9eI8x>u~hUduglDN{R7_#qF{25=6ltP=RM)c z%90JN{^aMm7nD8>voh)hovB?qCxOTSTkNz`b1EH*6sLtUXB?EunCIn)q|M}kOU4rD6fP^Ah$w^Bu4qX~iX==x-{O}TmT_o1%L)`1Sbk`p|S-=1|7WgOPSWRSEIM(u=cmLh_g9?dMiY^kVp>g1pWy>4fZ zNxqOqq%!)5t~%cwjYm5A9oGU4-aO3xm0hIRosijcPGMXhzN-BGe@Xv;$I6GrvNjlo zs_({)A(++g>|97DHdZv5IW)v$Iz;>l_)FwYCCB|P(ve{3l?$!EK4r#eZh3D4CGd-^ zQeJ#4zl!9?*kA9qV@hbWI)mg4Pf}^>so+*wuJ}MCw{Yk)WaKM<#s^$KSM`Xi?hv6j z`ICdpLxhE$+;BkfF$>nKF>xDAb001w3S*=#(lf7XwUGe;)IE-)`IkYqHmkPu)33ZS zG-Gu#l=BkHHw#4#8;TtCiQoesfz@#!9h^&rO1!o~+uTPzf<)(F*e7$G>3hjxYktRZ ztbZ7iAgS{)KB^8#u?^@Kd&baxI{t3!h^-7=T z{%4`y6s>R)Q0BMFg@Pu#zXQbZF%^%2NK*ADF;tB9g$iPe(>P>DF&2@h(p`D_i1MX$ zdbEAY;J&>hP4s+Fmw^GXJ}~eRyiEeU7C4Qs1^!)OKRx5pdUj>J96VU&Rr^nT*ny7^ zlEJX^@$+9Y5ztmo5&nKnBisw8@$OjE4w1!Lpoc2`dM^cgXdumdmjuO7=9q?Rt!@G_ zKoy*vb0@B*iqDNRQH}_3_zG)DJfcS*Zn^2icVN5roJ|H7C_rpCfZ|3Ni`_$zXBDC?ahFKBw$btnc;BJ>vM=-30WBOr%XOO% z3y(A~sx7iVwhv)97lyB)IM&+1fU+rc>^$b= zgiQBM#F;KtMrXGCzT)?MM8XK_A~iy!UpqG-4MT__C>U5g1UyzWq@erS<#hwf_Dph? ztnLaX)r^`_5Ij&f3M)i-v{$?VbmAqsqvO4qJcTK`bHwQ75#CwQ0Ye53sF8c+TCzz- zP3oqX+X8I6RvdWY@EXP_?2G$-i6D0psrf@ZH$}pEG)2S_)_laXgk*xg6B#rPSXWzf z>1?NF0GlZc#nU`A^a1%%NilSDg7U)^M4VK)a$dV-PJ2EklJW3 z@Y?x`_0}+sYRP&o%<XT3f@0`D(|fdQv4SId2TrbNf(6+>I4NW zAv}+ET`3;OO?nAKo($num_Dw~Db%_)Bx3Gr_IcA$Jp=t+2e9Xdvop>7l;iQH=m*oO zP_PfZprq8xyU#AcuiK3w`pthZ`ci6$(-&mX>gjT67^Gbg{fODrfwD!03-tQrJ4SxyxUYZu=?*J7kILK=D?^74so z5cArZ`?`FZKG39c`a1u`ARkk;V(F~{D)_n}yNUEE&!qf+F#dniJ(eOeSnUh4h7H^Q z!=3-R45OA8K9joOzAo<8!=DJ4hs#xTZs)nL?wd_vyyF^MOiXO-V}3wJUBq!fp@neJ zuo7)w2%35?xo~gy7;vlo3|~N_TW`Vag~9*`hhz{MR$LoKSg=IEKMCysq72(w>8Lo( zY_tpU{w5OlhKDPu`3(E$Elrx(VwLgE9$}_pCHvP|$>1+^5j=D2)~`Gvin8of0(C=? zMfjEQuA{3H`Kl#>DOEv>o7A-LM0o?ml5JJ7RN0uLjT$6bX^a4;KBstIyMWs@ z@AcRN)X6_K2`@=Tyr+R8$Q`G#DrIW=Qyl5>%zMtJQr%6=4+?sv32hfp6C1U`vBJuk zHiqYR`X-=@rfr@kQNf6`$h(EEV%QsQT=C$ds|}sD9@|Y(#tj=0eiI8bq1`t zoY=aD10Kl?U&q*Ry_fV9E|uH2e$`Ds@q2oFVB8i;L)*HylkKx!E}D1y?;XUJqFgq& z#&X1#t^8G?+vUpJ-<3D+$M$}{PNMJbdphZEum9{ixQD#wg|RC#p_O%cX()%>O-B+a zRa)~vp3k3V{NQj4c9~$A>lcoyB#x+cAApd#7#j*ah8*s z;F&{H#|qJt0S3)WHV)tR88EUScqAm}0387ykndM`MS1TNF`jHPf~}W*{XUanT5+O! z9solhQC;Zq8&9yrX1KT?w)4{qP>*BP9~wey`Pp^b!0Sy=7|55vjp+zOXQur3`>YDu z951og7}d7x<=DoHX7CwCxrnC3e-nW<65&2ie?0N{vcK_AdrwLGKKJ9O!m9gx zR~utU-0ZR=j*C-hi~DC?^qJ?P^8UQ@UF{ym>r6=g8)~>p&$3ff>v1Q80T`9An~7Rx z)(@0ow{r*Ye{;}wkPk*g{z#!I(1%#EtXgaEnvHh4t4mn07np0K5?E>fjHGZVRTQJk z_PH0)w{)z)yX!*gQo-J)KFEe8ldaJ`DM`88dS(11{}=_3dFQxh9ga5*#jctPji8vU zdnkou1Bn8XhWrO`Ubdb~>n>RjHBVMBs_x$-CgTVkxXK+o)+V!Hx()*tpAv*Ov%Er7 zJT?z##oKvmQw?Inj>Ec8^splNY+s!#n?n2^W#Ynkk!~?*U_(52)h(CrZ9j-{ z$7q5(+9kfHr-uliJ0eM#E?h6+UIXpF6kW#1&b1_{-yln@>E7RW{gMz>1=TG4D83T< zlF!NWr__$5Rxj4pw;-CH)F=K6a-Jcvt3zJ;_`maP{5JxUO?)?#dn!&ya=R1#KsKM& zLXDuzeH0kV7cSOwg^?IpD}OjI63sVJGBNuh9^NQqDF2-+ilTh@_Cd;X+^;m0Gnw~6 zGFzCOqzihI7s6{%U$$ZmJe!U6)PmjS}Gdc6UWASz5LsS;G8 z@9wvw?Fp}b6Qp2&Z6_Bj97T(W9rq=aLiZjpS|PxGiecvQ)^>c8{|-~xvqE;lRgVhu zEXM#;i2aC@^~@_eXZw-DIGpzlwD<`ZS7wtjX-G3?7M*}N5~hY?t&E_M&grj3tdL-P zy9~F5AQYz@r)lCxjc%0-$G_=`J#VjT-g(fJ*c}H}^k+l4UA|_o2+Ze)+4`Y^LYaAoh}n&KCIjYWNBMU?T<5|;L?RFOCkq6E#sD* zU(DuKO%&K$k1|0#Y!mZb41|O8bCpKYprtrlB$H3b$<=&xB{Vnt_G>EA&A zNXWJsvrdDJ*Dbu3d{sI6?(acw9Rj77W&x|T{yS;+G0kL;8sLJ&WEHBtu2l8OGV?P3 z#g&I@;Z2m|22zY{G7e_m?A76QyzLYkS{W(kkysR4l@_s2;*y$`j2^y^T&As4Zx;TT znjJhO60he=)cHPkkw9dD_l#``tWdRbM+6cdmyGUKH=F&Slxhibr;L@?b!rBn=1YGh zJlyCmSu!6e7G@;(bH>slJ?FQWXLq0DC0hj+-gPSMR2s|Q>Kh*kHTe8)>uy1}Lk0SdI zO+j`5Z@X+}+>GM-e9vO5DRJ4Ud2--XdP6AbZ?^jMpHI-8IA70;ED(eWi2eR_{di6> z9*Kzma&pV!tb~*rA?L@`%AJjQT4nHwkn_G-L@4cUgGs^%J!G|cT;h4gJ20_}Mys*yf-QmHD)*QMBkCWAFa{ zD-imy0p_A93Yks@&Y+ZT#5J}Z!TS4F+cwX>hP2hP^eo~ zI>kV;c@Ukga;EXkYprYXT)`Qoa-5D{V$E@o0bj{_&Mjx#%eZa7cG?9@=tu5fAA)pB z&&2x_bV&aEGb`*pR)Nz_AW8Dp(=SkcHFwi?E%%q-{;=x*3XkG;uQqnL(|7x$zpDrr z^PgUxL&MHaa`)Mxqrzb}(rG4$YX*BO5?cG??82;Gh8(hu9c210dDhsLN0Cse+o;#*!A(()~ z!OxYv-Cc1H;3*oY;X+S{L4RxputUkMF1a znEJ}ZY)g!m`A|M9Q1bvUC`#h4EbwKm^71mq#l~tGe=(+H$I$?}LPa4NQ?(iqUemvAh-GB2_s0lJy_byk#q5GeJF@L5CyuD)b6h9AN zrD80560rO{7pnOJ?^0c6SA-*Yq)Y6yqGNEM>c$tTkvw;u8WiTW`jT+QhtZqz^QYL9 zCMuNl(GD=_7F`=|Zj#|0==+iUq)BL2H-_%(_Y3k-SNLD!-52j=Uw;pbN)%Lbrg@}r z!bI|~M9YzgXmAwCjm6y4XU5s(0on}=h}_n3?;}I7e+~K0J=a51RE>OHqlAICp@i3C z&It#6$Aw+doW-1dvs!X?x)+|o&-7fS-6S!~fP^LWnu+B=?iH|Om6gy@0ZIY8oesCX z{^$J^)apN5mh!d96fx>6&XG4ZTu+>LA7rGqkJ^BBWelOyKL}rberBSyIho6I7nL~_ z^5xdcF;-LzlMS!=dz(%!!4=*a{dWsok{a%@c$C*ZmY-@lm;JM~c^S2ncd8??fD3WG?i{Xm;UcVNzvFJk zX9fN1VceAxc~s-p3Kg+u(*U+g@gw1G#~u-J!8HAF$r zTADNpro7Fox4RvtGXbGZj4v6SgL~vjRI7QN1KK>+j5-hNWEhW8WzG z`~Jk+!_jpj14@I z_pHy@8c7nL^|$9(@?U;n=7psm_{^}v+22Hco`PTIsaAI5QiWiYjiKnN6O#l~cT z-ENH`S2(6;zF_&g$N7H|R_=SG)x`fU`S`D$V78E_i)IJN@#02y>fMfi^Og)!BWkWQ zWmL*D8_B|smylwtz)&ahRYuF%zt@d%@8V=mv89A7uTarUFvv!a6Oc3yykr9` z;qx6=V`E%sajxAeWnSpqx5N+rZzQ;w!wXM;?%{%8?Y?g!mqM}DIivnuCh8$(O$+ln)*3&b(qjRhm-a^>dAir_o#+lgHO24DwVs8`pV7AYB z`Q;4lztjc7{_M~z-&~7HvS%^x81Uw#0F7!;5BeC1lXL99##M6~S5F{& zHntgy^bx0u6SemPIrFYXUrC_W(l3dC55er;d0NNcC^znXEE1rkP?l~9%@THH+QRNP zU}%OqeoBNhI)6xbw*Ua9lM)cGSG%1L;E`$~zuPAiENrJ>H+^P|>&N_LS7cM>V@u?G zp6*`70y9$%DWnUJx##m`w zrR9_AmXd>ie)_CGWN3SeSqxgb)fN1Xl3@t8Y~ptPDtCV%G>S4d`mKgOMgamgCoHIO z6>}5?a70cphGYI*`2jZCnJs@I4PhHR)dOF&;~i=Nw+&ZmYri|bAtdcsOTVQ?_SjQF zV6Tp6|89`v-ko@wN&LC#*tlJ5>iLfUbWka${_nD45b*F*%J0?-{9d%~AK=#h!e=PC z1r}e(^|V&s7k9v9_7Del++I)1am5Yc40WP0w-8ovRaGO|Sby2+E6>oP=j?%;wh?$A zHkK3DrC`P4XPI>5%)F#b+d;$k<6B_78qAulOhc*WD*!hP&t!+sAAOI@KvvddL`gqv zJ61;Up@kbhsb?>#rcw&{qC6_?ctA_XC`^Ucj(c`j1Y-mSCS{|!$jmCnRt&EKH8IeG zxRW)Vt|^)aK_fiMk28QbwMN38U)Qlsw86XVL)w}4hgB?<9T2p_$aTp-pMWUdquK3) zrc>UvB#P4=LgvY*JrcnR`wS*kW=8!wBzhN<8Q0GWdeiHBwj>dVl}%dJf@0|}M{6h7 zUiJ<_&~~Q#VeXrG4gXcK=7{;+0v_Osgc-JT>Gvo)E>^LTA%eCdmJL@% zGxEGVEc1QIcJnWhX?S{ZW?27_Jwx$tOwF3QZf1wAYr%nT^@Y9-)8wvv&>1hK z3=cuBW(mqEPEE<~o-uoD(M{11h*Jlx?cCR}Ljo2bSz0s_34rtNCpBkh!Iz?+vjeSg z$<~Xcsb0+V{?hDl9ivdDcrolR{fXmYxiDnFh0q=+EBr039&Xo(z*PluTPeGyk zXZR0Ds@a-^87YFov3$*{COc`pa?#LwjCQIQ@5O7`k&F45Dxy!Y5j@`#(!0K96#9+& z$GM(G?-gZ^mKf?h>qy~^;Uj(HiyyeNL8^g7o;O!0DFV;&OBu7FQ*g%7jQ&;G6xx&` zF<6Affa~*mA?Kr1UzMSg@MoPV;uxlBq+*|o9)EykQzkoUD@g6}Gb+zqn0_?PNax^{Zu^)Kr5S1b_jm^A#tk&!p0{2NHR_dLK0fsk!<~v!7On+RD8kxg{MFq zFUU-T=wtwhmSPHezNTn$Y0G3clj7jJM1YdfX7dmY@q}F$p0eIZ{;Nt@!gzK?J@1Qo z6!%YHA+tI?CNJML99M0gM&(ZFg6{-6>TM~1dGYA=*-|BMPyNPCr|!yqsq}?EbO^>t z7y6ZdsLUHzU4)t+6(woiWC6!sZ%M^)QjU4SD8nq)*>uNZFDe+8<#8B_RWs2SyJd-r z9-42UHb?FFr)Nt}NMaj;N;JW3>lbs|l)PC|(h+7S0qR%F1(ZjgLqlIk%!kbPs z!Wxom73h5O6);Y3EP`6yFnUjJ+bfqiKirsc$vh#s(cCK}c)xnu669s+tYPiD-!qey z7Bq69y-~iQo|Oad3Xj790q_CN)$G?leCSlBtOF%xviz;(C2I#C#&33xvl49`y}H~T zzvutgaQ7q<<*u&$zks-})>??ILkn~7dm;Hdq7#e3Qw}@qMSj{}ftt`EwhD}pNX}kI zDj&jMK8s{XA+t1+4V#_0);rPCnHUKKojkAT=K_c43aQ(SP&K^-#g+vse~~`7j1Lo( zBqHKS^j}Z2=%*0Ge)~Jv&brIO4)oJa(|43x%ad2UI<36dS5u#7@`=-qIk1MOo?pIx%C zUwCU{A5nzx)(Wg`vHl7E?#cdP8~mht0y>ej-J0TDX~rx~yE7&nL89+K%Nq;9R9M0Q zg}jIqAqbgTb}v7T9oQYcK;BqJDLFw#tP!7Y#nN%P%h=L*X47_-2D>=jTAyhDGLN=E zt9B|TLE;~Hr|KtM6=?g36hizwBp6r~T^ypFu#<|R`XXthC9VYC7;Dg->CsE?$8pWu zx#7=OY$tiUM%hxrEXqzQ`TK{Gfz3)M(EB;XdoVyT&rC@DXev!*skCC(i8Ow+hYK1=VCT$Di@I=wj@!uS|`)78koyn48{O{|< z8&2-e_latm5=|n^+NKv$hq)B_AzzC|%$71*oZl4wLeH`w-+!J}m_$Q0YQ16?+(wnq z>ls#>y2AU7C_YtFZAbGqKK4GVq2pV1n`L2o&h#d^kISd$Qm>d;jqmhbOM)JyfpD^B?-50t_jk=?z|b>1#2O_eg)oJKA~=+}sEx3nj%Vm2*aSm|=BO93 z*9UZY2!uXd9aChVZyn!FRTAJH4Wh(0ov8)3Y)3n;`kk=&SvMb}dd8S>3Peg>{L#b} zc3h_cE6@ijil*lFUo4tE8e7oGHC?MMa<#vg;(dTYcl|pPfp-DQ=IOR3c=l62E}+%< zZlD~|%T9#1GvhxV_*gV;%kiqcx@7xhd5B)wm8I$+SUw8Oae29@l^2|8D zW6+mHY&-!x;Ov`ce!MbCnNFY`C5{s6v$-LD3Q%L&8rpqWk`OOrGK$uizm53qGh2vj zM(NqGTo@dgS=*V<#YeNWp-cTE0t?9{i3W=&wv(eW9>rHra5S&uK?7c~`RPBnW$XAB zQ3*OXbq!9rBBp`hLyw2wo>99w8H9RYlqXOk;*1~f?W&`) zWtM{_*m?Y%7(d{oD(+4|J~fMPQX>~S5?fFMg~*=iiX-*xy5=ChaK&_u5-L{+R4((3 z+^-M1HjOUj4^|6fJeNigWw8$et z{E;^v*0A@ULYK_A;i%{>jK=Ww(ViC!LY#JdW%(@^mm)z}ta`szw*4?K>5wf9ULNTM z10Bpb_8VF^K0mBo3$-GktAl5Vf2s1ECerHYe^D^uoc4Ojr{-+Govo=~o!6mw4Zu=n zye2JKBH=~xpi6#iRAAK7fv~EiCDid&oZOA3#VD<&r%0tsaL!5oWVrVX=d#YmtZs1T zVz@kM+pTGy%@7rs70S3Vuc>Fu?UT5QNi6FZgV=CT$%ye-noQ8*el}yY%>@sj27ef5 zgWG>iM&cP(yx5e$7w%COLb4b^#FeF_O4tYbhg-I(Us=zZ6IsF!e{(Ij!F#eH64yl8 zJX^n=H|)j+K70!QkW#Hkjacz|SYCYTw?$Sb^mJ8j2ijbX>N&a_+Z69E(c(JEO&SV? zp15sdh0v_F-Dgjznv%5P+N8C&5q~_N> zA7_ZHQufk4E)7<)j|MdIKB0)^^SRxSDV1v5F!t;h6gpOR``<2;R{LtA%De2pwXF^PBn_|wTH))cpPo-W zY5@J;cV zFnKUzvePD^-p+9*k^X|&K+{hzYoX{&$sq#uAIKB5F54@Ih zrO*RD++;Vs$T%*!JN41S(xgPM6JQIb*fkO)n{-pzZ1&sqU4+0{o;pVhfCcG`^ElUO|+Yi8F1wtRx0(8Eee^@KO zNTL|SDDMe)=b|O)^i2Jl$`p&B&0OS#j;0#Q_?Yyg2H^XU75}CEs{0H~S@I4Uy&b3f z&Nz<*beq(IW;Rm{98i{jFonQiP{L|?|6CfK?*s4b%xKe)MK}FBE?=|sNk1|=wdr0e z`}-irsT4^|Is5SKQ<*|3#9Y`oFQ2FDUftlGHXUtoLtuU7-sSfHCCwamJT{2@2XqFg zuZ8Tc!mU|YKql0y%#SOvrF4|uUaECsMpqTM9yl<5f|nk+n?C}d^NfbMWnuVQU`7z% zZQ{+4UzyP<$@p0=Q($^?s2%Rz3Ol7e`wA=j`L=A+Iv@5d2gZhJ7yc(}$RUuTld5~g z*-e|qYS8nn?M0)yUm)})7oD%{0MGP9qhDPpT;aAKSz*czyYCg#`oEUA$3T|WenVhJ z{^JNdb&+i1F>v$M5#F_^03Nm=jsDIdL@AbAoh-oYkVD_NUviphfqWhLv@=_m4J&k< zckqQgd5^^RFC|0;Md*$Ofg;=z*m7EQQ;~CHF5ZeF)TVk+Cc868Sww z9KZ+VPK&|mEkEjVu@%LeW+m^hX>)4ivmkBOEHZtOWoJI4h)_})(u1#h7ayIs$wwY! zFO+EdLlcp)*KbulKGESF?M|&i&DW60lDD$S=<>a`q3!T~j5tF{H0HL$y`urshWo=;&&;lhP9;s)V-+}8Gl5bT+N$%%d>rJ`yc7M^J!Umg`KbnSMHA&GCH?&Tt}O) zjx!XjDlfy%Q|sdw9PJ-cnf`mivZtDtWw>d-9*kZDa)W;kXe*qU>Of-c12 z;o-4swB&GU8LE~p0Q7KevM5YnhknEYjqs&(l5U2;C;98D476WRBD#*e5XxlSAiN}T zo^7IVcn9zx9>Cj0^W0xzbx?i0UurG}^>FBEY1fhViB*kq|I_hGGQZJ=;wz5IL*sEV z*VpI*ClOETFbHfH($KokvRb$7ss{J2tXNXGW7Rf4Ij=X>XXGqjup#95UtIlVSkzy* z1q=_JG9aBpDczlew35;yND3m|%?#2xpduhG9TI|ccXvv6cMUKM59gfseg67<-Pc_6 zW&ifx>t6R->yA)h!Pcyrwb3tMLT-SNSz_k`EG|m@+}v%KtJ`7J%dlQ*sWCElz*pUV>O}%m=%S{wTzcP79(h3_j-|OZoKuuQu-5$o}sqaD`DDy4-JUDdpMl_x^F>8a;fX&S**# z^Kn;Amv(oSTp{d+5*4h1X1hJrz-EyMCZl;f zz!;h;;30)oMie5tOsc@0EKdi&n-bgEXHH`oAfX(VC| zxTS_E1ujZGBk3qB@{=jfjV|)7&$_3aCmj~5563jT;8ztRers1%8h(hYM;z9N~T;pI7lBKjT?dtTJ zp^MfBq9s=yQUF-FOW&TeMlU)noKgKjC+GU-$>8`c6bE(V*C)Yz-u=20AXY|Lg+pOV6|vpF|ExDZP{t|E?(>_->aP;dya=K7UVTYR_yI z6Gr!eGya3ESl2fVb0%^;%SX5%bUUd8KSvA_gO+~I9*R2h693iRa`^H2`j$LD<=B%NZZ>D7dF8mRK}gv|Nv>1axJB^lYiS?*s>&Uo~GZu+#E8?SRA%1Z|6KZ3t==JU>v~j5?RJ z2@wePD0OQ-U<+;+LOLlJ%|RYF&*mq<_b=yJ{I|5LHQ*b?)kg!f5$5LZcM@K^IuMREWg|@*Z3XC*V-?L8% zhd}BhEv$S4)t7j~2F@5Hdjj+pIbcK|$RGOlsQo)&16JHxg_c^*nYpcu#$KUWKXraH zPD(-alDOg>22N|4RQ<({g2=-L9%Kr+^tULyHi@LQMy2T=47Ed2yNV$a(AL*C#$h3P zfdkszk^(WoXsT^KY|Xv#8~FBuqTR-OPuJ5+@RsThm4IT?m#_r?$*D)BGsvlNgVs7x zjkwfRZQHOJ{}t_;&9g5PqIOIlWFFheVs6oTB;OGoM?P~~y%Ni9V$oTCI3$?Gg?>*Y z^*PByrnco87PTQ3zTvpRHXU5kvIL%niNI~0Z2Js^ue8VA7nAdY)lcuX-#M|nMpRNp zNZedXQNiq4hS40Jd|h3repFwYL|slFT0;O$S#|)C%~tc{+4a`5N+W>cOFyw%cqO^H4`_- zS@SA(a{ry-N0rq}jFZLJ|J0}4R2b@zT~F!T(gC`w$FYL-N3ynmD*1tRqP($qp=J#O zXtg%maZwZe1n8@+8=TX%J(G__5yg>N+P00DhYDk_mHpGF(-dP*SX54!D#e03p#(HU z#{p;k<`yTrZa_*VWtvq@wI`zPCShq*et$w2)5?8vimMN6Ij}z1sgop!&b~lXb|!kB zeHpJAg{*pCG01R^o-$?pdFf!{-sigbx|Se`eFKT9(;QTZfZJj zX-tfmcKAWzTZQstHQfXpOYaBYyOTa`PeJX)41c*H-2}cNGM-*2t1Ji|&PHuN@xyJknTIWRLr9by%gRxsAhXxs?AEqt_9DUZdF7@x)Z$^?U z$%6hqre5J3(BtBNv=C0OS)J~MMEq^=;~XNbwjnsTOjC9F?f^j?82uehop0Yjp zHLl@_uCPSYxEW`+0k8!0@C}P~4xqXSybAizid%-iVA{#Po7&y?>aGCwRd{9DLFDNu zkU$|O%fqN=CGH5F`a|iO|0k8oNOEQM46|*?H&p2ONT?iJN#~iVUIIyLT#g`Ip!Fpl z6c?bmTUg_xw6WAmtjJkoESj8Qj2{)X1hP6^Kh^M=ywZi-03CsM1p{8om#|(1K_VJ7 zEA(g9M@%oVn)oCXjpD!9?s!65v7Fvf z)?4O#trK~(A9kyhe$;q#N!V<1cKfT9_*y)Cd*(AX{*XYlUXDc|hL-m!_nF|w4JVl}$Qq*YHvOnxwoq=36nMJl_+-l4xSDw&) z$aq;4pbV+gzc2G!Ae|QgpBFy9%F|zJV6cbuoNEI}0sJ!#F% zl8%yZI3yoDk$b*1`sv8i!-M2n%1rEv6YIh`JU@d@i~G+XVo?o1)hRfjc z?TPlOKy+xw3ar%#_fi6Aab|L1ZqbjG*an<4IB8%#l9sDH(L<_UF9Rc|e8bM=$L#|M zkiT_IE45a#MQVG&B?Mm-=sxt}HXs&>eDe{8 zQ$b!&Mfc7Oe_H_ajRD>BGASoXOh?4))ZyChCW153ui73lo!%lT0l8SJij(wh2mb6@ zfzrpPWuoqywF4Q~Vv@A}3c9W?^`3-=!{KT)aDq}hpqb=z=tvNxfVm`c&B{gpGwS1= ziWYXHh=TGB>yzxLoe`rsIu3G_g^{P>U>wc@PN#kl&+ozKf_i&V3U(KUnG?*4dOdNO zZNl82$vYHTM$$>`V|y55;`ch`43Fa&giHQO zN8rF>Kt7W1eH9UPdp0n-n>AxWE_eTh8FRD!a$SKie1|>IG0?U>qZxA54{5qb><2u< z?^0&Toai=adZ^N}M1iO2<(#a(K$%?g9(%@U9O-;hVL@E)Cp|J#*7(34ig|v|nHj}( zQ`vad2V0PNiR3%Mdg!%Q^Dz4~J5qr;_EkjtLu_R^K}}28PELVZ7jX?{Vg>%OKz+@G*w5@LNov*c(w1uu51w= zvYC}~eQ)!JhS~h2dzGBUs=wz%4NjRDB(ci;J%XXjT5Sydvvob;Q;2ffyBUq)RilCV zGXLZQ29qGsD;)F$tlN@bCnH|p6!oq|D2F7wR13zaME~^pEymY1lt^6TLS;S;B14gG zs&roLccQ2O^xKplLz413tb2r^Y1kh<{QRnX+e>|OnV+#Xj0mwdLpSaP%hj3XQ_-2StLhr1bP zW2YM4lJ1Xty#JFfAQw5M_ZUsNcKE3Rv_`gpU`2PVmR;F?7tMGRaq=rvuj}gQ;WqHF zp=DR7gsE~Fw5aHRMFB0@1`!Ni_tvqBErBSopp5Y3>Kmjo)P7J`j;1xD&QE>`jfz}G5Zi@OEzZ3$7wc;Jhs(BE`g10T=k z#GhgDebF8fL8D3Z&aT;Hp#5r0*>DrTeNC2o+5wxnA8lD)I_s`EH=)KjZN;FWBYlW0 z(};w$qd}yP-kg?I*E1t6j)P>LMsn$ukmKi#2iL4 zehHB>Zx5QO<)R4R=#AU7ST;H*sRt2zOu+mDe(p)) zeoYd&-{5fsBla@Zi-0;gTkS@HSX6k*Ql6i^-x3MkzWyr9c;qy@rnEfR}RLZS;t-qEGAwy`G* zTmV;ceMCJTkiV@Y0)tM)F0F$pG8JRiXJ}NbdX%1Kd{<5J$J5xzMf)S_=neUm_?W1< zrT$YkC_CFTU0m!YG-cW8(AG-zpB97H$)g6@{U6+YlBu_H;i_TcvQ3KkAaFC@{>K zHNTV}7ZZgdj9KzB=y3qqj#-+A+)wOk^J{=kN3R%XSEfe5A(F=3UU{c&86_DQpSUN+ z=_c;62T_M&XYv5{)iI!H9b1nBNK+THJ)W(gJRfvVw)nk@_?iz6XxQSB)PF#i7ymir zaNv{pt(ePUIz-7>km?(OP`c5?%4!i-Juh{n)HmO}K`21>z-yXv#jmG9vFW^#Sh>WB znO%cqF4%M3^N6v!44z)<>us7{BzpKWy5-W}(+;xz>_NnY{LH-2Y5JO_?(9CIGVGLW zC^z?zK;LB368AT)hUI&`j=+6E#jf}I*U84&{_i}0>%bGOTb0QKf+8f<3;R|~R*6Uo zhqvegawdiLR?17zC9vr;jBX{=3X`>$O65lEzu^S?1#J5WT+#V%qR}U&W_pWn7})#X z0?TivDzfP-)|>8ndOS^T6CG|K4+jlb{nc52A5^S()YFlO>%X;0D{aNCDke_n){8ft zERAed;>&c#M&)1xv_19Cten(REHg?V)W=l@Bg2kHbdPbYHn`o2LIUv9_ox3nef6f`cIZQhANsE;h85~26U}DnkGF2;0nb&%i!sGyGc^BiirVNn7I#_-y*=y8PZ zA6ygimQRCQ<*B|+C;{wO1s@o@TY>qt0CJf=6Q$dWOWP!;OfcCH{Z>4RbnVWFPp_wx zC4B;9Et+t)+*CmK&3Mmqvp&dG6^uBwoRX#zh*i}YyVyjZPj?go-VvZ0z zge&%|T94Mk)-o}6DzJy=Eo(bKzn@YE?%3>r$K#)vB2aqj!!|8_+vZe`0`@cRg36F4 z(6N8+YOG?^_4y1eTeP8u|Go@v^+$5#@Y*C`=CH>9ZM1u{7)k9$yB^B2%i{>HEfui= z4mZ~m!J3ny7s;4KRIk;bG&)a67R5H&>7xv88PJD~h<=zQ;==`TJ-DfzPI>M6SgOo> z@@t>+oK1m39cx!=00u!x>VmvS?Dzpp(&kd-u9$qpFtm}9npP_(TKEuRBj4qXo>3nd zO{_qY{NaT!O{gB;!}vf+MsUZ9&jMD4WU#ZO3bS>2NAz|10M8=w!sPzbp)<%oR}E{a zY}Jr}<~e9obko?}`P8){dk^-*M|hOnvZB8-`fWAuDsAX!Z$-uoeD;vkqwKL`LCT@( z7m(Y0t{DFmyc0`L^Gc?I>024b0^AkKEKyOmafa>7eQ^>xgIK#-f7lr^BhvJ@zC?7q z|3u_+Y|=vX^>qE-d1!FiKQ=RauVOp!!X7;Y-u0(ECPB^cYxL_n#P>A?vYcJoLhl~~ z^_^)7#bn%Kb_4@yBj}G{j5M|SEW^#p4V40mcHfqg;Zf>TSccQPU#~0U;_mRY2m;1; zapt9R4>t&<{(60LseA6G?zAEwOZVVE3a%Tn%S^^8pKgIL9Vx*ys>zoxLdl!u-0%MJ z>tMl9?=_&3Ug^35e+l4qR?3X;BS%`!ujU_&qd$}aCoqs5z_@9_fetpq_Rc_kzt-Ya zQcTD2(hiH8h{xmmYaNP?xbOoydPNZ+kXH?aO z2UvOk4M4F)Q-m5>;j~5TT(v3(IO33u)@fc764YyMWQ?0zqfHv#M2TS&W#14xo{fCQ ztu&u;TR$>S=Q+i+y7r5E?(@(9cdV>S3sWnG{70t(BV2{PR?BCqk_#AHU#@d;f)oU+ z7T8SUyf?5u!qX^lPQp-=IWo(f(J%D$M2FbN5KHpcSJ23T&$)$SXz6B_6glz5pkpq zssUD>@LAb^#R^}3oJ}m6^fTlt9Dw1+%f`!3jvYi(PN+?`7Rogd0;6|!#$~YOPHI(F z_5-w%EcA4SVKmV{Yx={aHrGoIFn7b`Y^-Rv=5oU#aG8J+hSqr;n3?(2U&;n_pF$6gB?(NV0%+jf6vsZNqtxC(j+0W5bt6W?MY_omM6dU$@1WjQfM1ABnqg9Ky3vb5JgkUseQqlOnyg;RD`keDBDMBk() z%8`YjZQP{dp-1Gt_o{T+3oK;1IT_TXcyx;daFX${Xw0?mSncHN{t0EwOVu-cMR6xb zxQ?A0V1V}$BXg^dAsxFdO`MnEU|@!azlr4Vt*}s;x8eC=It2V{6Dst}W^exx%0y4N zFKHVpZt3QD3zL;V%vsMqM6P^yyPdCKjS7#yM$j}3O4IK z(iE*&L638jt}esWSsW#Oug3S^T?&|-XSC-3!>5tgqatIsWw+-L|1qj7jQam0Jh*7#bLNH4`ay9E9y1<2SnFZT zHTz-Ao}ECIqi9f^AMXJu8kD{g_RMp^aKzKWdM%8@2jM`E;wkKOg8*OJ%vV0lR_3uj zQa0eb44v|L4v1jKI8xb3eqs1mghM`0w<^7Z_@3B8`7i=;7iDm6OT|j_L#folEG0)( zv%xT;vW-*{JaN>5HGM!StPu;%O-1W@R`rPJe}dN%R04rg7S)ry!k+ZRlO&4vm_{*NmdL36-V=w5YzgPXocDWasT)Lr3um&fF2cSr zPkjDan@w3`@44s=gvhvH1!#T(eO|$0hQD};7)5`m>MK-Frcyc0*J?b+f5Bjg(h#HF8YTS?7pm z5?13ZxzJ%e+E6O|JX6=xB5GG2hS&JU009O_q1pt@TT0+0{9y@j!* z&g!xq;<#Ui3t(kKeQGZTU*oj5J*a7k;WkQ}krC)`A;%0oRE7z_gOXuT z@p92%4da}i@0BSnCs^tIgg2uzEjZETCmOvCCmS;2A|FxmaSK(V#_^T5EG zAZ^)T>eI|u@4Tosk3dEx$H0lRj+MTQ>8w_Kd}8>ySl4!&tBk@S#Mi~o?XdVU@6a*1 z&;K8Y->wB+7B@Ed`d#gBB1Y@~l+lV_Jg|9UklpveERryJzVgT{Lkg+dq9FD=D;SlQ zO(vEtLBZ7vV&X5X2*p%IJyF|Ep9TH+ADyZ&`_;*`~g zF(VZI{e}2jtY2Yl-!5BYg)*IF^l@55X~U0Rd8c4K$47Cx>EM}f-mrx%UyXsTMGb}< z3MdK=CYA??H}Rj3VYiXmvSd_5<0vhX4pn`Ztz37Cs4R0IaYNr2WA%EllUPZQkla;^ zAA>&v6rzatcAdLvK^OxGB-BfyoSW-w2a7ZeJFcs#1Qyexsk#D`pD%ciLZ2s&slkU7 zvs8iFo02IbNxYL~zjMPeu-CmFaFbw<#T&Tlf7A=qg`-X8w}V+8%<&anG!nCqp;CU+ zZOevyg2lBH@dQCLam+wcDBqWimVnnOA?+>m`{6GtOkvG)QQ}!o%46rj`;_>|K`gDS zZxUzS{MP4@KiZXoNA`~v?y?_N2CuRpYf8pah3$M)Ck>MBi813zP*0Is)8_%^b?OG(!2mMJth>0__3t?O4qiK5Nhnk~)~kZ$XZ!B&LcN+`gU)a(z-k5OSn zlAS>bjU7Us>k5j0h&)XaofpWDV3CkdYXc?-tQroGFA}oXA+!JsOYHt0aGoYrA%%{Q z8mZX1u@?MPQte!@)#H-KyP)v582(n z^Q7t8-GZ%cxw!u-xWoJNyEi>*dDcMaA6W~|9lIt0KHSgX`%^ybOv=0*HEetVv0xUu z!&;V~U!M!TEIU7N8=oC=q*%**P`*Bf<|roV%IK{6!L^vS$n71bv)$q;cf#gkz3-B;gf zBIhK3tHiYn7AGT1k@QlbqdJ-Ad{VBi;Z1ThmvQufctNm4*=eBJ zRt8*Pq}c?Fkm0`_AmeOh#rIobG<9-&J^MP9qGGkAn4po+bZH_ZYeK!m=6&C;)OMfT zV3XHtI`0EMhowXMZ96pK%Oc|uDj7pl5lU2!L?8fzTeTrEOCZ5Gn(}%2&e%==m6Xeq?BGDBI7l}t znpdxGfb#)UaPEmx8hl7H2PKRMj{Qz@{*y1VTqdM*{5~g!&C6*xZFev%*^iWvVh?1N zojyS+fl4crUS&m_XxjQ%)4vuj82$m7emxT&1;!Ua+5Sc4oxSV3S$1+iQaLX$LYL;h zJ_Fvqdx!kI-MmJ0hhqPC)ZGeGHnipLrdQ{<=d3c2 zBjq&cMoF75$9YF;#PPSvOYo}%e`>|L#FKKI@YbKnkfL!ASco-#kGII|Vb&kPL+Phf zN@TZ6+R_5_SRFi}d$QzpRvw3gSu8<&%J75?Nq2>kX!=1r$f8$CThtFzQ889jVMwDB z^_wrM->@s#<_-;VHeod?rcTGaccVb~^1aiybiVRL07%XB@;P=iLF)5V0z+UY9WN<; zrUBEgL8>?%XYlQW*}W-0<7eH5&XA!gY&!0m<1`Nl^G$?l*j1suqG&nE=}eSy&?<@< zLDCOROGe71_q5Sz3W_-`TOKYX=XwACEP(TfJ-I~*d+#AMJj&$&x`U*%-b3sF7evYIMA7AdQ+0j ziZ$nm$M^}h>oupv){}$P>_`j6ox9CEb&(g=nt+KAI3P4Y5;I(?T@6X8MvY3Dj&0Vs zd|ON-R!lHZjCD6&MTLbX{nSPa4%!JBu}lOXog>^~O* zq%7}m^_xyZ!0%%I$!b_(%4#iy$&Z!(?Rkchiu&JPoE}5grj~1I9Ula{IWsKpg51G^ zRp%va+jca#F1)pZeXqx9REe-rlH|=g(%0)meaj18GyRZkEZ)8#(0aq0DSCWX&M`D= zP;}5BjGkG&7e-!H@p)O4ID+6iiD*w$5I6$c6`!#qud+daLuS_w#{Q_u-HCBc(BSJw zw3pp39G-D-2kovHI(_^hF7 z77spQa=gOwyQlPF33Ii_d)Tm+)TT*A3*JVNmf!>$pnEK3EVe+f9>!TjQO62uUE2UZ z48+0g)!=h6&~+p1VUPuKO1*@jF1yK0{m0VYidH7`z)?=;HPm4KAJWP}6_I?{(r7sU z3454JNCc$H1A20VD3n$7+ZE@)a#LaVopM3ncDp3__%>7K1PIa% zIx^9uFOjO`b_79=&1hc83G$xzYSZU}PdRn04s5#Utlr-(8Xl$*Qtqh_O?V0u@*Sax z?POnl)*-M{qJ9uE=#4PZOEjRjTzJ9H;1nj|Y2dkk7;uk*2lpBArblu{LM;hvMMK`- zkXR91GNB3?D_K7erfn#93w`l{vTZ1JS2uI5opNm?8{nHh69P~?fAeC_IqPIp&?nNzycQS%0e0MM(H6GL$5kxDT zGq6<|{)@BmMyX;?K`dG+<`wSmNmePx~2u^cr~p$C!+>h9>ZxP$!xTNoywV?=^BQCC=eM99(4(R$O~p zTg5h!GqxKmYA47lbrGwh{VgDlI;zplGOnnH$Y4d^iEt}$zN&*Ab3=7J_>&ygIg43J z7qBo0LPPP%1MQ$fqfx7E`zBS2kqy;2J6#|{P&0^+5-Jcr(EEhWG?%Rs=%@-zq!)N8 zOV~OpeE3)z2pOBpbSsRnZtqxcddbFz=Rp0Z_52B5;{6JEylo- zgD}%gt}N#_%eundON`=p7M094sO+vBhB15)Qm(AlNE1KUDmq)4WDlg_LrLKj?-Tnx zjQlT;G{DWq;rIae+)?vB-74lA+2=N0ep-m+IHT|nKI7dq`hWUMv zig`Px13;edI%>Zht(UKK1h7fp7feWH`+?M~Qtymsm9v;cXZviKW9{kOYNnlYoZp)H z()!JlU?_vsWnC&pW`MJ>sK--m>Y;J0;Dspqj+ZH-L))yZ;`>S~{IF`*6Cj=3!*>b6 zura*x21+13oWb(qY5?X9&9QD(r<^oRkGtTcHMyeMt zKkGN2c0K66{Qq1K*)k8r^uXw0!XM3AaOuV55oH8V_vX`n+W_J7qbqVze|`0qb}}Zt zz0AXZwz^UqCwsAmRwkG3bLXOzJk*?B=MiutPZ8gG;3#8KpUK&i` z4O@+bew0bCc*BwWS%s9IVRfXcqB1xo7!2wAYB0N(5vc$BX|-*%b-Tf;(N($jynyuj z%Muw$I3sT{HZ;P9At@5aQ9iUHo%Ata6owbT6zvfe-SBm&1pg@zX^JXVF&Xs;H+WXD zBLSgmTsGxNIGJ%Px`(`qE?cmw@}iNckPkCGl<)Fy>4-kz0B)bYJJ?=sIpLcJyckeQ zXV>uhH4_46v()Qnr`rPGyeV4b!Jp9)cW9Fko^&SgfT-0&=8a%Fdm*B-+cR%JiDhKD zaab*3$V$goQvW&u=HJJLfvUYA&2IDD{`*nV4|gW4oyflv*H;2xXFgE>yZ^O2q@wp- z%dTC=cO{RGG(NnWCBpS0tOoj|5VL>{sUGQd?mNUP6swT}wEM8$z@Ay51?@h@5QSQ{ zW3wU4pK}_Nn-%1nRDIVxD5#r#imEu9@H0&)qWVt)sCw`jWODY+f#WQP%L&Zs5-1_) z+Pt>Hq)*P_&-OH<|Cx-rXwQP82~pAaKk-2aN>WIoM`78%O>Meo{Julq@5aqnsm9hx z0+60;ucz8bioV3`Hhm2` z*7|1nF~{CPXnq#l-D4TsA$3Mm1f;wFv^)3Nln&&GISZ-#*4j_hu$>(g>$?|(}4-jfZW<0 zELA_IElp9HN^DiTgAPA-x{G0+*V}C?%Sc|r?4VmV1Www)@xITYEKHTYbMjFG@`{&& zUz6|ku)7O;e(`G-+H}T5aHA8!N1|4_I=9)8HRnDFms32k+n`&QAC0jm45x&UxEYss zd1d~uv%=Bxh}SLxuNQ+oPlVpS4odjV*{C2Tssew?N`oI z6n;8x9$5oreV(2h7cs}6{(fv&7+5Hd0~bx(!-%cJ1)nL2#Rr8fS}*AK924P}AMvDE z2N;&mMOcWHu@+}{#|X4~oGa0@tJnfL2WCxYU~2p@;-aGJ98bnHPdBiBCk=>NLMi-<;?nGKc;@MgUcvEAs`%u# zrR`$fHCh5;o6_g9;(n;X-eD~t;??~_H#AHU#%PvP3>$w2<>^u0x7X_1Y`l+bb&FU~ zfS}}Pq!p$~>2%X4LLSHub23^SQn{47s zJh;E2p`>so#OCdN@j@(uFql3%^4o`U6!R~E-}ZEs)W?Jmb$Jrx%DQb-wH|s&xp=W% z8eJ%gAtsErJ`8IDa-d#(N zR1!Qc-#0J!SosT7YBX8%Q>tO)p=t*fw(6{?XSYUi2V5?i+?MD!Z>_Ar9eXy`Q;q~< zek+Qu_Z7y4Dc>@nglbuscD5yS%Q}}85@E?k;-+9JqOqz163fnL`8>v_2^%UCx0pNh@}hYW@@E%3 z{B>Slhsk9r7Mz+Hi#Fd45ln*T)32JPrgVPi_O8e}ywcOtnZgX2wKqCRM7jV#8JFj- zL{KJzjG)cN^N}}nXFGRYIL8cwT*(aC^s&koKWF>1B}4n|Kj;y%npaArasj-0;>qnJ z8LoLh6MuKoESa)KU%hXo+%X_3GM#f`ROx0VCo>Di8tu*I8o}=6nDAnB6Ep94T0njG zq?H%NH=!?mlpL_50=PtRh2ux^2D-kcF!3l&d%A5j+32uDPNx63`_8<6;RA zs9tupCJPQ?Q4gMchWV1}xsB#V8y}_}Rl=Jm%x!xcM#KO)=52oF11d%v-YwN_0SU(< z5OH27JLtJqbCHq5cr39rU1U7k8%5)di3nZq18}U1mxA4TM!b^X|}JKf~Y1jqzP5wbpvv z%)+cU?|&^EzaZxXdCl~Evn^{@SDPhgK-~6)>2A$N+Z{T0`*k_0dSixSUfscMMSO8$x@xBAM|#0kW;=LrT}_1gFj>PNWl&snrr!_!HM%XM<9j~ z-vzV`?*oaW%b>)TYwZ?i$*e8@zrG2bl^j-0NV*u?2V%>=J_@F?R*m~np2fS8N>~f$ zbJme&*T_Jyv{~@_3!PG4(*j~`x+h+i`IHs2ow=t^ht14PDVnx+URs;+u^kBc4V<+P zbf$8W3aqn*cd(g9Lg_nZI^v>a&doV^?LS3=KOPx%(M#_8KUwBiLQ|)qA@8jqEs3%^ zX?`Y4ksv060(Fk5SM%?FreR2j=)D_{epkXV^O4G6U)6QJHMUfW#`jS?jQ-hq({(({ zGo6gQZA@(69`nd#(7yPR{?qsDZP}MgoF`1S!+OYXLqys}(NY*Fm1N zcW;7)bag!roV)shzf8VBG#uXlrg@*1t-9>_DCxWB>N=J@80HhP=*!Rfi44NZUJF(C zyJ;E$u?OG$u`PwQ;B8n8ut+0rHY+m_<7agbUYln(8j$yOtG7vbDf%)Op5(Dy_wTxX z+}(KMhBMg-=U0w4>T9fUq9Vm7-XvT|5^0CqFWd9q*{T~%qukKyS}#8`j5vLs!0lmh zmy>Q;7pPBA(G-=$W9}^xxos`LRJ|Fo%jnR=vOy|h+N}`d)GJ`e8Kx%P7M$JX`}ph7 zAzg$GkFc`~tbA9?=S%}L&2_|sVER`>W7h7Z*@b`)^{Nb1ijzRqIsgoBbwRAumDM3W zU-LRG{r}zw)BoN1RCJ6BmbfnfL56>pJ0VAVVHV}5QCXcL3&~Ry9jtBJOwFw}IwM2q~5hM8Oq!KN{2oifFbFN#>2 zOe9=8vZ0*e+LL*E&cY?~>&%@K_v$y9 zmc$U{z<0%GiEWd-KXnsKDC212%>>BUMal015|A7g;OKiQCJkFA+gSW#LP6!vv1HZ?7L7*qfL*(&eLo zFh$?r2K#Ti9R3y|QOSzjfZrF{QvW&R#0qjm?0X_c6`kV;+~#!4)?aA=v{`Bi zLF6q~6%hj0oi9I@Ul(t_e}VC|7!9Cuc|T12T-ER0SZxa?h4m?u5;A<)uL+-3;6(3h zIGf6;ChaGT60vA)k2Ofgr1CBlVFu=feM72YRe=kc~Q0YytOw zt^*l_F$gGXPzuo<)JgaF+F2l`p=v9tapuG#-}@6&N^D`(E@JVaM7w(_ZiCiuR79vzL8H5V`(hMoHd5jO2AH&Uh9lgX`V&+#FP+maypEH z!4kfz63oXxK9dwg^m(Z3PDye#a6mibvbOya;5^X{!13#r4|UgbIXk%Ms7gq$;9cW? zopx0~OweP6|4l0ID5eQ(*f2$Vp3|{GsI7i)9;M>UzyG?Q>yLfyPvnI*0FMuzV;EX6 z^@l+2K)9`l{Fv^RbLyAkvyT%4z(h(Qo`aP_T{uA9^Qr>py{H3$lN%uct`x87~y(HnATli$fj~kO4@L= z1WbL7sqi}YX~D@1wIAEc-bk^XnTDtKN9FcTGN|Mp4aZ;_5e=d~mlR2d!i>ubWsDPs zU%LcDQ8zfJY+Vru(^sGFJ$6ftMo`ej{OD{M|LH`3%c)sasg{-NFU zVOgA^Myt3E2bpVvL~{tpc3n6f+Jk&b34 zIGBy&XZ*hy;c=NBL!G7(K39e~4SJk$*K>oAsANwc%j~I`8MSdA?w}xa&^>L%TBm;! zMiLL#q6`N7zS2x(lMohH`Y5>B~KWbWCqgAEZ4!AUc)9w@M+N zCYr1+BwGJYIo3E0;Lo-FeGn03;_k~FUIL1SglisW$@RXen+|UB5Iqnm9WUBZjK*KA z(4%FTGl}T7=sD5l$O>W$*UO4J2ydM_+*7r~Nje zO?Q{YGS~Jpoyh}czK#8FLN{;l(dY*#i!gG(NUyA4}Zq|zqt;GYDf0cf83L; z#eK!%lGX~KA*K(+5?F1=Cm3%z#BonT4n!#X4!In;gU<&X{Z|u>K9>G3?Ek+jT@}M2 z0u_-x!1Xez;-BTrR+aSoNJlYI=aYI07b7=8l0Jr~4;O-0--$LgSwdv6w-sox&B`Dy z#!O;BA4Wz5m6n1cfDem;!*^@GdsV9=T9TkE4vYUgKLhk_QWJ}QDxL~kKMZ}NSFPai zo%)-KG9nvWsGd|2$bWYh6s zL4cwcS)zSKXXgGok(JP;OGuNH5NEYqXu#4=mVQirVv@YAI!Wz7EeA_y(s7qI#g{BD z;U4QHpE|Wm#c#|C_YvN^8&^;bS)PA~5`LK?w!>OaJ(y&~8eZ!d7$guEvjq*0HT=0i zS6Cy~N=fdbU!I0X2=)oMl;M-lttD%kw`*9pELc+w94@Mn(H1crW znkUq36!R@-`ve9XrRbBcYy7&eGHMN#xsuEXoIzwrZ$Tsk7kE5kxyL z{nASPrg;PMc9Jm~a!hM7HosfwD7+;y^6!pqVgUViMx#J=-dqxM*}tcr#gBfwwGsRE zX(U1q9;zqRT`kE*%csWCTIMDPY9p5H4q+6nOuEkaf2jJZu&Cp1>!G_lhXz5q6&R#Z zQd+t}y1To(6iEpM8IYESp}Pdhp}QM~;p08ub9_B_^Zc&nV*hunwb$CwPnb(d9mh9Z zKEu(UTb{?k|BZ`ML}68gr*G@qvg76dJSVmyW=U*K@q?S^+5*|Fh(J_kxqdUqYcDaB z8!1MspS8676O#o)Z+#|eQ3gPn1TU{Cw$~;Hew&nAy0zEmk;v8!)77Am=^$CzXph%u z;C|&(MUt4+s=?VkuKqqDZc_Uuj4PoJwHM;4W-MH_9;Bd(IUZuNRvDHbv}bI5eD86# zPf5kW6&LJqsE(C|=1#59K>mF3Y=J4*<@<8pWm`?2Azw|J9=&DbgXCxBlYG?DjAP}b z;hW5W1t5o%=hywd_*p-`b(~3Qoe#%YJfu3}@@>zT$@xi0P+*q))aAeYez@2BvAS!y zEKjg_R%pGcT6dmTPcGz;sGw#n^q(%2PDqAO0vHx z-?rME9?+i%J-^Nrd@4Y7agu2CxG?FPoAI`?L<;mDX)KKAM06IU(G6|ju@Vnl#rT|! zV|W{e2ss8=#On{fYFQ1+S*pDXV3-O?-m=u#W!t*2^1wwjR9zKLAiIV#8m7*FdPDb1 zUbujvy9UquJk8FECQ>0>Fc&$Z7$KP|Y>W2f;5uI7=O^G#9RMLetPW$smkH+TFA5(| z1X9Bqoo<(b50wsXU;a(!&Kj7xE*c2apnuDJ=Q9+wK1}QOXn1l@#an*6R{h2H;fq(V z45~EasKpZNHh=bSXQ8jjyiD@`sK+#ke2RBe0Ng0CcncZga~{R%LgX^>IPbMnHe7>R z1=osHiqBRV-1@+ugH2gMePlq=a01^=P)4pa*XB*2Z=!%eHpNym7A+U8RwzPzq`1nM z#TT)jM689g{SZ^{Q^w<3|7DaN98f5BT}%e*ZCN@2k+2(;tb)Zd9^m35uB1JbhWSuA z_FY0jds>4easO#E8kn=SE_f7eXNy+rUgF!I>%h+Nx!bP0g8(>#2*8CJDp| zhxcXS+;rKhez;E)Q#~7f9O2LOTY7LDmTrG+ANB%05JLrHpG zFVNNdHV_Q(-&*7PtxG5m;@Ld9p0w#`TR0-hgeF!o+6GU1uq`2*i~*#b+giSGi$EVJ zzq48Y0K0q{qw~k1Ghz@8uMnFjOc08=vy&1auVKx{81W1=j^Ki$6QbqDb$F@7@pDlV z^m24WQv7sflk;4msG@QIu<_LlY5qk`=J>0Exy^4+GzbDkU$MHg-OPMuYQn;ReoMm7 z3Rd{3`O_krg314F_?N;F;pPL%;mSAvqy>4skdBMGtS@fxyZ%5SIS`2E6?F*EpZdD) zOumf#VprJOihS6nlemR^eTMe>wif}H&`h|Bq|;Y2dZJYhuF?=GOYSWD(#|Y6eE3dL z3&Hj3(WH)+$96u-_h(Wb;zV`@!}kuac`_u@{B?U*)Ahwqf6VjI)yBXncRyKu#A0Ob;Wk73Va$g zQ3d-cVVFwEg=?D|w*)je{|f9itz~UEm@%KLPi|V=Wbd2j#HL>Am@_KA;7x+JBLc_W zwX9J9tGATK%_C(LKL*iOZ(_FQjINHKCqZ%$`lQ=(nmal|huw%m9$N%IlL%}m8ofvp zqq99_vlOG+7_^25U`SOvBn+If&Ttu_;bka0NL=V1qBHl2Xg;GF2t>t>rkW%e0h56k zbLH=&)kj5onw$3n$a~4@AFn!;>5g{hzOnNh3whplatxH~--o%u-k0Be7z9C+`^ktZ zM1e(5D>t-z0}=3k+`xG3v#{6PugvNS*5cqJ+=QU^t2Q zWN(%sv0Ln1ACR*Bs(dK;4%cT_B;N$(``NA2epX(wTsOF~NZ5SJr zNRf=+==vJ_8qQ9+2DfF5$JF{UQ0Ruyl)vWJ|S zav}l1FR{&Cbm%sU=kwd<3qz7`Po9Z?a1Dy5L6Yx!SXPyj!llBV}=8hVPn7`f5kkoR`lckf=V$8rb zTa~&ynkc*a04zBFyL?#fIA=Z#FWWPsbOjEO_opRO!+_dK2?B?jh=3TtnY44o-81LK63~Tfk%lU^NTwX z7c71tje|rIo&JR4r4754U%UeBr=q;93=}VAhgBH5n6#VIg4)Ti9&v&RHlC4o;R%mM zoV6(9^}XBnl{8ZMQ#L4Bed9cg)LAiA-Pp46-`4S0uD)m!fhXDjXqy-xc14pDXH4*;Pki z9sKbb{iVc}H9PK~z%dc!L9}lo=?Tg@o?$MFQE&r@Nq= zfR@X&Ow{nI)B^>u5Jn4_M1V?1^$%H}b!wuLItbM$hNbSPMZ0P2McBQQyu(fM`;ONs z4|nnsf=*YLW7yt@l`EtqHNeLS>#UpBtFYncZ+dX+{-7!eKjnR5@WEq}nQ_o~3s+L} z?&nNacxTTuM(OMM=0h#tj2wBU6G_?oSWWVqd(1e8i`V%Lkd^0SpP-F8fof!eZE`98 zs@4v?nh4C1=%A^Z~j(7dWAaT|3@Kd_b+by8y234QF+ z5;M;)MISx^#j5eV+sITW$u+@1=C6-d4hmB9gEmmloDLgg7h^Bqu@wITYuQjQp}_*4 zHN4oUN5K7 zT;Zj?8uCrlXTb4b46E}ypf0-^@AaKLjn}&*%*jj##Pg#wx9Od>`=cy>bl!_k|MnCU zB)dVGyVuSC%#BcVj??ux?gu+GG*%-T^EfnWSqd@Dy|&@fkP)ln=|~Ono(I^5cIb6i zrkG38YTZtDS)><2${$|JeUO@IXe$X%q`WAQ5231|S-2AQB#a%mT{|b5>M9oPPGsU2 z1XCl}&ZJB;$KK5p9Aj#xq+{>fG(SqhJE{m@{uyFbi~;yEF0oU&#R^~JA4swN&BL?& z5hr8KyryX~hVGA?eQtn5d$UAxJXyV&N6r%vQLTp8}`o*hDAPF;rA>Oa?Q z+LStj%47+IDB?G92ss#4!58X>^;d2mhM#WGfJx*tr?ad11En+GS>ZAx-i}_)i=xBR zL6;cAjClo4?}UG7saq7rb`Ye#_QgqMp>n`$w~SX_^D_6a)mmtApiNAwUEOM5FjTXh z??<9O*8STXuMz+u^aNxA^!8 zRHxmW5RhRt+dF7XR6M{VMg7Exn zWr@{7=_|D8eB*1v-ThC@-uh?bx8L&~d++w04exs&R<3}L7eVk!D!J>WzckZx0huAm zezxLK4??nf`a5gdU>e+C>g3;iN%C13Hjh5V;#F$$bEEm@a0!kJqfYV`SXz65SZ!7i z>46>QtnH6u?LQ`IDo-o~laVNW8zbDEQQa$z%VDzBha8NCucOjVfjnm;-z-@qPGtf@ z^`O-jX7gUjh_S~3n?2W$u3k9Lz<1a=lT$uPzTB1-5p_e3y!QZ*z|?%pKw0%MJZi!P zE6N)`Q@AM+2&xf-x!~!JiF3mp5c>$<2hMGLA|VKKBiKDt(x-|i;3})eK7`QMD9xD7 z4K<10-nknx$snh0C{&ZuE@c8;SR(4!DikRiyEqHK0M#kD?brqEd};lrD{UghsTg4qRjhoZ}YnebN%BJkG`vx6@wAfwVig~cI2hu z#U_L9nD9l`Lj}bvG6I=?=48hCFYr2}1&{TWgK2JwyU2Ul4es`$!c=lETx%=LHBDZi zNV6LF%3BnQfLTW^nhpf~_9XdO&J34s^m33U( zq{M|xtV*Uw(G`WW-eI*Jb387~R}M%yzKeRURF4*_;yXhJfzTQ}|Lv33lj5g+ES@pD ze_+RNoi#7I{^?CM5ZF$q;<)`r>b;ubcxDgXj6W1q>_pPLm6(NA?4U&mY~4KQSI+Wb zw7I6H3_5vpfEWrFNZ%=1PwqgWqV;AMt^lrqd2dEKpD;FhX9lw#dm>K{gi?27T~zz0 z3@2 zjXKGo**fI{L6a5oFF@fc-+W|eS(^AgZmUcq8cO`O8~hRS27q!v9WIJTt+w&Y&PjLW z^1PAT7GNtf|%$(cYSc(0A(| z>ONqlz2#IB2p-^;42i@02(4{bD_|}jCY4q}chSAjOA<8d7G$jJ>d!i>5vpAlZWF@A zjZ`FQ9ri6gJl|y%=PBk(MJ~X|%fFhWC1`j9bdwVo59-}8IG4rW$d2zkdn8LVL-m8N zKM?tWQG(ZlQRzU<@>xvVZk5lYV1{+O<0cBC3jyVW*mN|NNR|Cyn$TVHf!CK`D8LTu z&9@U>fF`Z^Yn`?R}Idq#l@u^Y`k8(Ka5p_a?gdwV|& zK+KlvAkA_?6cU&|t0yw?_G$ockG;Y`v`0#}YKeQ;Sk!YJ`Z(UUivxP!*PQd;dIeSB z;0Xe_eg!_+2mXyNH7KO(UB1VkprCaqq{Te%^pp{-sPe&;wm1e$wu`3>$GkhTFexgT zd|o6QpLtV+7u5wJ(bz!z)>IPrxNZS_}&5-T0gfuwF+CD7J61F7CW=q5cLk=FB&lFw3*{XA`W1{yQle) z!%glD`wWdt$vR`#=mj!w+8%p`ttH?k8StuguOA=~pZlZ%3EmX@V?)p#LgWu83KCuw zSS~4!{!9tpa4L>uPrxixtk4VCjf+WdzEBiP(FE3eIH4^Zn9vGs@>o6 zf;PB&w)qm~@I~GAP@xHkbYesnxa)Q# zjtiL(O&ypbVT7FNj`e9EJU)uHgpU^$&yIPw3CuN#0k4*7*R|;RPLtfc!|QnV`OH-( z-MhOy>B8%_j5H^42!UMdXTWyU^dtCE=ko4Mr|2ndNBj=w>9PaH(Q)pz46xe~)X71(ydvi%*pV)!yY6P;5WH3n~Wh$@Gb(8mrG(Gu!6g9=Ct{zU7 za$`w%M9TW$o;Rs>rZinB?1``V@ZuRW{U`N@<$ooHM66VQWhqc6J9=g5+sAJFXI;-{ zQ*Obe(_(*hzm{~YFDYOTD5(SMzeP|$KPy*{~1|1P_=Fu#g=0*C3bvU3J3OmnAi6F zbwXa0W315{7!Xf3u*uCe#+rl!tVxzbiAX3M;ZWLs@10XU?WXEvfj12PkW-dQhyR+E zGDiDi>0)esu+3`N-+fv8Pcy>LMIuQg*)C^FEULQB+j%yfd#TqQHq*i@*La&h|DW zOX49z_4S3xU65J$DH2CNfy9gnvk-Zo$x2ZnR%AY916`y9UYbZchW=h;G*uO99A}F+rH(BZl*~cq+3JgqNHFBS+0T7V;&;`5ITGJHIZ$S+hY5Sf;sNCTidQ_t%J&B2Lu zx5qyOLs|4nQ_7l31hMLUN2P|2MjT?ek>|Si9~BTnxeMt7Ji4%{&NYx8TuMiIJ{#=g z%U;F%HV|S`&P$L}TZY9m=mplxXJ1{yFY@o$E8ood=!PVV5oDA7*e2zu9taWpxu#pt z{~yN00;B&P8zT=l1bUS(|+*&*|0JH7iAo>{yFF8vu z{QxD;o!~9V;`s;R>#f@)F|HtN3f{Z)39>KttBHE(C?4ajb02M!*v{B}Z7d~Oe~=i3 zx{3E=0D^DRLk~ngr_9`lIbuiesYS;W{cfCFyY{e?jB?BA> zOw6v-@6qImobYT9l#v1Op;Jck*%@}@~F*N~&F7L=RN(T{p3ZxwJMH9(l7kr%) z(TNc8i;rQp%A{|qE^_*vne0Etg|LV@TcV?ZAXrpfn>|tQ@bx4TOf{Ouv_Q+yYW^lf z(nkszlfy~Vjr@oVyq0E}%0Sj{Oqr~xeG)O>+ojpTLRvI0Hi4O^=c$n{Qu!4F&S;=c zhJJ?Trzna0?oBKv8%dF6XB+FUNY*4_1ChgwX6IoS>ta<*ge?g2 z{O)Q`jGs8`B;tiX3hgN9Ptw*9;G<n`@Byzz4jPZz51;5Cma}Y_w@I zS|8OcVYRwk^-o0>sr6C%4>8#TBRm`%1XOH~-T9+Am0>IYbDdXf26+LN6rzZqvf|ky zR9%>ic5_2buJTT-{vf>XY$hYWYZTkO2*7Q8&!F1TQy|>N_${cvL9juK4*~E(H{gho ztYZmJ`y8!4gGN^`1JNX@Ai6sT{haKn`ur!V7+bqE$rHBI*J0P&ZK$43z#S~;VuS2) z8VffmC+}}OD4`tNV~%w7e>sX73;dgYoTCx5j9}Zf#^;B_fy{Db+^?862R^ycZrow- zyrBK*EfUeCd?ft>+s}FJ`IOzYiMPyzv#V=b`}_l$Yj#wQ8Z7jSZVs!#S9!To41gyQBu!y#63=O>UqG07~f;eis@Yw}ys&6IBH~_|~?07BdxwbdN#6Jw8%V!#Hv#e ze0bUA%SiTF5hQuOZ?)L>w#cQfozV#rZ|Es6y&A?-LSE=^TP%q`Fk8|w} z9*RN5Bw-@vY;28SQ_ z^{h@15MFa1>Ua#b9+N@QM;JB})fTQc_Z*+S?6wAPSXF+1UjdpVV>660eLTCle*mAR z1gDEwdS6W;D)94oa#IZE--*aucJ}tel37Q|)35vTd$$-<6j)e^RT6TOFqhm=_&8j( zJRD^K`s6NuC^+cV6K~P$KTM%>{oQbBUv#5C6QhG0<1|hQ2fV&a}ri3Iurz zY*a9j5DuDL^fGQVxJV>3xKyP*B}2*f`PeWomusJcFFz z>zvEQ^oqO`+?ChBw(K;A2}JE5=d9_L)Rgn42n^FKwI~wyGZO3CC#WASL!0RB9^uKx z5Pa74geX>=gZ;-rufYJs(X5Ay=HHbk{44ptG>b$Qj*Th_4*UA|YdsGo7a=P#6v{_4 z3wymaFH=dR<~Yf`PjwfH)lauq{9eSfg!J^!Y3Z{hMwuE-+p%wkb%&uhxE=52%CGS$yEM)7rPWSIs!8~ zkGBrR$|h9anZNKuTw>^v@4=T{`uPwO76mkR^q#xOzl;R>k8WkPK4mhG@BWj8RD@Bs z@g!9mS%vQY@&-^+_EV4n>>U{`s0nT?zfkOGy8pbKREW7PO#RCQJcyY{yKAyTetTAd zYK%VQ@0&ihmT*MOd!8FcKQW(Vim#!C{w?IQ=+f&bn~40XPHD0C*@IoF1)HaNFy8Pu zk?~%^fwY!DPbQHjlr?fnKm-G*CS+^H{reX)sO^c25kbfAFt3&%0>GXn_8aybT#8?NkwR)F5kTg*Sid8Kn8Qucr&x!*`CYRvX-Y`gd>siZa zj`!3pPy|{oxt(5w5YEquV(7`2ToYZV=RXdv`X=~Gx-X32n%#!vrc`6TSWgpJ!7#{h zs*EO9h3-F^+i%{*QybhD8s`REGTw;9OAzQ=Q8$p4voQ-v2&4rV$+r3a=|0LsD~`^Uv3Ym@aX;ZYl6FqC&^XlL%i;fCn0eIK6@Th}k|MoM2rj8GnnC}pD<@+{7UW#+f0;qu9OFv>&I^9t9s_e@sRkp{oIwzR z)@4}`LP0JcjMt=e_Jo!vULX?0@hvg*`^~-~luqSGtZ?l61%#aOIqZgV@Zd8d4x)%` zT8Q;d#tH0v^|?eh3N-_*b&$*jY>;^S!P@A8E}qvEH=llyi2R>bLk)xf4CNXy1ZCg9 zsjEp4)4=!4?!@J&OYjzSjn^S4;88e7|n;d|2bB@38~j$0>GilRgCZYFw{F5frjO^^kfPFlvlyA!yFAYszvkXd?8|deGj@Vi!a=%I_-x4n7`%5 zmjQg36CAPZ?i=qLx891+wP$8KpaApafRC4@Gvb%D16WtjDtujbZy~Xgy_lopcs`rN zMs9I9cF$nXv^J6+&TuTr7y+T@#r4}Ls_6QU6E$xXZ{25q9+k{}D>$tBg=~q8I-Upa zv#HXwE3BGc649ZXD&h?SzDas$zQo?DWP zHNrjW={%1{QOd25M=J~2N_qEEBn))1W_#khNcJ=^S-+-Ay2l@~iJ5gViKcO1vhlxO z0O+Zh!wE*-*v@704+Z5FxweQ$=$jpP1SVn(BGONZDFu?)u*BSx5o(GJ>thwrgh+Znk1*emFghLy|au1pY1;r*uGfY;D6WK zS+zpm<-_+cswA4WpQ3qtU~BRkq&-B~@9(#Y11QbpWK<0HD^svFQi?^f0Ysb#A`^;4 zQF5X+qR>s-aHKaITnS-fj_=#5QMfb~I^`+W$dTpl$`$#2f&uFcj0af85O(nZqzR-K z{d-E~mEnaMTqfrE1~D0Dmd}3iY*7m$z<`M6iT7_WI3Km*KdQTLXOl%*54)}julo6H z645q^F~MCgYR85^>y+eo&14xXjMQw@cIREOoXtOY@Y8BeceVubo8QOHH_t5{D~=1; zm6Pi;`|5GRQJX4>sOj#5a!70L zBgB|~KM*~@Qt_>XDtEYPE&~%j9vErXxxdBD>|u&PTd{zaPbz%S?wKbL%#;383BZQ_ z<~}R9Pc@JOb0&fnuf>wZEh#?sNN+e#Cbixn@UR;T=*X$x+7c4 zcq&DMJ0!KNZd7$CoUtP#mXB(jh1W)geAMzGep$$;-mtz4 zOT2KNZdCWPT=z#b<^A`56~%dqUYoDg)QeZOe_a-BQ`oVG6;f~HY`;!PhrM(WP`!lg zP|#(N1@=XzeX>@)N^GFzkjJ>vObz6pD`CsL>Yx(R6pRQ7_@cV+ z{92%);)Zzby1wbi?Lh3OhsAN5Hl=8{;KIH&pNt}FtOM8Qs{5h(;m^irW8Nwo2l;nr z$GC}7EaROu{*tqEPLz76CyecmjO+*&eJ#m?)tL&N(_sJa{?9lJO~X7vq(9* zywS0AI3J-Ys_IB-*WcItOXVBNBmk5oI$L_u-tc!H2?qC-#y^YzTbEbKc_PMp-jKe7 z$7sQnF{Hsw0!^-WP_Wx)3q( z2h8mr-ADUKW={?VKY=lms6xI6fY$9{H0Npt-2sVXzxgV6hmJotdUj3B4(`K4%m_m^{xBKIYaztWappo>Fs;mwODck zf)g;7tMa4eaIynV&cU%i`FG$&fqEgd5bT+mL14jYW!GwVb&i8B0O>oC!z{M^F8fkoF=V8|6dc~?QVcif>rR;vTmntd#t+#NnQ&jC zbb6P4KOfcm$L{B?kf*!Qvex?|D1+VY95 zln~^ zMY#C*X$^?PB=^MWdD*DV-*u##UUVOA022qa+6Fc?G0@q=@0;TFV5Y+o;?b!Rc4G|$ z$im3_`2c3Fx2C5tVax1bN<9;s_Ln#9r=eQ}XZcOOy0Ayuom?-Wk0@#xzs+ab7xs<(>4T)M3RqAXk@ zc?mVKHoGM!4=z+$>xMrCoUms8XZ)`Sc&K@w8ej3qQ~T_n{6f4a`J$B%g!`l1!mD+{BuZ|ihM!sj3Aj*r-{8r_-+-+!f*`;Z0BtLI3M${o~ulH^D**k0- z0fi08J^;MTTAFCf?rj?5XC8Jh>`2_Kx;w@ya&96EhrQj(v&uNP9NKmgfVTL{P^G7x_rh=@= ziYcvVbfkzAl03~`8Sj&`QKYp(KOKoAzr>XCJI$+>m1Z*`OK1%^0f9%!IB`= zFv6$|y;c|$A1$kwf8FgZ*LJwp?KUfN7c-@^Zomxij*c05>ioB}yYP?0{{6`8^3N`x zZD;$d@c>szH&`o%KXi&@!~M>FB}EA?O9*RLm(Bw{k2YI$rj3|A&5tR7equqK2H@uX zUt7xDEn?UEL>1x0CIQA_qTmLc7w4OG$Jq4gz?cwy`f}Nq4_&r1t4}wobo2yfHNQtH zUUeV9)Uy_NX=2KI*ReNNK9u^r-0rp5Uek-=u)p5mA39%UNukSKVfEX(Q5 zZ^=?p5lSwj({*;Tnz*`L7biALDn%q{@}-RAcZG_TJXDh*Ghh8=B%+nZ_|>#Xa**&% z2hK*bpczQ}b0dfIgQflaJQAT$)~fi#mYa61k~8N*iZvm;OOuy^>qeH`{Ax)XNZE|` z2`gxZ&*+_oP2c*#*DUp1wK<6})~PWUbIJKwgKe6hhpxJ4MM+aNEx6y*Pw>ozm92PR z9-nc7pTf4V^6x&j=@>S`+rGLY>Xh`~05glQT^9YHGIG2~wuX~i0mNjhCD>ikU8Gf7 zt3s|ccN>QIk|#mE`Ps2CoDZC^%`UP~MRp-?QM{0ITa@=3iaHxfT)D9cLDi0Dj9IV^ z`xS%Q@H?s^c&%n}z}n{^@T5-&lmFeOwq5qOu(-qN{B{!-sqQtb6d2OnNrH}Mdix)W z0|<`pws9*#z_SVMxGy|ysn3w9)LO4xU%vQOAYC4|#Col@Ufq%7XI<&a^=st5G`p5Q`#KZYjKD(cH_ zzvB}j{Sd8WKYwq$!1?+|G^zmEhxb_70l!tevd_GH#CF$i^zu&g#r*Hy;WZVs+#JWb zHT2V+)Z*H2W5H$7H+d|gUik0{-VAJHjQ7cdaaLG<1ZENhAJOk|MrrXow(|E@oPE1t zN3Zot!w3E0x+oGsL&K0LFUa#w<>u zVHdAa=0;jgAjsWfbP{*lb^c9RqxG`hzpGto;Lf!th2=r8Ai+OqbW;Lx)Ah;?%n#x5b`c$3 z7uB1KLWU;8`>rcTsH&+;IP#P0N8)0o$glKKyeUW=sM4(fu5tr}Pd>5HjQxt#*9EA2 zUsN3_8Vz;dIJ@(5hp~gIX>`I^@SSsoUqS||>8AX8f6;9CYWbd8&znG>PbHsWf7VJK zC$}M#U@%D-52N+W-x3Ag&1~&uiS1cEo`&ga6G^t;uL!y8dJ;!5;_Nav>dGx$s&aVIc8BLx{IsdcHPA$eYH-NZZaz zQ6r^Ajch}Cz(tt_0!6PVP7P6ko9tW$;sS3VW=TD2iHu`;BAt;wyJ;AoWyL-OE?%qU zxSZt24^Uq*FKQXLdEU($-?km<7(YRK+N(po!uhOmq)TiV9G8~(FS>h38j+!>p5*Q> zJLbe)-1ihjiSb)%D_utFV8fhI_U$7N;8P}h;;6~nfqq$|twt|aPItr?4>gYG)0Rt^ zqm*G~?sE_I@-6^WQA=LaVpk1+Ajwnk;E}$U_UC^Vwk$Y!p88=H9Iwv)OJ}|2I8BW+z7yxw z_MSX4xUPE<)vT01cS^PUN^e)zoW5x zLH-^nB4=qL21VtqZYQqS=gZ@;>#emUKgp7%TpVwF@-8;0oq%-Q{x{YL3#0SG(YtL_ zAQ$14sSUSvi^iPi*b$5Pk2ao5nVd21ZeMiRAG$m+_W^p^UQc5fiat!Ls+Qs;48c4i z=0qXbi=xd7v);+)x@X3(VcA%C6T$v6PFFLA8&IVn@%7uvG&?ei8opi2t%u~yB>%Ew zLH{Sb;EV5+E}0Z4kogKTp>do$++GRpYnnR_q2k=0rfVZp9G@mW$ElVq?to*vLuKQqAydz=-CMo)NquO!>}*18_*wZu0Zt(aCklST)LEf6 z>JmKOB}uYM651I$PJzPsJ?Fjh_fw=MoZ?-k)Qi8-n~S*3?_BtcS~3_y!sLoqkD&1A&Th-bSZ?A9Go#sVW=3&Mj=|S5r~A zuRi>H5tmdOpkD4zqzQUp)C%oW%mHn9Q0Hce7h9a3|KAx$BSilhkP()2%<$*;`TOcs zi3qxgpZfyTh&RR{y$G5XPU^0uz}6N(=zh+?l#V8IQ3$RqedOu%8XeKRfM<_2;(#CR zXj)^kDE=Qi!`w2rKKaR6p2h~D?!3fQfS8wuh?rsO7*w5zj}1z4bXg+xA8q+p-bXu~ zMJ49!WRUkV`{C^J_2!+^^9bGeO$fgPolgf{kv^Sf`SlC`nVvEqBDS{kRuLC!#ujMQDs(CDCv(PLj!HQ}XOPqCv%4FAGA96@9g9yt=|Yzns0iTTuJBM;gM0PX31E#oS9I zAu4}pkzBu*n5j;-Lgbr@eMS(!c8%Pd$UvU~1KJ%?@d*Abv8lL#*%!fAR-4QOFSpa} zPC5g4Y#Q|jDSd$6JMvke+b?((y16A;w>&tOl!4Y-xqCYJ4)bPd0H})7G%~536%Iv) zk6=72>dy$!{!R<2=l1gkNsQrEFKDX5zx&6nbs7nO5#uUJBv}I-&W_p{UBivl`v+FD zvE^^l-%sBQGRfVd)|R(7DiKt6iCdl3u&4f&6@>h}wv%IsNJqHG2yj*hKwGV^q6duz zjR{72C=8af9yjrFTMbrsUb`k38C@=&_->?~DB#v!|Lr}V8&;JN(U;90_oIh@+mxlk zXXRs7MIbx+(i1MTODyS*L1|Mjx^(U5Y8#s{eu-Z$fyIT`N}{cAUR_g;0RW^1tLhCV{w-YwdCh4sKaEJ^drn+OAHvuE7X5-^Hk5wBWq|qGOme1b zOf74ILY#Cm`yRpSJ2AS#5gw2P5Y4NO%Ggw^a#TZDK$Ptcc zaAV+0-=@xET_}V`IPr?hc_iZGpJU5>vie7sl=|+Xn@ysgDD}=<%&6~G!Uv8B`#oo^&@pku% zu~Ip=#s&99h}6U-PzUYw z!HrkL+)02_!QD&ygS)RE6&V3n`e=34Kq?~0W5KpghyUn#X_leUt2Fu4MmXDKGh$WM zEIq?U<7rO{U?hRcr9fleF25dHkK+@X@H+JlLEu_l55?P)X{2eh>M+kpL`l9NEmxsv zf`IIJVUT*3apiWYe{`I5TsANymf_qbQ+b^0diw;%Lr-R^`$yv|gOZhPF_+5h7_Ar+pL&3ISb&y7R`9DrEzpg+KQfQX)Ui8nKb=M~aMVR@DrLM#$Dd30gM zu{NrN!Aqds77`9@EuKn`jNuOdngDQ7 zS)V6SNmY0Bw~ZU;-L=ML){ZrAJuz$V@A8{Ma20kwoCWsZ``EXb=)4DN&!_*5Pg8Yo_5Qaa;8c$A0N@B@GMm=my>=jMmz6uD&r5rcukM| zWOH;}?F4`H?!QAYm=3NNc@co#QrZa?{oIKV;8P#4y1(=DypYt!iR&zc0HwMJ{rB=g z+tW4U@I%na_?{$AlwN)ab5&bz{@||oPhkKghG{Z-K!K0typ9afFWw)LijjI|T3Bh{ z#V|D9%i)^c@4pUmKpeb z6u}+HnD4Xn8D)jjP`9_3!e$u#21U50Q#ykL;mZ%v>b|GINnALz$33ho`PN{UncX$H zfP^^(EXL(ht4*LlF1jB6*yA8e^e=oeJoXe80=jGAENGlHc%Vb{4LX({yLqIRXO~lb76SYpen2=* zK4d+1O~uj`UUl0~md2PUoGD|2ExCJKnFI^MqB`6OZmu5nHybg-;E05Mif}(uBLroo8>9 z`Un|igxNzQm0+NLQEsbHL_+oO{y4kQ?-n!hmUM0=LrQBJrRt~8M7f2?J1AA0}F znSeT9%Z41r^%}xKXgI|C+dHCuE&e4h-RltN&nI|qGBmxl6#rBu{K6RD`D*<-Pw&KX z#vY;`cNJVdEZ9a#wBk#qt+>7K55~aus^|ju2+X88KmU*Gav+j*Uc}@QH@X5`5zD30cG`O3pZPK9As7+!dJ>_ z{Jn8Z?NO)rbeJR*$vA$wKSY0DJ!mL&4_*>S-TkgRDEr{}{|I}lsJPapYZ!Nz;0_@; zK^wQ=mSBxLAxLny#@(F+3BlciyL)hV3r?er_Rl`=$=ToCKWdD1QMYT3r)<_NDbrQk z7i0U%#X91q&#LSMZw)u&vbSkL`&Y#$azQ}A^33;peWy6_RNTE)M$ontJ2E`txooD@ z2yaj8{wg;zAl!sA@d_@`c9#l)D-o~>U-iE6aHZ~(YVM7msN))ZjyoDSL*svC3MXMx z#y|YHPNI`0GWKDKIE~YAE0ysYk-H1XlzrO<2kAmKvn4HhO>6yP(VO3q~Wvo z*_sbYc+d_vma7TZX^`1?4Gki;DG;|0!v-$e>$^Fn_vej9ZK41ssV7_AWCI>TH3A|E z{s_yAXUwL=E|FH8W_UXEW?)`H#^gj(eatN;A#diKR$^52JN;wJ}J54Gi`6PTc}RU8~8l4XVLcQ{1GtpezYwt6V=^F2H6z z)Je2$g5PZthsbqP=y@|i*Z#QukZ7aE=agmPLMJ@uODoniGvi|bM$^L;9Th^M&yb}D z%q*n<80`7I>KkmlKyh~zf<~qwBkWNkO*Ng^sB@fY<)CudYuZcXqK!u^bfN0Kp@@C| z>%N~#pH$1ghA|n4HL*-)#sNj4g~lR&eeJv5XLy$_J2vzlOdSOB~jG zUSZ!v**tGzfUm}vx(WRD&ORo->kA$oXj!7Xm#&r@TA5QqlBFTKM1ZFNAv} ze9bkMsz&SoB}OG{ZZd$b_OQ{Nh;nKX&c#j5D)EBS$e+GI;M7RNO<;l~;*hwt-?s%4 zrX_kzK4q@w3q^-Zi=y?V1{L(pGz~_OLQHny(U}2Zd!e6H9yF0qWlSi?_ahx<@4h`H z#48J>Noxw&biscxfpzQ8xu2kv68W6FV2&8vqK2GVCu|@iQB^;6fAC)&31>mqC79{c%%Qlojx8=Mt3K{ zp3yN!WV!r-Wx1!d?ZA2?eo4%rpmXI;*P@!n$79pn>{JBh z%~c5WW?%+be^09~L#qD=$a&L9$FqK1avVLKJR$q(yL-LV{K3x^evo-spSj zr>6u`fj-p=gD5TZLC!rE#PXyMw}ZMCc*QdX*blO|R?ce&kY>xy&3Y4|i2wb6V`lMx zTB!R`|0;COC2+<;>0~h`r2H`zO z?Ll^b5{bY4?ZUe1+MRwL^i}09gT)l%H@UaccoYE!mAk?ZCh*vol9YBngl#%L4s2!{ zk8f_yw`k4rQ)2i5EM4dnkEQuuHPLy~k z*SSxwd_T#Nqf#egNpo?KJh_^k0-x$c6<7q%Ot>XUEk61~@QgkM{em-(5sJ$o5MHu8 zm=s^d$pe_6cJ~~}-#fm0agj@tl;fJP;?WGeuOCqU)DKFr3EnkotBd0l3KUKtqmm8_ zn-Hw|(LPNhkk6h$IpC@ylVvx`P(-#h?Eb%wg{;9p^V_@^q_LO(rjwiXYMa|p8_}I2 z4`He-(~a;;na8tzp}ix-zdfiC(W*`S|IieN@%VaZ_4dGu-)7$6h!b~d9DCB^XF|(|!-gt~i;!T*8*-fdL`rf=cFDb0bYIR~qCIq;?VzejBH&ek; z-0HQlrg)0suz6m)=s^9E2u%GSge;=_;lxd%-~^UbvdUK2!S8L6WO$AyH==qj(ML@F ze5CQ_Y<QXf~QK{D#RmC!i^rUW>+bxZ<~Aj^fQ8-wa_!sM0}h;_;&k*y~~&r$0LU(fTOHx3)9eR1RE_FV;ASw?cV;vkt5^7 zIQPHGl-%>5*CO_bg%k0whTn{QKp17~_G8fbvkK!xBgKM95MZ=ppn^gCw zc`EMPYBI0hkcUMgS(qL8M#+)EmZoOnM#oW0ax5?6z#tBWhd$oi7m(a$ZQ1Fru3p753)n}KS6;zHWEQ}2`%nOz|=&zG+G=6T9y+~B5^mx|I2 z-v`v8FXnwI-h4^kiAf9QUb^5(oXqDMBoF?h=OKXE{m@*%W?ZwNd+N}b) zop6fI%571Nf={}rg?Po!p{nO)aQtLJ^o%7c^?gV`fD=&+`k+M zfA-v(^o34g0+rWg*0Nfy10?W(EXa7$? z@jm2-3qm;Zpv!qIL}jJ>5Y^j1)Xph=+=<)#xBE+57E(U9=SS28L`#+?qLztD*gvk| zJzBXk?~7(mA>be?kt~SHzjA+oqyH=>-tZgW{?+;_N`qrm(RcE~?O+60998&TToarYu!=efddgiR<*cKYFZ z-*&UD5(_zb-*C96iY^liQ{F4nKDWAUXEfH5k5dP^VYx{1G~Wa!MxvNDD+=Fdn~jQD zV5UsC`uojdOox}tiDw_%X+=l?-nvU`sNSjD;@C`c@Y?RJX!L@kEj}ZoH(^>kI7Wzb z_IZe`$)z$Da3b6(x29KQadvDm=bXB5#jN>J`Q1e$?Qa~}@8NM$0Lqsp^faQ*BYW0Y zhVQfE?jC^L`0@@%z!SS#+uQg=2l;GqhC**Y6#k80`#~w^q6_Y|Z+S)BT|S@Ta9%x2Q$2z6!Q5fI#DsG*sS?;x)_L z)b!ep-H9~9RZQ?yBux=fciP~9eJS@~n%MAW+1e94G-O>T{2K5|dD}GHbenk!drc#W zXnt9yr0V3OGrQmJ_eoKa64m*C3sSHDz@pt!R4DtuBbFJB03xx26r#SdO_Cy}=aqCm zq>t>ld6|o5n>{p|=^{U-e^_GJS^o*r*f&$aCxh?HhG)VE{}MzLKuRn?bvQI^yVr{# z6dsR$%Na_@!j9C3CWcwf0BZR}WjA*qhk9s>l{>EDIsrp;^Kw_Y>-!E%K*zNQUd zttpVGg%xF#B9*H!gMkbh9wPtQQQ`sm@-Uhv_L!uayE@TungWXuPBHKHDfD$~m(clf z7TdEp3i7=r{fwH?q@S_s`@kpGhIORghOJyiz6*n*l=_I*lR!C>TA$62GUBdu$ri!v z7A93_Mr*h;o|@Ac7fy#-OL2HOy&(0OL;5MzPIMl%j7dQR*;|r2WK$i;5Xs#L#4xQwE}SV{fz^*vUY4C!TXPGuTEJ)$ zY0K;{0Ei1Ocb7oy%{+GgFhO+?|rY< zQ)@h;cHDBXzciPW{C5#@bh|px&e#@X$RQOt z;Ne6Bmg^pT+f~kCE~xi#_65FC{ypiWVyBjNsHCm_j_1ASPCLciLoDi8H~T#TIJh>% z3$sn#WkV|@PAf%1$u&g48ABEmRyvMclsNJS%gS`*-=9g$1w zef$}7|EFgmIqSw_j)>F!Fm$hqJzv1~ z8La3nt~fd3FLpZXHc;1IZ!cQin@osnRLXnbq$lG*{*_6{hwuUjH=4z4z-jnNo4;0? ztDJ+V>Ipi~yBQgcvm|c;#XpAMZujDi+qok2!^NFZK8xLW&i*ct8iobVYa<0KjJX-K z6t-}XIzgW14|VBy)n3nmijN#V!7$$aH`M^B{RaspgCgJmuD8$V1P~kf9UP89&7B8v zu!*!VG=!=9IFT%ucv)qNWfimqs!{2XB~j_cqEQ#M2J(=QMEhh42jp9TzpA6sH-k~l z^b_I&)SfB{3%BD$^nc)XYBSzBP*1=!R(uGQ^8cV^NNeHq<2}-1z)0L}`3LA)CaDX@!dgPY<+z$oO5G}x3>j?U|K%YO;nP9i9?d7{`zS8Zvk%O{*hS^c~3hkb0eWOwCRqm=F$NFw;*b1Tsb!?LO= zY$LO*wtliF9Z-Hy?2hehkR9ePiMiTCIAk#C1uR!$*$zo}7olj@2h_=u_Ji?bmXS$~gnT z61K!J_3!%mI(yQoH@ww}pu#^G*42#tw5+AVfrVly2z+2Jq(TUyaIg;DGI25KE^f(9 zIgCnq4JquqrbSC9+Kuoutu6G{>2_LJZKXXn^{_3TwJd-mCsfJpn`o=N_kZh`*zAA! zVY25Lld*rR7Z*+Amz>kNq~3VMG$59ad7x&is8tQqpadE!9V|~&<*cE*x zKMTUJQ@q5P)$|BUs7n2Qpu8()E~chuek~txKc?W}$yqC??84B{^vRz9RJPSmz#bFl zV{J1xt(C58ch66E*{Dp6=k4d-=TPS=Z;DFSiW_0*srj?zxjPQNQZ<5FS_ab_%%A2~ zWf(u$%VJ5i<)GtD;`{sqksI2RFE zZV^@#rxW^^m1)W|Klz{F>dBvI~#za;HRF&6Ie zq32cI@LML)6Jo$btZA<9x6WM^4kh+(S`h?ts`VwI_NNG1b{8PVirrwt@{I*_%Kn}^ z$62U!N%I8judSY8oxD=f?w;4?PXFs%O~iWY20g~LSMH-4IVz6a7pcpr0*TwccxZ5E zVVDr}yid=7C$`N@C*6yj?f#mCE%gIcgHnW(dEq@;kF=39@{+)3kLJzI{Vu*qapfVm$xzF}m_;LN%w z+H((wP;F|24{-RaJUyK;lXb_l(O$j+%^6wx9tR4z~ ztlk3@^O%HmZ|?f+2l5LXcyl$KfDK%)g)B{H!ZxeR&SKwfy$84b>q?YRu96-m}L=w54;w_|{cpx;g%eRF{C}qj%pgqkRSK z3yz;=l->Z)js45^PUlk&=m6Y*4$)tk-NftXEmfFkj?K;WQjs=3e*93e_#hLJgu;d* zKA#5C6-c%1DPB8+@GG6~{XneG1Z???C#oK<;d^ap|8xVde-V2`TJ;9>u=6IU+~Mb@ zdW_oIKYRx?blU}1gA6py$>bV3`lk5q&VNGpPADfmoV5XNNq8HqEL{<6(1|HqFrm>N zNBO>l$o4^$kKk3svY{Wirm9sF@zm4}`LEeoA>Y2TpRWhbYX9c~A{#pUEZY}HQnngs zK3|qi`Mfp3(6;vEv|U0w7EX`Mni@|Zy8aXD+@3y5{V)sH%TcIE*sw@KY=x395QpnK zo@ou|89w`?_?Q>st&*?b=RO-DyRAtj`Ypa2l^ljtqjfgM>^Y)ytP+(xOsL8s#41{! z!l($bQ;#++!*6S&n^R7Behc=Q%lbFb>iRvm_QngFn1jy>KeP)B2f`aIh|T7?J~08Z zgc&!e48~FwUMoo>j9*-cum#HeU<3Bzr})zT$u`hb4NLqJ@!)?uo#x!W-!9MH=G@Ql zh&We!%^bvuw|*40GnC}xKX`z*;#H|U{UK&`!ZytjaG`|LANf4Zf3W&C2Y*lduENz) z-OPQ>t#hCBCEc)}f6+>YZm+`v_$f;DVQ7NoJj5nEQ$s$@BU%c}?>4p^<3SLfP_1j( z;pV=9hI|1M^)bUq4A6F8VGnq@5_=Jfb$_X>0-T8?>MKW^Envh#X2Kpue9aCpJ-+s*NlgR`pd~Y&-1Z zuN2U+Ecq;R7|sW*kD0%D=Ij8UZASf7u}-`iOiNH>oQC^j&81|cABx)wlwU3>%3Lnl zENe8-HpH?-A})8Yx6@X&(Qut;Y{Wqbhz(`o-@1u7czDp z$YYjPhQm%UvT=UWjR#Sg@2dW=)f71V}|iGCxDQoND;Pl zjYyDO>s>5J0cNSeYU)^Icp!} zGYGE1_Qk8{W<4w=r(H`2Z~eJ6P)9K~^8Q6Ib>`vGzhC%4sOM9k1s*!~9slGCiq>!8 zX1^SujvdPZ$1Q8eEu^kcQysY@pT-~lw|Ji zz0KX$PPTw(&0*an=e6Ko9M>-_U7KzK*4B{gzLSfoxXi)qc(w97+myW(KO4W@2D>Kx zh3^Sv!MuK(p;EV8)DLSj=T`(?2{5ioOEJe1{8^h8!lSi!7BSer>2A6Q`JV$e9G(WD z&q8skpqXQWd_iMU^&Ef}gW+%`L?n24baCMFTW_UPm_) zTWWz*UQxbmZ+nXTf}+H>3f!@LP7v6uO0bFDwh2GblEE3a0&+2b`Fv^;qWd5ki>#Re zzd@dalvtZ)bg?sH$Fd+uNY8u8@Dh3Y#UoPu)S-gIa$n!npj>KS!>I3%|LVP?>{>td z;P^!2v2NBYgJ|fqrJ(iOTEPFA-g3Y*>=0XfO>6mI*UDT#+WFd5r>J-9$O9CptgJ3< zJRDsxz?DsCHJwOA^XrN5FU#|`YDooR#OuuMfR0{>Q8o>HP7wr z+U>Vuh%0$(7KYy3PYj!iR3aMY?)C+ut@Bo*ist8YA1X&{oT$}*X1Wek`PqHki0I!e zUFD)}Cfe4!++@vAY)|F&4k74a7^u3vVBAam^^95gSrxi2|JTI6Q5OFhPn$Dj8q zUdTIH@@p}IJ`E?3Ur}dgwEy_0j?oL5Uq9IB`4DsknXdBqey$iei_LFwNiXXgp|tdb ziE6Ubc#BJtb>>MHKIa@|Gib#jdjOlCX5#xr2V7%Qv=A#oH|D*Wh#CJxWBoOVe_b~S z5|^zRdI6L(xIXo0=H<6J+C&0mb))57V^#QWQNa`c`5wNOl=qmkj#^wdTx0R|xzkh8 zvYF@%B!G~2XVYWiRJJgBN4W%TT&n2kZEgA=5T^gZ#@FVg*4Y2K)&kPvCOg&;U${y~ zR|^W+zTJJH-qFE;C&sq)`mOQnI8>Z+73Q}muP5{7a>QVz!8SR))m!=x*rDM_J@0ou zf&*)(Bp69jwykB=M*bX83+W%RNQpktu>|0RTMm~R=%aOe4@OH6c2tIC4l8FjvtnbK zt4W=TgJ}&#Pi}fb>Hu|7VqUECqftArdgRl%Y^HayM3imXAiQJbxXu?MsNFC}O2#*F zJeVH+Ki~cN?v?ARlj>&Q?>t(M-k(T7SU5b4%-U7l4}Wd5*B&DpGsA}==^O}t;P^8e z(IK}r8s&OfcT`Gw0Jyb_7QT{THS;Gb&o|OwP?42R!+%zoT%6e`xl$L%@x&ps?8%zW z^ksY*mJfruc#+(a>@{i9Hqbf6rmIUFY)D&eeBH|DZ!jQR9O1QtBxD1xBG$_RCQV1x z`{>C1zi1qmEcDoIo_>l(Y<7U_j6hFCpk1;!_venPWMw6Su`7O^*V==*tkZ@Amf}%f zMtPP*N~Bb2uObC!E7$hjghB}L7?<%IW~4n)yCs2Y*VBCzqi6eKP1V9YEFTKs^92VH zFe%3ZX)^=ODVrk?-@d5@O-rvRvGOtt!k-F?HJkx$%}EP??|cpL4_4Sldw3z!1We7m z!`IQN0Q=qr&w5sv#;>6JJ^qbfiEbjT@PDnb2L2H~e#HamuKYh&HT>P#6EtbR>+H~M9h zH9jSd*1#lxg_BEdRC4L6Iq7?WV0Sesl{PWPwS4d~n;=u&pw)o0+lky!QB zOA$w2974)qiAo|0H|p~XcK7CHA>~eN^iKqupT$IascJDnAv$#;vhsvhOF}iCg?*g_ zbv6qZz{?3k@kqj&fe3wDFl|~h#CO@&9AEviY89W#0{=Yv$dVJ~^%4{gXpg}PcDC?^ zZnT-bhwRH<%=qoKMCG-_tJo?iq%aH#Q@BX4#SnV_k}3vW*3(^Kw{bWAuWin|7{96( z*x2o{oBwrbxo@tIy1(#?6VIEc*N#M6x>WjNSa}uhn4};JQr=#x_goit6U-c7M5Nz; z(FS_`q|<95C-+P*Am$X}&+s4TVIeQzC|E;lMyPdoLqu{ENC^{Auf%yfPvgug-QE>g z!aLN*Vn2F|sulRX6Bp)+x$e?AF;ibE3R+PuvW{=zba_FUq#ZRB(}3zv9qdtz10w7CDNkIC~x+?9&?#hiIT(Pu3uo_(i_-h|C7ZUTT#I&ubW z2R=jJhU1oI7hr);8+AE9cBLLzLf8nq`pd`(H;L~+`(2D+ir;$M0^f)@hedq8GRNn7 zTEH3^j_TfjP>waSF1SrHYSQnMVmo&}i0jR8v2IQ5BqdO#t%?(U-+T*W=d|hnWYckU z`jDjE`A{ZWr@jIptA7d}8lqrUcz{s$xI9&^yNz5TRCmjCno^KD|F@VJMx>8TBiNsv(1bGn1Y4^27Du?ulB zWu)F>x(E-=<;%Ph{|-yWiBD!pbaGu2K2%}^qF8O>5sJAXj7JLA%;298St3dM@)Ron z{wQKW_9UAP=Wj0%!8hUmKuw}jS(krdRK3b_#pUPOtLS)amr<4~m0Wo!E>)u}UrU@4 zC_+BRJas$S`j|7%kyI=iA$-w8eq9?IEXgD719iy}qDXW$Y_6o>4*&l}q_HO<=HND?p>$@@q) zHAv0athd9U;q6xAg?69J7kUh@CA!nm*fbzcEl@iG((k?&Ay3t-JgJnYgQXSFr{g%) zcok@Y=~g;sm+@2%OGtb>g!fFjBS4N`vy+Eze;cqgup4>aQspSsnNQk+_wjKK%SK0W zI(#XJW~6}rA@D_aEd$CR7gSKFcty7HB>4Px=p6EF#87LFuT0J&cUNn{APAch*8$#J z5z~_+AvenqYgY%nzp2f+>pF4~U4*rru4lW;jcL%ltz`&1osTeI%F>8t4U zBl{I>9<%tA24Q(BiyciCM>^~S@zflbbmh{%m4MMN@1|;p%&KgwbcCvirXWLgBZxqm z@~k_&Pl_DEmqR6woWH+;^fvCW#ay03pj$$*chEd+79zVYqY_zxNu*DXv-d50g>0x| zLfNV$;aC-DCF-|)9~YX^{+M=B^C11GiG#fHQm;6eHfKutmfQZp7%nBtJ4xd0S^1*N zALC!cD~tk#K>0wUVc^4L%+x5>Ox9DuF(JSuVekrn5LZ7s^du9E$bPnzWOnhTfBAq= zbsrHlFq0R;L+cmC+_8nf>M-m_;d6#c96@!e=S0sI@oZ?tlgQ>bknxPcKWEV4nB{Sc zGI&yAvbsr38ozUqU`LyDOa{%W5`3u>dx#k<>Wt{bLD0{LK z{~k`!;V|Os24}=* zJ?8(xK=Xev;B&`!_ZI^~GXZHv9dt>-9eJ-OJPso#tR-TC7Zu0j`@QZ44jNQRc9T`C z*@sR<#u8Zp23(wG7kxk^0ZMq1x1zPMj1xFq!a_A%^%J6i)B>#Hej>uy0%Ku@li1hu zt9S<9hr!Ci5(;o{0O_Zr6N&=)PKIN29YN+;{w7GVYW^$^=*ID}IM>5WFXN1`+mqd~ zaKtYoR^R_D2&^vNa}_4m58P+p?>Y}Qz8tz!oxhZcISH34*~poR z9KWi;1T+4?VY|U-^9TibVeZ`IPz86VIvDfJ1~akO($NjMS+|5`7dMqMUd~#{$?0ep zXHuohDbqY_$ln411EXh5od+G+fkd2wZ1D`lizu0 zC@Vkdzq^Y>W`07}N3)^&alpKb^|1{DzI%}{PR28t&dt<7&0pXQj-SjlFOA0<} zE0EISStO(nPMnfQDh`>A8<~hvAM6%GB$TWMr<9WmCc|M~!tj5gkTxP(*#&ld4$O@5j6=_|JNLPg{oh-A-4D(W;Xr?8M4=Kvb9!x zrLo5)JWL&u8)c5fb(6R%Bf~>N?5SS|$HUcu^haW1yH~%+mgK?Xjyen%H`^-(d-**I zo{QB-q)PLGZmpK$plpxF#nKBbJSYskwm7-RRt-k+koxGeqrW#Sa~W5fZdGE^MrsS! z>=Ey@U`)NFlFw;V8Pp<61o(!1yU;wK9jOcK|F-Vfv4~7jDdmG*p6J%Pkl&_#`vGMC zp;3Yo`bS-Xk$$LPF?1k{hmP>!wKn*yN)_K8*k!m@<#83!emA=+do=YNt+ygSsVfjb zBJ%4(=JRl4@~st2eF=Z*t-;QquNoG&g5BIQ@*qT>qD?;h`6m;R?7Mlih#zUC{StNh ztDW4tHy(uK#ZC?s*TbG_Xf7U{Q7A1;RUC2E|EQD)S(A$ z&)l(M*F`TeJLnzdFC_@P`R5xJ&PQWJQ6j!Mf?+I*xYR!R9DDw~Tg!y>2aO<{CqJ$9 zYCS4v5}&w_UD5P>u`U<(cqfc6dy&JgQ)<~2GCwjBFs*uF?D8%Y*?qSyrv{Lc+qOUX z1s+Ga#25ScL6gT4c6DDXz1s^_EN~UN3!!S$YK*afw!0Ku@v+cd&H9J{a>zzS-Fsh|bE?E54mb*3Xy%8?s|-cm@vZ+#WU zACFvkeuIR{t#Q!TuHrFDdQNfYEC2vu#_8&Om01!T>i;@pzkq-{U#89hekYF`_CC1m z@P4D)F4OvuE%rZ!#}~XkwK;KK%*CCVCkvZptr{B6xwa~YXtFzf9Nt3gdaNI-urQ(k zytqEwVZF?8{%_37q9j*vXSt83i-8DPQ?FNP`1f}ku3x3}kSCt&Or%{w@LF&1nGuHt zb4dLI>hh{C<26OEOpQ7j3$-kk>ff;$dP6h4AeDEj6}r`x2Xl)SnNLFRZrF)ER4Iu^ zf#TdiZuwu1cGTv~LiEWYd8k`WP|qPY1ydlaTtI4QMa)0sL)2 zWMF)Oj=_I+3jy77=iX4+mb1h$IE7l}opl9Qn3h?M0kGZ=O53b@+jgQOii2||POQ5H zU>figOHtKNp*aNOFp4nt2pN5*Ja!gKlF|(C0NIhQHQ+jKtBzxC3UMGG=2MRAZb#^( zK2WJyz~yMa?gP_EH5#wFftwGqH(u%Ox8MJtY!pnf`09e_HKG4aMw`$nn$W5IuQLnn zEU^b&%t+KyK2~9va(RF;!plzI5S$(=G4T|BgK;7UMCT^Y!c+MqeDrKf*~*ZW?Hg7{ zK#1MZj;--4R^)sLBr!PM#zP1k(GdhkQXr7j3x(1Uz)}Pwbe0m{Tr)}aPs6PU;P;NK z7fmoJ8r$TY?rgpz9=12G&rLq+^>t_3IYGV&vZG9Kj++xo+e!+{D@zOFGK_;|6XE2D4I1wsQ zI&F-+cC@S%Iq=Z(y5N+*dr~d^ZV#_BUoPBDgsS3GsN!a=P6PEj9jk8DbwpSBm1WdY zoLGw3-ro(;c5i|W#_}uG4=`Y!8==D$8fljBLm4o_`GRX=v#d&d$3y*-+k^$D6lstA zf#Ei#JCqdzHoMO4FtaxDLhJYiC+~wn8A8NLUI09K15l#*rh2&F5vmD4$JamUWzo0tH}!;h=liIc*##x zc@;9MD05DJ3&pSSj}os2D`GOfD2w}@Qc(gS$Vy+^-JkNPp1Qyl zpnZFeCm(EwB%3QODcYo}H-p8sE3{=F9zDXX&kzjTb|aRJjxby1svhOmypYg5Hkq;) zukea;ZDBLHP*kuE(r*Z!#J>RB+JEv-eMpt^VZU%56Gf+=|FY;a8O^_EHCVe2?Gp@S z>5!KEo?~ex0EBbe4e?_q*Cy~+_3?$~lQ(Qpj~_alGYBk7Sra~2fU(!gme6CZf+Ww$O(JAv=(vavy_7iFSi^bl+BY+bX`YS zrY>%(9G?ThR|(t1^kCUIGLtqH8_nJOj7hl4t9vPXsEhC+Ml%6>knh~iZgMI6jffw6 zX}n(!I|9X;E8By(XCu)8WTp&yaql)bW^CxY4RCPnd_{0k9Wf#0I#e&OeYk*i0 zCHJFbk9y^3ku{i(`LxGa!Dk3F&W+qv8Wt||g5(Q*0KOxF7vns507J_KQlZG$4=<6u z>^YaXY$YTjpu}J|fqB$7*Hv+k@#6v;MqZ()C4x=FsP7VylyCUt@~fKs`sz?6j1dy_ zRp~Wu-aY`bk&hTxU9;I8xWLP@Usf0qJc)vgq~814ovn^{arA)_r|yz+M+ zvJ%YhFIb~DMMIgxj?DxCUhkDX?m*ORqGInHz$O$+Dd=v{)289>2bWN_-|%+S&+X zI&IW{e1u=y+Y!#%U44>=6*uUwqX&FLT%NvSFuavlrp-n0pDpttSZd92&x-;bI0&CT zzhrGqWbalxdC0rlv_qy}PIm0pzy_yhUH@mwr(Lf*m4)lg~(P;>8Z z+Y)HK{T=;Fyqkw6W1R0>YNU|F((`q;X-C3fKLxN*mDI3t8O`Byx10qJ(eNn4^Ci&nI2F%jqCec5RP;rYk)S_2S zG)WIqx{(%}Of}wd-RY?HYq{`BJUQB;vheY+aC}Ns@csa4zHxWLD_~ko^^& z-_x+);1kO^K9sLq@Ih>n2$Qwms+HQ!(dT4_(zPl|-(z3rI;(*2bB7^#ikq6DoBN$3e-$m3Y*g2Jzc)*R7>n_#4oz} z<)r~%1`8x@qzkekGQUJAt)%y0LodK+7(^y~Ul8BS-u>q5{R)ZL{Rl-? z^n3%ie%m(?6`|fQDco^meL=yQc ziHvG1o&q!iTO2mxE#YgtP=C{cbPpO|^o$CER#&7~Y==s-o>Z2}-vYMG0L0v1)7ht6 zWPps)Cy+~18}_9NS5+-JNm;0%Ti^HJOd>B)-!K2%OB%iOhQ<^5>#lyMo~3+0kBgzj zVq_6?chs1@&?3L1`D5qzu+5b(M;u;wl%n_83xZ6D$&JnYIpq-BQ{Cvwo$X;FZju97 zljHC}mzsFbJD1c4bN`s7ziJ}ibtKhATdv%HVW`ymkcfRjx>rX83ki{RWbxzVa$xdW zH$)`|#&9ji^XOhJFu*S{zzbltRjMZvPclFz>= zU>CeFeMXYoCnhS?^PD{i3s4=`<8fi?7EBxc_!%onIN2m~2Nn0gYl^dfDOPyfoGUO) z@YKx1#PTA@S35*Ug+7X_6@?fk#aSXC={*Xg3g5NQ=o!H1^!%ysKKd#gUZ!ni8NwJm zEs*`r$J9Vhh7gizGbmO-y3UF>zBop@!;$-D;R)v2rjM}6i?qpu zBi9I8Y2@uQanLURC2DzsxwyV39h}S0D`&&QiyTrPK^s%&<*wi9sUcpFBTXKw6aaLszhwmv&B5}O&%mpk1O zox-KkO=2K1HG)1N<2=F3;WcM4@_|245~)fH&zpp!pU{Gjzebwh}uS@v2;AMOlg-peWkqvbIQ zZ5tDrD2(ZdXH}Xzb8~|S4Zk=MF-|X(bR=!8H>LElF8eVfU@*FX0F#iVI>|~8<7j22 z;hjKZ3OpO-2x$iVjaus}Dfg84{g5~cqsk5;m_fN`nC$I2V zHMh`x@`>xp((w7_kcpqD^-lb~Z`>z>syTj9&tCw#qN<)J&_w=27D&WH(&6sSavYA6!8J)QUxWhjUIg@JDg+vIm~NGGV7l>qAc)Wn9t5Y zoK_9vGt#;G$iIoB_3q=LXHu9#)P7nr1h=)kubr0Y2)?xwg*OyKrlqIgae6qBuDv^} z!O1fpYiqTlK8buqeLVY+N%EpA+&ZC@|9hU5ZMLX4no(OX4SVH;XC6Sq;F=vzQoh z%ti=P3Jm#}W&?j{3!{YrWFG|GOdNpmFL!=W^Zro7mv^lPz9>$gm5e0WS#Lo9zQwTC zt$0)N0(&i_4Pp2E_Z8W9{byWub++`m?JuNcg)Vx69vk=JaXxdAUT{X2r09%`gdUnL z_f!`Q2#-1J?rcpEU)1LyDfdjteTm?x@ezJ^DUQr}VGH)R9`W!J=XEc~Ne`my*<+e^ z?FvRW?NS{0aZ-~awt8RN40qgym8BGGIwGrgRpp${AdRG9tix`Ox#iDh-%F-w?BO*Y zkTwZsD7exE+;nPi5`hphj|-R+Xk_T%w3y8|I2Ix%H;odys*#|VM9Ck~xtd0R$hThI zu&QI_k9X%(=MU{h&Z}jIb}qkIf#ABE!0jUqF450#45NaS9d!~DJTI+#O_AY+&zFCH z_+81RN^1H>nxfBkN_s5zF2a4#7oh^D%M25N#|eK5*eCnH5k97;a^XJU9ly z*#6!n5yg|FZ#}p15xORyE~0u~$0pzCN2X56d?Y%O!>`Cp>iht%QoL|QirYlM+$*hy zcdZ?`GV61k5D7{0qGi8;7nOgris#BK>8TVn9(K5|KJXnTL3ogaq=R-LP8$axx0!D`XhYy2Em;%BT_Ah&BEd;Y^&Z=V)U-8oR zvEPD^LNEuIn+0HsL?fM;`cb{jA-`5d7j8j&sud&hPJNZqV1?puLs>Vj8yB%VY@OTO z&g5(4Xb2wHc;n=iC)~JH^bvi8IVHp*2?t{|apDc$XF6UZDj!xC=~SgWhe}v`7yY{{ ze9g5wFNHloPkE{o|4pprxcN-VszCWgjVzz;lB-%#r6rM&Z zYCb>A&Z^AByA?O45#TkXdi667DE9U@ulVJPP|aA@7a8WP#l9+j$5DdLIv*=ZiCYiS z4<-%#<{eZ&?dz~MTVr(`m0oQolh)$vjix)hpF5(l3jwgMLr;+Oz8|1dRFx+_W9lDl zAE;N4VmEh?u5%rEy((Yg7Q?fQtVblh%S@c{j~uHza=_iJL)}x#yY6_0yZ{`)%`qPc zix4olV2s-yXRGxf%si$&G<=*iI<@>em^XIc-2cyL-uZ0qbIaeiW>Dy2^ZxP1$aX`B zav0$r>5i^9neyg~jFf=0cFHGJCK1P}Y9!AZCC@Q4Vu*{G7s{>~w&!wsH`ySDi!es1 zb3blUHy%mFm$=w&#$JZu|BtG#ii&gFnni+pfZz^6gA<%45L^QUcY?dSL(t$J++9O( zm&QA|yE~0G)?CgWCujecmmc4Go~&7`YF16s({Ks71>dgB*N<9cP_8U6aK2>gdzVm6 ze3t74o3zi(G6nt?IuTO7MOXuJv!*p~0RAp3Iz6GsQCF=4Gt`zN4q199{{*fsM`zN> zypc%nir{Fh3W`=I}}8sB*J%Y0fz@WUV)a_~9MfeHd&cO>Qx?m&l2V5YcA zN*}R9rDyWIJI!RXXl!x23K>cRHISp^Pm=eMevl`?Rj$US2Xoebzau=0>_)YszEHNg zN+98^p1koZN;&pHwYkO%?@u{T7LxtQwmB-o-fPtQp(B@BD_L}4hRBp80ib_E11fKq z>|}Mrn}NzMmeIc%uKBp1T2Aq}{se&bfKy*iux4_^Xvp!_W>>MwbkjIPaxrh!R(E-I zF}SSWm9pjd6oP5P<%`}l#iyj5o~mH~?c`F;Wr6!fiq z`4Jc7cWK9KsL}N=;}tCMA7SMaueIvxUtwjL%<$dSM*1Vrdi`SShkeN22Xr&eotd3b zqo^?chiSRAu+A`H;vx0~Ft*fMuhB2npgzZHBZYfL9B0zerHGiUKt&tMq{@Yao&1M+%#P2 zC|Mu-)T+Mae^%lLhOEELtc$z`2-B@bIr@*%pGQpk@6txj5_J&1U(vA*nzF`VF6|pXQ<{QqG)~ zmzvX!Ww`5>u|wMKv{xd7gR*zDMZf4J!Vyv#f29u$CZHgFE$n=4!1jT`SM5aU&A0aGFeIGt@yA_QQI zj$DjZlS9~zc;9W3BQi#PD~t?Ig*gfenq{=*t6(2siFgTVB8|Eoitm}-h>b5j2~wMj zce()L`kh+ei)nlj!=trfoue&v+Z0;TsE!X)ZW;R{EO0}yFBkAd&M3Y$=o6)4bt4Im zck`U0!bU`ZNyO_8jM^avhnmylwfkM5&JnMuu^ENj(@~NyVfEKW9%%@n!m=70!ygCR z^7C(HePZwLKBPGo6^b@smD4o~-nK_8={nTcK(4QAo)*tr zf{*Kq3&iHhV^uA@*Ac^DQQKk8NBvsa&I~j^>F0 zvfF3pH=jP3g6h2A6qkmNh7O-XT$o08l^)szBu`LLXUvCe4wLb>UiN2z~iUl)KCtlv2U*CBfp{C*DB>SOxg)F^K~=(^+y0BWJSVx(@!az6%`Bih6Zwl;~WDU5$rEuUHD*=*q^!z5nI zt4`eufhb!uBKjXzqT8RM_G%t$2kgb_?aph(R4JotX&S3~KVSuhc1{0GOQYLb1E+wz zr@@WqK2il~O_(jE1fuk*14a1Y6Jg=&7$-WKh zLA6z=ZL=yXYKpml#`ztLult+lueUIWLoh$Ml3Hhju=Nv-N%#}bbf>pGXPeHKJwSNx z%B`;}a=&zq-#lD%JYPk;?z$ck-d*Dh@Gf3|PYQ#k+^y6- zF8z5)nQ$Y5>V`#bEr`X}mwpUz{{AKEHtVeH+&QosJg)I1r!Fk3H=L1gArEI()SPTz zRCs=7S=`l?fE}t@SMo#uwzT#+Np__>~$!yN0F4zYSi|)Zs=^ihG zQjARM{%#05zC@FL4^4m(eFiE-x&ci~{)WS}om}HMuLar|Eq!Hs9_|5Y&PZrtJ9hIi;Jydwn^t>0Qu_bVrzIetyY z5>amQX+_#~zrS)vp}4QkQ<2%bDliZ6dnZc>s)rHcE54#l`>I8zo}$wG*=8` z!jQAkBj>iCqRleWWKxGrf11>JpE|K{<@x7Ps-?#Jg(-Ja)~@=*Or=GQutdgChzn9Q zag?4vqCoZeSEk;IYr3YYdlN168s8tzy5`?oWi{~U^nV81$6GXh9{wfp&jJK4R;FXg z?LADMg9mwCI1G(SdoKpyr&MaW9U^RgURRY*%KMs{imDQK|9V47!ENGENXd#j4WB1~ zWl!S)nNEvr@Y9tuFAN1_6jKWEyRb6QHFt;UX7%&w06ap*7@ekud$8kO_Rw}F6l-X?Xra)40?=MM^UoC1c z>H6%o&r9pjnC+^YS7zl&?ZdEEK%p`Gc2geOb$+0NBxzrogwO?Qxop| zvrowPMei!9()-J|29p@TrRAg)9v+eh8M*H`O`ZT;C>`&kBl$Di*Aw_c98skomeyVw zetV?Ekh*%gkE3t<8Zs{fr4JJfI;uoviKxOczCZKS_+EQVn|G1N*7ce)$p(c5R4S15 zA?3AH`|V@^3O44zXzJ{9co98&cZ^~k)uS9q9t|Um5^=S=qib6&dp&H7)p-Pjv)CSt zY>~tt-$pm8o6DX**Ts^qU-@_KLwe4=&cQ1UH})!_$C30c3u+$O6hEI?4#_nzuWX@( zVp5u;9gDT(-&GmgEIQEmQpWE42zS7F&xTSe!ea!EMvf5L#blvpbyUtpze zb4SJyVosUUqavdd3QU1_SL>7y8?|}^2Aczw{FoCEW`YUiLX48B*(OLV`J#Eq2J=rb zg~_c>HzX10HN6|#Uw_qqe(f~>btL#^k=tyKo3_6{psL4`Vgoi_)>S2{#+9g^9I*suLEo8VTJ)=J*BlAi3 z<*2rc<4U)y<6zDGN&fUSUVSpE+~kDLiht}>L(NB?TX;Blpc!6t&Y$k2m5nZ`fSL2W zt7~_Ow*!!T=`(N~08EQO;PE&Yi&W|Pn>RyE)9~7{I>$jb!Us9TD{O#P@_Bxu^Od*_ zVvXVF_H-txraQlJ!WplOOeOtY~#Ar3GNiOR}M#%j7BsyD=fQCWr%@} zP36}U^L@3?tfOs5>evIok8L`QpXrrWII4tP^tYVJb79zo2yo{0alwfc{(F$ME^y*& zms(aLqkzJ|Z}>5>Iz$8d25`-M#D9l4AnG}xa2j^Gd_*g7*Dw?2Kug^g6MH{W6_cm-K9~nt z^v#R*l-ACX`KmeCUL!16BHX=w!s*H#(y9L1d^Yd5BcAtbZX5m&1m6A!0y{R@;I94m z)$|I1W6X1WPCQPJ4a#8+i^+3(^^B%^kILeaSe1wrH>jq2DyGr3##S} z&gYhg0Zh6X8^}0^A}Jm%n^*c5m}EMJCNHuu3x8Vxr=wus2J4>e#yc2o8MTqAzxh^k z@m8#i2bo#*c41!l<);2JlFzrisJ)g>e_45e_AY+y`KvFd3%W&Q*T#9sE;mf;j#IVA zFQRv5AYpzmZ*z4dlWqxb&~zIN_uc)pM%TV|j1>9J#xlzz@!IB`CjVCGNhl088=FVO z%|%(k*V9SAq8avjcT4z&!MFNpE&i}5g}0%Dd{Xq#BHO75czR2r%Km!g4>U#X&rxeW zKEpNsI?v)W6!je~A-HWczF|)D%6s}ad}juSt8(+7V~$fEEkGRPvxTbL3)B&h8QWd6A?aDLGafJMiEpKeaXZmVFQuTcfA(Q9#-C*JM+eBcj?+a2) z>Tyo?l<-Y(E;+giECcoSJtKdIx{_$X0fxwz>>PQ$q`-kHx=!w$(EdA<~% zqE;V2OZ&9YO6T)4)${MAYr6ZRMiY#Vg)C?$sOFE;{LtMIwE>s2rCJtQhe$0m8@8{1 zfy>QY(BcZDLwHwww~~na^1BKgWXm%8`>aCnB2US0XXa)#_5bTwlmB$AW~HCI|La)Y zW$;h$h8k{kD0#P)j5q?y;^jY%n^>_-zwj`B{LZP(vk?x@oBm2 z%0Z?5yF_NU2`=oZqwB-LXqbV0_!ls_B4egpL)7#JoA3VD&gz2Et3R@v6I7KKCwsXh1o-|58_#>uk%8YAqd;x-tI%@yQU3Z6A zK7SeeRDce3&5;~8IV`gzgCa5eS(Z8)WdA>(;2A_m@ z#+Z4y7j`3*(Eg$W+0=6AAo zkyGn8XfLDwWtq)w9IS*Y3y#XV^ zcnWq$d*gxTl2S#LGNUu8O1`ER1^4lsy}bM+$fSd{JjsHf#>4-`wM)l`Ja>y$_Xuw+TTF`g40hY_$-Hj`lMd6An=l zTfl%4Ilh!ujJRqAZ~so_$aQ5VVnB#M3H>4osRm@8AmyYV&4BokPdGZ7e`(tMMEl1* zzx`{HLrwefylk?-l8IgNPeg=@*l9lrYF?kW+ad%C)0{kyEH}!jK6oq*&f02KAAV=r zX)-Uc!o{#Wh^q**C1mA~r|LOoMOrYOHqSkM=k2_O!23h8fG@Z7>%LFDk0K&~`Qt)z zxTx`jvHfJn?A_vl)2{lxtA>mR;Z;VPG66J0voDOM+BY#e9Mf0!PaOunPuA<#m^UOs zU0pse(e|ZOO|^40U+)Y)D_`?Bx}{y}YS^DFj`z{8kN&1rBDHQ}QW);!`z5`0ty_LZ zBAd^u5f@H%D=P$Bh0ZE9*PsO8^SiL`X!2X$76yW#{Xo>0*1MXPlDXl$w<>u2seG#q z68o*YA3e}TLXc|fo}@pcj8=}QSc!Z-cN*Eq&2*;d!)K)&wx(qYO)^46dO;tG(c}5r zcbT5m$045|Z}yg6&X0~YSsj+a)-B0*y0FINalOce`6q$k!0b%rFD!Z;ej=0?dhRy? zn)}QJE8X`JHL%+ZZ%Fnv$$Js@vLlzLhN(Hjghr*nj?^fk2NFu^rEzzBTJP$}BfIm$ zAiZSZN2IZ+4T-JQ*hll^XL7=JK*UPVFg7)H;JH*k(N#=x)HRg+#?1LSw73~1KxC7> zfI3!}qsp5k7&q}Xz4;NK$^8;&^&l`;WPEKv)L`-nKx{F8(Yt+ZABO#DqK+l(=a%w^ zvh&%ln~NV^ApZxeAEekg!~`t;5kz4pGRi0Ky03Lxbl9K@-vyWOmHbYT^n~RIWU_`8 z8D&aDqMwS?sw3T_Rr#EX(>=m9-e{)$lk%ATlC3$C7^^~VkH>J3)L%X8Nibb9~^E6V9i z91cx7_)Z|TtGPxvR>#Bu`qa4iZD#r6Jj<&ak7DKM&(EFi0{kZRkf2BX6u9tq%F4~e zmnD8x=dG!I5wo0cxvD#mTD3LL`V4>0p8!hJK!upTj31Wfzs{WbJsxFoXeK5r#W438S9%*kZmGlYuJVk>mfLwi2@R^rr zqT6)Zdokvf1rP+#J+grl&lc9UiIBPrZ`pePm!)};2r8{!a{@0X+6(p(MidW#kR2Yz*3MEt}+=eZLT?zO8G z$H*1-zAqNIRtGH{zgsj2xKmDkfluJWpU^0aXxU2d&H+wOgX<5bK#i9@HvYA{Z3>aK zt3H5%|K5QKP|ANZ5g5Ero)m_%+o`0|fVs=iOb_X z#`m={-oKHnT5-M)l{*iisUM>&IoW@6eVfGf4L#4A`iG_XO7)NPg;?K<;qAxH=aOsl zYLQ!`7a0nGs^8n{HviUCjB4$(3p_T8ZePC^T^5k4ZBXEweHn zyWa#Php&R2&)~gNOoJbme(wYou!97_6Z3*!899>2>Ba_IQ~Y~>xyPVl0cSq1dYaAO z#XikJ6TQl?+^jRb^@kH`R?K6Q3hz_l@$;>==ru1_z&970ecP`ZIp7TPDwO?ge$9vf zw7zS>=KH^`Z{;3S=pL*jC~{l{ntjcs9xRzK4)0YCC4heijhZ{)w1^Z7P7Q?$pu@o+ zr_+lDm?nZVJftSFzlGCkfH}vK1CVp!q1l^CF-8R-bILnR}MZ+@i((FRG=DJxX2RJ@`d!7sPgTqT{4kioQt?p!`(43%baJlLbRxzxc z-%$}62^iF_zP}G_dsv!_y2kv{>-0zEx_#X+YJMfGWQqr6K0;Pi1=6p!P9lMlhmMHda5&F|M0;YJQ|6 zry&*kV#U^SJ~{;}^5k)`g%)KN_3v%->Nl+V$7|*W{J8!v_Kw1Azn<#YE>rS}d}d?; zS&pfRXAp;B=>0G!?6f#gW$mywoa-a|#&6lX{bdQxP-g(8RZ{R4X1O*nHD}V@1AaHNsRvDgp2t74i1@fpxD%5V5Dq<6_W4u!G7DksCkbhc%o>tr6OulN}GEuJL^~ zA?tz>_@gn?I7h0|-*I|Y$-W#0(Y5Bb<_H?k(Cj7zRKB zDtQcgYi`V%Yx;Za-%aGWiz&BC`+RZq>A#=L6lG9qD>|UFNdn7ucpgRU#{%vRo*K7< z&tKjcijBN(kCCXQgi*@5gznCyXC#$YM+ivr$YLebMGK4^ulTx6LGLTB^CgLkXgyd2 zqr5bj^@}FD;Hjaz8?70DMwD8TN>shF1ej$GKR~jSq%xQ1E1rqWKU|h zi%tw%y7JkS5{>=h-RoNxobD^M^)#7YhmFp)^2ox5p9IMdlUVfsYvPA_(uYhOF;p|%+uaO!z*k;!5g5%HDdX98q;r*$#2{-5?grFAseuNDn+wzVG zq_@tx^|%}lNpMK)zY$cyXsD1Vdm+K9n3&kTw{UXgefPYTHi>?Z-a6>eKHV9#z zI(jW0Hd8DbHNAoE1Y6r(q;%8UH=vOed$rmMQ z3)&?JBwDp3(&WH!H@oB0^l1EMPmdr296UISNgnhGA z<3Y(TGZTARzX6`D{dx<073=T7^!wNU#PnBf)Z`xnNnMj2?%$5}N({Mg3@f$od1!WF zT(Wunppr#HPwiz2W}2v=pegpC;)(;uXs+Rk{zk9dNeom35~4j(;-KsI9cZSyE^tLB z5`bAeeq4X}B(vv473EX(*`EEJu7G0n)n%QD0m(OMvLQXW9hiH@f3Rl+rFzlM6!`~PgFxRns+)g$97tWUAZBlcClys9)R0zW#?-xowe7NIs9Cy{-vHyUF$27ezERY(WHCSN zbv3{3);K#$f2phxdq0;^IptC$Mz^MxX>e1q#^ZD7KaB_NjK=(vg5~qHADc?v$?c-^ z*HZRR!a>VF;AF+SDg7@vIl;^nxVY@|2GUcQ|G8mvnkA%H&0k7q9uG_~MdVCxsk{_; zLyT`B8rp=U4To3l>fF3rD3XIhOHfx)$%s?^g;>Sv5}3p=t1>YKbjOqH=d46UC_A;u zO!-RCp-o1l>=+Z%k&iryii;_3IsKY4DUqtP6_M6g7eW`u)i|qFzD7oCzADwt6qv5t zX8`W0?08D_A4)5TuHb~c#eX!P?|PxS`wc7(V+kGn7+uv|Uq*P7_DA)c&3HB}62w{x z(LFgjq$3!}fYEYoW5T>YiJTH1z_7S?C{0%L!}{>d8f?`qgL3hM_bn$|ZAt7mmLkC` z2Gi*9sAvPbRC$izwg;IMr)Is1qyEDe6=;I_fMejMcS{cOT>5m>NgvVzerrtXo&B!! z;m_U;k^5K@>?=m3!zaJPI|BVJ$M*@X@1^B-nBrO5@s_-8wfnQToGtovx-JyXYzcTB zcIKbZEUzmZQAWJ=U?SOQ1my)l;o@}P>r|ciACmxvZglF3|Nc#Y1T9#oG&Y>WD|D$-r2V`zYWv2;iKz3j7ycylPSZ1aK*I zIRCu+m)YYX^Vqz91ggGd0^SShvgxG5qX2DDFjCON}lmloNoG`y|!%G;ykm-+L7b1+l5@+e?QJ;ZgPNW0as zAEN77h)WZQtihK>Q#dg4Jw6dxOfVB8BhRZ>duyNz)SGcgA5h!+VoG2Dccb@o994_^ zQZ4s~Y#Mg(gMZ4I$wN)UO!=-t&NJfX??uFFymDhDqK@%GJ!X?ROnE`@i6r zvyn6#s}PttXY&l~EusE0kyMXQN!=1t^tGh_w)NGur8Q-Oepi&_PFVPdX(t!yd3{FL zbj6SIl8K0>oX7KtU4Gl0BFjiik)gAXLIhC!J$>#MR!zJNq@iBziAdPC6h7_BgEPSX zC5Ru~5(nC-kwgLg2~O*#BD^Iy3)d zv$dwTCH?OhR^YTcow#NSvJIbT|w|-zG-nA%F1jNX(l~3kjSL zF34VB2>vcD?;zlZ9_w;TX^A*NMWOlaZ85UER;FoY{3q%+iDhFwKOw;=sc?T{oHKCF z4&H@mHPqD>zZZKIA=sNE=u_KUGEcQL?Po)UjB55{b5YK{toAyV02E0xmen_Pkpk84r|slGR_&uy~j z@7wN|Ko)DnO~c6WCB&|6%-YWzSfWu7EWZx>b3E6`k2vSEuGb@Dnf390k%pP#mX(cg zQA1=i-nUUgQP=HI)$LY=b<2tA17gPsI1*$pJ!1!wlQ$I+ewn-G0lWH~@Z23Ym5J!x z1%A9(2|V(iKeyy2EAVms;{7xC+exNpPx;5q1DlqH`A-b=ekxU)fkuE2z=ZDi6IcA$ zFK{~Uy+|*Z?v;s^eDCe(jju&23$_KDkDXm4lCY!dGT28Lwy;5{vK81X&MWcWO3-9~ zaWwUaO$H_3f30T! zxg|av{>N^XvNEJM`0u5$6lk99b>i_`|D|06kr`c22-jF>n+n|=BcnR5z62;YByXL+ zy#UYTBCaRWjDeu#BPmO6S*2-=6mF~@uG!s43dM|7m$(<>+_o4A(M1WvR7HFp^H&%{ zRD#Ez3$BZ~LzhG7H#IJ>93sS@JIva{hiC+Rz@Qc&LtekIH_SnEJiupf<-YnE_aw({ zvu&KPDDv_Bl($Y2;=TC!3uMvu8bZw)Xnw<2RwL2(OnUU54|FJVYXrMaCzt$bi!l55 zwk*vhG6|ffEB0PFxAYcqy{@MpavfWf=++kBfKXmh4~{r6Ff2_cjm%e2`=p|mzP3@B zP@r`tv)Ji@sN%W~ z$F83_1tMH;S#s&d7Ww_RPK`;>9b6?Gvnik3uekXGRi#?V_>REEwTIB0!z~Bg1hzv0 zfzfAZ4dFdcD)-?1D7A^AfJ;YVoj%b>KT+~*gyq{PYwHxq89A8Kt#Vq+L|Is8LeSr@ z1%q0-^G9wK?Av8BD)P|{il+Vq$9{C_U;2j3S~c_y~XoS~+Jlku>~YB&qX{#Q4G8X}<2? zW0wHfA=Ou92sCdW{M2B8Zj(s|ulSw0o%2u6h#_K|l$hysTpq}Ty#V|pIKsm47aR)} zfA_nTXj}#5k?jkfcZ8d@=7V1_W!MaKAMn-i=DteeBf3fC?T<|n5pjFxK;(Fz2LN?6 z?Os}(U@<4utfCag`(kYlh?|#bjU3-=wEy5Pi_WnbJUS&Qs~)cQtXiv?Iu+4bN|{ri z(KTGx4tj+VpQ>c~?=;+2}gads8Ty8G^hX7I{xp`PK&6SSbhyE>O^iKci z6zH4M{Mj+bd0px$!{ml6I-doIm(d|V+*XPQQ<+`CsarhcNm&zlpSvjUv%EfmMA>@< zO1qXND$n7k3DrE}DTCW;gSBm7J^xud5ccbegBL3_22!01Qt&7gW48k?~E&sjVgppBD^@{nI)gDbwd-nj4`^uHWFz_4G2oxPDu!tlN!3-F15XU4Y_gs>Xq&K z4JWYF>O_<#Y0)Ai$sjsBGyKq3bdg%aC4y@F^`Qakf^2xKvq4Y57n^otCnG8UK057` z{^9KR_0MGgJ(NV^#Piw$17nbG&V!yBv@(kEu1N{mFNO^zoJr|^XH}f+g0SiP%F#jG zX;cgja1NMd?8y`2Md;qefb82VLq@*{GBxE5pXAQ1-E~bGZ^lV_z{&uHuu$WO_YgyV z&QZS!o!_7n=DT3_e6lY62$I^kpNwi)hecLQ&HYHiX(tUYbDM4-0x$v{o^kUgPiO_G zYp?xn>rv1}W;|MUdW+sEgG8=2Jnjshkt}19Ke~4*mjAAe80UM`>TBxJNKKT@B656N z%ci?2eD-poOR6o!G@B-DSfu9jWJNDARjC_)Gq$1g8a^x0tRgcF9=ZvN{QT|8_*h4E zuyT_y^fnMfa?T-3*0JKVr{Z?&EmLb_aami8YURmJKJ?4?9}b(1EDaZ+}5a_h8Z#Ax{UTi^RN{GgE&wfYwZ zEuq1+(TIbee+M6(H#2vX*5W()&cXX@+z}Xffj!ox{BJ!DH|5+L5!%lF2O|P?*8hVo zs=5Z+y8j-&W^18~ED$9Kf$JU=;>=&Pe2^3BCNf(%E{K9Z5QE~XR@FNOMaPxyq^8rH zxC7K$nlWo3x2aZ1g5s3NfG2AkB8DI1ixHbl8^k2?wqf%z8`uN`uj4KtlOw5vPG zHNxC*pGJ72XhB6QTkt+Vv9dOlVV|r0h_56p7Y;Ui>uo7ChZx2J3B@L2-q%Urt4{;b zK1F8Q(~5#KJIEHwY`@Vr`N!f{I0)|L{P{FTr1MzkCEJQ4w`zqzm*6hs$Eqe*{6wI= zcCuKMZmQgZ#>^FTfFiZoG}e}|cw^t3kME}16~Rc9GGax~I`EN)2@7m*Ww->LbXH4$+$yQMKYL>eX{M6U2}cdC-N7X^%J?$e ztUhATMd^Ee$j04SbuR-m#%{ZXT*ux`gVyaX;zpKA{LPjM^PS7JIYPr|*}VN@5Xi+x z4+QW}-LI;B<>DbQ#P6^-zHu(@av;BE#M>=3GpIi#P8Ay>XdSvT$ep%_@0wOOMuiEw ze((?G*M!NcFdc9yF!xa=nWtivr7MLkHCggMt?{-{uGs-;?f3jka z4u~=xIZ9g!i*B4b>)P$E-~V0R+QtAVU4Qa8XX||N*err7^tCO7=w1DbAjl5>11m6B zcJ#LX9@9d@?i^s)w?RnfD`V07DG6yG~oUw{;CUE~W;=_;MOhV!&);#D_-(C?EtwLg|I#dy+XMCly}>8&T&(THB=Db zDJSs>6J0ZlG*)=*f-1Y?zJO6sz-?AdfQ^Q*-jql{qy0oQgEl#|fHSCVXyVKd16o#~ z1y3o|{PsNf+d$=0S%kAcPDN4L;HQsj>9PTz6FCJb$PTQ-2$LNKNcNFBuY`dH&(7<5 z{&S~V{1rvk7x?Ml9AsVy!uIMcXur>wpC_o#q9oR9ioVU^Ocr}GJsa&ULX& z@c8D}ts5FvYpt7D_K`U7`lD9{lwNPq+|`_)V}6!;fu|Nvv5i{{gYMH|ulF!Bdip49 z&aSz{_GTjYY0yzS`-S%0(c^CeEq}NQYg1hE zpezYZpAya+x+PAIEwv{M4Iu(k9SPWb zGSJ+>;}%jD`!oiALc?+s|F?y_s==N}&_j7KJI_Qn&wrV8-XeH(5kkzWw&r=5o#6*( zO|}k~bI3I>H1Rn#hCH8LEj>61T{n|?Iz_-zecGIiOf`di`+8$2kvP;`xBt`T2aE8} zzUZ-#YAm;UZe%9oNslB`7zk!D-B1Z@J}A$nkF}f7cKW(hSj9XHUs~o(RBF&Mb+Le9 zZ))ROYNlyvl;cl8oSZF6b~bWl49V&2LDjdkQl;Lmd)n>m7O{|Wl@ITc)Y^ci@K)r^_< zA1oPu@v)5CD_a(yC~Zj0-EEA)oeQ;ph{3u!^7|NlFA!i25wy2HV!wW&@IEKMvh>PE z66R`R;b-pE3_Mu#W;6g_c(B4gTBLzpo)oEEaT0 zs9zdWs6*a-_+c$w^h*(+-cYb^``fAT!rJu7*o3Fs#1+Q;W@q-kr~kVB+|Qe8ce8y@ z^UgcZ>_>;ydEbuny8&^2t<~!n#FbRg^*BTYN9x}*-ZJ}rNTqQ&N>jpH^+?0 zrM!4QVMW;CBP@gVB=!na|K@YTOx`-?z=Ypz1lM|$!%@VQ*+_bhftVS&>cRJsF@UFb zqB1kVsFLJsqI7ctySMRpiybh8E3T>7_vxB!s!%YIsBd!tiK4Sh_Tz83JmH}*cf9zD&?o)u>5v+`!F#nVJ(K}dnSi-tQU zp}ZR_(Eq{u`Y9J!)ZI}SfFw@-`88t%T_{<$@;J*j0Zz*PZ0!Mz$qGBzaVI}34T z_d(vb?`$T2c8y|@_@XBb6nnt#aVXVSoI*~>*heJrCWhR|hV-SMqMP@q6sfIslIOAY z7ucBzF^yw8-$U7#cx}pybc@^4z>+LlTFjV5LkXFL1I(3&TpA{rf;6fcjO{%K0wx&U zbNaeQGlE~VI{fBya^G(}MRa8|c06rIc@dXO2m26eG+b1azB^oR2+X_oA|Ty+a8O(N zMIE4z*X(v9`55NE&wR@Ja(3QC@pu^fD+jtDwTuPb2K|yE_b=TSoO`U`%CI*pV-qd94C$?@;|}+-Cb<33dCIJEEs&!^?-fpx+u3xzODL5OhEALxyoK!t`xx@7Iq3-4vd&I%QYYe2&KMV~Xs z`w3e5LTH8xS7Ii^l2S-aD{B1wUR<);z$m5}?}6Usftn zGlF8hbZJ&5iu_KXVa2%*Bz>ee)4`DJ%t^`{btD$7XYH> zeUvV>tV-cmDg3-CwJc8IWmxDeCGr&{HJ6Fby_GL9Q+L=WF*ClO9>ny1F(@1NhbT-~ z>N{uFyWyPUF}Ks;D4ykRS17D8Ts0IG!nf)UXRf4cg&2ePC7SupYgi5w)VMy&nCAs` zZYSlqI7R{xIJsf<;H6%Otv#`xbr)ui7x|0aZP60wdkTr%ymJz2PatVYO<(_ivBVZfQ@5~Kj&P8teVSk{+j0jxp7wkrY# z6FdfED+-{G1or#Y*76vmq!KmAuMAO%sc?_@_r&bD(R{ws;wxz(e2~nTHcVaS2+YBd zu7$;X!WN8dATQ*~IRdsFn?^q8Z1?eaU+FjQ{(5sNon{Byf3GH$jcheTU-+GDpOgQU zU-L5lhHmf`daOvTu|xhQrh2TL(0#bxRU*3RMyuPdg`o3R-YsD#iqi``lDz?@p~oMU zo47@!_<=yf&8@toP3!)WXywTRdhv|w08F>5S==p2d&xf@W$yv?Gy1_fUufSH5{%|0 zJz|rzWhw33LI^(MCbB^lHK@JOrJUWI{V=!r`4J{Fq9eXIUae^%*d$_>kyL9lvxtxv zQD9%$eA||b%dPyi8#L}2_PBnXM0${GWFBEFo%lg@SQVpI$ZFQI(o|XreaRPED6P}w z1~K6CF4N=lZV`Sg(kOlx%l(>5tF%c%r6hc%>1z_=?H?TS5;C_k-)&YUpr8vucaE?o zD^}j+ugow`eN*6A2wE1kI`!QybXZ9cp^xVkO8)7JnSIG*Rl1I0-$7L=&1X}+fNPSu z{fGHcnk^!0hk4^-qV>7`+$#*I3*Qg1(+Mko-8rjb?cpM%o>RNGkrX+e)AZ!CF0;Td z;J5dt5K7j2NnO&V!5EPIf+?|Q{W@gO?anFsnD9?86dFRSt*nK zp7fAf&}I*m>Y;|-67ImZ(BKzF^Re1t%E;+~e=1|&KGUMcW95>x0};eR$^~YfV_|}p zODTR0Zanaes_8lk>xR47datK&yZPStPJ!e|vLaHwL%+*7Le@i1FA>Jm)$_y=A(6g= zS2d<7X07Cffwt89%x!y5;b{hFefqSEcBgw@vH8E7iUmPiXB|e%zURL;7Yo9f7=jQc zQUCsCTqV!Jrt*7nf@McwbVzX0F|W3u?`7ca!Zz>4Bc6i?$t$t=X0tmqRnov^CPZRy zCYC}ntkwe~M>;0;-QN5=a}2LI%99YPkZtOFJUP-{&n#^8!XP-BUk8kxw+P3?16iz# zeFldyc%AHva#9&q9LpN}Sed#jw>^YY&$@$5J{s<**6fy|(&C>|q5`MF>ktn%iK>QU z`C3AUD^Wy&vU_XcSrzi8r{_c<%HGOKt{~~pG&qu!aCosFYJTlL#eWdAn_GZHgVMcG zHmUj8O?Ixv5~91j?!5$|<6I98ONJL4;&+?w)DU`!?0#N}>_Md;7eDEADLjK-3g?=q znvT`h9o&EEp~{95eBL<<99-d-759{7zH&D=b)r6_NgZ-E72E~#%zZO!G$$~a+qn65 zn+fVTymCV0$-fJ7t;8ir?!lMnLeLc14}kzOU%Xs|1EH6Z}NltH1RT`bt-ufg0VyWt69G@2->2zf_HkZN$GnsDs#NSC;r-SR z6ZOM&YYhpO$?~gnj-O(8{hM3Kyvw8J`nL1-ogFV(&Pw6+8M^=ArvCsX;o|NG#3A9^ zZjHA8e7=^{MUS!}`RB5Nj0BI;t)8eovSyAHf-oVX;^-%u)83ZH<*!elhj5h)?4@G) z)lt0dOehgTPn%oSt7f#c%Ft_quFQh_ego3vAa|&j_jA!S zgs+bpSr%Be>i@#=%%u%I#PLzxdA!7>jco+xK(Q^aj|6749!@>_4cbYyY!Bo1i((1@ zb<)7iJaziJtziB;r#EGV(jQ0Me&O_!jm@@F5lLpEL}8lmpC!BT7cX4X%rjIAM9$l? za#ptSlYokMJhq?vi-#hAt`nU->yoBsmsE-`^LGh~d-n~ffLV#&#GnhqyivC)T(D3u zq3Gikl`rG|oCm(wfnmW!)YHl8Dn5$i@~hLm)1V$@)mD0o$%mcw1>UU zE$}I+NYxD6dVd6U{bvuh4s{7PXFf^?QLc8^b*d|-LH44SaqdaY2%T)>C4O+_;r;Mo^MRI^%YiteCS%B{u}}Fb zCNTv0q~WJBBiTkf-1uw;+u-+?fIjAc3M{ryBltYRsQMT3md!i3_DMt)&HK`s8SS5` zlZ|`HtlG3-beQ1lB7OrzV)&k#S&WinYbj(i-E5uY+|Fim)+hq6oa`^D@V>P3M+LXa zpc@*I|=6F(V10`5!*ypO9R0g`1 zM{qlMH3im0Co zBBvpdQO;)4IqD@sGSrBLYIgrlKn6CZoJS~OOXzEv=e$RpT?WI)r=3Tv((q0c8BFupoSS$^4adjc`fK;@KLEGu!M_)-EgEle1%Q^;Q&N9 zNMEq~qg<6~XSbOr`(sA}v>3XQ{T}Pv!S{L?7!1Q;KaQzQcqO#os=f|*!inqBT7s#% z%6fvdUpm11?!?o};dgY`#u&I!kY^J&zjqr(P-AN5uk z;w?nz|4JQqV_x;R)z$X)8r&l}^-{P!i>xcxH_KwpjM?Uh9a49?Y$Z`my#cd6sLB>z zlIHE&cb#^yg&V%)2T>Yk@Lk7-{Wbg~gi^YnE9`g9b67zVLlLX;0{IFX-`kwGrUIqWN|% zwNp$VyZtLaq(Deq)cF1-&<{L2!MybAwHfn5(&fCHJPi^-)x%Al{YW7(uax@Xj;qjJ zGjw{Cw>!KFz5TxR2-|K4SAixbl*0*~!9p6f&j@8FeCwhD+m9qpd;?cL_>}H=)I+r2 zLSKR>RbyJNses0)BT)Snr7%P6+(?nlfCge)zX6?-Rs7d6vpX?k<#fXdt{=V=&--$E zofH!2lTZsru_M8c3>q08mV5!@ljDY7SO+yEaM{nq%nd!_5Q`7ToHBrxONmz*t_xlD zC&|wMM^XrN@F^j@?~a}Vf21}p)ji=pBlp0n=WW{RahIZQv~tJ42X#Mt_^yYh4c~Hu z6U*Lrsn}k9i9W?CROra-=(su!zXt%GBj@Xk7lGLQ>U35?lvWn8U<0rUc$5xS1P2GA z`cRnu_*+Nx=h3*oCJayUH+t)FIF6N7&GJYnVV;VJprLtAB!6Kw=EAyUI$`3SYApd$ zOwLmLX+###4>nr{Hs_p*#=|NO(1^IK_Yx`g(SC=O`e?&qBK+LnOpc<&tNq_cs+oJoBgo;_sAh%m8CdO8E;Nqr24VeXQ z8qe2PCVVwUv5u|eiER2C+Vn~(3BmFor4RUzj&?u(RKk(MWo$fH$l^=>b|Gsj8$|&^ z7d+4x{i(0f14eRmA#!Ksd{rgfBLsJ)&hK@X+Ok@@mC!&%?#i|cTT?U8?%z)Fy^VQfu804miI@( z4hhQXbENOBghB)Dd_*H3AI)Ig9&uI28NOu=^qz>^#78w@O87yby-OR4w>Sg&BLUAn zBltxJn*IVO!-qchkh;yQJjm%Z{rC;)Ps=N{dqAD=cy6#mwqRKpj+UUACq|Z`{!Z91 z7Rf1|3nW6u17=BwkqSP`pW5vf7lJ!e7k=fnSRug%nbWn^8Ag}UAk0DY6(<8@E$aYS zYN1}{ty2EnRAt)U=d9*OtG4-$>nFQ<+T_Yslt&GZ4tQLyO(6mQe7@g^V%5HA$z1H; zk#RNC)l;47ncTQxgv+DOuF$PtZ_*wN|BQRxSNrIp-{WKdu1!^6zR>wx1#)zcOk(7D z?WN4vKW&yPSy&5SU#Q$p6k193Xj#T#UI&@>>^^cg{b4UxM`Yp+gj<~< zWju!`DNE`Cvbp8OOMTHY9=>8(W@ghoOh}K*>+;TY_-^;RZXNfpKem@jU>Vr_U%~S~ zv*6)B5|%UdyxCuDatnociuFV?WJKKpydFd_h~O=u#Zf)8$xdkuBxXM1M=FCmwmZUg z;_WuTtYE$-+#+gOP$GxY-;8*p6!NlcFDbMwbPY+#?qWz}S;Nil zASJ=Xkgi5S8g=-gnW6Is;cl>oo+#3b{i)Rx2FFM!!FW@cDs0r$AT07(x%84yHByP> zXs9*GfJi9*MbCXE?1;u4y)D9MGaDLbaFZuM@?MXKWF`y$8Xsyxo4D2Ahb!Fb9zIwT zXdTG)89iM!i`rGRg-%yDxw)d`$hr~j5M$JoPGJZY?(1ZiRhF;)pKVEbZ&tM}#sR>{ zBG!cFzH`r7n@3ru&yMe#Z(JZAn?Y_~2s3`qqlwPBE(;nf;}8*ic4QZ^ilZ3*11_rJ zUB6IlZID6vNDY@iy}vSN4bIlouj1J}n3qMI67K%MEy7}^R7H?IuVPVI%yw+rK2IDE zAoZRUyIcvQiccdPC<-1=qmHWvZ=DDt_iHg{1m49zhWl(>H@gu0mVG7>B`wn@Fby)S zEzp1VdfNTtSEyy-wQoQ&zbh8T}`kxar_mANa4Y`^P%ww9%yk zQ9DnIUywB=cK--oV>c$t!(wzz<|1y@pi5l5p1LC^mupi*E$-jG_Fm`ubjY-QT$3e> z=FwSP$X&l@&0y{+(LOjfg8t1ELv5=~_O+Hfj!DYr^(b`Ee=Q$c8NS>KOu2)QaV%G= znuJodT;xDS3_URFXBRT=1af9$cIVb9P-i_pC&LDy>%}&L`^mjme}4;|Xx*M*TVM_i zANY8MpIE7pE8OcY)5m>qOHE2! zo1%DVj|&{esbt+}#uy@Or;7RUQBr|m@B?0V=M{-%7|1bsNl3F?utC4s_(JM{dnySq z@+CGZ;^@@Nc&dKopX@C|*aB&l-B#Ng+3AAH+(S5>nl~;fAsuikF;Mz#(8wMS`wI#l z-SDEuIKq1h$EoFZSd6jbGwi4a@7m!w)y1)YT9jYrgk#Cjl;88|x_Y&MMik~Zsql7O zAJrKgMMSJBiJAqF@=`NI?WlAp;UsPR27d#NO(b)*R9*2(HvIK;9Tcb zh{0p1qQ{;qP@r3<_nEZUc^|^rWAnmWRMD3kkZfUt?!S}Thauw&Gvo>Lm)YzasdD^L z2Whk7XD0la&M0AX3g$<$E!k?q-OKE^g!l@$n1Xa0Trj zMGzPQOayG;`eJdREj5@zOX83Qa9_i?n_q~-TqFI1FS)%cPKTjYASdbhF!gaZXG1CR zl}b{W5R^hM9eqo=dY=AxbebASzObA+n)P?jjT&_h|6-Vn1TZl}dzqoi_X~i*qxyM8 zf%w*8#jylqoqkwzCi&s?-FYIKz>&Lue`+q0-pCWkO&lLPMNlwjREY`=CnIEfdm@oP zW68$b$Fn-Gx+&tp>cJ1h^ty5@CAHXzcjXs2M+bskH+$lAhGBK0@;Ufm+EJwOFdgoY zt3#Di*gUeVqj4UY8$cw4CaG@{ObC>xD#7d}69RL>=u0|BMl`Qpw5LD)C2t?WD8?K6{#4 zf@O#;$Y6fh-574NaeE z&-PWIt775;Fw+{?c{T2O_snKF*#OF6Ykk)Iw}v)#RSn)ChgxY4AhiF!dgTd*kiN#g zfrwr+GA&4z*f>6+O$hUXIZ7f0qLzBgNwdG-HlC$~2YBaK$9>;8oQc2Fqz~!Rw4jnC%2p!pwT-Y~weP zv{0C{QKS-{p3NhhLlJWD!*3CPbgXtJhcNV8!}aN+#C?QVv6W$OeT$9{^Y;z|8rE0$ zt}Me>REo!GVY(`Gz@j@fna|SKvNW}(sVM8yiB9Kwdi3sXlQr%`7+y zU-@jl+dm7u;p!&XwO|28FKlk}znJYp@*kbj?dyv4zar90o*yVsATd_f_>l;dmS^x= zNxO=5nXPWTOOVUS?|?%&tB^s}!%O4e=?RM%?I=qV}9h$q^ z(m9^9*KNZ9ty1p!2~Swaw*wBfp1UE@_+_`Js#`?3bF=G zw(miW>J>xlR`13eiSSh`$B8hpF@~i&mMsz@+I9qDX7vwRJOma=T6Pk(mNFDmmSKx> z`NH~q1|cOt(9i}GTAw5ow$XmVb(B%%%)m`Sbn?lhe#mek*q1m2j)3jS=9)H6%G$>n zdL!R?C% zt}>}%kAJ9GrH+r+$ zBKGl`2vaFO)wE-`dim_#FkpgZ!1+m@$|sNAHN$^mo1O{O)gqPn`R6DP@iiDS-Qm#W zU3Bv^@5$jiH zGk(M3e$=4>eYdSb_^NbCA!VN zbKH+5n=t~m9k(xFY#mzv9}az(y}C(G{@?x@!0n2Hf!v6k*F-P4iT0j(D638LaY2Zz z*74~(*xWb?#97#5Ni`rz{u&l*Cb>QH<==ED0Zr|mcNRPzum1P@!N%9H+K>{_j>U0< zic!k~Z3?Ar6Q7A};flV%`^R{9P1sbPj`LFP)>#rb?C2xQUvhX__NaVHfM_`A6vH5OID`ieDJxVR!*)TeJETzYv>!fwK}04_)r?D28lsW%F0bEeNr@W zzpA(U3nr{>Kp0O`u~xA4w&6`G8Zu`&(OFVk>$EKY-uZLyW_9@c!J@;oK*i@O&Hf*74$`n?p`>%^Cd69bwQKKv_ z`0>|MEJ+LEEf1n~- zLp51e3#Si-A*ybAhI%u_hSP$yq5?my+pgE-SmSf{cyo5!Uxy0!VMQZJ5YjYG9ah@9 z#q0kiETv7p|6~RDFx-Ux%@3@p_!*aS)eZ)T74TL!p3uosq-4*AFL)L`Q@pkvyU zux=ttaw?4)eMfFfYJ%bqGuW|tFk@d0w1B%QTUQj)?oo<*O&=?z z$l=6+>tWjU5n1SEim|4|W1>SP!ATXVFLf+Urx2 zz#uX@T40Nq+&kHyh7XylvGXcf00ucMxR;je$p^ta8%Ma6%Uu3bP53A+?ZfavR5^9S5M%~buF&W?G;>m_KA-QG015y+aX$jfv%ALk!8W{>~CKd9t7p9=)jvRma`mdk8H*+9Hv zkSvPKFa7Oa6X!`~)kb&J6hVOn4%^3%`SHJfDUqJS*e&+Y`KL(6LWH ztYixtc|K#XI-ZFBHdRE?=qELh0Mnv+$MGlvW<#z3Lgvab1*U9iJnmm)RX0qhpQzLj8@fvV?4vdu++c`kv)t_oRCw z20mt;KLJv}HB6l@c{7vWq2}!xaP77np8WJKb&+wK>>{Zcl}OiCOVTi{Yf95TRVyGh zkBjAmgLT-3w@cjWiPM%DPO7@z4-NswC(#0LeJRa5ug4EoS7Pk|N30{0l!d}`e974% zm!Ni)PT zGBhxrEDNrQ>a3BOs#p*iDF{6Knuc{TtVmZw%b`ptkj#TQBm@=KEGR^z&y<-C3rJ+8 zUWsoNE8x+-_U;FB4yhWWHlM;tJ^BVGV}7IHa}|kZMX%JYhhJ?bA2ThgLqLoNq3QZK z8$C76DUZ%!T-(#Q#Sjxi2$V5sy5hPd1!vG4FVeXz`5eVUUs3BPQ-FWc>8 zo3@^k_J{#AUJi0yO+|7gClsh9wK?XkH0kM^KmW$>Y#U*DxOyUjbR1&i2e>uCscd&b z0a^-yUc1$12PpLI)2Fl=4#n;8_zB43ON zaUZ(?JIfWW&wX#$sD$-{SxrmLi71H;5yUV8P#=CL-vDX}DHlrRZ@m*)&o%z;xJ2)k zDexp&Hv`&%z#@Oc&r`FM`>`Lt(i6CC%fnP6)~$x~s78K`YlE1WO6`~_RPa|NMvNck zSw3lYiT$ji_O>(RCXSUbgYM7*T7+5fpEv@tKF>%gaRT9j&u6)vL2Kbi>pTSr(43gF z8?nhR$P*y)RK*9BZ?43@q9OB%)IS7r$y&; z2_VRhinqu-x2=Vs^}^z1G7sfAog|hQWZ(t4f$=nHj8Y$3!~gs!vOM!Hc}CaM{^t=bh5aX%V2R{r)512E!0k=4MmgJf1f=i|NQ$ z5Avnbmps=O>LWl-bJR3%31#~OLM(*_u0A`qZNQv*J>Po7c5O!J0|{XJOdKC+`zSgs zyZ5x7n50N|Z_2%`W8(5A5Q~5p#gMMeU$$v>tOe)gNm?!`>FjoQia^ z-<*1M+dJnb+B_=TUC%{%I615T9BN;{wpQ`s8-MIxwGRF5w>~0KzEss6;Mcyz9Y6jz zV6L>8N#zIbC(ejli6MB#^7X3P0K#0(mo5nX=kkKJ>6m3xIt-#yblM-P_M8_m1dn=z zFoaOdKU4`FGFUNx%93M0YOigI&=a<+Z(t7`lcPMk9QU44fraL@tBRT&V>)7p+Es;QZmzuiaLXS;*l-eMJ1B<)s43EW><0^5OWW zuhP=Iv?!q+=23FDID)_h|4-IEpRpaWv)3z9Z$t#2^Z0XHKt10Gt0U(`Lu?6ZNL+}iE4mAn~!$#PNX#-mKyz77i@Yj zDGMK}Zdhk+E9=EeNMJ|u=fY3)HPcGmB_{%P@-x&kavb+`T-WbnpO%B`41Mq0^;=Mr zxp}CiW!G0nLq>n*KMd}1Usm}ZbFA3C3jp0{Po#J-+8y4^cmVs3t@ih|L+WaXJWnIR_b~eI1?`u63oGC+TM|LtEW-z#U_II1#~v;dmr@L7=y^OAMAZW|T8L6P zO4illmr?2gZ60PSTx|~HiwD0~dpkT_In%X{xP0EoMNY=noWVotO(Fv)tB>AU(^8t% z(z2K!Fv!wX`j!TsPO4ZD-g}gcRL`E#qhK|>khk+ZJPY)5`-4wEt$cU8+Fy>gI!me> zTuE1FXhz^8;wN#D4*u$wz0~IR*z#WmT8-h}`j7Y5rdy!4`WGJ8<)JP&Kt2jR;bD{z zM)}}Kg`{b%vzNg;M0$k9j6yJd_F@?8@;jn(4}#m;oQ78qW5uy4*U&a?*Gl2KsB|;NHTF@Sif2@Q8D5vQBn&Ab z&Y`}UqUxV-VTNVnjlY^#%VjrBW`Q~eG0(O4)LN1#@TX2l7mkj}8_h%+&9Tc~hw^Ew z`B*OkdX@AU`3k)^YhK!v$WEvRbipwSGTEW$gfx#l36+TDZG|(9p2plw*X&bv3U95K zB(9ARbTd)*PO`c{Q0ZFi6kw#c7cm`a%;DL* zF{2X&o~r(tO%$)c2|RmRn`ZG3FORaBexoOYD3<6a2fRGVP&P4^cT}Iv5gE2<Rc@z?#4@qbYFzmu8V(0^0E z``Zq-@j?9{-aG zn8vj3;9q#3IPG6#VU0#t)$lCN?4Qau2s9?#|o&!+J-TVhY5ln@X_2IQeQ+ zMN)6RYci^2z#CU3X_V~q?K~Ep#NOs2x%Jh3$4ihxp(l|Ip-!OXKip0wS`O`$t3js) z*KmRILpH+cw(6DlZ<`%$&FOKqZ9gVv7RwJ#Fu9j~;nVKf|J=Ua6gz~k&2>bA`l4=} z#!0q{z(uqzqkcTgokfop5X@T;VO$#LMlnW9X=WH5CO-GWrKol z#PFweIkk4dWfu$o;?7oNmV=ma)g70<$23xIDUjd6!GWPv8i8LNK$F%3ivz5^PGOjs zo1q7M={8ld)-ae{bTiE{b2 z^i%IbNl2`23XG*E{H67z#qq<02JLdZ$?L6g+tdD%ZL#)@Bs}B*KAs=D*8GuM}k9enfvRl9Io%kn$dC7 zl?y&}oGit{TF?^s{j?aDK<~!7qS!4;;d84-TS7L9<4K?fdda6N1nB~rVp+0Z9!{n+x&(!DEs0e650(c^y@#4Y+#7t&EyGfJd{s& z4wa&^Rj{b-@28qx3`#&3boShU7(G5I81(mAzSZ1nVa|m{50f5{beUB#Q|wsWhu^5^ zUg`G>1d@k^r!_{A+a>fAh^~nvu=ZlW!RV7wRoV7(Xv6u%(sW0cJ$HncPuG3F*g>|B z(WJbThH`ZvWU_|>n47+v)HOSnCjotvWvcVWDF6pKZm@qq-r?!Ex*+V|iTxs zAlgpqw?H9_Gc7~k42K1EjLG(d^`F^Y{@khym_mwogEvs8F zzTA{&%zoim*I;fVTO1O!m!p;q*GA^-6KniE^7ifZBOpVm*IA|8!O0kunj7Ybb}~Dm{8&wm z2&EIyOEHgNoN>AE#b2FC3)u9p8EF3TOERAw(T2cDLGS2!riWIc|Ob8=as!5$7 z^|G!1h6qZE*+=jkVW1ykfDPCIqw_wb$$q&dwj~ahF^Uv$N+60O040&gEwKdSd#L%k zHOUeG<|3;zuas#S<eo=3OJCHt{0q%F!zA!7iGikMFL z`u8Nm!jo9{Gnsua$&~L&?M<_x0Cucc*|o%uDJk{q_3uhhWCN^ zxj6Asm2jua4?p@;=#CgC>iah0THGc$!+nJwLIO!CN5_h-bw^4Qs^cy^RpV4kX;UwKDROm^!vU zYEu^ToAg#*Q~wQ8$V&f!6tX9F+Y8nb$%X(Odlb*a1tn{xfRw-L>KTn3q|s;jbD; zw+{COwXd2HuW*{QmX{jjqf(8SC%r5bBx-7Blwc-B0uXRzMlXme zD0VCU+|M|zt6id*{Vqzd-()HFhW4>g^*g`h z_sOpWow|cBkk^DkYWhX5)TX`JB%XuKQVR3Y;R9r6;|S_2@2~pro~=Q15Qg2Rgo`;? za|_b8A!mG8?AjmalVK=vXu&16!|>GhY1wG~o+Q)?Cav&jah;x5KbNR{W$g91$>JnS z_gdiX>m)vOLp8Mj%(c9$sDgbp`9wCUqJUI0Pi|$1i4{1e8N2cG$geyi6x#3UvvWG{Sf76 zG8bpWaD|#EhHaV<&S4%MfIA;MgIMz3bsx6UII!7MsZ1Gwp$GisGnci(i+8@z@L!t9 z#}G&Z6ofXx7S_mRmNw2d z;}Kphnm#f_4)qoRKn<~M;E!6|bDewxnW~5Qma({Hem`@YILZ?aZcQi4`V^jfMClp% zzRy7&Y6Z^nF>}O}BtAryhg~HB0eNo-@6Xu=N^{lpW(1`C!F`Zryc^i)zj}EaS1NL~ zs_S`HF2c4U)TO4fXsZy+=^H=nP3f0jhPKtL_mL~tyK9%F?B`44Gb~Vrz?|=X_Pb(+ zGVG&d>o+VB8i5O_1(5|gudM{OM@^KyWFa8x%dVwq^QQS31&^JMK$pDlt0&J==M+m; z*%4{YEgGaGUE7*#XX2!3P#^up!G>oIs@Qgy}UI1hMP=KTedOj)9>715z8ql=@wsP zmhU}U_^lC9_`%PApKQ;`oHf)vruo}_94T=ven@FAx>!DOs(W5ti#2z^V(TpaD}NYJ z+YeHIh$4=IdoU3J@X^Xi}yMNhJL!# z5&hBTp+C+FQ1i`eJ-~7F!A9Hw_$m_LtNQBCq8BC_(HSyrh(NiNsfw=Fzug|Er8>m2 z2OauT?pz&)ut{8CIa=5!zS99nPv)@X8_lnfVg+8e%g&Op))hLkVwp2P{x=W4FUx+` zd8q*UR=kyEziPaET+P*Dr5??Vq~^IloHiDrMgfm`a`JabD79CiT^ir8NjLvt zNIyaTTJ%10upFt+r)WTt?^aE>+*{tpONF|9033_oikg~ht}V9lJvjP?>Wy!j?@}YVF7$rbW5qVy;Sh3S>b+8pMZPx2uL(3}>DHJ`uJ$H|$@>C)ejYX0 zW}M=SQ6-k-0AMn=HI672g3E@m;p`bLN0QmD$$|I{$)f_-WI_uD=^dyf`ywc>QYdxA zA}Fm6-~SlQ6`;BhGis@ZexPNe(cWgsM3^a(g9*U^OE!T0LVgLeIIeZy)!x32K)|gw zv)Osx=QpOSNVJs*nl$Uf@cuOg$%waiCr-C(nmNW18P~AC&MAU$Id_6ZHcqK_LMvE7%ODX?Vqgg6s9Xqq=^7Ww zY8qx`+9&_I8{5NC`BEfA=ygiri`&=6jbdGE{y><pqXYR_+Trg33AlMieanDIw1}=ZglLdp!(5KK{XD(oHRbt;UTFikq)|y z^eXUmm;_>o5abk#T+2@~&gvakxVrjD{{qG8r{e3@$r)|dp?RW z@AS*QecT>>E{O$Mhbt$Sz1Y5KzsxVl)xTeLJ~rIf2)yi^VZCQ&cgx%J{j{%A&2tKH z@h#+AtPbSC_XOQVjTaF|`T|Yq_>GVsb|0F2*jftvn&$X#I64~9p zVeQq$#A0am6gXo3_g~`5@>?nEs7DA-uM}YjT|p3~p*p2U2xSw&-(r1Yek%=J-Z;H^ zf(5eN%mTXC#YUfKv96Sfsv1u?s$}%x=No<+ScIU2s;gP&@f3_XDMs~37h%u0{6BO} z@E;u+SyY?)f1I;wj7MAAIB@A`{t{w-?;qLyPhN`bQ29F|N%AQQwLhZ@tgKs_vo3?`QYFEf>6C4Z! zB)Da7Dp&`};B-G6n7`&@I(*tbs5!*uXYY7pFHZP-)H;jTp}3#c*Valu@>xYztlJik zZG7Day9C-)cs#EBhoy#=6#RXbPXg?DrJWM*5f`#&n0|nv^RI&TchR8C$X?bOcg8;Up930 zda9oJq`NU~lm;YXMiz9zn!*L}JKvw|8UW|$0&D!QpFUQN? zy5kn%KJhRT(PYy5n{O+0zP5X&nb{|wk?hF06K=x)eDlk@@c02USrgX6c-EbNo?Sv> zJT~Jh*3-^4!TMz=iNG-FciMraP%lz2rq9|%9o3c6;KU6&>YA%PdauF3Z?|{JF5kX@ zqY{5=Tt^R1etgJ+G?82Fk@MBW5xDT^z^lZ2EI|P|sUI-tAIh`%ylCbjz%z@MaPl{L z#%_+bGC#Bd*pTE+RWkayFr!sCQ!FUjksjOz*a_O<;z_Xcnu$`qw$ZDema6)dO4wbDg z3S1w4e+49O{KzP~=UyVVAXK3?=wTBFcQwf1@F#Tsu-wNFbqEHff#d%_s$>+{x|-{JY}kjdPvu zOpg1Cj^JjC)IY7dDPrwLjCC4at1O)T9i*cPY4A$@${s(q#@9GrEtmW$IyZs5ROt*i zq{xXCQ`W}M758Hg0#l&3&Rc{tky!p>PV^pEFr=6@v$5GLts+7eO>{ke$882O-=k*b z$B;qVGZau~^763yM5MfYD5I0UXd=a7KVJ#$%Bs%MmgIWglLY^>%1a-EPx;%TybsZM z`nolv>w^su@G$CKqFbSsj8BCr9&n0ocV!Mh zsh^F|I7bA_*ZCNz&2QIZ*xR|?>sQ~OjiR)G?C-bgf6_d9a5Wx_em2mJbeG`<1Qx*- zWgcaw6B6lbyjDCUS}hzPTe}k#;GKo?zmMqqdSqKI{bk#aHAohWq4$v%mPNWRf8kC8 z{#11{`4TCPUnB(@3O?pj=(xRv2&VW~urkVTjRcIh-X>RouNGmsw-9Bon~<3&u3;=8 zIJe`;R_>c@D{eQ+WT&xP2Wn3<#3=k2qZ;JMU7Va-bD@Uz?kS{Y-W^=@&?wn|o^W~) z$3%IT+rPX= z)POSmSlEHFm*Uu33orT?M2Y27759Mx9~UGUUd`W)ybj}GN}mmfwqO-&2+dB*?@X5A znjMckU!E^IBC>D029xzHlj-%=;Qst#J)a}`VL=rxyk+Z`3xIL%B8EB?xVsUU2Ca6! z0P86`4n*K1+4(5b3D!OIn@UBW9$RdgK!2PVY^WvRjL0aJ<#nOg4jygqhXeBWozEY}mwx_i@ z_eFyxm{T4d;ETi`txM$olufy8Iq_)+AE57d@-D4cz6}4oEYa=3@?uJ2DBB(i*u$3v zk~hUZAPT3YQrsQaR3sAQje?j#qDt;s< zlzj@Hwvy7GfgK33C)fLy|9Yt6ei0pCcI&H`@I8_aq$sM6GNZdVZPo1)^B|LVUiOH) zAd5nXR)6!gOh622;rz=6?g2<1KO=WMU==5fazDOV zpY#?uW8<8F7E&$U^j(Q_U>qMJ&c3N>0SJ^cZ!FKZ3Tk-Y1lAM1qZ8#?IgN9#C@#w? zh8k}MUG35y+>XbXUjem!Zk7_y{NC&5`og_jTap2H2e1J8@w6}i=jluk|5qUJqC525 z4sZ{AAHKiIejIk)cpJ=jAeI!tLbx7DU1>)u6$|c|J5x9h;yIY|ep?>D7uci}(DOZa zc8h)(ywJapdL~8;x9zMimlfDx{j{@t&lCR{I*f-ld&8YR^e$NdbxOcIp=V$bmT|D|dWWLUx3GN>{6HGU)>`?p zJI@ZT5ord@m3jSUKqz+6d(H>u$jMJ!Fi>N@6%k%r)9O@#2i~m9=DIDoeu#4Co_djI|0Bw+Cc<9=vdgXhme|Ky zn-2IpWEdspPmRdHZqD9HpgjFCAcUwYdw>qLxu{Kq%wS2zVM&X zetVek-i|c6u}lKuz~MG$*3Y?i$=O=6T&{>BCao;v`CA)ySqbhiWF#pQZxk$l;Z9Lm*QSD zXmHmA5?=N`=Q(@--_Km+HW%|-v%YI))^v8SWk_rtEkF4V$EF*&D-TEy%wbK$X=i_G z6g7%ajRao~az{4JTCBwY=~#a}e0kjk4HR#xp2H!b>lgmu zfcT8E1_%GvymX~hnW|3SRNLG>h-ZJHrAG^8v$)FyBL+Xotpb4h9kQf>*iUW*TqXd^ zL$28JrX<*`z%MFgDIvqgB5w5cZVwwch#B37;=%m|o*|(%Q2fdc4>2{m4Wj#f$n52N zh9lRqVFhOF@a%<)kO?JvC(zw(Xd~hrgpl2M_0~!DJa;2~w+h{L-!JrbGkZZE7KN9= z!D|agE4%knNq@N!?T9m0Ak$po|G$RASa)X25r;=nA z6iuZ+n{<134iK?&0nBm{URP1&dm1PuR%AVbu2t-OK-j zqUJ4%yX`^XGcdofJoV(*2iZ{=aGWnO?6ViO>2in~yr zvEuhi2*Dp#6@r7ldFiRa3i{~#$$&DULZa)Rub8M*{dQS=d%;f+FiAdjTkFa_4d*X6 z;^!G`+(B>9Z_23`H%BPfQJztI{L^?o_+34(E2(A&~(yaYUW-^YPqs39-63m^Lg zj>BWmPCNDsAe1}pfzKX~MicCo%6M`dA@HT)n}<^dH$5IRy|6E&V+~vm%>_`4qa1;| zrL5bbPjP)&8OEnj>kQ6`nA1r4(v%v*rw8Xb*^{sl1jV8kIr7#Bscc(tUaA*(b}|N; zKAgx~3WmCc)F3***KIOX8t(RWAYkAh@${x8T2GTOBs-Ng>?Ro5wO^I5cnrt$a ze<(jMp5`lD`g)`N9U?0}n6C^%#;KEAbYlZrgdgPb#`i$Yt98dJL%3zixLpr3vAVXO zZ`lkC_E(Mj;_K$Wla_eRefoTO_t1|jON)F#mc6`B6qO$&ivG)rBz6BXHEJ;6l(^{fp?-Y0 zOXnP1BD-T9>b)zefj;PyJ3kwrq4JzQ%a3^7=x+>j?94EgHbojvCJz|K$3aQVMWzZ-&3%Q*EWhWmD=zxK z^1Yt$8+Euqao_uFz4=S|xMiIbNMhOPw7+KcqG<|LOsG^a1%WYd3i_L0nl1bZH&FJu z8ONp91+BHt8s{dkrBavtUZ<@XwcI{XRlSLt3tgyZy{b_UAii7@nb?bj7V-ifh9ZwQ z2I-$ilBxB&M7f<6vXcpvQ-G}N6Z)7r}eP+P_e50kd<-!U*{Rh>hPnO3S z?2^)e-PTy#-@t2e{r&sE%P193{E_$&wyxlp-pFT@u&wrRS;>jm%38kUPh4LmPb$PB zqMDvjfxyrn?*;Rmn)Z2;kzf|HcToUM7;LcJggj3~Z_bLPq^K(MW?@lMT6twUI7ap1e#PFmtCV`G-14o zC_>5~{y@&9C9Xn(I57&YDC<%`M)CHljI z*uP-|AbX1_cxST_?e95XoqP|Hxf^%#!|f`mW{u4NNz6%KgB}grLa!C0Pi7#-1s<)G z)uUExB~NTB+`Y4Z47D%x(w&t*;rQz|T=_w%}Vh%{he zD*U~e)R6FX$_c~c>+R+!pWefcpghUOjMS934vsUWK>GppN3nKLFj7ahSrCesHMB0KL`(zZg zP~teU=PnHs=CRU*v`5=L9aXps-SW7KTao&All~DRQ0+WS%F(dgV*1G3FPTbZl2Nk8 z0kusdzL`v3CSXo`N zMwjYqhp)RG%X8e*u|BtpO=4GDrMAoS>O9GI&dS^KCoWFw5livW_8N?mt!%qD$1d>K zyH3g3Mo_|5jt2QIERRl;De>@S@ybz%q#edj2Q&{2GP031m_Ra9^Vf;L>(kU=+2HAH zCP^0hKM?5f8{BTo&~0~T3ON@GH*EJG8D$4AGl4_W-!Cs2=1VCl=wS1a&5hT{GVPKN zyBr~V5UbvTJ0jg4yUHv^_Mlh5;Ob)j7G2r7eVFww-KEb9=)sY7Ls#&AUv}?6)`flm z3!*1;YIko%G&~;E z9WPOYURq(q0phMlhQqauqA8I$>0;7l9~xY&D}UgXA3|_6cSy23-ZW!{!BF0HzKu`= zI-RW;g^^^O{OQiax*KDljrFEtxe8{L2xHAYG^V>4CuYAtzGSqdAVIrTv|7p8y&cra z*_6~;pIK%WgDAdzN1G!;DS3Ao?@l!h?>1Bt>thHnub%=7rr0kD3{A*9;6;ns8eqJh z5TXOf`yk6Je{>fUuPy9MH;f#^$RJ%J0QEAnubH4P_iy4;US*Z?;Ev;otLW7$w%ydy zj_|csE&pG){a@0 zJI#nJpZjJ}t18D! zPXXopF=g~cV;rk&St)%IU=QQrQRd6z*4M^W2ZkAimr9biTuZP7847DpChgzP0USnY$!{#4Hncb) zH=b>IYCG)7DCK4Ertx^sL3baq&og3GzXR5Iq%KWJC1X(vawpKNAh6}~`<2isCo=@l z%oY5=@W^n?fIO~hjEqFTeh+%*{vdwSZ3WB7=xFb;v-fq-dyI0ROryHl6)(S9B4G&IyW`mGUMuQL)n!x#i&~RO*2lO;=s>u>Q~Q(%N+5#JFwKU zo-E#@`>QL#Qy$>YPz+m~&{<)Q--$*oSHIw$n(@1T66bH4Wg1j7`2yAgCkF!QBH9H|l#})O1S2(J9=p$QnneX54GPj)I z*A&H$sKV6TZV~Nu>f&mx?Shssk$*4Q_@AUrSnf?J_|EAVR@JVK6Jk?g^&DE{cl~yd zPU1BDF4tlE zFC`Im4)4u4Q|9QWy^-pedn0%IAN{hi(?Y`^dcNRun{V>)u^3iUzZL{;S5tmyv`>$_>4XzjbDsh0&CRql1gh!npvypC+BbKc!&XvTcv3_us!Z z9~+7qYL{->o7zJAgxHRY+ zjQX=%x4qU}pG=1kHiNk|4RHVRb`IDKeGPH?YH?sy#<@EVtaYO0HdN|_?X)myVkqn3 zyE9~!#3)AtdiucQMQc#Xyt+NDJQW-KJheZ;!T4Ng(*Uuk zcZqN-w+G%bNkA-xR_||}- zt#{$`bx&3IxC;3^^mLH+EKN~A-Hxe$(N3VG?j3eT-BUwkQ0;lvF}bp(107x?u4qV;TL`fO}UyA8EJLD!V#0 zKF*I1)!Nct_v_ZG*^>JE%Huw`CpxE(cBf;FLhrwBwFBw`xvsFoQrSH{&QX72O)eiW zU7;AZQY=h=_K(iT5uOzC8`C1Jofv)N`@mL4tFIt3o5^+~_DD$NC*tJ=k-)RI2BqFa zfItqF>!M%^K|rwpg`@HYZ3KDZABd4#A*lD zyo}MY(8`J4kY^ZXK%8V{d<66Pog@{93Ms}6V;OyE(zK`>N31lOyPOxMdCWF)!73)B z>2l1MU?c?GiO@qhmIEI_j}JHC2e-%l8}Pwp#-lpWe~hn{>ClESqG?&_G}QMVh^#VO zMUFheM37h$tK|~R0q^O8K@3i|A2lncBlrug$v?Z91Xbf$X#Nof+E&mY>!w>cT_M`C zq;-6sUD(+Zl`_ccZ-D|^b+%TDKz_<%cR`-!7H_AQCJ6{`#4K_6wcE{3A#zXYe$#u0 zS1-(W{g+w$TsDYNA&#=6>hJje65~A%{5btn6!Wh-=2G9oY`3eHhfUI6`xh2dQfTpZ z4FuzqT<_il8&xfe?mRXvvzdkX-rqxz(3=OCSJQKo?8*I)^hTMije(cSJNssq)6t}t z$Z^oe!s)yk;<33FAK<(|_ z%<(NUnxj05&QslaMJjeE{If4H?3eNgx&)T#UG`>SkxEq^=h?_}OTy7$Ykmsy+wL@7 zPaB95Px~8nn>4%S71oA4`T~4{op%lrO?1n_@L@FofoB`yfl|X2@Lafz%OzM`|j^a&gD&_{dj4T0Ken z7BUf2iHy^Bi$8Da7nHZYY|DYyS{nQm<#T7=nc`=DyzDbVXtDnxR!oB%w0*selTahzvD zW&th3fnCG2n>TLA-U&DGgC5W~ z2tGfvoLZtCQ~Hq!OO zDetLS3haGDPz>j{&H(z6lG!5QUAe~^LEtXf&3u}5v42ph_pswvb8!H;hzMke}SaaX9m{_t#w!KXd; zL3RC~AQDAocyNDyxf;tQrQaf<&*=B+>aWei$`+Pp$^>v)yytBTlLa?$Q;#C9(X+r(mFfnR6U8(zhAbMN=VrR6O2yf2ZQp6Q3gWgYgipujcn8z5hH=#bh97cst~>vA5* zXQ;c0aGRNPrIH70*E^3VNzKZiv6n%Tm2Ru(C(|mCBz(tPsv2HE2}F;OA3o_f;62NE zK^^>IPGJ-_s}O!$%9mL!$H?lKk}4&AuyLb0=!Q5W;pfRr?G<;woG@edMM6b3-lkk# zJ!2(f;1ObGG&Ht5cqcPZ@alpKQy$b}zQqhRt*yB$0#2urxlUIajKpG^ofU>$jeu$r zLtV-N>UvGw2YLzq=1wK@?)z+Rg4Bi9PEW&iibNB$@p_#EhqoXUisJ=>_MlI>-r7np zu}&ZEUjQ$)GhW2};|1{8c{ss&>4re5=%*L}_mPzf_d6OTD3I1B?vLEutw(ltjCO7M zFe6@xu~fq34_Y`zt^U+4L#sr+o{Wb4XQ=5yb`?k^#?`)?LUZhWa!WnfoMhF3vI`%H1emFI`Q)eZg2pD_Cw z_a-Z?r1Do`OqXFc#n6Hq`)q?rHprOA8@o+RzLobQ?%{0uYt8*+`1=hi_ZeW*wa|MQ zTa%x3!0pXZ|APbrX}CCRO0iYjgb;WnBa`Y!c4a-(0M^mG(p&={KZlK8KD z6eYXM$m)VAO+FT}h8*PJ{1XpeY$;l}4AV0G7U)>7#k4c!pLx2km@KRre0Ca>H6Ua| z!^tOUWik7bf6Amn)iN=N#p3sNAttfQNQpkjxX=bb?(vI5f+yUCND%JPB*!s^7WTRm ze}R5w7qq`%*>SsllOD?alOsu@<9nt2q|M5i>Y{?}DX;J4pyjDFn+1St3Fmp|w&!0g zQ|Zph1N35EnxqLY{pJGfCg;V1JmuXQ1RM&tP^jOySO zwa7j-(^x!ezc|mY@2NH3&G7k246O`;VCyu98;wcyIJ8ZD7jXSl0`RKL-0D>}L$Z=A z2HUmnd~HT(52oZKSUyJ!={%X@^j;ykN#IdR9w`L0Sa@KI?O*l&R6g3bFiS=F4$CdY zbvV16@kH3yM*0rxw5Fb(qZU1g7bvm+1_bm*a*ITNJ4TygybMK(8m}$-`C=@BGY6E8 zpsUv-H`==XS9sQl)|q46I!ary>fRqdwWADe6B9lBNNZ}5jzsY03mU_-bF))1A2cOA z0cLr{cZLi!-Ho9a!|wt5Eycvy-SP+Y{Z5kW1Il$Tq1Qr9p7?<1eVl#5Luo)5qK8D!_bI zyWA%Q!>7i;D?*j;&-mJIj<6P9UA*|QyExl4?^Jo|jd=y-0z58G0MDV`UgG~jHh%#& z_fWL$vEa&*vVUr@h%=gW)w+xYAw^&_Db^r4ow7+RcRhn!IlW=c*6X#$-r02fh-jxV zx}@!}mr4@uc!JGPo%gr*2iADn1c4tW&nk6=uWtCAKhO*2~o~z}Z}^4=qUhBoopPHSB>IoB_bQasXpu{jPFfi_{4p zDe#f|oE`$M#TSxd_D(;;L z_^z#-O=uWABG_pW_j`OQ_J_$Dl=Y{#zl&*EW9XxBtrK!~52&QYb!*n-93S4f)W~Sjf*=-*ZLk5Xx>l7j~a~7RSGyTkg!EF}* zXY{g4is{Y!%^mob{_CsmU2sRo?LJl$B@amHlKj-#m}=3Jx9ZBL;%??;=S>NxY)|!J~iu2Jd2wYlH>w>L*?PQ#e)EHN4R1irsy?yCaCq z>-$dfF+#bMcpIGv*%P1qB4l=L(j6>QwrqD2w@!Mxl?+n-%^ta7I->Lk*v`!h`eOcz zrCVUnaLi=y0#mlJdT!uGJB!zd$BUch>kY`WfL#$0gdldS;#%d37xTLNj@=88N2_c$ zwZ=)<4SG>?8qN)=RQugWWnN+ZEjG%~8$DCUOvaOh1^D)?-$AWH{RmOoGx$%A$R90V zmm|xi5AnYFpC@!%TcB&Ti|GI)XIsuF>?cluHpo9R%l3`m7TXG{Z5mkY5SiJ;zDF1p z^pJ6sn5sL`>Q$&)Zi+{ddH)HEZ`AG#0A zLNG$}H8Y!EwyKd(b~uLn#psT*yv40Pub@xOdb+bj71_|};{d=&(8H`OS`OGpcRtjQ zl-=i18!Dp%aE>y)iSbES`ZL?pq!6YM4rfYf_f(aq;-}4FED9Ek_n6p4@D}Z3yU=-*pB954Q_`G-q#|)R^ec z<-A(qt48-!!HL0bKSmZ?6sQ|}|629Ekp?8NS6uw~KS|Z@K_&`By%><1o|(+-`k%-a zMFsKgZRcYR?tjFR5;t#_s2)C#>Jb}T?=cXqwUnSLbcT~|LH>WQs1h0Em>z^TRBssHEAr_Z6)wd1-k+j z^L7F(GD|dkjU;AYfQi;XLbN;XYSMuL zp?;?mQKwgW${rPVwZKeTama#3@WY%0Fz9|Wn@5Ut;#bz|$eJr^j&F~h-t_xT8`mec zY1F08{;Oapl%{wzC+l6ys_i4I3H;g;5ReKN>-euMiX#&RqaCUR|1K%{zw-BlOCQ`P zw<0lfN6Lkeu}b)K#&=wUO^MbowB6|}0E48g^MNlu5_?u!23L^p+Jh^^h+C_*m(EMk ztqD_*X&=jqhr-+TA=2@i_Z&OQc2(4cAxh%;`huAd?peZ63;2bG_;84%| z#fj^(8f1Al6i>7uf5S4tp$S`{Zp!}g3i^{%BH-O$+cm`=${eEA;_o1IViV~^&4Nc+ z^V>9gO$v7}lT=``$gl~GN!o2h6WebjA%diR^9z~r+DFoqR}b5bj}MVu9^Z2Pw$#5j z?)?d}eO;dc4G^W_+B(J`C;i1WZy0Xjf zpb1+493icW}wr5gAKks$_BVbHHvy#4h@;3PV zn5)!`i$WPcP*>qg^}~9A#Esv@oZmq@Odi)O`#jKtWar&d`hs8C*_T>-{EKzxxb<-4 zn{eu@j>}Pxz2B=8kf=|Z7ZfHGDDr}VA9|wec-BurkHqK%!84#N--%KFTe!ewqIdS= z>;!pVLg*JRlQLR~RW|s{&NmSu)Iz5ElX*0nn*r)s_?D?z=;hq;De!*$xXcagsWJDU z0OlWsPixv{Vvz-0Du2KlsQciWN6Yc<`}_(j!6E-+Ov9iMcL@xi5USSpl#w?jZiX5q zpnq~nAY8-+ZI?%8t)49q{txT&w_;1_P0tbEHfMSAruiliLN-y8aRPA(8g#tRlOT3y-UkL_czgyk2<9W1B zW77UL=_VWM9=n>Cj1DoM>1Fg2#j?8kmBnM)-X3x_b$rwRq-%ihc8+hP5a4f#)P#B) z!Yq6vo6!xlEHBt--kpa}NvvTK%x#aLIa1??;4!)|w=5u|N))zLO}qJK+Q~_1Mcz z&70c}>juqf-xt0oI;`D`a}$YQsV2gHLn2A5ekgM0_$9tzsI1JGqnjv~8x{y{mf7sF z%hUW!W*DO1%>S9x9xG+H>)>vn5Rr9BTu3P(}DX~hiL z2OUkS0C%hU9Qyx`^B&n)C@Lx3nu?C?;f5!Y&w5W|Bo z6Mmzuc6huukn@ZOChC$L%CgSM>SkrJ1H|L{ln49dSwlL9Z-00c6 z-`~pH-98WAJVfIeigqS6k#U>U^|cF!PGl8O*aJ>n`r*5C&Ye0&lCPmFQ?XK)ta+wN zkDt01U_6L;u?49v4(14_BGtDf5dxHlNRCAN4bE<9o095=uY(PD8;yi#ymoHO)0LS~ ziei7>yIxp~%=t7^RaQy^ocYxsN+Wr^yW)Sd$ZbH_p$$z&@vP zUJj!4Q^M(-kg>B{b2>e_MrWL$&;on>Wg!68I_fPSW-!5Ry8WtAN?%ZEPWrt1di zc{pUR{eBA~{RmH3HtV<*X(GDHU^p=!nAwfqc38diocLCx0JQV{C~ofJENee)U~`|# zkaI4d1RQIACJ$GHfPx?Qo7}u3OIrR5)XdR#pQcN~V*L&Ok;we<$%gV32n_;dx=W)f zee?y4-dJCaMxf&y9obAgW?lE}e^TmpPZf<-g6?2HleDkomB=`b;aqE(rF(cw7d)#l z@u3-NVme%J8mlg5jB^^(B810}wPZ7}q)FH0w8+mK&(uvLdjI_kO71h(=0K zjbMu^tj-t^zL{Q?;`HSx7#l{2dW)HJi11CVyOVz0EG*tL@A2EvGP^G&7-+~IdU!FK z_zekd>b&(SW^>OQ!!~QEynr@_KFbIVI6T|}c?@ZsG5^^7`fDsVbmZg3SC&X?^q!62 z<5d1QD27O#OmpSwtVYr~@0XuMELRk7%GwE{p>V=+QfIiTZj?_~b&YC>CjEGFL>@3r zXQ_Hj6Jc1$j=YIVqwsLu&}-bOt$1JNaU^d(JioiG29}xswW4>`BvN6VPj(ZryllWW zQVNYqo=wOwjMixU7NRKoxN-VaT$(#Bhl84ur61o!Xv_RA>Zh?;|NUZYPi}DUXDaN} zbBz;AAeCAf{u#^*kRaI*8gJmgyjn$;UPH~`W@!gNZjZ|Uq?JH8U0VHA8tL87 z*mOIW67E1u7r!sDax|m%E7EH$zw0JX^4?qi=gqzbYrl_OUU@Lg+`%_4B3arFm0zhK z0v`~nT3b0{(YC2X$iS9-48JB?IZYwUEe}QuRs`$0G+;6S*FF!2Ynkb??EUDq*mG|K zuIzZ?QqSX7?#SM4DOxt!jre$mRZ6i)-j6d#v#_OQ_Vz7IL)d@jf@$5aonqW|0RDLW znVe_wo(5JGIvhdmnph4}ji;E5>FPN;v=bm_=a8wv>!dGqIv?{pF66@1^hxIXqjQsc zugKkJ+C9D6YhIb@pR;&4ez$hyl=&VtJ_;}D=Uv5aBjQgn&%NR1!p~?Pm*e(|WS}$H zW+T)B)h0r}&A#+f0_@E_ey;Of7uyc!^o$O=so3Pgo1 zc}|kQ9AunBzS+~*E3sM-X0o!$sFVQ-*s6lH4BUN1N2g;oz3u>^8UlPZ!&+iIJk9dw z)fuYcXbS|w8S~AILu*WNc01_6BQ>xjvS2v8@)oOn#axq-Vn`!-%kOH_JHS0s#pG5SQ*$>151k;1$Sq`EWv8Af&XX zQ*sKfN#48J-cRLW_}Er5_n%~2@cb7sGaVW9RRH~ORg@gSDery8P(LdBES6@OH+X#t zA)fN#q!tJIgIP2w(9^y54-@8sPs#Y~w1rAfq~BLpC?UIlutgknz2>-+N(EP1_rQ%N zQK@tD801bA@SDw@ux^^@etV2>KE|UGr(odIqS;+vv6uX8Lnw{HW5TkZ*-9reP_5rG z3rmk^yf(>y?^k#Hz^4)G9n(6G#acB2*bq;Z5KS^yfXXd_YnykQZbo|}H0wgkTr_P< zytm=1cc-jX5$F_j+?L+g}}M9-@PEtnHOe8YTgmIBxJ$ zsxbU;-kNBPWbD)?6wc0;_?h{+L?u7KeU1e#(RqRgmp!aL>Z`F?klnBO)rXPwW&za{ zn(R=goMxB4q9iXiYXoj}MVb@R;y4GN$HoWS5BND$OrUs*=)1TFjpt$p*eyRaEKXas&iW`OUnF0b2T@baSUjI<5e?2ZAI5hs%D*|22h%Noo zz#PXAMnvjkky!6E?wFXs-o*(ZbeTpda@A%f4=aWyN!N76PulCJ5ubW_OlqlIkft4 zBeOXOvg$yO!e|p%{M0#m?4WE)2H^Mwa>=E=73zd>;!DAUddZaSImnERmaYH6&CKJb9Xj-vgu5a?P2`!2Z&;4xWZVHg&cc~Wvc^s}tV$az0N%WS7U)E_zm*9yJXtoZQSCBB=69Ji*q99YFk3z^1=pCxH{2$w&{YLiA@ zq&`uw`=%yH=x{P~v3b2hSkUV4mh35ChqT_MX*cM=!!)ORaIl2S*-e{UO?9;UEjr+QzlV90l&>5_lNtK;3 zr6uv?bQ7!u`^K!sl*USTo2@KJV`n`-*2sr#Z(8DhwL z#-t||B9@N#k`qxsm_P@29W>@e_RIq*0Sv(TlySklgA0~MQm3NHhfJ03FZ`qD-SSs80 zV?7))VO0fJqzAYLEgX(aWo*ZlYgTUB!*B6&TJ?E4@1~7Ozfz($?vqs{Fy1vXV2XF( zCJKG8SU9--J8Irs6K$qi_9}D7I^->Yt8gOVW&8KhcWoT|AtTv2nc0hy3zA!H2Nd-V zDG3jF^vf^hGb&f<2QUH$#a?8^F5iq+!iU=+=r$1+okw>j4-}}Xj2+d_U3|T4wDTgT zeMQBNLVRqjHp=i~2a6us`mlmZa8H@yY9U z1IV>N)Om{-oIcq9FA=^WuM38kvH(ASac+n9Kap&M#uHLokoxI3swkEs4>eYTU$pwn zqi_3u-ICC|eaH-VTr{u?^|gOcvHBu6KK7aUDPee5Hskl|ZIpoDKP73DWa^Fj6s07P!zbYt=Mp^Li=3u2-4=q`tQ^2HV<(5Qb650OGyI0)THy@^K-kydpoZl-~+ z%uv_=&|NsHAh6vfX2_6jw@S$MlDC&B^}{qI)gG(+Y`(Fj&`dB%vDb^~)3cb~@(Fu` zj&6xoM5kKr`pZ9;w?8Xs`k(GGNv)8ZrJ)WrnB9+d`#G1dKB^;_J;&ZEn-$I|9F+p& z_U^ZIDe$DfBTQ;T3zdMHazw{zwTc(y5SQuYjKzD5@p0q3 zzLoc?{PK4ALxAn;>Bj*q!1ei}9?0l@LXqBVKBM16^yihlHU{pR?L|N%DA}bys^vzn zm7$`EcmTA>X(ZbwIkKL9zE{Z*a;lVExjS?AA80xh4L|KjDoBR@hi?rEhnI*u`iE{s zAr2&CrNyGUMl2MF!aRu!taCaN$Ic1uo)0gyda&YlP04!xWlA=t1bY58!`;55_a+py zSbUotm9z0_GT18&?O+pp)M4ixMFe$JO%G}>5@k8w9|xG8SkbrW%+S33i>zW7@{r2i{L5qkD-dj|wPU;VMFA2TjE{KVpX^^f|h;eSgm` zrJy;6V=ijdb27qV)gX!AP-iMsp)!6YjI90Qtdpta|MlLT^_Og!*MM(T&y0|V+4Gb) zbj5Dk{_Hs%k#lKVUijG2*y?hJqWAAKSB6p2vbLdt8qE~WTD%=GtR0=yz%CszSl)l?mUQ3E)64vvWvnS~5LxNi$|+q`t1^AMBP*vW z=#F*2J4#;Ilw)J{qQZ3FCYYZecvDl;%r%0j$NWLUYnTyw-X|>B!9E9ETD1~inQAmK zqxx0Bap%J}Y*V;6q1E)$)`tMaT?a%u>V|^sTh$hJo%Hf8)XzYROuE*-!+<=eEkd@9mDEzkJHnbo*Q(It(8DnCaIz{s0&+vS1YsNTV>kG9APjseD z*Z~+T*Tt!I?KOGQpzq^3QRv-YLuo|b{}T8doc3>Iq5#wjL+Qqs@P8DrkLurhAk8+Ss*rY`O7-H+7-+gTS# z3wZEQb5r=kL5W_R6f)*acpuDabJ1R&ZC86JlCwz2lUWpM@8?FH`ieGQyEFFd_>Sr> zYFeaC97f0S4g>Tq1nlYuPq)9y0#{3j&Z2iNJ6~sVURO=%ywT5;KwzZPjh7J+q%=OrKc=obz&^>F(Ussa^0>wD{JeQOj+%xWvC&qce-HMRO zY-F^WHF?G8_!yi`#Iu00wh`qm`0#fq`QEaT`3Mhf?f@Z(6zqk($E$X9f%DvDkx6DR zds#4mPNIALGDM&K_8J2|yb@vPXgnOsIb8$k#OA<6L(nSf{=EJ*iMS_Q<99}TeQ+?i zqV;EL*1(1a^mo-4N|XsffA$%QDGS&kXz=UsId~67TL7NQe?;Jg@)T%4_HueN1j9Fu ztJdz9mot{lLb>DsGvp1zQW=%oeR<9auk>PE@+zUdb+eL|k(t3;JhTZ0DI$>Wp{9r1 z{bbkMty2&PCBT~qAsEc+{_i+5{P%#D6YOu&-aoK4C>oyg(cS+`LPMhz-Pzv~3R)Sx zMQL)&^kpUk*|2Gw2ZfjfXF{c;bhiqsb-g^l3l2tzX{7d+t=fzAKTGH65p^e(f4=cJ zj*Qb}+yBzUG8JQfvWdjn?h}#K^le|gc8M1IfJ=#ez)Oa0RR<5lmS4yKf!h(#)!inZ zJBE`iww9@URVy88`cG_h!-DR(a6V$oN{e8;429}@C5#9!f&&M#rTpmJt8;Wr)f5XCk>9?qTabFnX zsag2pwz>bTjdcWY2|rk_as^(lRk@x9!#kb)xbnv;TMc+Z{xEXAxuMt-k`ik2Vvfqi zGw0$N#iUB0WiVarPYv0K3~}~b8)yQa*(FyT&z%0J7&?jlo2TzsNfi7aPv6DxWd5?1 zn4@97ygc*j^cJ5rJ>JHBelZ&Xp`+nH0(yj0$>)p1(flO$6T7J`G8zgr_vHMJhPN1$y zaW3>4L5=v+gxsG=e4pyObN#Sr)an)`PPTG(L@Dig2IdD+vh;SBcV_UdEPh5hq83z1 zgOw8^-q>tv^}cp2$+;#9vsut6-l`OWpFhiLOC1PziI}RAf}7?(nSC+{huD!*T_RuE zV5p+0sUx*#xy_DhzJ<#Es19An0+pg|N5g5H&1*&w!NzCM{AB(|;iW-=r=xB-O+x9nc#SQWZVeK!)hpLsMP@z4+P zD5uz0{^4_vz}iCdz5;~i->+({ff2_+{~ud#9TWxI{SQ;pjR;aJEnU*FC@m!=-6bqt zOSg0iNP~ca)FRTkl!TOYcjwZ*yFZ?1zTWrq&b)K}*!^o~cIM2v&h@Dad31HzV4D3s z&Ug>^W14J0(20Dw0M&H_J>lzZ&o-^bQ&)0Wyz>SY)R@D0W3el7#Q#1L*e)3$*6r=F zlppc8bw)5us&I0kC_Zg@Ga7z>XIB*K4?>|==n2dsal5}u6$!02H+aK09WQUAjNr&J zKOT<+;YRnTZ#+)6c?jBPzlKxANwIWITZg!8Cq04js^!)A*LeN7GfT0B*Ra~HslurB z!;QKFEL0i1hmLtdH?j8LLiUUVGTkziQ4;xW66)rf6Jk}=R@3S!GrMO@mz-b^+jB>; zqnEG-+2&^+G1Pa}H3@{Ht`n~a2#iqmNuaLpd)&Azzhc_LcN4B!1Pe zoXA?Q=?_0>-StSa8wQUnfvmh(H%b$A3q5_RJ+4kS8T57j#sz+8zj77EH@&ubC)+0+ zhW>Od+_qpguzBGK5Me8n<3vJ0h`E`aCKJeTsN5!ZihhZOO@=-P_xi3Apg>W*t{{{{ zZxkiq!;XM~xWfMA=e+}Rcn4b*Pxo+<_IvL0QF*U!Tq~)!r}xee7s5UvSXyPIEz=e+ zeha23@s3qfw=e7X`O8c!J;;zX)AGnC5~V)mjhf+jOzTg$=ivlvfQ6;`I`UC_y-YAV zx^*EH(>xR6PIr`n1YV&ZMQgHm0leR|mdTPN;XX?jeKcG(d>h0U=Gpjaw`n$)mWHWI zt5uJ7%bJ?;iRO;$PpVZ{{We=Q%YdUHHM-BC;Pc4xbF4-_%3VnlELt$n*92kMXxeM5 z;rwCX`TEMu4G2Ejhm{}H13e?xCz@{Wo*G5my=)2qVK~l2+()Lc)fEl>mRx1EYSnu4 zMe@N1s9Ek_ns|6dcs9lbgpaAy8IP8%{XOplLS{Vw3yaRMf<69$MVoP4FuL`B<>=nH zgj#0Psca@;j0PqL7>h5L&=EdK>BiSNt><{4$de%l{Fp680Xbr2wS=7vqmqjHhvUSN zC(tzh5c8Y%yOeYp=qx%t>0*9&2k`&w2@nI!{;|ETsMD<^R-nMI>5F?vi#{L^{oYAy zgXla=ynuzaBA3q>1dy*3iPSXEW?mADQc4`ld6w?ny^U7)v;DC@|Md{=*Fz>R1z6vv zDCQ!cXcMLPTzlGo|M6KYP9n_EOs(H6~p!}R+?z5Xsn%z&2nc+_u3JazEs9Bgp&JR5kz*K73e+H4`i zxI`GG`DwOqewQ_Qtm*b(47i?3&J?b)CJLszW_Sq{g;xR$5tS-u&z4F4s2MqhkUlq_ z|HumR#pOhOzz(JtEfou#hzz)FUp-6wU?Frg?op?-q{MCGsI+Ud4a6{mZI3>4G?*C* zrb;x8h>br&H9;%%8$>S$?HJr`K@s<#uZ*x%jg;N%PnY%U->rago}!&qYZ8Rgp9+iHki_5n+Z3|UWH29aTfVi=;HLn`Mlh)paLox*5iCg_U+w@Aa~pIWdx*aaxXP;Fqf+@1X4o~S zE&U5K*rGXK*1joPeGz(208n(XkR2+|tr>letw2fei&5dv!hAQ6o4Z>Vzs>s@SivMl zuC!F-+eLFV!ux0S0VP1b>jJYao_;ZKlb&eY+~tjk0---6!Oe&GWHxJ|8FRIM^X(c) zuF=ScY?G%OtI_4qS9`J92sPQ<3(%R&(JjgFlzvUh zXf39CtA2Q_QW@j0x_8vdX~*)&11H3YG7536ZzZ29Vn1Wyl=&)rEe@wYOV_nyDLb>AT~ks;@8HjevY>G* zlE}(wUIowqr3>3Gkuurmd9w;FuSvNtVEuh~PxxayjJ{RN zY+SB`YOg|41*Z1SMY%2>chI@8oMfr4 z`c-8vGhYAOUK;AF11Tj9tUUQUt)bn-s@;(clEb?m{_j485dq?oN;YY1Foao|!ZIe3 z=0Z;Oqlh%tJuua1gEoV$2sQevk?T>)ek7M24r`GT2%6s+u+SDWLL;;F?zHBJ@|5+` zWXn7&L0Snc!Oi>e6|qGCCST$Y;7iA)UY?W9CiVFxVka;Ap*O}mFTF0S_Co_61_l=> zOeLW3v(fzJc4Pqas&=lNfZv1JoB^A`4_3amKUzjsu8uC(CY2E_lONn61M$k0$2`VQ z33dbr-KZ!pCM~q&^oR8{p7i_djk-7A8F2MJdA|Za+9=XAu}7aCD#4_Z^sBTYv-L2# z>ala`x2>3O(3?)RcRSgpMCjPQAzCd&7r!e=H8xEZRl!UiOUV(3f1o*AU&>g6DgaMo z_A!j)&-H^?wC~#=hB)13y%DO}dB+#xucH}b^mM*Sh_BDw&nyZCb)`&rUfPF5ZIZSK zejId<$&Nax-%_N_cN;J6@K+!85@L`xydAmafQ>)R`?m7+Dak3eUeh%?)1z>HcScUi z6YH3~y6R3*h^e786JZ$GtV4Ih`rza9J?LduRikKCX9oq>&GsiomGM#@;7*7K^gZc9 zib_e7yl@Sverq;jYhf8sW+<)eUBrxVDK*zHG0D7~_gV0IUf-$OlO1Ub0X4Sh>3dc^GYHD>JTBXl z6ls4On+cg--_{wPQS~5+<;Wm0;Q!exyt)1>im&r`P`LQJ##`nE6a9RJ0fU-`b&VQ57^8r|-Z!9NBN0pjuRga(*Luhsea>ojt<6cGS5-(> ztr}5%I_F2gD;h|8?j*u`httes>v#u#K=0Z=ZZ65%1}~Zn$08(N&n*{%u$%4igv2&v z?WQ2thV%*)oh(-QKz)Dp<)sJV{#-WH5qDHMJwsd8Bp$Yjqs5qs{r_PL5~u)`n~Uy}=b~A2M9Pox zB22C}zfR@+MHl-Elq45Iev57Qhszw0CDSBy^qBWgI_L5qdG2fR%k8*qb@2@B=313B z)zVyY!LPCSdtX&H<&4id1uriIefmQQAGX#Rk{nou&|S$QR_COfja6utJ(+b(ytlT( zMz4mX@6|64ek=!E&pqlKO_(ImrStCvzBy~TlT>LIbG8X_qvyHJpRc)%egv;7(>xbV z?S9M0jOTARP@uPNr2^R81?9iKN{J3GZJ~Qb{zveR7mlsRx~(H5s&5r{?gSww==6m^ zGOZ$2$l|x$o#!cw9u7vy=VwcflM)lY*_XKTB)rg&AFR2WcRX-5<8wR*yG0FsGXm|u zV2f~W|G}T);U|nm*1;T{9rJRw`~+Zbq9Y!vw^5m+bmRh$Fx){w1fcD4^wx) zA2@nkd%kf~%KCCePJiwGrl;BZ$s|9ewx9vl%;MRYIpw0Eo{hM!(DMi18OQBlrjUO$ z!@VEv4~`cA(u~#mT2x8s9UpI4xh91NZiYt=E=mwN1fUJpFgqopO~xkdIbz2U`BFaJ zcwW8HT${x#xEN*e_UwLR^F@T1nK1D=patlMIJ{Z`KHNXLckUt=YA8l4C<4BjRT?{{ zvl`?8VXR(PjK46tQ9@K;knBf#pZeh`t=@8Msg%_0_4PNWlSKI4`6DHGv^U`%cQ(5c zHi7&*s15`}&N+UVRPA_9{tJuly2zN`>F7NiyFebOC}`gfMHBRi(!9S(k_9b_-c;v* zR~PV2>I`{%Zno&4xwHC#2M|up>522Fico{yiqD;^Z;?Za{z`mS(6P>SA)S4# zKJRO$@GEZTKuVM4cKFr6Q5!gaCGaj~;m8(9K4`c}Acev7C~5rGO|aDs+WU(5{Uy@s z?)hAzrK~yE&&-vC^rcLjXCi2k;O|<}IS|w}IWYnJ5vP#mV~pQ=3mqHPf!*L23EHe2 zGrKdz@a)$<0d)FWNOCy4@35j`*jVb0O8j(8yY><7ielE)U^>1x1k^t)xm-##%5k@) zKl*x)!dK{>HVTL*^OweQfupLy*>JS%^MZG((i?*{I*Wc}Eo)!Qsp3WC(Tfj2(D$~z zD?S6{RkRe0%j-GS-f3ZkrUR^2@#E%+*TeJysPX{6yh`pR>88)uSNl-I&gug{l;3s7 z&-?bi-+n2ua-E%VCxE)|rw!i8Ex&YFZ5`TI%~CZxR)%((@2Wu3=r}H&7%ZxTF*u}` z1%oysW|}bA+7EtpO8F4>O=+Vv7rz&}G&%=JaF(i4CDj1NphC|2b386 zFDStUSRna3_D*J5PcHVzXvF+oH z<2AV!M&#DG34V#i?j0bKN=9j$p-KfAb{VFRVO%j!QD^y+j-V!x5cOuuC9--N+06{j z_8@ynnCE=7bgJ0@)A7ar6oUa6Y(O37R`ve$D3iWf+>D{(6)1^d8hb(XYvGz(;N4v8 zg087#6MTI~-5K~ma={eAc(}S1hJoZ<{>l0^QKorrdcMR7#ctASqRUDI;M|{CmtSc) z(`k6nGP>RX4fzRhVt-)On!IgyVE^fTZdy^B@UOtv?-IHfY7ymHE_3BQ0SiTu<7d6rzwoUzB%_X z<8ayhHsuU0?8eWR>V{KOL0Dgxo&eZpM-F62r)vaE_fvw&4X_HE+Vs}o`CCJx-UkgT z`d!+(&$;}m`o;G)(`@l^A0FhZ>ZhXv$F+WU-1K!8E`PU!pZ}3Kn8z*V=tdnfdC{Ir zktYtnY$@QS6tzl?=6BP-loG7X%BEjozB26I`ovCie*n?B6(IIjd9 z&=lkdul;)!@XYSGog1Dxil%M*_okVJf+Z@onv{D^dnB^@XCUf&c5^SBNr77QyFvH) zfRdM}%Gx`Y8)D+Y5KZi-##jRGe>PJm4Gnzx1^6ttQ+p#NH%zada(EJMy?b+6%7c3J zWTU`QJu9a>i%C>{R_)89%~~N8GT9T=cI9>}{h`qjeUO@)mahZj$dr3!P);Wg3npD29yQ^=7Y zl@t6@Yb5J!XL!kcG8KszYJFG@2qyqbsk@61Eh%rIZq&~gIGk`*Z8J&g{y8isLY36D zwh8C1O)o?To>N;CYZBfdRjrWi)QUf`Af455-Y2}|xI~HP+$5-ul^D}iInz$S-Y(vc zDyYmk`X1>s?wuq8qt4cX3#WL(G?;tx9opCaA6oe}T#oRm@TrntJI(-xIhBDYkrYy+ zgTI9ybV|K12r8AaT-7sf6Gw5z4U={*q=8$Pr4;_#kuE_8EHX-)Ylgau^AV`f`1R+s;lYJ3X^&`9J}ie406z4&5bV9`7;&F8gU~ zI0)<XykCS*LTT1n-MdEC0ANXGDBezpa7ynui&HQH!z8w+Of zVy}YqSs&&GQ)Q=NVOo8$@Q#XWH2cbP~chB76O>|9GD9MbgEDoSF|NMB?MW10*HAl6rRgl4Ki4G^eXw zSLGBUh^6@}d&1+3=M$*m*k}9Vr`uw+sD+e*4upYYe*)@km`CSS$=m&ji2M&(=a@Co zB`_on&{C+}zZ4s3-52+CqSt8u#9CQ4iVWXF#`2gfBi4jRolOIk3ZrR`D(eci_oMWA z{Pyve>y8^^gu&_gRMSWL~Jm<^4iJwBh|w#q5}y z5`&hHT8~kEz!}d2?M&EhSc4kbtOJrEL+|sUJk-dD`pyJu5g~riiAkJpZyRG*<~2PA zghNcG9|+V(r-Dl4AFyX-J31pj3*)GnC+54wtK0e158}*cOTWeI`q(z@h&ZbRN8bgX z=UNE1rh5I&0{GyeA(|eqRIU7k#$V$j5rrTHhHWV?9xd?pT9?Im1vUlkmxoH*HEbFj zQKH5e2D!Q!wp}@;6-Fom>mg+!V-*-wOa*?S?HS0lb^ZQ)sZ}m-hmBI6ckN2gP*G{_ zf=^@8c+%Zu{Vq}@MIlYAE>GG&;2|UrW=7ka;QMgsL{+OV^2)-S5v!f}*s~;u+|y={ zUT!e~yO3-203tX3q0qvyv)R;Kt@0wRH%$PoV!&5`qA0TXeC|1*23{3-moAJzz4-q~ z2wMaH>u#B`fpog#+fKwe9!i>_{VP zd{@FZzmpeB?ceXXQNP(q_rGbabVlX9iluUI6m)vkf%U2^$1P;vs9D&bN>8NZm@0-= zXx|9y%>@kA;UgcEY(@gOQ9v54Z67_yva3j2`iELCw06=_Nd8?u!BQD@*58ZN`=#7SDUK5+4uz2-Yx=*s0{O-iHkF{kEs4rW9%?di#TAjSC9BQA1N zDi?52vYTWAQ^$twK;fdrt$YJ`qq`-X>C=($xCQfr#H~d^6qn1`j;o4yEzb`8MK|)x z@(YvjrQSDw@9tY8IhIocy?B1JI`?_7-g&_2_Duvk$LvVFpgSYArkj1b#{F2A{o$l( zz2*=)dVRsk(|sJDsvc$j=z znQ!?tkcx=G1k8uWXc@5Sq&ISc=s#>@P)oq=a5|*TKK|*|A5J8Pht}9H{_DxD=LBjP zU<2;t*m(Bu(0!(X#=Y*h2822rC3Y_1F+n#w?&Ock4UX{C6)~ zPWtawCPTMrxAC`&T-8?hRDn+l$w>3fcelGq6B!~!B>(h#h|I4_GnW7oetBfbkVdK$ z2e$_hlTPT71}A;$epZr9Nzm=cFej>r(@TFs91PAaeO}vYp4f|*NS#xlgo9cyRXons zD7vWg0!}SAV8r;PZR*JASE0U%w`8gfz65(Qa_zn2XwmT6wt%WH+D5m$^ZpNNLO;uN z%$s!6wnn%-Qt^%=e>4vEeXGd%=65uoZoc5cAWMND2Os_is)4mMVi!MWh;7KaYvoWj z707Gu>vj|#kqNGgXNmh1J$ID{r0<+&suZu8m+k1!iCDb)JCfe? zyn8+}KJ1>ky8oD7I=iWs{3xU-iUVp%GccXJf2!-*ETti3B$00BqJMtztVQ1^P@b?B zKg_GJ>AiHaWV+Zq4}A8GTmYgK@_Yjvh$CN8>w{pP-f!)XLqz+qY}ktIh7TX9I(9h) zWz9Cd`y87!axs0^mIzRBH6BPbb~t^C>43H{Qqy?B5Z-;`SW@Om^__)*W?GIPw3oH9P zQp*#j!Hr~5vgX4-;ZhkirZ;*`nrvPkgLL$q>AkOK6-H!Kn!FRwjN+j<$*2HzhhVo;9k!-Q;}}x=Bf_;#gfzgxmR)WN#ISu7gFaF!p>xa z$&IWFhYB7WLaUrLhDlHEh#yj|ot=T)ymKa49#;;cT;8<2Pg-G>l^KxAYIY;Rh}V;E zodR{Al+)jx`B$tYb0xza^u>!PMokx`9*)i*VKd1IDA^}EYD-VZ{^Sm-MuQcV-r@6R zIg8PP^z#c@xj%7`)ru+KP&VDKPVS8uMiz=x{Gd8WBh~(VR)YOR(^$rlI2vh&wI90Y zp6+wgX&#{Nomp=gb_t%T_l)Oyvw6kf*2m{JOK(YCO)ag|T!*!?G4?H;&SwJip=70U zgaZ*MT}AQ!ixZJt3peghQcSi`)kiaCU4LDpEVIoI6O;*6R^sUWl6SfYhfW!Hl9*Cv>n^cOvs@W>kJojL+V1!68y+oY;D)M;@~UZO=p0w{wfv0y8(Moe(R!~_ z(c|#3r=d86It$f`j&DT-ek1k=*0z%p=uRQ+tek2VyIvdz|AHhyHQr(P4GTp; z-W+xefx%2dY+v23WUWAc+xCTN>n%M$#oI7_#M;r%?o;c)y_18gN21K<5kspPH8B!+ z`KPJ5RE?LP;<ddo9qKt>Bqx z!f0f>Ou^ie>YR2Df+syVOAr8jk-^f2CfbMPH)n}&oycL5RwkR&P4MaA5{QMyDIWXA= z@tV6+YpzZ?x%qAK*x3QxPV+L`u6n4565dOZl(Xx@i~QaMZE^8tUw1;tfTr1?x@AiU zUAmClSGKawmpZ!QyubWdBd>9N5id3cguQUkJ$}GRuO6mmy5<#R(?$7Gx5Q?()IrM{ zEz?JM@GK5Q@;T8(Vy*Qkz^zFdqxq?QCxZ#Dpc(6*vS%Le4p z);M#)$noTjfFJ=kU)sP}npCx+_yckBhCzL<)37wGZZu)tsQZZOU802Tx75?dN{ToM zBc*sri0a1Ic6l&p<8)pY)14 zRNiPofY!U(D)<_T02dwPi&}8d_Cda+znP!4yD;O&il8wolRRMcX+u7LHFtb@?_|+R z{EIUIqi367N_3)}?6GxcibUdnx2-tF%gqt+H38`pY+zEQ*^6!t zH#afmGmCC%+oMTCY?NV(P(OJ1;qgOeym9kNHCLY9N{*7eOucdt?Yf!MdpX*L(}7p4 zQe-dLYFyWeSt8@lF=1`?Jy`w|(A9+p)OQLq5ag{goV_b?WeVtlSaBZB3p!Y(yT;g+ zQ)@Rnd8j+SVi3%5a<``Qu_4T~UoQ|$KEVFOE*`kg+v)08;EmDvZpY?fS=vhPJR>pC zr)=jIfLvd>&-JP_rmL{0$@5i$xAT|MHrU@=D9#H;7*aG0Z+{T@ zdy{&k5j#c-dE*uL%2^BhhnXLhz{#>)I;c@w$3!1iOWvPicJeh&&0MsdMXYPi?2P|R z;dOUJ;#Ji;w~vJ^`i(m0`=1TDzXop{yN3K8h)GfRh59+2g_!crL_A%5K|8u;;tM@% z_?p2?#VPS_y;%Ge3p3c?X5yJ2v)VHVaS}0n7>p11|2WcC5y=K{x>g9q^_Djb6lsin zaqZ1BqG&cf?L5Azha`;gJ0;MRone~C9L(I7j`ctq;JU^D zsGKgZ^M=h$j(LhkP0ig7Hmnz|uvHs}Kjpry#Cd!MON3&JNk)k{#Eb+<5dGJkSnCD(T)hg^Fwv2r2l^wPD&?B$C_{bBDQ2-2E+FFAz`V^#} znci3qb+x1pf;LQ24%%7zU}=ZHLaRv{S#R|wR$9w3QA>H-9E~r zCT^>pd;Mt&oLJJQ*C?ftjJn%7eJ^jVUo%fDse(cV>5bLQV-)N~OIIWwcujA1RgYi& zU@B5`UD_{fik;DRO1voxiJI$cK5m&FR6hH-^CN0->a>Ba#nX}{#+LIjEd=li#~EAo zE>t$+bYpJYtHdt9!{RW3-*~IrVsM;>8O3#hd&$X5fzntOKOtZ&(>ILKO(cm>epue~%N!IkvrqazeW!o6h=J@FJPCyua$_vY(r zzpM4zqou@^mVk$?l96BFHTqNT0}O6wmYmxeJoNO7LC>i^3T{wJQ{RAkj)cWw6&{l- z6r{TJUVZRas@-v?^Q-$7H$I@rfhqig#|i3xzmo_?DLMalS%1uT`;UA72bS;rKanJh zWUIs*TyUm-uqjQ1F&0NoxC;wf#KG}9<{c*Q0L~2z*0oHK%YoGgHK(r6_n(i#(n0F} z{D#m-39o}<=b8OwYde&%Fite%t@i;X31G+88C43=k?gDsM9UqK#j%V-D@NnhO$vZwiG+=6@uY^16gdrf+OdZ|Q+^Kg7F`X)oU@ZgwAH&vYbMw+)(ug}Nnl@Z# z5fU4l7~KMIgE&YSJyB$UaSrK$Zv>F_;{1y4s?^V@L4D0A0gWgIW1ajUrLDKG#ERsu z&U%G(ur>YrEK|N%Us|N+cZ~0gzU10n6xfyvlxi2&+wux1OfEgd z(-hRRVFbh`9N9c4ztLHKI1C$TURk;?{KVI!4CK41U7U(rXdfBnxV%hjiciAL%6tc< zj7oP@`%}6jVa^#XAzQ(bExy9x>VeVGJYx>fKU343#=0YEd^#nsjC1T*v{dg=vp;wT zD~tUpn5;VwL5ToRP#kdF^$BZ7{(VM@SY$iN--<(`( z&Y+DmN)ag~8E&ph@K!|%FXxVdQXAG7wdJPfc=GD_R|Q#!LFU$q46`PS(VCjNA&EPc zx)gK7V7an9;0YNh8FCZ7%@En&E<}H$bU}kD(=N3tb$c;)Bn%7m+W;shDkxL(d5p<$ z0y=!$hjSGPxAo?jfuy!q>+auW)nvfYr7sOvde`#ks!UP_m)1ClIdcx0S$Q>utJ+Or z7)jG!MxOfVfitD!a)sflK$?jK7QB5a+=WH4Q21PG0JBcW$HQ{~S~91^r-)P!?(W_* zzsg3-&D)|?2ms6vxupiWQwC}dk=#L`y>_Qd*Y*Av5;^BA-V}d_&ji4%DE=r#k^!^FyaSgIEHRFd$=CQ6@*eM7CYqFSbiiLnVA7p;$^1fB8#B(OaWv>U^C8YYMRVR|I86U49u|Oi@50)VhgT^L zkGwVF9I%)tMN1>&X|qGl{R1RF|Hsg8_$|F{@<6YstDUpPsd%yW+o|E-p4LV;aNVe; zXG55{tDop&M88@Xz}~0o@dz5dy&0+EsE#6yw3DCY?oit0M(m?+3o>ril|Tv-xwpZ_ z>=E)!ao1I5ciix|*;-ulrhs~9IfLGO!(jNF^|BZv4wW7pr zXW!4rSC=WvX3z3e?z=sOk!=Vnqno|98A0TMsPz8rw+HZOP&rIltGpi*u9Etrl}6Xt9B= zDIxB=apn%5e2$j{RuN56cyoK$2{n1ym0SJ&^Un!iF`BFj7wBn zF0&?9dVqK;ye#N}r|&h}?DpcRAMj$pf4yq=0#G@T`%;dHf~o@D#GNepwfDR`m$hi2 z%{VmWNfy)U1_MB#xlqu`?3@qkW)S}Hg%{J=Nv;-o7@K})msI6!y1#RYGw>Bec=qZFa00{YQAbp2bWtNHl6A<+ONA)I)>@H3vPuy7uGh6PU2E@(Jk z%A=03eymxC1$1<2+ex_8$|5Q{MEPlqsNjS9=$hZ8Mhz>i!}Ca{C=(tg+fyt zD6xyXksp2({zq+V&9p@j{f7!_^T@Z$%AkFRt<-$9CYcU}{rAUh!O9H}wPg+~jumW! zg2|kYD|1MIpYyc!Ofn6~$$~*7%&NMd-L8~*sXWr89B@~FM5-qn>^J|)#K4M+##oRN zxQ?2|nfzj?Ngfd;drZ4_Y~yr%AI$Evp5vfRi>a_VibyFx?>ua~Q7Mhx5KkPiawVgh z0p}#p`4_c6TT8kKVtSE&0{}LOAmG_6w5I#l0TsZ9;A&`_h66|@5;@{hCDQ1-Vz;B; zQuYzIlZq%5=%qV0uS=nZ#@-TO^Rb|e@I{NV+~;xv_Z`~k-7L;Y zw(qd50qKq!%CcTphSlx6K7F24b zyDfWeuW4tQOHQ;p+HzF6@Z0xAa{xE-hvXygq zxM%kUyX^4g%UN>x`I8qjt`0QOiPd)J(D^E35H)677*Kt^w*np|G~olUwy;Cx+;@m>*7z z`TmEu%OI~{aNxsZTm1;S;WPXRZbAQBRYq7>3TAC?i5?WS;y?bcT#h>k;KZ`-F37?6 z5$t&Zaq%>Fl*E`E&z)@MyB9I22MeU`MOeiLiJ8$quXFpgbQ{i6p~ah5X;uJ=(0la_ zS%2sRU->%_lwV#h$&0H{@%2yx;?C=TWU#MEXE*qDw$(jiyiFV1O^P*i!EWMsGwF{7K{S?o|JuWNzT;9ir? z>r#=4DEf&*Yvr=uYuZP{ThKAd^08I}{q>eU$tF3q#H20@Pz&&+c8MTZH@nV%Z`XGI zqyP}+`YYCEgz)j@(LLYTzrnCj{{b*?&GH~3ulXHQt&R2;8I zRV;6DbLhaMpq@C16>oolrLubh<0IB_f3K3T;r;l7}kI0Zayp^1V0^>I-}#13I= z`o7QJiiIhR~u7XRB#@8Af53+8$dk_oSOk^d8Q&vq1jq7s7t0&H5bK*8i`ktNK zz^_dY5dF6U7PON`PjScL+5l}|+7^~ynU%1{h@?-u?psxo$ZNv&59S~DE=03yF3v4RK@H zBvOK|pXrYeXUWJS{~``@QQ-S;ix(F|_M}S#&nw+ms5&d}x9!x3vW`oJ?*vKRWH~**42N_m3|OQVew6Q*tq$j1`Mp z`jKdBhreQzoqpE3VQnv*>f*YSy(L~Mt}NQ(g@qqlH-p2Zu*j4jl+PfmJHwfOyzSv~ zwMQ>uwzIz&aDA>td3u;TM`6oHY@o+mW8?>5_%rghDge8JC>Uo|h~I#`%kBb*Hbl65 zv0b|P>>d6`LC+~$?ky!731%6gFN(az3pi$L-vzw^Cx6#7Bt}Lqj}B1^XrCcPjG0Gh=$%T4NqC) zkwAC{=y=g^RTvoL_W(6TjsPE$`hL1oG~Kp5vwk5wC@adLWmg>-rN+gYCBG;DJut$^%;tyuK-cSL@z?{5z0-h@TjE zm?2R%>%50r`v0DXOCcML#Vc5D8@_F~6Dglny!y_z}ypWE` z=EibG$GJjyCFO}}t8l>))o63pM&zBPJ8)}J*Hy4G?W6w!&wmUkBBsGcIWUoa0pz?;4LL%P)?C%@w5XyMnp20+|R?$0hD#X!m4L;bcpJX=mFg;~vuoO91LL zbhRtKYJy!TDDL?-uOiE{%3|2PJqH>?7z~Q1jLa>1{EKwsgRfHhA$%L-cl`c08t z&|I7A&f5Vyu!JBk50E15x3~8s`I^N-S`yuBP3Q zOr{mOD{GvKotzG+rj`Cx;Tz9GLYr=@oNy8D??>C$2MhFgnCJ_tLK@fJ|1>4~d)&34 zSIPYMz#~-mnR$!@|G#=iyNaBH`W*G1Zl2*VK38|3tl$+f$L|0~2#Z>o6qUOy3vhl% zjm2VLb-*n5RkG_5DY#Jq9% zI@!Nsdvp2TO&0eubYrp!&BKH!qu+c-bc8a+6{meyv!Nos&&(IiH}^_+B1O5}{;e+` zWy)I@uvAIa>|hC$W+ebQ=n7ljIz5eSAPnT5u4DDPdkWeLiTn2Sy{}yH_Y{LGNLb4? zCZ_ORlxj8fB$?Nx664CeXR${rTHR}(x1T;RZ%Lu(1Po}^&2e{8&ku8W_+(P7Hqdr0 z3%P$$5I-VSvL@DaYW561zr(or3?ABjs)8KmDCcDi%Z?^M{Pym$1aWUo5A1Q&u8NW` z-^~e^+!wnqjR~eCi+66ok`@mYki+*m2-b2kec;Y-@l(DC&{$O?F0D10==8b=50}3D zk^)lMa^K*N=aUw4Sm%z!*Z##Xd0n>ympkm&{mm31LaiUf+kA#XEcFx4MF|hUQ$7#` zr|7K$5(K;lMBLb6th9YE;k@)Og-r%s9Do|<@Rpk^VhZ)jNm53Hd|>@^K|Z}8r9kMh zN+Epr`D4(5Ru5?_@rDpL{+NMepHyS5?u&pmDA*Kvb9oAH16cdNO?}3>+E~a{{N3bg z^Vru=*Y1atUK9?-W!=yR$#|IUt20s+1g2b^qw@{pMpRCKdu2WLy9*t8UY3K0W{!%} zvEMa^R?3T@+HaB2w)4Hyu@*qPybeqgjOF!DU5QIyf&Mx9z^j4>C^8w@!cM#CMb{YC zgtD{d##myR#C%GfesuYid$BI~Ze{85qkQP~FUSjk12oc>G=r$_TNY5lfa$}v@8JR8 zl}K;WX8iecJOq2$+)<{`1v4DC(0IZALBVlt?b7o)ZLLRam4YiY~t&< zY?}s86BSY?wYXEfta^>jA71MV>y)Ds68R*fYt9i6U2VAilf{L>!>Lx3eA@d(+jWFq zj3eWB7o{(OGDD2gj zsGZMH**`Vh=eI7cX|uRsyJ0PO!(^5+5*%s2(pBNm_UpRD4CKA|WEVe6Q|-a(fFsnY z=8P^$v^p6ym$&9_wt>g={eIPkkrcA%XptyirBV8eC}LhBMI8g3y|w!-=lu_^J90q#rxU(qzG1DQua3TWSeTrQ*<)!%#8Jw51T1RY75>IrQ*z?yzHCH$JEETR8h4czQkX8$j*Z=}4ty##?~@ z6XX4Kx&YVf@(u6`64CfaoUWx09)p%Yuc>>{1^MVSv{Yq|o;#zpQ%P!ERZUBcmaS3} z3so$$DrOO%ETa4 z%xp|yVctII60?gTpq6E-EN2i;Sx0df`2b$US2bdSmT){m>R^(k1w~CQpTc1RZctB$ zMQUN#ek`Q&hLhOTcS%x(1(Ts(nlf`IfP7#ls`!O^@acR_K-A;>+YRo@_L2^5hEoeW z7*|N8U!+1xX-;8c^-N7vc$JA*`xFj*iLd@`C*C4hY^JK@hCzdrCz0_b~g zM^5R(M~C*>Jeo!heU$MwTWIUEWK`8mmxv&pB`NJ0zZw(55K9v+Kt7b0t zBnRa@x1ESNx=-5=K7kTvqOy+N`+)J+O#xp;y|&oEe4N!eR|xlQ60kUk7im4XF<4z#T zAduw$XcVmT+ov%6xD(gwwbLxT6)-!U=<2`SB!{K_ep3r!Amvw6bi*g2mqXzoD&!B5 zAnMoyUQ!K#+>2#%x>re?P0XvIlsvDeyvZx*opTe{-Y#X-o+Fxk+2d&C+K&cGj#gql z)Q+R&sV`_PT9innT9?BiXsP*Wtk70F;ce>vsq94)SYS#3h%xc}6fXF<=hSXGG&jE^ z>q|aQWFT_WB7rc)i!(~ntcb0yTSGr$&S@)Ix--mK#Wz4i5qYeyym2T^+=;|O^YWCf2Fuu(|j?KIVjv33O)EQ}<+|$hQP6MB9aUYYcxTM2G2bbNq z80XW5CS6q^<@;W``4ptPS0819qW3fX#eQ`JVH{`n9q9{8h;=B=BV_ItY?U#B%ks!Q zf#oG<3ZUJs(PY4~;M$uxA5EEa!Zccf51D;Tmd6~}p8Z-ye}sH4h$$K^@hnQ&*->WD zu}wLX5OS0t{QAQ&251PU>5^d`w}h?>Dnnz+O>Opwp3ySJF-H+LjBC=uc4+18u$Zm8 z1y_!*EMEp&`AsX)P<3+$w)$`kFRf`qy25 z(&>*jM1zTu(+qn`=+2DaERL9H#kaO>-$k|a{{Vs$D*uy(&a=ON{z9D&d;PbdfiVy` z70Oz~P1$=Pg)@1_^k_y#xdZ+EoVvM;-yr~!uS_); z7@3`4iDA2~;^rLtEo5W6@t3~sxN`Ojp^F)FrK7!3E(Z{qxLmbJw0jm9Bmo_tyT$Ux zrRX@9UBkv%G1PV_WaX_Zh*^$u88&~wUkHu|=UZAS5H#l@?MEuv^gJbb-!~*Bm`xc# z>UfF77OXzq0ZK`5v3x5!k15iH7K!z=X;G^za8R;7*%mFh35KBHEl}0@#{)_`Py=z| zcHSrgTQU&F`FQw+E>jW0gpj?fNeNFqPeU`jewyw%@(8-O_W%N`2s@XBGUd_x2tK%? zWpK8&+9L*-aeku?e-wley&Wy=P@>_~!`M7)E3;`bRq@_VU1xT`C^T3^qI{HIswdv; zp*j-d6>O;34<=%ZdJ&a{rwnvGAoHoJp3~pIT;^P(Iuz5ycMv?6720zmEOxEq8gD=5 ze~APdJsQV!uprX5+$T3|&x6V2vfR(19?u|tsN?g)CZ!E{|FH+NV-7Pz>1s&ljn1LA{Zo|x;lg7IhiaVmqv_o4E(cne%cc|`&C z8pC=kmA{UIj8R8q^E~)3KiU?bV{Q&c1@ZC;GCTz1VAnR zL|r7Iid`pD5xrCXGuv)*zChh-I`$|CmKHDXEh`1(RA#9p_Y1TmsoKVtObB5}VvbYO zC-L1_=-g`YyQXobj#C+_?S3+6mdv?zhmU{v<-Qxjn2c$i9JGOk>9p-29sPP*^hOxP z{2>ot1#~7%dESIO=?{b_RRynQeC0#k4hjQ5m_ROOg^n7C10N7m;paQED^n22Q+|s5 z{H8Z8ye`9D?pLk-6YeO+Nm3}KRod;?uZ{h4SGb$QYZqvX=*2uoH$S@AZSnm4sc>o` z1JMe&1&U7cjQ(*Ven$R?Ru;sclh-`BkNCc~3N1*X&+ImmaU-#~6|@7|dC7k|)36BS zo<^Sekf>+;Zta(x0Y>77eEm%V&f}=|1WVsH$>cUy!>Fti%p$}S6U2JVsX0nLE1LIJ z1Y$gdb*uHK?TC&(j82;1f>Z12^=8+nhbJ6A=hbzw2M@OFdv>S4`f1{{^96n|XXQ6V z!@ro|qS-}U>diXZRn*H7G(=Qpm&iBPYoDF8oKy3A2MYU-+Qp2n=szSrW{2GuVcdRz zuq%ILz}POHm=xIyT^)+Uwf;~48hIwMXPS|CG<|$whPyxX3&9zNyYk@Q_4PMvyiBR) z-{c_kY6X;lLbz+1kaVr`??yQztXV4Mfv72M$rbJ=uyGmlECTy$0w35S<=>iSU8^0b zW{1&>KamuOlwc+9#xDMTz0GrV>KvuXEer69-AJ&1UZJOw!U7^KO=XA8WLNrI%P!ps;IKF71+O3wqY}DP&RKr z{(GZ)lnVafrTD2T$ijCEZIEru?N6#El6#CBN7(q;lXmp`Oz;L6LpaBhyHoe684GeZ z_)DzQ@!+w#m{IG%*Alx7cvvEULWIUYc#Q162r%~vN&+2(Bl=@dpPxu8}nizcg=x{}NglhW@bGxA?a-h3Le`{X& zF0Y2?tqiCG-smR@GH6w&x+kbGW)1aquS!wN2Dh^3qkysHiVAamNHw5ob5U zqO!_v`fqF*x^Hs8)H(d1!D_d{{~;(C;I@Z1@Kp{Qx;_b!*ad#X+` zWNF71HDx!DI!Y-juYT&Qy|f_dMWWDA)vB5(I^ea@Td{EcE=^vYavI+xMF ztY+jWzbw!CVt0l_NmIshs~h87t(@MP(}PxGmvp8IThbyz&GI`)99x_3SP|2E2ai(^ zb2R+7N2oQnW&VkN2+JmOfUicM2+Q1y&-suev@3BZU$`N*VWXMyOj%1s&N-y8>nZQ@ z?Ks+QuZ;Yhe6~1lJSCEhLVaRej`c>DIAJqq@cXADTi{{Fz^26%VWy{~;eilz4|Yt7=dyisH(w zZYd7Ed}2h2(g;z5SB(nuk0aA6Rgb$&as5^IK)kk>z2XRl&703~t}`0XC(Iw7W@mv9 zrAo0<2hj@DXa1vaLO3udynzx4s&YP?O(gGh?}Q{nD43sI#meVH9FJhrfF@7Q_Iaw> zjCcZ#ms1egCxi2s@Cwwr*6k}%9&?CZ7~&+W9@yzum5~$u#6q0n02ac+>1X6@V%BeL zuy*p{s=H(NxvP&h!JAr8?ozy8>q$A9^rV7QjJrFcQsA^k#Boq-`66x;@HR_|Gj=~A z=4n{vsiO280=A-jSxHb#C{>SA#e){huJ%XOUIMYNoPm1t-VGZfFN){jMo-^3KK)el zcF^j-WZ+@K%@A4{47C|>d;U-Dn-3scup?in)SD58f1v(|)$kspMDZqOh4H<7xe`^?^j8*(uRJ8HA(He}ZPpMO@_nUKee;KxYVgs* z?D0_HczJ~JO=#{8$exPgyw$abD$2EO9jhkA$g=stu6a5({pY)}B@wC}Cb*=pm4Ve|NrFKr6r)YG{(zrq=aC#mmqKq@s3M4Q7 zz_8HrHxK&@6*G(jSG7c-o9p-1%0p?aLo9Mc$L%db(J!BU_D+{|Wx3%|X5=E@#2(qC zcI@eBVLv|2se#%7{*y&iRR%+NzGFu%?B%cRK~{=6Xm1jwyN4s3?-p5%w;i*7F|I=z zgkPz!-J)2;v3FbqAz_DtTvx&5shYwpgD=QC$cwMqR|GtC6P#2do%L$&286XVZ+pR0 zDn9K*U7y63Fz_K?xD&L7-zkn4LQC!8gi@3-!p)C5Tm$JF%)mcHwGu z=zXvScX0FxZ6#m6U57r3B3-GB%T8(iJ}nef^$;*%f9~Vf3Z3_^lxk|}|NDBf7SNIV z4{q|4xaM>DH#=>*9(9t1tz$XuEIa;=>+y1W>_yDh65h$xu0N&5>&d(WQ;~UV(nW;{ zHF@JkwteG^Sh%p@GVECkqOZAyn-j(HiR@G~UYcbNr2KWervE5#%}dDlT6tiQ*4@}@ zlAg+Z!HQL?lGC(3nR@XMHt-_gEuQ=qy@`e|JQg-YoEUYbWjwq-@L^9V%!ojB{3b4F zi8)QB-DJ{rYW6lULxA}FDC_OBUA!>WDq!97N#@gUb9IRuzvFk~-z+NHN7e)pJEm9m zzdBvD@UJ=}tU6?h7U#|8G}oqbQC1GaUksr_ywmu$ck)fgC;(WukrGYdl;4g7`;gjU!KF6Y{DF}o_~$*#D*tcoKxzDifZCv{NbFoZDr@)y+er7 zK=ceRjQ#mHnj`DpB+=oEj)~l_e64ZvDU4V zHuv-NFScByAg0*Ndb?1u24KIDiZ2EmeT<8LpJpV}V?onHye}E;>b0MUh6`j1Gt2Ge z*cy8bi4DuRwVeY=B|*` zQ1IJ~2QjUxyYtevGCSs1j+_@KpC?HE&N^fSR;m+jKw$VEw>t|99OyOdWODG9nLL&h zOD|#tBo*B*V{^SUue*}8kiMgAYcsXVaXs&9Xm*5t|1KI`rXU%g$!_cr-2BSH0W&Kt=s00ppJo;QPnU5SVi!PbZhkH*&U z8~w-7G}B8zM$KM=Lum-eO5#^){#w_Ge#~4!g4Xgqc!LU%8Ie=LT?N zX~XTv`2F&~749Df{@^TJ1s&@B|CM-^@Fq5Aa8sc{0ua=%fTepSM*seyOK*l0$G*Su zTbjZh?5q91T>zW#D%;GXK{>e#)w&A)sHfDpE3id&a`)@z;UwHrG$|;boAZk9d$qER z!Ru4+NB4Y{V}k;o!B=mFzh9N5MP#e)mgdeYr5QClgnh67Dp(9!K=L_lQ5-nNv#X;Y z1)TDLO#gUo5BK_RniC5r3exNNYIvaJ6W+|XWtd}f}foEnz59xH*akt?FKx( zPQ5C)Ky-N`rL58C;dmh2X<4efhQH~Fr5B_8F3^up54Lf!u#i4!@r+lB zNKA2lDaUG2Ph>(dAZBj)Y8JL8thb!eJZYA4qeC9EwO&1y+^BKtr2u`{uEhcRK2I1x zcV4yzO79%pMgCGtzYy#bcmHRC^j4MsaLY)F&3wiO>cK)FS8pPt5+MH4aG-}|Uz=o^ z6Sg6s4_6jy%wL;Hia3`477sT3uZR{hOuCfum%hMOxED_D7&+!o^ST>4LJ&mi93j?uNx^ z>oEL1#A7DJa@o)LQWV1~p17lw)brgDeW5*ljs`Hl%3;3FOJg1I+3`uKMse`Igz`IY`VcOO7boJBkvvBhOA9z&AKiA z%$Jyr1;PEK?QIZZ{536&pG6EtlEmk`D38Q4cV;IaQZkhO{M^~3c~S@s*1y3JzQWZL z*ig)-J5&8d200gSLAQY5Z7<@zqFQlPD`Do*u0~>{>Bh!qSC$@+FREQ<@lq9Fo0&==V*HV zu}u37o+K68j!iUMh!Wot>|ydstl7iM=W?!RC&=BN;=H30`hz48Ipk*sz5d8yi=y?! z(~{=+q;znKS-S3(Hif%)A6>=p4*6B*%x@G5UG*)6TaMOh-CJixY}Bza!$qT^qXojI zn-E5u!Y>gR6mgj^sFaRNCPwc{YCXy`TDVd4Y;4Kz0Z>yHnm@R+@0*?A(2LL3lYnL5 z8QsROwLz;=E6A0{v!amLc27m{nY$J1A6#LLA+iM7VK+<#;-ns|caUL;>5;u&AAn<0>QWM1<@}8H$_V}^DxvuCxbebKRo>BpGy!iDLA+8ix?l&Oc- zwj=#&3|Ms4;)sfzwL)H4)R)-J{}tgdL;%xRkk^`ir?KZge^XbbAqp{ho9E8F;|};X zo8PRemu^ss=8X5`w*)@oPjDi2oTOLP4&l&R4&?&ilnF*7%4{&# zhePSf2qo5hIQeS_Q{H~WcUeLx*>KDy@P?fYsB1CQsq>vI?b8{I1&NvCannh&(JomrMeM{=i}PH)qlZ)T~}F-~Vtpv4)ba+yjVZL-h<7 zSe0uIMNv0PRxhw&w~u_Q^34gzFt>448}ncr6ez!TuAFK*F?U`(YCE)d1>6YbcHs4W z1rM=3&0^Z)caF4M6$k9Igc8Dq%=bDX1dZXfQGp}M&p+&s0uSFN&xF90Jr&bxhMS)d zKt2#d$szOP2^DOf%nd`I#2Yp#RLAWFjvgy|EJloH?&?PO#pP0!jx(YGCSsnY@R8-q z!e9DGRWj+wAP!iC22WN|*LV_Qdkl9q*ejm|wid z9}q_KgF;dV&f6inV$Y2?px$PGg3ODPAz2QaslxF^&g8fx56)~aQ#M*Wb0Y@Iv}&6= zb%6H*wKr%>)JBF_wFR*7t$5uu%pWk6w9ZqYkKttG4%F?{vA-jLM6Rt*atL-fKaZG0 zO`sP$1l~0*nST>hhZ+jZf%2lBwc+`fmg{$6!w4b!O{F^r2XAj)zkGQAW>FY`1i=h< zA?W9IFB6t_m>6i&^2A!)r9R8#7ac*Hee^Y#v!vn1k{9Q^Jnl842Z*w(Vl*K1a8Tqq z2FG{7-UkKWz-SGHwO=@=3cJc5{TnKSci~yvB_G0O3&Lp5cslwz(gbxC3^5ssaJ-oD zdoPAIEhcu&Td0$-t{LFQ-P*-ZbhP@lR=NkRdKz?aAdAqyoiN#Q8^c5zYPxvW?rlXu zbL960D=TR2owrGK3MTQ;r(yl%cC$tKAD~F)v=JkOyJRV-WiNS>`rHo{C+Or=d9Gg7hnFkL2Gm*CaBZ#@c?+#@ebCg^#YoD zko~H$*|&ot7Bjz3i@@VJ>7_91zO)Y_M&z@0o(sH9-fN zdlW&h8e~|e`kICh$%urvLde0(m?-lly45itcmL7s)EBGXIvf`#R~kocZeP6qug6*m zwg7HH=3XIfJy4ZAU3%_~%FHXzb11ti@sqL1S-s47t0Xtdnr)#)JR0()-?!vzfD$4%sI?8NVEp6Usa_?eA!NWxIm>rhd4Wf0U_`;7S!>l)RDfcx?zj{Sv7t?@4TqZf_6)EieI&f{lpn>+1ML372U z3>}$h!Y3*}pbx;q!O`bo>vX4_-}Ab9`v$2<4R>UF)oJ?a1_MWd6Fv8_-m&IwQ_cG{ zp6-btJ)ZiGO@ftrK0b5CPhG_l%&ucXr@SoUAuQH{ua*~>x=QVf|*E1nZw@!m_B4LsGy#Z5HG!r_->K&WD_rcq`m z)ghIS#Y{LmKf3->bLbzfTUA{}06a_pwwQb@xTD69*Kl@ZE?*a_#f5++#+p<83XJmi zoKFRX6-ZsyHOla1-%fqg73&^iYDyD0X57c}8=X6VwN&2VMHUqLpHB3IA;3H&wRl35 z*VyBPCxh=dap-L_3(u#4I&ct+6*|snza680WVQB+_GNdv z@DyqcwwE9@Nmt5{u?=^ zvjNujx|MN#&0i3)6g;09rRb28M|}Z@Q-|J*h@`n3;-N_O3&V*VdwO%5>`bC;Xu~3JLC!#Uoc!M+-@^6 z%ETtE)bF%5(VzWetC{e^M%{&^0_CZ*d<6o+K?d(cRYOSiwubMA6ZlGaf1l1`WPl{Tu$dZ_%lXV}SPR>9Ba z#R;Kfm>zdc;JQtE*?zUVpd<8yTu&#;iD8hX@cF`#%bv@FDxzA$2Sr;fZ9gnX&DCs0 zB(4H`FIMq=F;oVe&`zgy|8AXnGYS8BS0P8YL_Eg5y`-;i6XPht`i=JQ&KVTEQOHT+ zE&tCQp<+~Y6-x*4UD`%MLkK}|7J$MMf{s+*NpV{1rtw7Of?B@BB-e4DlH#>VIhK(Y zj$b6bO=HxD+#~p~?@d7}q@gWGn)3qQ+0F%SzE7lfemONO z81{hc@C?#`Za6}xAOzyU*F_&b+K}EERV@l+DWU10Xaa)i@-WGDlbUBdaw7Jcl9E1? ztoOf}Nq!jL)D0$1(!_wX6Rr6A4nPgbd}bB;vNh8X$;7-}weW=;>;0pgujl=kdz|0n zO-`Ia2NX@MeYW1_@~^UKLFD-MPs!3BJ*ZLpJ4(<>N-^0PYGCT6caH4&yervbzmBub z6<;h#f}lsTJ4?re_}i7Zdy?692=j9g9j32w?ksbITD6us%{&i`-Ch(?L=V#w{^I0wpP@Kpf3e>rcY!~(>64zjVEheQR=TTtb z*L*&Y7?Sh4sjm1f--|h9R_@LHMKK3o+%krpNe>!7dYZaeLuTVJ$Ztu3J$8u8DrKta z!@6%Yc6XF&)rovO1Q)KOeJ?%p=r^LUuVZ{xpD)|S^JL@4Fx9WJ42$1Tq)YK(BL}j; z8y*c6L5ZVtQ?^MfLP&QpBYYeX6@`~GwM^Ja%a!atFA0Us18tu;a2_50`NnIVK!eY1 zne^DSTUZ05N({cA$iSM95`nFOZ{;@?ii35j@E?8JxY`ugJ5n<}xeYW@?<+JbAPWa% zUN!S~HAc~m_oHSXJ&%V6c?YSPL#4l*H9}s~9k;z(tTPsx zLuL7wgOIoB)voZ()&a%~P}>V<=4X!qd8F6{p5^H7FN+2Do~`OWUVEN)K zDf@?+KM*#~tRyXNX0#x5#fz!b2gHpjKGFIZfAw=70)a=YPGK+DTxJCE>G{WX8lkfr zW!>pJ^T&DtH<;YM>~-i0piESMVE zo?hA41o9LL-XR#{KN}(|i(>}-v_nTu;O(}+yckNG>YZPrmW?NV0H+SZ9rRB%Aib`S zmi9(fJGvUW=8#Cz+c(`yp=IB`=s#87h)Jsw8kaSW`!YkWrd>gm=`N!`VtRtV$CYzG z8Bc$ioXz;PRQrm*URu?8AJl#&#pD6(6if^rk#xXja}cZ)pWpBznD!-kREO}*hwzMR zRl08{^;n`B@9znC^IrGlO@6O+Yk`-ISAU}r+U_gLONb*A~wAKN@6z@{qBDn`PN_@Te-IzUO|UQR1F!Hf&0a3?vh#Rb>Ah_$Xh37-RrwGFM_HD$B zkisX9jl9x(U;h4!?x?&Rvulxj1D`B3%H6{_qTd2IL4RoHWsC;=EEe&t;FmQDP|Lbj z)?_+OGa`)=FypCsdsLX6Pnc|Gs=c=NS`PLC=oIpTX6FPfK~ zCkfcYgU$~pSIC6|-E**)Q*nH>I_2lod*NZjh_~BCJsvneMh*2CfeF?zTl8-*UPv72 z`D|pIrat$XWpIA6zxYE6>! zrp)^YD%a);-88fcxn7^{?6RUux?5NN`do+#_g!TvLg5YAAt0-R$Gd&}ne=`8%>s}b zx82DF@48DVuGwx}dl;kyA$>HnhKT6Ky$zG~Kti#T(Q&B;79V&bM3;L9FnRNNG~pfu z-S@ld)l>=KC4!f%2?})i)MT2j%<@fG8m;8WxrQs`+}?ec^;`Ahd$=|0*baRu8H3lQ znS`Gb$jMnFkg~S+RZ_}@X$$*KsrB4G`*T-kk5Xp(CzF}UZ(?i437#Pxja?cpxQXnqk6oM>SN~m z476OUdRvg1g&h?-eWaZt&~0PwgSkan->rk)9de#{J{PP4+}0+0w8~K)$DS0?H4SGK zjBJH|)*s3S3d&bjVh7qynZ+W5$F0A|bl=?8u&;FtIdDYjsE|r zVe6=pz4c$g>=7Z{DQlqHQRp57@bm#p;YfLLogBgIZ=9Mmss>T-OJD{8c*>q~LZ~D{ z?mJ{~aDs{{dFWY(2Bq4wBeq5WCB1`jGgsS(tR&$>^V$(cj(0hQMd*}GLgojbIr2>A zmY84Oh$1B+SmWiLhkwN~U*~kD$Xm1?6Y#dp7b~x?e-L%rwKM{OtxL)`P+-=6NUBmS z&Obh)jV5Vp!tuk8K`lW}?(u(imIm8Cq|v5_|F|Vt#+GFxO62wA+|s?lh$RPHds+YHIJ$P?}%rHOxup0eE$BROfDIW*i&39wMqEH<&@>Sbk zfj;-EpvI;AOf;Hkwrh@RGVXow+s~ngCQ8tg`RoOjQUkHysD4)6<`A2@(b*8JC_X*w zw3r66=<8aoOVf9nwq-`dWMd*S6(_L&-EnrZ1^SZtMD@iQsu1uJ|AXUZaWk=JWfiT? zN5yQTQtX`#-%(S_5RNTPljOYiQVuvy#{kIoTH|D%gQ{a^CyJ`$vPJZH`+cR>SOlRw zJI9bum0tTz%(GBhM((B{%7VKw9xrN!=KXH^kcp@( zGT+}X;y>DV>&bl@Gw0eO`~x(ACWJA`M};kI*Zaa=3j^jT=P!%a{~>)a)@MKUPe$pG zUT`1(i*VKgrUG*I+HT_lM{o*ou9_i^e=7i=mIcpdg~a*Z?_Eh~@BuZRZk;7biYk$o=x3{$qjJ z-B3h2T<({L+Rt)aWiOPY&CpL(7l91+J4BGXVBgnFQXm?`DJ3e@j=YssnvZnw+9@2A zd~KE9&q6#nk2klg3vo@%DQ%nx`(5Ei%j94Z?rMGHI=r$bU(*T4nozlG=0+df$BrFYdk`3Wa2|W^ z_wxO)Dyo+$i_Y=#lMWt1rB7BSl_C*vy)%EN@uIbi1ibXLvPid+X_P-IdX?E=I_X%9i53}YFb?8!dScK2_bXV-~u<8~` zVD@Q7w~_Z?Mo_0B8z8D&Vvd~95@r^E!Dw&nCQ+U!%rtRG|CN`ek6?T~l$&k9RYz-J zIXgZ|!2L0@#S+X;NQ;(}$aPm%(GG~T)ZJhNy2|KuAigS69jSQTmwofcO-Z(rB1`T{ z&4FLxKD0JNaJsY*LfBdB`D+8?s-wNx&*u=v^~w%DVo&N$xZBk7Uxkr6r(i;aK9Y0U z24RG>>Z979{kpTJ$M#MSlk&SEc&8B&6O;nFLS6@WdrNyyXgGG<{t{ zN=(rc{xBB%fGP0z2+zJz!}6Hz+TCFwu6l4I)w1Z*Gu}XQocUGTEtwdISdjcx?vqk( z>rNJ>(3Jml?XgRN^{e$PF72sn`Aj0f8V>Am6r=vj^B2vdIM=El^(HPojoUQ;&C%iQI&^iXnRy)z^zL!zK{dnW#dWF2LF{o z6GOmSg~Ffje-g9;KONU>mi?$zcW&tKQsI5q?ROYdf17pEJ1F9%VZO3=Y_5@IQm$1{m$+`L9N4LCiPR)79Kynok ztHgIe;H3PE`%c@y@0HYgY2+Vu7EZ1*2Cky4UyC zszVQnU+aEk(thVJAMzr_O|r&d7qKp{?WtwxK8PM~eDB=aFNw8>XG|+hika);L7# zRdhSkAE=$nMCPJk<6xXo*YY;`j77V%awo@T^2Yh?ig1VE`Wj5mBKZjEO#hX$pp}1$ z&%*uE`S5>)${;o;r`L6;D8kY5-sQ&*s)8_Isj^V1(LjLmG#?^emepeLT3RG`#a*mf zC9lUo=I>BPUJKHo+F_6`Y9Dbr_t?rH%15*V}wUd?3he-Mg);vSj0C4B>1K$K^2Db+!G8}>w%eb)P_ z;|aduL$V=gVSO(Vv2Z>UcSN;SLF4xVX=GlINNFzr_8*3ZH-zt9HX^73DeLR5?B1ANeFxT%Cz=0Mw!d$@3LcpZj1nSyAM zKZ+>l(L53BTApvIVdbblhpX^_02a(T2SHKfu6L@VubeokO|9s+iBgJr9g}_v2yJi3oz# zZ1LXIBROu`=T(_#z)P1kA~Yl`P>!4-ql(zvJ>RW5@?nQpNJP!6$K3A@6lO_J7@-#w z30m!T&CHxyZl@yy8|mW3!Ixj8Eu7y7qgOrYdN%gWkYPkF&@E4ApgRG_31Y2mAYQ1r z`Aa z=V{rQQa+6Tl)Ejn-amYIMzG%2jjv9tOi_v*y>30nfXg_|FPIS(^D9JyD0*G0xS5&KIBIY z45;9=0|bpRzggk%R$DvlZjri$L{sC_@p@cU{T4$mzAze^3%0?SU>$CCs|q8c%?vs6 z?sKr=zsJ<0?ed1=gODm~xzMo*dfH}A@$hLVt$h>`3Os%jFjGwVC|cxIX~Kz{mX$ z4ny=W%mMToQ1S4^%rn8~SGrnrESj}!t&L>oC%e4a1!bsdl>_lQ3AcppcZc7a7+(KK zjI5*bOz8acp`%gb<$Jd|nErsO?K+^;%Q5-op1I|5y`=+uK328#x5mJRx2FGRqA8?U zefV!qf!<;3defdGH+eX18B{&p7+$1UCJcOB_CoEeDh*Tky4N*LT5P#Qu4su{-upwB1qSjmKy~DUF>zo*0hS{3pYuabW{YCURkUCMsuq&?F%TPvh4x{3d8vEPt zG02b)d$qLiV^rK~&p@sg2GE3L_Evwt+C2#if=I~PUxqk=UW>>n*J@jobJ=Hi|4Sm^ zcqs0klIosv7baFUt8qlf}&Dpbw{HhwFXc783*6*~8kQ#tqn*J)W{m0mGj|3KD^9by&x7JgS7e9#k zQzZ0t#$#vOQsmE+sIY#5Hz83C^&#^WvDa;^MXc+?=PxXwc(Tx`vdSCHr@{@1)Hq!` z)oWV+;NMH$2k>*+m+qPaYETTykJx?WxC``DqAXL$*C$A=!(4SY*#d%fmj)2*q*9wVIJFgOx~w)O32`t}Lea57Z=ta}wsB#?Tdz-J=!SwzCC zCt=JpkY}C}{}ol&7G{A#?GVDOSYxl?hgyZyul83<42busM!pyG-UF~Rd@-UWPSAww z)Gbfjn7_)k())i~Th1!|^`L*1i`*wvBsM)_ zLF^;FjLb#8%R#qRUj3hNFW@m8i|0te6D)KyxS;m{H zu10dUD2$vt!!L?m@`-XGUH_He=ks3rjw=nqp1momcd}#a#h(a{h_8N%@tN}%HL>Mq zS(bc?{&n4{ffYkv^)&c$b;L11w6QAO4%yneRDC+I%pYK(Bp-Qfmc`yAnOF}bE4?!m z>fj|+(%pM&_q&aBn@sb7RXcZ!?2AeViBjsvpZ17268w1lq=b-H>NdZxosSkaCeN4O zY%MYFArL-Wf4Y2Vs06yN9)wXLh=13=aL=DkYXtYK z)AVq0a`IDRa|uSn)+WsNJ-X7Tf)*IO16hVWo%AnbEN%OVSYdnVbELsmXz?JNwE6k_ zM7S`)#L=$&;n9BQX(v?Isv~giIrqJV(fxLXj+gAd81M>bK+Na){wa)#YJ@!@O__gU|^ zLD+e}-zWqJ#gHg?DOS;#dfVO9gM0jjCX&8@!6si%fG_w{zm^71i}02PBH1lEv){y9gZ^HE-PW(a)6+oP_XIP2U_DqLvY)nn$*|!Y5v^D-V=;^&4L)zVtiX zx7YpA`w(Q_j#%JjGQEzn@xy;>OUU%2{U^mA!rr?w7fi)lUL+_JkTD8MC65z2Z z%*w6jPzXE1Mpw5kq1HO|t@qmFIXXC9ab-ND>ApXM92C`ZI5u#8n40N#5g`h6fRYW* zBzl2e_;+XHegAK3$|8lwrBIb0+|{;7V!6eCV`SnGw%kxZ9wxh|aU@_b{@DODW6aX` zxTgJkaT7=IiHu*-#vYC{!>eX+qu+*VhZt;9SRiz3CW~I~-Z@~(Qkyx;!?$t}X?x=? zKIS3GhbH_#s=hKH>VNr~Mrr8|5fG5>1`$v}Q0ZJ!x|=0M0cl0LTe=&TWxR;#+S0vc*gHYGirDZjdW5OOxt zF&PT89Wj<;<{#PS$-!t~dc&P<*ZnG(;_>)f&aX2ob6H#l@&*FBDQ-jqGT&Lol>;p# zp?!)|{?#cu$y{<_e>Tpg5{L4#CDXc+0^Oe2+~Rr1MRu(`Nw=qau`F?`Q8fLsTxV9* zWL@k0eb$v`_u^--r_gsEelsT9-v09W_b-cTH+8Rxt%WPRql@nh3mj^t z-kkx9rpNMDfPVhhC&b_;xj=v)c2d=4uDNR%VeI*N9apj`gVpdQsqS14k%sW4ZBqda z>(bcfOVV$3*E5$_*mIoza%MlOXriIH$V7(FS=S2<+uaWReT~~M!$mGW+nv6+rEP2+ zfv+2sd9zK*hZmY)l6UG%-u-gYv%7Od(tfAw=XDUrxxeGRhwS(+S$*Ho6Ll)wnDqZq z4=r43aTo|$Bu6=X&ox6`i0!jxC=w=)r{GonDfQMr_ol64#tEDsZ7kEZbnf--*o#5xSKM+hGZ@w8=Gg{~3Tr$) z)%YJjJka7bsqHId^cHKh@86+i)wQ#kp8_gjhMh0Fq}~}D6d@B?zj>HGfnMoKOCXbp zr8mRlm>BQxMi1kh18q^J{4E@KVEg^@%^mM(iQ)~^PJ|2f5&$kG(9Kn z#$%8^A`($`JzsN>-r^>37+Iw@P=IVdPVlkNIG)HS>EC_YHd&c@ zld3kmPkN&oFP04d<<>Rcc?W(lUXnX@VU%e_L6}^fq5q{62VM9RA-6>FRLd+5kN?X* z+AxFkaVvMJYCsim!ehP8XSX%5Cp}nPnCvkrc9rXfgiA+4{^m9!7_)4@aLgoa#H|wi zW!5e5sc|-`(fh6S{MBDd3#g|=kF@WIzoc*6!hgPu9zJ-pG8{})lu?HE-TStdc&vr+ z^ZW&uw0FOx?#k#wazWU8cx2(DX0V(9F`z9oiR1{I#^4LXZEscK`xb`GjtbB2SoVl^ ziur8`t>}Yxy7lx!CVJFqjUH3b(SttN@7|E9PGhv43?1XU)z%P0>8ax*7fH!i2gmkc z*^Aa>*{7>&FRqu#i{F)?$()z4hQT-h2;0wN-I>l+kOAY2r_Z%W2RER<_7PN~E+pkT zR$(dCPnFA%dsEzAd#tQ7-04n=PHI!jIOMN^Q>ueoav4{&4+!IXnk_jIH;!>-q96Xw z>3$0M2iG~`a<0NfT;L)OrFB3LBB@9$vT|0ZDr# z${`d=_WacDsjw%cj{g3(YpUjWyG%8>%S^p03P|A(9SNA(d@t0KPH{mqUbpSpll@5i zx%!!PaPoL1@DP(MeXAe+Ber8{ ze&mUZ!vqcl#Yg-_w2A`QXRux#W5I!^u`4cD>B9 zgVFx=hK9>;={a2Ip^4^~lt1n2VGfjO=H9@zZk9}!y1f9!%S2a7MVVF&y zCkFBH>(42eKOed&a~yd!xAQIN64ciD5eDPh+=o?3v|Gy(c3*oz+Zyjq;Ca z09Tq=sjTW^#WiRWZ)mK>vI7i*kLC%(_@_j0T{0TVJBdM2#ddF;1&G4x0*^E7BEu%U zNvjL9c{+|N_Rn6NtyX`HI)@zEyK)g%skXiA!ZuL~D?R8N9AK*F+$cE!++OUvqF@@@ zczX?8VVdC0mhK)Zd%K9hIfM)6GI!8I`B3T;GYr5iyT@v#g7O}RbOCi%C~=Svl^DU; zvg8*g*EjPAw&6WkkNMT#PWBz$afiE@&&^t!K;qx-As{9p|+_$c-L`c^%pJm4SaVXE|{n?GVd%Gwopk`*N%K z7vKjBQzUMB;JqkjnbWIr$c8UXlE7?F?l1=G{fKBNIRMj;c$@ijB3hbeLn2y$R!DGe zfWPu6dQQ*CzTJko#v;$gB(I**Sg86a^9#SZXJa0=+=-?hGO_V7A13;ZexQ%gwSmiJ z$Il5Lrq9mFhf1<1RAWzPi!t{|@mM%`mVhJ@M+kezEkB=J?@<4M!-ra0x(ot_fEQol;fX&{B$L$uCx z&BnL*ZpsNr#m!bb6<&(7S9DuzY}(x_Ie3_L=<<(WY=)y^`5unJ7#W#RJ2TFe4Ni4% zN>QO2Ju6tc8CiyAKI96GaaN=9*mdTvE!IVa9dVL8(vAi}yf01fL;_a`Q(MeEe@gJY5f~#w*T!#Jp*FyU z)zI{rS$wzpzUdZqNdx>SLN~{v=kYsH-#jct7dx0E%>+0m>+M z`oUbJdMz)Hnl#O*M}otpb(;Ewfa%trNKuUCIAV9*3Q*1IIa zkly@U{}%Jj6D{_Tgw*d(q`VFia=tXTqoxHVgjv>7?-*~EPvVmK4&eQY zL^-wPt|9|-_;^^DOldrVS4;2JtMwln9si~uF{KHdr7hbIWm)G~O?VQ^zHRIJIdtPy zEvT0%op#rP54-xTE+N-@jlp)5I@gdpTL}H=!lx!rxe_M7xn~qm+1gY#m)cG2*5ZHp z=XflpDM_rV)9E&lgtSWjPkyic2?KLgS3rhg3Z5Ev5r$@nu3^X}#$Z`M(B{EEKTEo_ zmMK2SGYxk{2NhgL?rkeMg@zXZ+T8Z6L#1ouwHL`AQ(aESeWnoIxH{Oq#7N)NR_k3* z5(SieVG|sttupPVFH$bKC?)y?>2J(*p@Kf|Z=rsjCjX^qZFs%M7 z4=>KfeAAV4aHQcA(|8(S?fp~Xy1kdPFzKn-;x{f2olFS)EZ}ti@Rif0{$|cbiq)` zhY_f&!7@#mb?HCPiq?8n^;f{CqRT*Pz2)Vpx9}&{I4ub#kgrk+IP7a#s7LF^J8WlT zW9_!WObB5)zhEoW-EU92p5wOy@)Bf(X+p`j&gf}qk8Hm^8h?;2IqVgE5(Gs+=T(|| zwq(dRh-a226vyB}`%8%6`<9e_Ag7DZT7)jCb^56n7hj!7TRWjb>4Q~Y0! zRCKK%b%#3=$hGE0ubr#9R=O!D{2xebG4W{)Uz}z@+2`r!zwx|^sb_81!37Dh4`rVU7D8viOT_w3!aB+?26_t2!MTi znHfGT^PsXHg;w&a=$`kM+(WZ_~<<%k>wR zF?SEVjHQmI^}}Zn0G}RBIz4TQEYarW0w;37K7JnGwU;QC(CP#Dk>SV)JZYuyJs_62XSuteQStA1T$sn6S+?~6H0(aXRJpfM{2xgU+(Rk7f*4Hg}%#9 z;4^ujRuXrj<>V;fgLyuni5v!mL?6y3D6_UI{FdWi2;gu-Q13mJ5vN}8t;ey^-0s|)%Kxbl+B(ao zcdVnCR=L}wp_+Pdq1}4Jy#Yezh=O)DDZg@ zQ3T*cl2g`LS@E>@SLq%JB;rhbUbET@tQZ?=xukSUK3IO^{u_OMd2U>k5}ue~{thFU z{GOJlxtk>!`M79^^ZIa4V7_Q&Ypr#_ix=I)e-a=;(YXKYE6Ht`{J}ed(Jq1oz!-=1 zLw%6Da%*wjck#U)K)U%>c~Fq&ToBWPIX|2v#D*B$rh#djJ}LsJUd4>uW%f}sqQ6t; zn>OcjaI;DnqQN+x(Y5iEej^Cu>3K>H7q0PG+@X?MjNIK?V=8ARp|kg^Y%>@NChl9$ zFdG<+p-$);P1pzNm`q|7Z)AyE#0r&&Bv~1q9bQufoj8kq7AQXPv}q8be12^_6>j)) z&EZp_@7~<7pGM6*_i(lFMym$jpyJm%|7U?Crya|cJu#2Jg;SfcJ)kST@HWc>! z1|SEpRb(~R4(a=J1JT-xdj{x5Yr+8tJGgl`LAiL`+F+E((XxY~a9Ekartar+LzRVJ zn^IxJyVC1Me1S$FVJ5e`@@bIoE~M^rn)ttv!Sr7>L0ScS1D|>P!{TF^zd2%E*wvj_ z+9=K4^=-}j^WNb;4@!fPx44*tGpt1K?3KW%cG=JJkL6|N)KC0l-lnnhdJRFbCBM;A zrMGo8LVD{X@MVdNqe4=pq^X>OXkm?}J( zGe(b-d|aB7T${D%YFTpKWq~1u{Z_-Jw)06p3(L9it3yI(gVPgr@W-hmkYsUY?vs5< z>+$VNA%jQpxgd}MsC~Fifsw~~XO3Anu5wl`bwzD>q*vi7(DbpaSGjPO1(Q2Z(?J1t z?4ccjYr}?2$#r_-d7p{}I!8DMW|@e)v)Y(o4dL%uoQ1R>BD-uYv{HlFH9QzoeKQDD@jgby4<;(>XA6 zso#CIFcAk5xx9NR&PDR}XXsIb=F61Ykwj{-7rOyw^v&l5adBie)QL^>qd(r~?aTeK z-vN%jb?idYrdvp*MXfHFoKQ_NFwpbL1>ANZE|xEp3a&pOngi3Rj6jHo*d4vOaD7ZB+Z>rB1-i?_G2Y*taTE3w7XX_gCM?C&) zK()+lD#(z{sekkIk?ko%R{!JoZ6ON|E-&O#tKA+BT?A~@5J{ouA3^>1bdxu9T(kU2 z+#~^bk#n|%@tGu9sFl36w>f!aLOImWI|C96vdP@eFUkwXzlw``D zZ)a}t7R`Ab7$K^^&61TWC||GXlhnj@1_e(WKxR;V?ZO}6)~(4~wtYvL5S{SB=}o^g zyMU#HhGbz&I12{R^`U#i2FmZpH#sE5Pm-!r86Gk3(I9)E$=dMh+4(z0x4W>z{*&J) z76TpIRPvwRAi(}O8?fSkvrO~n{P*?&0tZu;68}jNH|&c(ybgV{$>Q^ob9(aGO_uF& z-P`!ngejHEubzc*^Ew2^83`eNx-^`?xu!@{-lUq!&(yj3qU_-4nm_d0ptsgF1adq> zB1*zHGkE3rPO z`Ju)sO8awmb>zktTfubCK5LZiQovKqWi5>w&>NC*6-w-A{UW{*ng?|iVR!A{uY552 zT>hR#=yo#icBYptWsT8cuSA^t`l%a)M`q0@DaZ^jP`D@6d;D|DylL<;k9vd2z^Z=x z5MbZ`LxTvNzhvp+u$an{V7n}Okyzth7&o29)4k)QKTJ5zGd^L2^z)}Q?V?Xd{ z8M$$oO$c=vJ3u=MupT#vxcc-+b-eEW^Rq5JI*0T~xiuI*h_4zMf0Dh$vZ=eFIF?OQj*=cPm*aAXH1^jT z><)bBe-!DampAfq<_f4v)JD0NF_gF%;d@wAz!H~xve4^DU4=H@3bo=#XT6VcpX0%z z-=pUo6VS5c^7)3U7dJN>UDlqs##~!5K;mecTA`+IL@;_dMO?1LHzOTSc%xx;7Dw-w zsqG~P&|1D-OO{v6Fiz{E;|l!gTElB#%LxCP0;zkcR~Pu!vXH>e4sx=$SB41HIOGMR zP!GacXwvO)wEcAcy0Y%(xkvl+GTvf@s{QUZFH8ue7t*-LxZ;N+#pTOWD`by)Q| zW4lR)pT=o-W1Ufo5HAMNZ!0~+Jfa(n2;_+$Akb?}=`w3x+VWLHw4HHd85 z8GW$(8rn16ljNA_o5lK#J;KayPFT1@O}2BD_)QStG~&TtkS}}7n5kSs3O_Lc=x9$# zpi4)SGIEWLL;v>M1s4qb$a&3NR1cCm^T$qyz}D)BasP6CHlE>dIr0NP4Sgp=GFO}5 zg21yz0rcmLJ@&CVv91y&yPciYdUXa*5mR@(-7s%#Sw*_THvY)@sI7Cf22bV8&rmI^4JEh-9jVwmv&H<1n+REKuhzE zpPt-3a^K(H7loe2pXPIi^E$MUurqvIFa2Rk(dw_#?2~1#3olHeKw!{*6(fE->Df;C zh&vEXEBf)^ERq~UB-Rl5gzJP{LP(t@)-=F7I+P1EKw^*^^ZAX>F{=(-PsWSj&eZ8d zJm(lZByhZ@5r@#$ixzYm%Zl1e;f|2r&{=yjtvr{`Arlm>nVc)JF}UoxOSM7<@L_E# zM=@o*=)62SK@0D|&O0XoT^0Gac-5)C znlEM<`Ll&q=XEWF^?kV{0g4<#3<5gVMja7QJo*>g9*yxrB zYHkM`TSRX4ijiV=IbOOpEqT&z^vzf0%06hRE6~9yajG?XR9oF$iVA+S|KKxe!YV;w5PhE>~3%-2`+l6Qr&m2N^GQ35rB=i4>DKlvdvV&`NdW35YqnlNOzI7r5hWfzEHP(s{L>;Rx*31G$auo09_no{wWHI{8V@vS|h z-4$W9#!P7D7pwO~nAC-zGLr2kwW~j?awKRR{J~hMZtZ^@JcP~6OM|-g_OF^1<9$5c zoc=PvIlT-iKr4Qs;PIS5;9n+TN!8!j1(nT4mZ&4 zmEOcZH1fZ1KqZy^3rp&zrH-8M_c$b+77yqC{XG4rV)&F$q&%D$EO8!x_TO^xeEB$5 zHZq(_;Sugph;cd-3UhN!r87K0sqq5cfj<&8}Zz$e# zImGbE=_2)}QG=960ve+{WkY~01DDCEsV9z>fO$)zRN){*oT)@LzDZ*;wSR?}>Lia|UU259hQz71ME}B6uzM?5;Nfaeuvh zf~ezTnw{{q12(rfx;pa14J_5}L}Kvk8q(B*yI(Weu`s;j)KUSIR!nl`UVI`RHBWfW zyCCCRjz|o$@&xz%E?uu-Q9~Q{t7Cv|UalFS*$gn9@C6H0`ftd+9(ujU4(f?k983J9 z4DymD>(^->z;3{C#70vmd{?HMd^+b4m+$K^DP^G|(MV)se}>XkY+Q(dzC`Q8 zFTOGv6*XfZ3>@Gr8<6k9RXyqH%%Lfr8M!X&3?le`y)8cK-Pnn5N?v=RMg$i3HTXGF zFx6eU_ueLOY15zjs>P@)NQGG9e#$#g0&wHQi+67}aT|Jzi1CJ;4V< zQSEbn0GhAuTCown?V5moVo`{@q;qSd50+1JAl zA?MeWGQ@Z0wCj0nePDUOqEs7gSt&VxWR=55^(Tz1F?NhrRbM^CrJVLPH#?bqwTQYr zQh1#Vi|b|muLDkIz>b}K-)!eVn!9Uv)%jQFbG^r*(~rqC=qu174l!7znm$}W47?#vbPP%;Z@Wo`x z;xD_DtH(HDdT}%1ZMu>D7ed6|=R|R<=yI-VnQhVay-T+K73{Iu!i*cYYf+;W;XzR) z$NjdUdRmyX>r5uknTW=vu$euXE6*zP$^Z;C$8DY6{9|Oc(zZeE#0is7_}=}2MU>n<{}0oCg8)E4C(L<9kY&XrRK!) zI&WB_Hbc-5jQ5YpK@D%kA(mrxV;gV1R`Oai8a{NYqqudS+@`#@CSgtg-)*qae% z7>K%58J?rb4t*^vt;07p*?to5UGDc@XpUi2mQ;A6iw?*Q!%>LyM{m0-_vnaIOE>&v z8N-GamKZX@;i~Jnrt>Cy_7PNWSsvo+*gRZwxbpwcU;#&(9c+)B3Fj;A6w?`*!d!UH;l z;Ehnpo8-(2&HOLFU^j-|TN zT*D^4{ZWU4e4XZz+XVh*yXG6)(~Ys_^Y>F3$MHR~@x4BuLHtg{T*!?KKbz??(iUg* zTPWi#T(aZhq30`zEGB{b6CMN~9l5AvoAZ;dCJS|$Om&UT!qR+b=BHATclZKR8lQx+)j_&&5Qv^j9!PR-B)gS(khz1tz*#gw~=`avB9NzW|y1zN)EFs`%pwTxB@X zUzwDTA){2|JCsE=T2Ac_IG;$h)51rt9JC35EGGQQw4mUl!l<*UM}U|%jVuw46Kg0h zPnB_7!^7^^{?~h)(eqwTmwiag17yHY0>bpp&7aTd}v%-2SyQnY!Y~8=+LZF<5#g=7a_$gbND|PAKzW z&0dS<_Vn8xdHW;5W9A`(cdM{W#Qp7-+-`r|_ZNW|I`-1$Bk!n}=!kh|=b1Wb+qf$m zebso)^^6;yr#MD{W0c4CaNKW4qJ8vfNjnMA!PSS6-d-`=O>0lqmnph{71AbxS`|S0 zoDF5Tg%FQPqjpMLBAV0NI9AD>II=luUX8k#{zGx`#m?Frq+w9~jTW(FHeaB>%9Cuf zS-$(5PM+j5wMG#11n^T<(UoKRZ@{w>Fitw5<8NjkOZ_Dd)+NDFft46M!&!GVm&miK zq-*aitFUip#^lX?ihmw93=`@S5O?|ET;F6W&6jXSQ9KkPk)Nh7o^K;qy;h-L$;WqO zaUbc@luk6RS(EdWcu$TsGrJg67s;=EZrUVVn|c<7A(?!n(!9T-nu6cWsO2x(g)y{< z!#79J!b#v2c}|$U+*q*|^DC-Xs`_dVFYBE4_W7#;he1Z=uVb~8}#y)1d_{d>U^ z2Dp(MfIC3QR7Hc0L+B4dREL1+?(K8l$;}Hoshs|Up`pPVKk4qE@cErhhq0O&ChN;( z$ZSJXcjq~-_Z|Pz;O2WYJ)nnItN+oQ%CL;gUc1#}aYI*O%%<{ihng)m-^veYb5S?k zzXV_Q0lMonvHgg@*$2>Ou$g-8kMeA$rqV2{np)5`#iu1h@jdzw)**#`R9)2jOx z7hFXWq}h&KSyiLs?+&xECpvf1U-rD+4DlT>)sPwv%4f69(zf7pUh=U>9l!L^i3|+N z=v~W4JVefEEtpt(xeaGj7o zcgfK$JdZnbAfe!9%9JI|FO8lo6ITw1HiRO6kdOSq#18JpO{GhH;8#DJ0h50*T7PLJTjZmVpl)3Eo|ogSnIKcmH{aW42 zSDQVcZ&g1B#GB*;RXoL?UpQ2o3MGyAC;VFDj&Tn+R4J)qfzfP$Bn;330PQ%-EjN!# zjZAnl7%KZF*P$s7r|H~78jJz%+VuiL8+gShNJGEn4Wr?yS(v;j19zS1taYIpyln03 z8R{&S7@4Px09f?Z2wQN{bR)4ZT}KRzDx}5nU=h? z!O4cIBwUUA*B8mL=W!tB-(O;o z?7!7@5SK8rz!aQ2!@jgdLI}LUYf7rp)l1R@md7GNb0e;p@iu$t{A?AdfFl!Odj^8# zSF8%o1|KLmeiiqJ%SAD8Gm~L-&VhwLHFUW(Pd2&xC_!fZ_6RKC{Xxtg{^tQE_HNlt zm$H&|=HT%>`u;fYfSZRCH9jtR-U)GTxY-=MYVZg!3oU6#>P=~`-sZPz#c&va{1 zP88}yieVahJ;YkHpoXF5%BC=1o;h5C=RMqI*@h;oaG5_0?pgel{SxQ2_}y#D30j?7JUuZRQdWOK$|jn4O6U6i zJgREmLG$*fSXch8cUPZ5md*IY?&)Z5q+jB*{*KrWE?+BLInf|E(Ve4B!|4H-^7A|@ zFWv=)e;i4y!;e|W8gyb!Zu)7&mVFihI6hZSQ+Y6#xJ|PF+cZ>%6UmU=!W6ay+v+o9 zA&O;kmu@Y79@Xuh*I{yeFo{x&Y2R(LmQO`|r%y|#@cdX;x|gXD1Rf@01}AgTdJB zUJtqTMc^*1`JC^rd13M~IMtnTRc5dU= zxzF1*UgzH)CJ;5Sv+o1}u|m7_rxx~`IEJtdn%*O8vLipqr-KGoL0);|{^><(Wg1|T zO4mT;A%)73Op@nqTCwkp))L13hWJ{)5}DO!UYt9MS2zb1d9QJYwr&(uFV9f;FU&Xi zB?0*$RmTGo_H>U-LAq@LXB)=}3x{Ky{{DOv*?^;}y94K>P)ykOe9dm(Rb2DNzidzq zoA(RG33fcbYdZVT->)7aMZX2E`hgmq;qVDL(%V(dQjxk2HN5wf64K&EM5j(959ILG zeJzkDjX%%lV@Ij2wyvk~==HCc3(u?gf0@&Buz0uYEbV8ZTTnf>NRx3$=uUXC9{Hd! zQiWFbwGO59Kp0rl@G{oCG+1;6i+u!$`OAGj?=0(Jr-d0McjMuEyD@{F=tWc^fz0NCDCN zJl&mFiuq3X;2dXE?6Y3RQJXqUhWkU?t_c=4ve&QpQe=OyHOk8Qu(94I*^8TheeuD+Ej3as zi!(jzx+oeSJD;rJ_lbg zU2?LgPX1uqY^#_<3Xx8wV7+mHgJ*OQUXY#j!dv5j`zgwn=cw@6CbudtkzG-`L-v?} z(}QeQFMd*BXZqy*nWI2uPNSz1=>@m&$5T3^cCG%d9?vVrbTXLTLLPu&aD|fi`ZOLi z&S&8@snlED)s25pcfVdMdJ$f4(S5WiKr15V%x@vMs#qW&mJV?*;m$fkPU11NX6?5uL_@l?3-%;}!2*7- zhz}jJE5MYa*93*u3>V)q2ySaY$~&qa7GG1^(F^#=r4P_|r7AM5`r;a3r;u^1u3jd8 z@d}X8v1z?d$Vw3z{KN0n@Q$yv1f?p$H#Pxyq@cOY{aT125Qj#q;*WaM-I0ai=)o z;;p{e0ip%RU!;&`+eCh`Yprjyz~xi28}Y6?nR}*8IDO)H5v3N#0C+r7lkioidVyX3 z!b^6buZ@u4ch!ujtDy7 zbQ2r>e^DuFUGswG@V}etCI6mu$A!+zi@d3w+!As!hGZ?a6uVISO|vtkzPHjdJnW-{ z=wqn_EUG%sb;aQ~mj6kYb0;Mm6UP;7sdny^V7geAGADg7&P)$7(xYC%Y=zK+mfpXw zBaEAz$J{h0I3MKh^@_EIV5D)QU9r!aQdB8jw}SKQnZxgn%)uPqa)7&AROe(AliyjZ zNprpRWjxn>Q{-A|0A^VqrdfifpK`QlKB1srfR1QHStx6@{@D9tZasqT05jQtf4CHY%z!t-~ z!=Akq8-v^WXg_q4>%0S7+RHWrgwMS((iFyxL$dF8G?LSs0KnBnIaHre_y2}kE##6Y z-kKeOmG-x5c%o@q@$N(A8*O%_%&MgPHPvC{nd0BG;C2@6HQZo`N7 z>7Yr5&^RwB;ti>)iCE8y@_U!L#Z;r4mOq29c4auc%Z&^*S7n-0fBAF-{KlD@!giTGavhW>e8{Yy+}GDcTDvfZSp|kG}3Ob4^me5tsPSBA$m0Y}?V9Ji%TwDzB3A#LT4_KU;d*j4*Q5y;c#uC`yZNMJu z1nQB0%N0{*3ZCt1lK;loTk#||-N(J=aSW-m-U>U#^Lq8ZM|W1=-ESWKqOSVgt?tRb zj*AhL-F)bCChS(^Df_8!U}1BZz5n5o9`Ei2H>lcREydj9+)*0%UGcvBlsZ~~sOHcE z!Lr%Dg}iDogpGS+q$=>Kh2%d>LF8`JJ9R)AQB+Aj?EekA)^aM>Ka+(bH}&ejKq1Y6 ztu^C{R663MY9aq=S$f!hevUw#uB;&}1IZ!ot?1)KUI6UsbQS1X@M-vPK)~JouhS1L znkzhf{LkP9w9`hryk35K{nSt#%|X`HA&gA(o%}CdZu{?*Ud28BCGd6V1Ez3Mvhov> zadNDhs{Xl?%SYOji!-GWTia6>UaL{^L8l+6xI+_fFk6RoxcoD}J6%t{+4D#YSGvx` zM`h6yTbmJ3x9LVpT2B^6*|-3A|a7xRtWkRN9mF7(|11ukJJyu{f4Q-K3FtSld20N9e0IlXM&bg zZ!$i7=m&Hpps`HI5=-5@W0%%AGvCDZTX{It15B#A4Y8%cpm>qnT9foS=yC|2T4yTC za2QOP<9A3xz_S4&zkdSoq9=Lhy4dX`HOm~G&ErqM-pnY`I^LP^Lpzj~PFJEf=#Q;g zLP485+@trq8GMDeEY>beNRr(BT*=_)>Xm^UAh%$IPetV#IjO~Xiaq8s z6mPqd?w3u`v=@h(5th_bCLv#oz~KXmg1ozUw`_ z+uGm1;1-lnrNbD?g&3tsP^3EpWA=yhHXxL^0~a&i10%m-cdjwX8F?{9GcN8Xqv`p{ z4g|>)ruX0Yb_(7`Px+Bf*RE;g$1(OTXpwkDD^OnhJZL!--HlMhl{argJdM0CzF3KH z6>pL}Cyo6Ma38*l8f)6S*y;s`tOFeO=(H|*=^Q1UAaiA?q;M+b|b#ZtB zeBwcNnkjn>Huqeq?f96!mWGkf9YDV20oVMQOZ|G3SH`uWT&U+WPpq|?!h}+%p0v6@ zO)3BDp9x#Ed!`Rt6d1=fVd(}ab}~)mLf>%N+Nc>?L;}*Z>DbV9Nc;Rr{tT@cd&ljv zt|R%YROdZ4y3(~3MxI8XMOB$Qq}z_Cttvy@L;hCP=g&MrG>%KHcZ|YvKQV}ynCNs; z4?NtE&w5R>6o_pPp^d}&xUE9^?$%qe-}J3|3q@Q~H@!Kd4I|daJFG!-qv(;s59rbE z&+6QJLgix1uG!L0$W(V4!O>LYzXk6&7@nmaw=;Mkcs(rhTZheS&q|8pNN#h82Opudbc4T|_FP zMvsF;zKqd9;YW&Nd_t-FJdX6$*{m=a9!tWmmG@xqS=)aOz)m$_Y z8mgdDNg+JrN?5r)7@CZ@>Qx=i9BLih!mC`$SkREgR34F;jOk5Mr zdtU52GhRzt{myYBj2Fub2@&AJDvHp>3KpbHwlwdr!#M1*6!(~%JZKJlhaY@`KY^`u zW{-?N<4C`?Wb9Xtu`$y_s!eC)4%C!GVcwgD_(g59cb7G`+5;_bH)EY~D(p?B1{p(} z2Nt}^oFiMC+3kaQw)e!_MiMV@{oY^UW@o&>y+$Q1K;x2kb>nJRa$i{phmU{*2dx2h zoJ&&4<{p$0dO{lx^^)bWaYsKa8p#d?AYl{WRC|Bf!1eg-eAbtX19~Qi+5bn_S4G9y zE!!eNf)k{12n4qf+#x`K;O_43-guDU4#8c5G!lX~?(XjH?lf@8K6_{X=Z-tZef;{Z zN3B|G)~s2x(to(EFG$G_ATp8lD@_tmHFIum>pDw}d_CrnZ~y4qd6Ic7z)TTh2&-3* zgJr;WzEqYT6aDLPYXmU3{OGwJ2rmzA+bD^o?c%&woS^qM`wek#FT7p3Z=e;OWp(e0rctx8mr=ED=|HX9(46({?%=3osC`~55__N&lWpe;{<+H!epzT59QXGLHfxec zT59(8x*zm?KzNd{LF)}#X#eovra(!X$Dh#e;{3S$3j~_KA>~JG#wE-tbd59bFp*jO z%t01SHEO)>$;?D>{LNRtDwdUOFA_h2g(Pp?;N$MXJs$r4_NsEL1~lSa^s2t+iC}K& zP4~w>^lKk!j{0Wj1+Wa}5{m4Q1H8#GKtTveoWzU0;#xBRQEw3E zP^P#`+r##q@adMjL_0`Uxnpnl3n6uT4r2|od=~*!8cD9RZ(c8mmEV|AI&+-Q!)LE3 z>fXgrc%31C?T>DEhH5M6V=sS?>=R^>QQJmv4m5e0r|+XKDjGZ$e003O8fQM;At-&VagFQjUClp z7aR0-bdbks`_p#(s}d2NWI8-K$Vz~~OOwM0ts=Gm#6}!%x8utocv>jy*$k6pUYVyu>N~HRGq#JLnZ;WTL;ggHlzN@1KNE1F`yF}lTJ<(@ts^cCX#6iL&+C}35||6cFrly(i}zjA|c zd3`PGg(;hvsgl`xnr?BM=JR-|!BgM7(QMyJB~{I*-Ms>pHKEZr4KCLYjxVoLoA!N? zStuRiDSp$9M?JB2Y>7jXCjH*uY@pA&YIj7NlT}Qco1f|Gb$(g_ha-m-+ne$fOJ?4) z>vTHI%+k;-vaobD$a6z|oZ{rDJz}!wca0`hKj5EAAvfdV=}*PVcD<=LWTR3QzR}^P z%1mh=_0gV6k2gGS%!Dc3dB&={3w9Zl%c5#3y*ABO7PfEsw4S_Y$o$wpzqy?^+ByY0 z*{WVaOv=o86%|ve=C04v*7Rs9IIr~S!ScjmR~J*5r$sz|{I=>nxZaZ|3Rs}Ul}z%v zn(502!MV99uOYuK^8!^ak8N_aD1@eG6x+L>D(;^!$V2q2%#&+D`>sXxevy;)yJ_c^ zfx0K>*%r-Y?sLciUd0G$z7D4&7xzz1gFkdD3A{S1o`|qLX(2|4=;}G!5Ble2kxz7t zA8qe!SlDl(>{osXw9X%o1hfNNnu$I3kYAo9Du=M*m22&aimU3)rotRokK}=&vq1YG z$y33qA)7?Gk#|Wl^w1sU8>l6B`2>w0nU$c7_0f30d{2TFl%w-wS#_8ZlDW)THC_76 z<^6PBC@^y7P2xD>lwsOrk3^*1Pz||!xwjiUuPp^cJ%0Gl_`@IkFiZdO<@D(A`bX(s zG~rH*ovpfw6baA7uTWpI5gE>p?PH00X~M6yQGT1eef#3j$mc0>WDSt=ml~`R_`GfZ zV&8CicH;P;4yT%W>VV`jh1WDP=MDVT_P#hNjtpzQR$mWf)5FlP&lXvQlIjdy8Qxis z?-Nfk=duiSHUFV!lWL|aCxJCGeqqM0i1_CuyRf~;%&(ZWVIL`uu3R%Bf#gk5;TEV`KLqY;&#&5apN z3(Y!460E^Huigb8FD2bSbr0SnT?5UYgZX;1)ZR}Kq@EAdj(XmTRlP-wcJl(}0QlV3 zH(OSYG0{5M^ef$ZBbi6JO0~{IssO__T%SRA+h~s!?hQUarL?4%U5oqh7-ywjgsj&f zPUx=Ye z*4!Rb{>pKD2nCG=2@HkdwE z7W57LV#oKe%qolR@SMrs!^*Ek6^!IOz)N%|IM3}ij|jy7X0tM2u1B6?woHqVQU@3_ z;N|9@6gOJd5V+qMaRj=XGh7{{}?Ea;r_dK*X@+ijburOM9_!Gr%RcHN2wTkZztQ|O@+I+!GyJA zq>ksyogtN3V|pyiCgYJ?c-N6 z(fJQ@kefBp{EH;d6lurAKBz@#4=c2rD%m@)7vk+E-(vq}I@Zx#0s6|FzTwuAm7}>E za>c~qdOZRa+Ptqt#L4~peU%9(@R*Cx>H=L`NvZFiZf^lv1jh=Tu$BA?Nhuyzp)ygO z*yrIUnmKBkPzuAcz{DE$?k*;})bF@(V`dG=>s{6!+&*rw_4zK%rjf9wmz_LBR#Q5c zUt?8NkLe%hdW>cPget3_zO^{_>37Z3zOg>kwptaNR)-&z)s|>_RMS0yj(iMw{$X9*osRX(${8wH7`Ly`EAlI*j7xl(-((dG z*&PW)7+e;=P40c5srDz4$3%28=cve7+le$5biD<3qXU}zZQiWS%xuo&s=8k2(`T3S zhYpwfqMc9Io$<)swu!2BE3f3RE~UdVr?~R9%;(R)Qi$)@fMTs!Wju*;O%KY-T>gr5 z_fyxtqv?V>IhyFdAKf;dp@Tu=P#5q}Y&Ux>x52f>FPT>5qZR=(uY<1?;KNORu#%m? z7Eon-Ba-P==A!qq_)@jxb0`x}+IzNPWAZ8UFLn6;?lecjfqP@Ff%_UxEy zZ7y}kN`}z2w)$FlJQh8AQuXZvsr#gyL|XYVksLUqDj18*)UKGvPZ@ng8<7KA7QH`c z4;|*}-4caX7(LL~Yyh(xX=s|l)3H%qqMqf?qtA{#!xD}p#~J7(XC`Z^amm!u8r)+| z1~RECHwl&M6H2T2snlvOwZnte(&)L(hn63Ih7VK8@W?rokg{qt#%P`gn%xlIt849M z)Hs#vFY>K8RFM;e${0dp*~!XojIU)u1>g$$J+|ng+)MP(KOziHQ|MxFYeu2Dn@Swh zRnpp7j92713<~7>L`R(?HJJ78I zIcaWZtnehz#QsOF-b{pQ9W-&R<|D<<`22UDij%_()!XDpbkZ0@Hpg|WqXE^rq1ujd!U;VJA1>DF|coT)=a@0 z`W7&EV{`G1Ga;FvqJ77e9$x;HhVz+=LJ~(?MfmjO@M0)ZuWR&|2f<{{6%Vi1AL^s~ zJ^o@tCI1)AKeJB0<>OcX?Jo`H3E?H>{is*%i{EXTo~TYB#9dlzsz@>?dDCsXwFH011gjcSE*YO(_*&eSD(x+ zjUcG$Vrf?`moZu~D}P{8e>WG@&Ca8s^GjQU3a6A-(lT2#3gl}*!nD57-KS8$vUO5x ztm(inS0AqZ{s9yxY#E`Fp~~bj{$OmLy(8p8)ePqtYX#` zxQ^x%5gwmH&KLqCJ-fuPdrz9%JYMQSGq;obJdcWl^_FIlEp>Ex!Le|P-Oc&YHRkLc z7<2a-9-oKJ$4!MB7+)-mvwHLo=hdDFJ%J1-{QR2Tc z6(kD5`)qqSd*%WnNggyvZm$9moZ|ic?oUkhcfi~T`2$ssR2HAlZCJs#Tf$iv2G^OJ z1|U=+3j<;+)ci}^4@#Gr`-$9pIIZ*2z^_>L_R5_jZmALUU;{(_EZvF~#hf^~|9Ao1 zI@cumxxDcAqWi@b#v8dI=djdja6GV^M?7vhpFZ-YU|DPPoB8k0bY9XPk(8nLKr!^v(TIXYVVoFsfVeB*U?) z=r84Y0*fv=+a&BR@qmvmIohzsP#;>yO-xYb6k2X@TN?T&yM0J-%kW~wJ(OjeJqW44>rWzjOEA>iCfoQ6ZGUv6WrCNG zghB6s5c#k-1i{lRR2O?aD3<qGA8q_G>g4Pm-17`>(~SDB#j@xD@C3!7wahqp@?BqQ*g#qGy=-R!VNrrf18 zdmhp^M~rB=#L@{lgWPFO(jkvast+;8OK{|V_CH&8U>p`Ni0?Hl#@9+6F3roai0igg zTDaiqh?-YB7Vh!2I4j3(@??7L?mCPXZ?2gU-TSyljZ%*{=|9ujg6_K3%dq>9pRByp;_X!+Ks` zb_&bD`y&b*D7QntWBy0v+_sf%@GDm>18_Ut*MOs4a!{nfQ&pJj%|`a2C3y&qxO^WX zz*>7MU?okAMuG*Qi-MtyWC~J~b7C#K zG9%B3rz}(VwDGRX{~k@%@nR6fRp@+*fz3;uThQgUrxW~K?F)(MX)8}Sun;O|FT}}~ z$umh#<&`JSaqRDb(A7V8je7E)IrDBXzSqk!Fz& zht*WOf9Q%LoboD!WkheEu7r7ANiH(NPd(|#f-K}H5*4L;U@L8|v)&Ju3H;JQ< zg`G}H9&%|Lub{W@eUtC~De~y^+Rp8LVoWlj3U8=H%VOL_cZ zz)=ld(l_6C`J^#(R61`!@k^LzNp~UH4_1E%MkGOp9s*M(#)E(ync&r)S7U}Y8T%~3 zBgo;4F|)oCMPUFNDco0WV_AWKdrjp0;k=k7{HUyuRMeMmyBSJ(8;d+KO3+A_6m+9s|m$e;5o&2nST7#+l4lbD+qgkt<_L8xe z5_$iJnv?OWTH7?l6mY+rH+eAR#)oo7--s6U!|C0yXKYXZ8<-=nH{wqg=uH@fUywHX ztw?tz$%}3e?7QY|^f3!kS^)VcEcG&!9vtJaeq}3~_2zQpeDzc^bM_s{`s^+Z%mg*M zHp8uZ#EPDM_g1G58LnV~$MEtt(wA;flHk)~D>3ttV~^=Sy?1(Z+JMkoy$)HsO#ePI zYXS5z9Z?*yVdKU7?pivu6UGpM(QG6^riZDeAUZYQr0u(hg6-uj(z^ySbW-b|Lhu>M z;e~A`8L+RdrdNlBZck@9W^4YLj0!`twE1*sQqNVsPuAxKfNl~5i2%^Rx*-hW zF_V;A0$zzucOk|Ylh?jjL$Gu>k7YAfNC!r*U&)K^@O&$wKe;@s- z|85HS*5s%Zy7mNQp5_+q@4s2#iO{|8=;pCUqxS{|e%EG{Ie1Sjb}*TLCHZ*5L_kq$ z$ld>q_&fwts|;EQbhWv2-&ZB3vEQ)@g3-zRbhe>!6tn{nagB*r!n~n~JA+OU)%VEZ zROR38Kk1_W>U0C8>lld3WN)b}T1BD|Nuz=SS}k{5*7~?t zM@-o;KYkJlFZRGqmL6oc}yP^ zw<)_ke!pk`?Hf%mzUxRbS7j^9{;kGZzfk_i5k6pU4ku{z8=;*4vG{2f-%(zJhZ<9! zWzOdQj~`hs`q(^6UE=t4MR33$5LA4lH2}xP*~4 zB{)d3ZNY-~1g^wTvDe1}$dcia2L?U&AltyabNVPh8CcNyzE?zY?{m0nyo~xTTLRO~r6|QVshKeS z8;%0~fzQ(S_^yP3tm;6kbU=xahE~Q&jA4!u_Q6xypyf=TefCjHpm}(gz&lcUg|M}b zzBlR8c=W!0$FtnuOYF$M2W6IbyHJzZt?{mG)+6A#e5b1C;`ZHUp*pWMXFRgp^|_JW zbc^nFd3_chiCfbu$W7haaoi87Pnmo#1)n{*x%kSQc01kL-Prg4Ne-Y`hhQ;jqR z`*g$931hj+$uxwm;`8Qjm1cc7q;9%|^VF)0N~Vnl^LXz!KFixx)d)T&Dv!rKhOC?q z;}8a4X&jQRMsDC{y=%A{d|HK0&^lec+1S6#t4g$lIe3JuaX8wY_==gM>fz-fYJa82 z_aaGyaGci%j0-GQ2|K@Kg5`SCxd7r|y!dFXGCeKpo?Oj5&vqLF#h9J+9 zGX@{=yB({J?Ixf5k@UG%86ITUQx?S*WX%5nN5HsYyG6j;W0c2FsfSG&##KaUM)L8~ zPy7@X{gy&AeqpY44K;WxU>0eITJ-QezAD$;TaL{YcWHBV4%Fc;PqUY>anhES6NaNh zish9_kr6vRu*H-|!yVFDM6}>bNUM&|O_A@$@LA1vO`%g?{}5#3)am3u76yL?RqYDf zw(WK}z<-BUUr~Vpjs#|?m2cC?R6a*{K?T>j)$>ERPj@Mz5V1ZsERXKf`gpJ6ZO@BF-QkV#uA-KiQIVE3j+)pRmcwNK6w0WVJJsSUj zIa+Ucb}>hNE7^oAPSG;z(o5(S2>00<3iRy9)dF2>DhM!n9HRb$d|W^xD33L2E^nCQ z9yq;pB$)nAPX1<8$Uu}wU@{?Lv7)7Y&7uaHj)N%Fjmd}-cW-TGB@!0qawn7BP)1mo z*vQt#IRV;6che-CJ1`U5tg?D`fzat5g%GRm2nBQ`i2R*7d8csY9A{8=NCU&@C`O;< z%64$o>CUCOr;Ag~2vg}Ms?KZN*rv?|vh!@FK(g`@mR*uu?Q4LI=#|78WqJ6c#`peP zbQ1fidlPTIk<$yEG1&roCjQX@^=?j9uW*poFZ0aofVP!;kwF5!$YmBIqw1MCOfDYN zNQCYxl&SO@Lp(E(e}B4znH&mF(Y7v!=g5S*V&)yU00z9PETh3~O3X@lZ!#q2QV;w{ zec2rycd4>xyV3%NjJ`a+Xg*6Y``E8OV&98?BHcYunLA$U{F|$VFsq_}#A0^26IcJ8 zEs)9<3KP6H$s~yOEjiWODm6>=g+5#8IqncNOlt8D6=$VPdpvZfeyA zSJeS8+Vg@q(S}^lan}4>_&z*E{V`YD${B?fBg=xd84c$#&Y+h;>G4&arXL> z4)!bdt}bjv2;B|{?!9 zOnB~q{|0C(&CczovDscW7cYt6@;Un00kQ z@3i#Sidrh= z*&L6+`)X>gYywVSa^6M+VY1l)_HVB}gI+A7@BsKI==wgx#~nytFi)HDi$f^MEof!UoeP6Tq zUsz2ml>NU`rDq~^YkGU7cL@QqDxQ_o%r{MNb=bf)qGap=8f0#PZ3?>*WDy;_X3wV! zM|WU7@F9o957Pa^duQ8_zAdoW?tt}#^gbx2$#czlL@pz@cCXkbD&S|GHk@jt_!CWS zH{u00)W&fxlrG{tck-PZ#FfE`bXy=qmL@9`u)XCyFzu08^R#{_H-_(T@Xj`IluPFU z^?h$07W0R`B_*-xQFQ+@4@$I=n&XJ%X}}X?HhN-7_IO11oJMlf0n35TlXo z3!ePVP2%P=>0dqmR6n!vOpbsK^V8@y{n#|U<=QeXMq1FCav?!Nj<&t(mQk%ZFaej7 zFdqigX434^9KwyESkT6!qHCKq7Fa&YtT3)-Tq-fs!PV{&z~-hV+h>5dIhf66@;zdG zZ}0m2dhXWB&arlT^WE^c+>Ahc9|3_G-k;vC5|#CYWe$11^d#imZhH`VZSY%Fuk%ZP z;$?>~dM}Qu(W%Y+>jNm_cXDzhJ&1uPG2~|3(E1t&_sQ_ps=e?2D&~^Vj>&F$N@PTw zjI2h-7|s@azHp)T@<>Y|s?mu5Uy&D}$j>)Y z4KqY~OoOLsLE8#~pl38|@q9oC-B$B_+nGXw+?x;X|N52anAK=J{ z$6^OUI@r2rhZd9i@swqw*>YX@rQfJEHie9YP|sxsn7W*<{_V(Wtc$ zD-V`rBapcsI@NBvv#oXES*`A_@O1krRtcPeyL4k==L}GZeA>n^QaT%KKgsz=f^p%D z0CF-{V$bIOq?uHLo?lM4Gfp}Z#TK<#^5%7WGi%!reR3e(kM{JSK4=piVhps+ zXZW9vLRhk&0?Gwvqd<(OtDb77!Mq=5nzey&H#fJ*g7>AZ>OSYYt(r`FJG;^R+aFj7 z%>4ST{}FqL`5*iRF}HhKy8HK~uKfWH!V5;cg-z7yH-u%7zZ!S**#?oT;zSu1A!fTk zID)857k79Ra3W@M+Y7eu4puHsm~WFteSI5&_xR|OD_@4s#gzTLyq_e{B?Z@vs!o`S z7DstXJF7GO1q5jot5+536G7pzi~%F?m&Y2~$p>p=_d^F8+S}_Ez&2{Z@8^HbjdX6DoGY$`1IvT8W2V!EG5&{0Pmj4bP-v7S2P_A*NPM$s@F z0S_yese}6m?}lOr6^ykOCpR|7-!zMe9YpVk840(wi!f!H`(e2{kN`E3_?ftPkvI<% zJn~$ChXB0|=t`emM0L(`-l7bYat13Bh8?Go-zUD)j-nnPO;=Lw#MZoB&>AAZsVykq zSWa^G0lhqey6|J=>HN4qhpf2=$KM6sR|{zo^Nl>$OwDFHRbV>_tZ0fAFe)2<*Jd|p zjt9NFdPW|w&0vim3Jt2|{@s5G^B|y(v-4~5_dp`V(C8#UU zD1OuCc_jtOd^L&s*NDIS@J$%aS!S9TUqpJl_-ac|BdQtn$FWVTf`eE8i*egj z`NOhqf^VI6{~d9Af9x~R$u%NpnSkZQw`=vnQ%1f_P^pl&m~G?e~M z(cya3vWDO&d@3#%>4_m^h498Qeq?QAk74$uXSY_pNc8GYL2R0->b?`&mk46Mz_t_5`f7Ob*NAT>=cKLhE=&i+DKjUIjIBnUfc#rlCU15QhbWXIUeVlU^b z6Ig4_8F`;IC>Z8Z4J}FU=~$0h@KR*N=?hn3%k}as_oi9G|8n`cbNEB1-aD+mG(7%W zj#W>FB!7Z``t0ZQq!J~+fuLA!sGiC0AeLJMTeR&aa!YwZYfd>G)eZ6 z9ORPf>p3$eGmCVY19_K9AQkW2PL~~W=Ar}XZyl1f4prg{%uQ`E`ORm1d%kX#7Yi6J z^CMY$0<*;?e^o!*_9J85Hv;wuUP&D1R4HXbev3RAz}8cAra;zh_}w5sO)k8ey% z^gZNIA&zq=q*LQzevGJJu9QxEC(#82+CWhD*BaTrUx9ZKLnIM+?N?kWW1~-=3*43o zy~Cs4{p(-~>Dn0tFPrW_M+-^Ui?v?UGg_9lm6opAn-Ckq(=%Dp51Y=On-SOM zmNF0Ul{eTvIEo4RsX*6F&Cx_*r(oas>!cAI{lV6Ep@CRj<(Pyho;aM?`tQlq> zuklYQ+E=|@NOWVpM{WK&YV-83DO|xP)2qLrS~nC1J5<|v!8p%d)WIA(xH;)_+rdnb z-}FQt6Na^?$Hso6XMU-!L#_e$X0{;kwuKNwAZX2y-l*{&BfaPue zu?sm@F~8XY!mN4W{s$!T_aTiN24#r+gZOKYrIegyWR9Q44f`+>2)Dw@m<9F3Nrl1ce->N|#adizrdfj~> z@%%j&*xu4x{*&ky^3`C#B;ro&P1DM#!;U&Zo0jgUI^S4AC&RC5h932vbv=<{_o;rI ze(a4JBVUgu^C+#G8r%GZinJ_}PH*7h@q1gC)jy5udok)RByY}TrOkcL)wEf(7*ey< zAc6IwO10|l#W-qTfML5DP{M6etG0Re1E^!Q=@quTL?wN3k2N?etrQ^Gt?p#Y30r#F zE1ekicr8tq-8<2FR-cJ;3g($AVbsvjlLcR{R~b*AAZ9CKQMkUGTh{kv76qsGcjxtO zUYS$>ps(Cr|Ik;N8A(|G<-AAb{4;(gO*ng7KxUZJ=%AS*OUTwbV!e$YQ@;u!sX-eN zttPzC@%6K5Afui0);oH5>;l9GlV6ppSx?XTVd|rD0pB5p*lP`BYG}GzCrhnOe6I^^ z9|tVH#`cS3!HtBD_=okKaK{kgW%18n7ad;#J%~vclpyM-+MRESD38zPV0U5b?i(Z? zWGc`cfn1SSwba@(s)(O#^)rGaAl4X3wP8yz%JMhFQNqf>Xk8(uvLc_PVC_#^Q~EN~ z={1AIg`h))9O%^B(zf<;G)$bLd7`~*%+XNN=mnl1vm0if?T_4lo1jFzFF$g5p>H{D z?L2?q;V-%LEZ1dcKNmMkj0&aaEf==i#;E6*P$>7!$b9Sq*&8+*{0-|zTxXC6_sugZ zbb{tch(AB`T)p{*OE(XCxMgV_RRQyFdyU5y>Z%W|PeYVBx>zTnr|Gg2sxcN9@!tWK z6LpD{%tu#IB)7i&MK>~gYbdTx=b2xaGTPo%UUxeETKH9qyYL%f;=w|nlgsd^%wDO< zb^G7~>s7~K{}Q%)d0|O&R-t=!7q0j6)Dcd$_?YSDTiMIQEP&u$_*m9TKrp29|I68Q z7$zaw3?I-cZp!^RzgSy&&0R^C9Nv?o$j!sS@gKTt6HUUha&on#C%?m@riiBMJ)wyb|K zlGG<%TJ}lEKLhTrdbUxhR)XXVcBH8@hkm8Eik_jME}k!!1(DHLM_tJ(r}T3tL7@eR zTlbPM%~h`8hI|Uk30tw+#Okko07tD^#ICM?aX^N zGZ<6d<2e?X_e(>Ua<)0HLZKQ!A3*lOH~3NN=3K>zVAB~!WN*sxp6_n@cgVa_X_pl7 zHoL-a&B{0Na97RaodSQplIzhJhAFDS6-AAS`C6>X?kX6$WUXjJ z`g_l4Bkz~V1O;_ZfS%RBhxNSeb0Bfo?RKu-MaPwYr+x3HV5taGHouPs7N!`b)2lB84y$&a(19= zWP|`w+eH3%Wu`zci%7fVvT~>`?}b&Yd}L}r0+vnH?AxB74z4FE-B<7gc1?Mxt3{`J zT25bY-an=GW!sH8en#M39DU|cS^DDV!s~4}XK1l42J^b9svC!muspIVsbm&W^5IkF zU=z~~6TyP}p^Y`<%~eZNbPWhcZsRBqT9}NWg2LuFZ#)nqD~gcoQ*TC1)jWkTJRbhn zx(S7OV6^4@Ce;|2%vJ|n1=+f3x_rO8cOS+!(*M{B>AqOKidB1jq*J>?v7bEL%^i_x z{TS(+F#%b|gzfpKC1MKFzXHjJ__yq-heDFCbR?|Jt;PG8^sDFeY18e6g-j7KRSD18 z;e2U%jTzj*!+B%S#d8esYuH(`IzSTUevt3fm2Wly9xVY&z+^p-220mf?C6AH%>ucF?oHTdGAAC> z9fdOaB%V&(x_Fo%RK<}bSD#-|+rSrbh@;T+1fT$?=2E<1rl<6b_5C-mC;7rhoO{Bv zF`FRA?*MCJ&aEcY0~YV#Ng|^U495~;OK!`|4p?H5wrBBi)jf`8x%MAZY9jsQz{;2u z=gv&WmnwCNKg$4<2b%cBD9Z43u!;TyLMCna#hgMv-~Ib5`_tJ6W3rb> z(i+b%d*mg=-M+U*DLdS0&^vcO3vs?p0bwnUur_f6HBrZYJbZ(fnh90QGpNqC#m$GQ ztZACg^jOc|m7@0Rl(KR?-z*-l-*9c~-Bk>z!AM|vf^%k{#q*P!X4aY8ux zx1!i%*#{R%3#QYQ%8JU;Bx4}?)O?ea>}6HTfIDConyD8m(@+TgO)QCK;LUp4Ry*SL znZMP;=Xs0)4J3PLrSz2Y>4_Y_4-5s;7c+7q!U(Ia6(d|1q_vWa`fZxMMm7!l<5*Om zk!XJ2WPkhw!eJutNUnT~=RE~}i+~N7xd0O)Ip4;5Nq&tQtH3wjmh*9(6chP=JG7ST z(^1H3rJ!fg%L6tGEfiDi2)W`eFbt+C=w04j5uJ`ssb|@*9Q)D)>xg7HEZfHfd+&_zUT~R(GN{C?O4h6;U9=zZE zI^fBqrL}n6t)^!S0zO>-jyz@e?(#NcJX`(IeDWBx+ z{G|JfO-%lL{W$|ZimYqCcZXTe_OUNxyREn9qdsw5UYN(wwXpCqKx;__)&ZF}>%y1m zjg()os@vyfXeY5obu?q2&^QyRtVP%>vJcV+aoWpakDmhlHT$fnCa%JJQ}0 zX=H&VakAby(qqB=R2r3Zs+k^Eu++CXw?dgw9IHGU1|=vwg&2M}lp!$*WN4a#mgy8P zfipndd6CVE3R~KvDt^zYUg(*+9pk|a4nC5u(aZk$B`1Uj>0y#~`6;H-bhiuD!hqu0 zS=`kzk5kxB3L$TDsm_oE3WzE4F<4J34&JbC{m~FVe)wyoYPQ$gJfMj}rVDIYW?Uz! zZM_TM6ZgmS-~e5{e99{f8aSvRkOl?Vrx>FuhDmpa+_Y1PG^kwZu1x7bRkp2@XQ@u+ zAo2SzVPYZ}3)QDLLFrf1?|vs=i?B{48yZBjp&7YHzK3UuKRo)eJ>djbIXuU;*Qr}p0(AOj2agW-G*rN!ikl7?nAdH2`(@zBk4T8)#WZ4NE>U=R_IP+yX)9~?c6lSYD)T7{{BxW`MUq4 zapp#vUXI%TWOiG8JTzz35y(?U-IVkzBh%}G!0*|)US!-AMsK(t-dcWQNOjv%;#*I# zNQ(?g2cUlXndpg>%N}cQZDMIwssr?CCC*r}IbEAITyE7uNBGWrE-F_RqSPz*d-L^* z=J8>iSw?VEz^%aK%uzr)=pdKI)j}()+0Tfa9>P>bGar&?RAI_X_X-Td2w-!=~e62-4AR=#k?@uYJJwk!trfS-)G}rx@_}6)L>|cfStW68ttkN(62(2c-pY7 zIN;AW{S6=OwkW>|Qx&JpCY?9!5cy7_d#qE86MY6{tE!j;A8dQ0(7C*VvOq zp233de(XBRoosAu*z!pTCe{0D?t3NU8>Td3k)Q;5qY5F%fNX}c@Wc;uMKpUtk+#sNC zo}VqCT*^>E@Q-LK!?#GmAE3sZ#-)(|JKRDhYt)Re^JD`(q%Z5IKA2pPx>g>!eRd0_ zO;qDk*j#?*gd$Tk&b)kFDFq7{&s}(tE8={+x%_MwtfE44?1s9#N@BqUTjpkG?bdhU z=wICqKYuyAcw?r2J7>%5<_wQ6(JL}>x@6DFOYn<Rj9I`r7rNWRa*jV^FmgQy2x-4_Po~(OGL-;)DdCPp~Etgr=tMe|H zr1y|qN3^*H%f$~MX0 z`4RLC9l9MZb{{C;L(7to)b7gaS@yafWR(w{X}+$D+g+q?y))%?ct{XYbP#oBKxOQ` zS1zdxR&Hj>aVEYXB!`aj4-yJ6tbngqU2%5mCbudX9jr0st%HE1~{oJ{Cy9SSX+u~@F-ev?hS zu4V*&id;Ni$#`H3WqsJvlUoz+g4D99+3H%koh*OPH70J*)K;o^%aI`I=KY1e~p5)I4I>4?=#`Vo{AFVP8DNo|gr#CNIQge8EfD5Ad{iT$JYA{x7Fiexg| zgc(iDzCBsiIT>$25z|oo&#RG^@vvVXVVaW9i%^H6NUJeiKwdN-hIzJGW|lNc4fC0a z@IOAGEh}?rptD?>h0a`|`);|d1);%(%c)?H0Xk=#U#>04Dlb=1(BFxC?1=~&^>|@z zZE%yJ?0Uu*xMKYBK&e;tr9w2cIgDbpgUSvnFE*f(7U6R!WC&mel;r#< zdQdpgJ$G*N(aQqI$s3 zAd+AMUXRa80YzgmVbHUK4o0C3qcXP5{x5vE419hi};yCP?M<{3S_s!1fEp3;<1+O?P`yRET;bdv(b3vuL zI{iFLfJmr`7AJs>rAh80hhTeN5UO(r{E9aoI!Sv(Z4e zna`wwx^e1oQI88yCg0wt$60Ldltm$yc&UsND-r#`&1L2q|sMsmrfkvD3vaeBghf!R!lPT zUCi2d*`MX{>+KQg>YGX*u8>-*sr;O0@TNEcl zN$DR#1UJq*V%;Z%H*sgHsJ@88e9IS#aCk9`P?iT2G%7CE@sIU?)0LeFbFl=-@^;u{ z)u_0o3-ZiV*lofuYi+Kgs|MM_I5dVNK2x6Qz)qey0Wafv;{M@;k z`ejm*|L2Mj;?3tM#Eo~OnTo%#m(o8gz4rje?yZQ-N)ac-lG9IWmLnb2ot>j`G%YdZ zv8ia;S;LcjJ3cOVJyGN%+(NgjU93BiDr1uKfk!*jj`4n#93W+)c5sSJO$~HpbPPJC zN)+SGP)SL_m9iuCdQJ3ijWI~#YOW%|yUtWu$ETs3s}Cx_+fw(kYa%9<$7lIGd;dAB zB*t>WZa(dsVwR++kfxucgw!RC9chl5o#=?8zudia7;yUg(RmSOFtb+|4S?-+7qjd4 z(OLXnyCE2~h_pCm+*?`*8D+>u4(t`I$b2r((ItE5?Ep;F>P;|uz>QQ}lk88qr;)nT z{v$O6D`>xfoNwaRUeDHPn8BMEX`ATkYGh4HV4gxK1w4JruU_Qm8xh|!Vte&beMRT$ zQD)mJUBNf->MP6U=S1oFKDxQ@lhRX(YVOQc4P2jqU#%(B-B1L0N2}{nB!=I(_F|pEl-Sf6e;=MUdi#HR*iftwi58= zN*i_DJdEHo=Nri=iOP!+&wb=k&c3ZKlrU&VY%5y}#p;!{pRtklyUd|EG){z5l_qJd z!-rE6g7rI3gY0#4m%g@v;%P{MLh$hC5VkKBlp>jPzkg&AVI8vwn99V+t-9DTl(_)U zBCu1cT7Pw3Q(TMmV*7O+Q!T?sY)xeoVKTEE0}fqE@|jj%~5Xpl_q>V%f^vI}!XLn?+yHE##yJl+g5s z;x>z3*54Ad7t`A_7Q?hv7uXCXk7&1vjEur{Z@740u$~QFj;+7`0OKsP9D&Z+jq;p~aNbhkmz>YN(oNP7?U8eNSq?Z3Mq29G%Fm zI+v}@-Cr?C&3|^t7zqJlagS)vQT3lZrk{01Kx_03M{aG6he*U^P)2n;Eu$Xh;jw=e zFtZg!p$m{9w58K5I2Et(-_N6u(cR&^?B*8V0HFDCw=&5mxjz>)SJ&hiO>!D;d2Dfd zC-INHJK5V{r{SZVk=j-Df+6yQNN7G}-AG19T&tLpn|$*5DGhuhUjM}~PB2Xle`KH= z18r4QB?7ZWn>zksCnPfj-oC9fYX~_|{)ap#r#;UTx=HTvv*gso8wrSd=&pvLY`qZjuPCngULQ=pvJYvYnW3^u(Vj)r@KrQ4D z(QAgb^bJ>d<&Ie4!2gxb_Ww%f^q=p_{+rIMu-5A1J|lZDqSR!I@Rr0v62maaMG~hD zZ?g=Xn^`PVFy-jKN7p{jI*yrgHNCS`kWgEj%l?@6SiDnHf*prCpY!Pe&c_Zt3;w?E z`^~ePZJpa{<1&eSb`Mq-^#7si9mDHhpYP#VjcwbuZ8x^nIB9I#w$r4s)7WNX+cuxw z?{iMi?|)tU)#v4&YwlUI)~uP0jlw{bbAwAD01*-ZSSTYVYhx8Xtrg3DZx1__<|SIDC= zWJ2gjf6+^gr~fEn>u=ZBL6P_Q?q@y7YJ9-9j41!<2%oWQh98=HyJBS-#mzOFa7($| zf^e*i(b#f6l;LxF9}wv-=L36kcg1`03B_Ys_ZzM>HT-eoI&}RlEsW8z+Xs;t`&XaG z9m4%U;aAMcLj_;OVeE1b3*Abh8DqKZw7IVQd}|P+O6Yi6 z$%30+G#ehBD(_E~@*4t(AR-g|n`DcF(dUtLquUj6x=eTt3cbtgkfD8+)YWo8=bN?u zwKBJ_y3ON!LZR8Xy}k3i@=Mj5I#XT0&V#1uGq)(ab!4$+hJcG0ml3bEO6uP-`-kTs zU1Np4gU`NVsU1w*@i7@`pS-bXzwV}W)V zQ}*YNShEq4_VIPjV$`oMZE<^|)xtN8^w;+=q15tw!{b;h~IZ!$Ay@)7N zD0D5=7!rip=Y)pdNGZBzBM3C-2WS2C@_v!ew%}d_t5pvz`=$1lP#*s?_Q4#3t<$$u zV7=+RB#Zgn!dD65L23Um{f`pwXA!Peax^@KY&G7uLIfca@@vtR4nvjaMClm_o)buq zo5ls~WTHcr&R(mfE#kFH)fZ*afv0x6F#zU!MvDhp|jLI1Wa-|WqN6c9v( z0e@iNFbPtR0{3+@nY z!K^`{X;(!@)O~60hm1JlL@4I+x1j!kO;KMfvjA4qT_ zi&|^*fZ{Z5(6Bu~^(_U)^{<`1!EKAJ4WB=fC?zI{ZNo@Ld2FZzoKq&0ECuYR^l} zi`$9Tn-N22h_rAl^o!iuXj;|@ZgGAo%pV+;_FBjVi;lo{c|Tr3kYug0OpI{yyHt=Z z?qFOSKrV#}a(vSvr@J$}X-(8vlENC-5iWTpz<#kC$hcPSXEE2!`Dx$}Y5Ar__F^a~ z>B>7271TN9HggR0k&t7arH0|?+Nb_3^(C|K!F~VeDJ+;BwX0>hhZnouIBAM@{5ZbAV5gIwJvq5Gu6#Pol%SLm2wiWr z52K}<7DF-TcilIKUyu}ms`gFlM|A{z@QCne(3D1>qup-=`{ysw7rEHx;dIopR@cii&erMYou0eI6fSa;#OW zjH^YO^;A^6##n9COxqD(l@)%oycHn=_pF%Gh84(}$8as4289(a70AzrW<{7}E-mvT zfwpwq6t{*--jT0PlS?@+gT;5bE%u%ELb~2E!Z z$wQgcq-DPU6n+FXD#(?$+%i&LIw*+LL;k*ZsH4Uht1GXKQvwCwU`QcDVx_b*3HEj= zu(!)HseZ5q&5)7+)s>zIOzC7YzKz2h&rMo5g1s&MDxBYshWV*}L(?~w3>B8EfT_p> zg@B#w+b+?e1jg!fVf|7OO31?f$Yl3SxypH>z&$yC>#-*eTE4W>dJCtjwq{=;80F6$ zLnY$@Y)5|D-8SDk7S)ZvQ3IqSpdAIEABt`IB!s^l)DsZaa0n2Nq)vO!en^jnWO?@1 zAhz?54njk0!r^*sxVciPpk`ngMPv+|?Ufn}`7}$cQN!_Q_|My_?qi(y{-yH;5kZ?IUMSseylL_SJGeU^-R|{EGeC4aKRCY zdQ-wc@oED6kW`LiPC!zK{E&j}R-+d7DHBXWtGSo|rF-UcExo<(f$yl}=c08dKvSQQWl@`nzGF7$< z+BtXy{fu%h((WL`75^^>@%q1Hec!L1{x81qCV~^?XTm)NFQ6HPziWDSQ*b%(XbUGn zU!hNE(o#MHSK;VFjdU>mYrf@c_OR6~|H^Z&G98M5mL(ZfL@az{Dw=zUZgxAto;92+ zI6u16^vZr%`FX_Figu!k35Xn+YWl zJ0< z6J{oajVA}*fHW}f*kJRJib$Cqtk6(H1h@O=E1S{J9w zS%Sq~=W^Zr&cPHHjMnqlBO(NQdJ}%BfCi~ zGRR=F#GYAnfnvyFUwHS+7$Jj8tuC8@CRxalMkIOm_+Dud1qP!CT#3megwm%79r8|N zQ}#SWf!1XPaLg0k7==aag{bhFC{an}M^VtZD}*p?kA3zQ`jI{nZ}#GLn*ZGepotJ! zkDr+0_Toph+GCE5BK|JI0^Z%TdDkej<05k{jZr2IG=O(n0>6XigN+=+I*OwJyZmLd z<`8jX%%@S|*p6~RRIU%SRh(q{;w6v&2h#+OW{K!@bSk&bYzkk}k1HwJQy0RN;um)? z1u4XJcj-;mz^XSDwS)7CWfXJ3L+sX5Rht28b7|9@dL15%aXo^tNOn5c%umfS3gnzx zII55fW1Rh?M46d75r)xOuVzwV!*sox+#OBw|3q0}0d^jTP+;LM_4+UD^_qrlk&2t3 z<=9@D#?ggfBd&1~Aj*UdWKjAcg>2SUZMbYQl7Nk-A%%`XnVe*HQE2ENEQ&R_2ZWPl z6AX<{WENQXN*lZ#8+Bu3#6bYVTw)Ue@H1KycJ>Hpx!-x+bF18GFLoFC>uBA~>y{p=+Ao5f~;oTt#JP{fF^v}nYAQe1} z^_(W7=*Z_si;ERn=eKS$a%Zf8YFJNj9^M@g#cTszPa@I6KGKgWa%%UIW9;nWrkFO(`nB)?@#4OPRqPer8fWt#;p(p+(TtqW?D;*V* z)FXZn^ce0#7E^Bua2m;zc{KI)SlcurXXc3;ite-Zpn zrL>{kSvOfMNHx3sHF_drA)zCp@E-~GPx=yk|I>;RJmOKl{`Ue?4Etp&*`V4)$!BCh zX^?C3ePJb<_pn#*m4kMrXCzH^{t_tugRRBXztID0u5uw%^+-4h+hm&T*Y=EPq@3(B zD%O!b)hn4{<{OtSzvOFgedzgK`uoFAftH1fwI2$B<6K?|i>puXH|7Wm&Dx%jfOP)t z3RvA|(e?uhHN$G0j@5f*_?!cs8OGX&g_MxiI>njYwq1CE(y-DHMmCTv<7QbW6@I#v zU`ojzCF8Xr(e`TGO)@iOUWm(QJ7U?5$zGpwhdfmE%(-CmrqNGKC#MH@V?g8rMkS_ zp$hidsi`0frf684P0g!%&+~voWU2fIo@30a*;X?Z_F$21s^zU_%A;Ot8aX^L4m8`q zi_{i-zyA+o1VBxo!+#JksH9Q(-|yYA%%IDxXVJ8*&>kX6bP+bDVz)r68 zna(pe$}9n@eg)5Y_}~vY`GlUx^D?~ETB3>L798UZ5PaDA$2`OM{$oFJ@)aT5#$_7s zl?R_jfTtf~FY~yZessM4Ts`mjZVQw7V&zlE(yb71mb+rDZl`O_{CIy@Ej%xq}F1!=|a2O?nGFI}b@gY5$Un=@Cs*ofqsVozU&z&&>PM zmLTZjF9TPENx|jA0p};u{7gH7oz=S^kpgc#wL_s<0&@>B=W^0kts$^FUKfs@@3*ZWEIi(CRPg#Cm5uY&uxU^s10tqH2+F6f2Jk8^#4fg zoz-_}Eq_y2pbfT$pu0qf9pcce=a*~ZI3H~zo?8!w=@PC=Ann5qzVkh45iY9j^j;)? z@HZn7>BUgA`|?x?DZ@OjR8`!!1}cJL!HbsV_z9DYz0|iG+TwDIC?sRbc%^it%e7)q zUL2F=j`w?<^Mwh|ySzad=I%Bg7yEhm?+7b@=A=4a-6Y$746yxRJ0-QGmrl{oLSuSu zg$`jc&MzZX%Yv~rfpZx$U$&^>o|0;j#yvWb zWB%FA?!=Av9X>zd7iSyKQr$rug3{Psp(Qr8WdDx$_lN5#?;m`xJE1zhl|sM4PnE#K z=}zNJ)YFcL{Yp5{NXUdhzXoAlViTA%tAf{*{4Jh;I3t0U{}t61os|E+zbUeGcLw4F zWvvGl2>s-$=;^ivg~ZX$h;k?;GLbD!5@%&?BgS!b0tH##%B#diot1$MdLUz53({nh zUb;c#H(dvfFD>t;_;>3_`bJ^w8?tQ4uaYgt| zX8wL;3Wy-V2kDO?_)xsv<5tVlFSFvI3TD!UDZ^S*g1)7a>{>-{Amume6Qxyt_oBP; ziK86s&w`~&mMfq%viSoveFsJfHKeoHpUE`4t4?N)=bp5W%PT=QtVUE7K<`CCsa=n@p$BS;Ei>&vd2{ z?IDIPA{stL`cF^_m44&#kJH7-;Hu{da&C?tf;72bbtrDv_W9n}Qm^cpKAP0Vzj?H< zA`RQT;kg`tTsg#Vkmbai>$M(iqRPAyE5^XW&d%{u0hY|E8h9gvp|H@0Z__VkQF%Y~ zm%AR%4>SdG2w7FqfTr@ld3nB1Of{@`yqD3TgPjI_^>4G60uQEL2(p&8{%s5ezK)!f z&)HxBk?7@R>K(55{}O=$LH`SCP*KY0-(bJhFvmp)WEFbnkq6kAQON3oD^5o#-U`7% zx{$Bg14R-?%8T0e9NW9F*9nDi@$d9>V#(bPVsZ5EMj|pl3*>{+4_>8%;5w0jNgm6> zjRa0if0M;50S)I6QGXG+uE)5xj8kdWoBoAXRi+YmO>3>R1 z79;aGq4+A!&892>PFrM6y_IDxDT!B1lmvHaQrd-h%I)o{+=Vub9z9G)-K!-og);MW z1*fXDSHx5;Mo2opMDZg$OOX)wtRY|8RpQN=%u9~fJM(Qfq3_y>$%g9#b#nOte1{D6 z?uCfTX5{A`n)3*lNsH_!r(3j(f#hz&qziI!jg;^GK@=(`!*W#m(|lC$4w29(;~`Me zqo2pO$QP+3BYVyx9QC+-9pzS1NZRM%`;QGh&xgBx*8;#=)xAn9TwH+-z0V!<)nLFb zOc+|wufZ@t`9=q&+jYXK_)6-0NIjRHC({%^qB1t$6w9SDPb-YA{@?yI^nV0IXxzNA z=3n`RKp3JkhJ5~um7dVEMUv^M^f?q8)mldlq?MPURJn~&Jc9>o4{5o0$bL5~=AwVD z4Y@8Hk`1Fa$2C)(dqP`Hvs}P4M~3aoWsyGxr&j_`KF8Nli0AyVR=>LW=-?exgNpMD zyWKg$(v@VpO{>k1g9!jr2sf`G0^xc!z3&uizVdTj+k<3}AHWv&+zhWM<%eU-=|h+4 zXar#XqPGs_i&tqk%hcuSp;m({D;r6NpWhZGcm6UuoDaoyq*bF};NOOJ@ zkB)XPdbo{tdHK?^)~IK7>$8>EjkR{gLyr7204(P1@^oW>&CO(2hMX)Gjl-Vz9V-EN zJq_J$t0;1DglHrVn0q&3v!yuB#(aq--bakj;9xUH#$44>Oog84!kJav`Xs#MU3wOpyBm z&jwiS=CNFg$i=Y~Xd!iiz>fa@=$9x3AwiiZkL*H*|D`qr;tYkUMdAj#^ccf9=51|5IR@E;hXqTZ(OWfwsuzbbNJbOJlx{9v(7Uy0m|P&{uxJr1uvy^J~- zhW-m~l1bhMkh`?4bMU|Etl$bUZT=J*)!hNYUcZz#OdiZ>T+tb{s@;JU5&{a2+|z2; zB9Gs{MzY(>>_uYC%1cVCcLEc^TC*=iqnk61nxyn9R&ef@Th#9#50?zwgm|+>r0YMh z;+_sG70140<-X+V+Pqp%z-0wspXUCj;(WY&a7voogy%Ln#3~Tv*o3}9p7Q}H~aPjP1*TX zmw>)|8--rd;Lo)=9S`!%yI9pXG2-QWr0K&{U|&Nmo38xnX3$a+`x1e8-Ek%EQsy+noxA=G2WR(beT;A*tFj4WK7w z-RDLLHfrwYUD`Mku0H2U$;_+0dim#Ew7N4lFjm#>TA!QJ&sT$1svJUPNA+2v0+v)IpL1qc;xQEgr~+`cBd>PXSC4j& zSFP%Bo0AxB<8Dgiw+WB&blhCvDqd9)t-1hJogcc?N5wR9;dxECRdV%0vG9b}`Xq2e ztweNFiZEqdQrw-$;yDZ3evG6>Zr`K^kOxDmQxa_~&N17<1ioZivf?7<9@2g6S&w(a z@_yUHO5)>2YFIn{81Hf6L598{h0o|||hw&{L=efR*D<9V5_A||~d;KF#BbSFfM zL4kPBT+Y4ibJ7e_4aljGcw%$F-p2-vQ5oXj8Ks(+KNzZ_YXHsQ-^dbyuJW8e;%|Lo zwpk9SVSd!)cTWa*?)uzEu`2Zo zs}~@Wx9=WG_oO1z@pn zFs5k|!Me80N$K@3N>}*29p{cM*LE@@=RNL_f-%J-@CfnU?Zkv%4&yz%;K()_cZ{+2 zjNijzh@UpmMlC7i6aCp3TJv@*&K?y0HmVmZ(CFOqPUPDwBmE(^flP3*+BGj!wErui zAP4+KSUv3eEDE;ay;N`~7}{UwF|8;}mJ13K-?6iOGl%CLmS4^#&B|I&3Zm&+q+f#n z+Uj-bw7TINuSj^aE?a!H5G^Qr%%G};RBz=<&$v^;k8q=LmJFCm>I!>GjV;Z78ca6@ zmE1{PAxbpizeQFp+yDHlgnG|kVcdWW>*?{M-glp_0dK=_tos`%E5^Kj7c3Jt2^$qD6n_pHH7vhyStVX6|20wToqF(oF3LXI7S zu2=2Go1)`_3zzq{&TG2BJ;ka_?i=UE+mblnR>-cMPxbH09Zc2~2%4gxxD1%{3J1rDJAiS}F(=55~rxshRe;BJD2`b0uX}Veg(fiPJ-DkMK(BXgh78eG$U2fcLTo3_A^hrEy1Y{geiW;e_XuxH=Vn!fX+T7~rwjryARXxS=yP*@-*|oNqr+Kd#VdhlExC zoP>^zd6tOEGSzuZIE*noD9b$+pYsT;C19*pdfJV{u|vT#$&V^+x@VG40pDsPWR+8U zZH<7j2cF~6_g-8berPS2stY0Jm^N?2aD0*=^vi}+hqx$g<#2MNTSb3|s!s^%nSU`B zHOj3e!--noABJh$bGnE>Kw#>IK`-5@?0QRt0w_V`!Ea(k7@#}f* z8!O3;IVDeB8WxvrxanPm`fB244XfZ47@%){8s{Q&oA*PJf_DrS`GPY1R`}Ql9{haR z3spk;Yrrvh|3e=w05r0{&NK0vb#z6l-zpH&qB>Bwp!+CR6^W#P*m$^t;8*eMt zQtzi5zo%PU_7acH<%V0=dWY{~BT{4Ui@~!As2x^0OhsbDX%S@(EwLq*%lV6$Zo6$U zm`gbfX;P@FFI6`mgOMyt3a*MS&K@_049N6YMk#gKh2n_4Jqs&5Z9@?(22q6z)HiXne8oKI)cy%-$rL>uqbBKZgz0^4 zq+gULlfHgP_N5j_ZRgBK&Ai>Qo=||+)g;HUQ$->Mq6S#1%9^L-&2#sV_~t=jyV>FeSK~hB7Dc3He5U1+&9>)t~c4&{>Gv#=tLt4uEUNQj zYJSwQUJ2L90srOANAqVit|2`gOBdmK6Q|jN1LAmo1D)NiFjh} z07CGep@&kEKd5KUA(!S~#z8{}qUi$v)eaxuGcPB|!_;PIp9jy1zh!1iylmBc`PWf& z)NtUng(_yiU@&Ugu24=!00gkVn11YFm}+oA424piaXerY>GVLBXvGjV>lms_5&_(R zG=z1`4~~mXry&BUCFNtQUyD_kagW4hPHia{+0Q)Crt!-ZUSlDP=ehP1>+reuy(OZ# zE#6{>ar-$It5@}U+d|dODN#(qiGVfHsj%r0_pwU^YMDIO?pT3RX#t}|)#;uoUqat( zN_vA3h{FdCah0{xT3iu0&K;}O_beiRhxGFayAWsar2N>YM4}TCI%Z*B(pLCI$0o0S z^r!UH2d>9O{G$=xu-IrvEb&={0d}gRroBS%WLWQAV!-c0yG3C6i~gM1qMejpv6(T` zo9;`7QN!Xy=wyC;&=pm(L}hqsyO0()qC?!$C7fC$u2Q3HP;>*h)=8=3elF`vMnS*f z_|sfy=}Pe&#%k^POKDzxea>lZ$NIyG`G&=m?_OUS@IsOu|00(&dhKy85b)Uj!HN=H zd~7xS7q3OaVr9QCkZuM)l6uA(Z2}~(mpch7T5R5behpF*`kSg-RKtRwTnAKPjl%yv zx1-%Cx&GB}tz9o&BwO$b zd_TydX$2u)OpYT}1Qa<}gNUzPM?i5h$nJOJMCqo}=UE<&4ZZt(y*%DFwG7gtOc!F( z8vY)(`PRR0gILAlvzw)2PLOnZoypx5B8C1m!keviK$jf6@=HK1yD20jr>TD+D}kgM zO8|@+!jG!?*!7~A`aLko2@k@^@$FavvA8<}uj@Fob99K5etvVZ+vk%|b+8iT?%HG7*9gs6P1P~%(n?ORb;0*zQS$zF zv7f~@dA;+~>))!4uCJmQ-d{#GwZ$mWME?Ub0JDpo08Lj9n%=+Aln(TbAQVAhDhJoo z@J+c8*prQTId3>b7lsNP%z#L1IAAL!2W$;9ILZS@m3OxmeQlv%g#}EM<9ttW36s?* z!6MnVAdLH!noFw*jRS#-CPas*n!`>-HA0!(+3p3#b+Bknl8TbOxC9=&F8qGIZ$7l=o%ZYY%y-)jJQ)QT#iU?A# zxEy9Bc>im_mAWT;R53TIt~le#vc)$I+9qJBY|7>J(2IVzBtB2+aEkM3 z*YRB2nW=^J4-)P6U{MqRu72E5GxVwJoWg$%6pLQYp;m=p8oy zB=SU0TTWq&;H?Im`T{%y%j64;p#TRTwl7;|(@(5T(i@6k3p*R%ZFzqbj5($(KP&3o z_1mR3!?ugVh!pF>nvUWprBT7)-Peyp@hDX9r9W(Zs2=|!{f^M_s+)mFw2SGM{b!30 z+H`o}8{e}H#DRB=Q()Y0#HeZSDl-@&TW)$X6*QBt-*x@1aCFr1YHA~1nshvfY!>Lu zRyKJhj+qBMs6s(U|WsNixB7x#1 zCNWZFJXW(1?L0wlv_u72nya zR@Z$WpL)0PJP1DYF!=ST$@~L(0qSG#R4}RBYP3-VKV+|9K2MO6+L-P-QaI}s1bHu0 zG9;zw9vf}5l1(=r=AE{wB#k=dFPUBma6KTIO#rLe{FSRUv>|*>Q#)TCr-z>`*)S1x z*l_?fUA=!cLQE$_^yYP;drt`jB)}CMIT)6KmM62|h#V0~xjY@0hLdU4{-vEpMNQM4#y>+wm zxv}DW@HbC+!vUJ<)`aZ^9H`m@2&iOx!glA>z=V)*3vqzM== zkO2yEO{K9VexH8B(?bH~J_=!Fp-CCGh81sO8n_{w&Z$uOFGmf@6hnG;M?vNIEceE9 zIC+S2`V{%W0m~)psYvgJg+fCJMm3tBAa-^@f2!fu%>pt4Bp=_!qk4s@cvf zod|~^t9_5hNy{BGVA*i7IB?LV zcJ-_Qs9)yOkR;Iej)M_d7JGXhiR9aKQ)Z^BLb!#OLGfVdo=SC(Yh+y#)Gy5iqz8(} zp5*Td1w-pN6-U})LcGT!FkY`_%vD4pIHQ}y@}owIn2xny@Ja|)S1kda(h}X5X(~R( z>>aj+ME^eqC1&iw(%4*QIbzmqR1C#4W<4|*_DWRtH@QXkqX7|g>vdi_qg@X(cT*N7 z>DU6Cr%LN=uAT56*;*`yGQbIE#|2q+R5<&h)tD)UcqX8)_d{n-cz!cTva)#S~3&;ubb(Rb+4th%$iZY6FsrwKbBNRwC%A6A>!R`jn z5;cUgQ}zict@dI3`*9OhxvfXIw3HTJ!bNsACZ)#8SWoG56K-=4RP$FdQ(j9)&c6QYk*t+9FQ8lj8SO$a)VtyGp=Wo#0AhRNFRIXhH-1X1XIQbBy5N zE`g6xP6MiOvTjv6MbJ<<_j>-bTGtYQMY5@_^u!>Vurr5-9%GsxtGYIAH;3L$xRkR!2?nALg&DC_-7QoO*xlo-az{{i#aA2{mIlidx(z%w}`3Se<6p@sT}V-m+;5n zD6_ruiHYa?m)yR`y!x?WMFLHl4pl{kO3g*HuzCa5I!BFQa#!h-2+gM;Q$wQ|X|y5s zTd&nrc+G92SHstAw2-ev|4}Z#v5o{FesYh(RQ;VFpc(5{|5($1|6(EgRxHu0Oaedu z2A{i*2vcVa?7@D+S;(_fg8i(4f^HNEF_ed543)p)EXA%35nJL^#)SfxT;w3%cBkP| zQ;rKKb)>NZoi9ckg2?m+{fjcT2QcyyQl*G7_+kr2vff!VHIBXsw2edbc)^!OYSo$o ztJCFO*zx`L{b38(npmPr*SIK#8_#-{w`RJh8$RxX9H+ zo3@M>2QN=v<2xF>u$Q)9<3%$hzMbiky_dUq+nr4z$`J9UN6k`5hpcj#xt@xtQI-@8 znIFr$!%O4LhVy2kfot(}ieH}6i<0&{ds$3wgTz+Rl0Rcb2Pujj%y-;+J`|8@xTkIP z0=7c_$z0C494_w7rlwQSkN6+IWq*}2_`DTA%$`1?i;_R%K-C6_(iz>^^qhol4kMa(2S}{QKWmj0=8%HI8mk zm;G1Q*gzi%&OS>mY<0}NZ1`JHdf>hnSQwGa{zQz}8?}}Z(`MnuTGlC)hTnbf;`==h zyG~?FG#Z>dv?Jm+=L0zgPj4S~A>pf#5(VAG@ixT>od>oXZczi62}sjY5ztsTjebl? z{Uo)Yj+e_Uz)`3zWO+R&$!(dI&*hVsk4`q->i;kVNT2EU*Mj83l{@ zqG2g-WU;R;^gcz#&4LlWZ2_=1;8MmdXp1X{YSAux*&9tYu_?GPPe z@UPKlw`thuG0omg>;G46xjbL*i> z@VIv07JFZac_PP)j%kb#so8Dz^CqJ5W2geQGT_I*PJ-@HmN)^1pS$NLa3KlQA)1uOv3Iduc1)wiT-c|d1np?B6A(#hHtbnye!EMUD{S1m?|?US{@2^ZDC`eK}6M?yk{ zV2s**?rmQW7B}r4Z8w{3bk&pnSHIgeU#@k(4~Wcasw!=06sk3ZpN#Y>Q5nuzql3)^ zsoB;AMNO?s0_Lr!inM_z_G>&AO=ca{P?A2x*xIXzGM^Z!-shvcyy3_)pXSH7yvNvj z`Y;q(Y};jPo%P4&C*WL`->%q#AjrKMe^s^EEEOf-VBAX^*m0jZbayMVZLajDbA$|!C?Ju!hn!V;N4~FeSpa8EV>N?`N6C0i-=OOtTCos zJC*%a?7cMh%i0P%!e?$Dq(n8~O5)OwP4CtwZSCuSdgksE7R6j3&3C#gpnr5egP&NO zEl#h^)1gm+__=K;XF;-ZoQ)i7j80?Gv&&cxDk5&QPD5N|ONiS9Y&QW*?jQ$bIPue< z;0XvR8)a!35qLy_eKfPbFJ(OMB$-t)%jR#F%px-dz>434DD)QcXpWULJ(Y`n2W61$ zKc)EA--@>S%R3%s7U>&UFyQ+H#kFp+nQOY*H|YV|NH#a8Fz0HS(*iWfoEXsq-x#@7 zxQ$F+h~O?kol6z>iVJyEvSiaDR-+2Sb()ldUYLq-Tm6F*yQ0l@IR!4FjA#AClndk0 zrBT1@t1?&u+GOi|cx^*se>AoGMolQXF)T%|CR!>Oo? z-6BD+wg4n6quuQHtrd>$={VIlbb?mG_=dP18wE_ho#dA4IA_}9STki6@VLC|sgYfY z^I{nS%fpiignjdGsr49B%>vh@A11HEL;5qB1e$#Gh@z1oDyDu!Iqa1bInkUFvM^ub zd13C`h$tn(7GdLS0+LaWq>IL9;5k}m$LAQYns&Rs+WGLpeQz`Rm(yS~+oF1Q zFpX}mGWwfxg4SKnV_mNdg?QKcZLR*U;F%clm_CVz9;{3aOwC`?PX{F`RcNt^ZBbo` z(V1tZK$5%A$bZ)MPKB(NaDlx!eQw_29OiSA%#x^VdX{>3>W(taTakrOW`7g zfxzx6=)-1>|CrewOz?sRe#PY`0ZI>@$XvW=XzuhWUIz@IeVGR|6Bj!wgqM20)$5(# z+ZU^>9g_^0RkdXW(IHb3$Sk#tTXB_CI4l#;^($mNXZ{Ov{4uI4hl z*bmx#`;D@)hhDJwhp3JfU*oGej#oy3J=;?8gLTz-y|JRzwGf^3HO z^DX?+!zs(zDB0|67WK=2HL0Nm4_`@gT1HqN_I(kzs@g}Qca(y)J9t@MU$IP85SWX( zf{={9H{DvgsC~F8<(~npTp04etHIYH)sZE!3T7*FqFErV@2+k0+Mpc73oSD2W(!#d zYYtLc5O~s@edbefHp#jWYP& z`>uIBUFBZjq4cN7u>uZILyX*gBLG<|Z!H@P#(C>t0$Eu@Rf@F>sGtkzxSC;$pHPg8 z?y`xqDd9OTU#x#GI%iE(_5dqO2Pkm z+~jMIxLG02#-;T&Jmur#xISb4`79!rtUqHM6v>jLq^rcQda+2)b1yir#E_`G=`y2{ z4wJ;EW7pR6X=_gZ<)+-XVFQt-?mxi513I*TrziHW)}8EsZ@#r12&uoZvhg8+cnpt& zVH4EiKe$vcMLamKE;1Gf7ipnIoB5ho@7~)(mO-&>pN{GWk9yV7jGSf@vu7j5DyI3} z)F{DSX%7;orh)4W0ah0npLSFu(sFGi%*0&cZOsv0Hsdtgag(P+oY0&k z73T*W@?$39l9Bjq{_xY)E@ZOQDRYRvW$cgJSbE92qHTTn+GnY5MJw6q1vGIuI~pYO z%-WsKI6QfueHJt2loT_`*;CxjI2?A=NxU^*$G^6K@Thaio0=M0xpZ~1^U{l!>CUtq5%V|ah;=O0Ki26iSTC2?BS znTdd-vVB9BL()#$KY|DyD43aJ65+^JAtApjy^s=?PN*V}MwQ{C6ZNvaqwP(__3o1l z`R>4$0yCcTj*CzE6-lADUTK_96OdF|o`(q4R2)<)w;s&)k$_py58K`9q0vFZ$*5Th zgYk|H_7nP3x18Wu?C~hmT^94XT9H~)z608gJs=k+SY)-?E~Wkik2_up{-ul?o2dpJ z2Jbz0KfDZV_`8YS_bD?w;gDRaO)dkj3*Jj28l#MO$k?>+S|P^oAK|Q7-d=CxC?xn# z#R}og{fL3QUML*bcWC;lF_XJo1m?JiUl%pLLeP63JwL2u+BNX~3ePyq1~vod(pUfq z*PNnnpJ#F~ zX2_sO_-VJ$HDJkvM2J zhdXu)_??9EkcQ zY0)2A3E1{2Ia7V*xAwDmDoy`BZ$?Zk99JZn+2XWU)8LE4lf%L7L;$UZXFN@hTZw&Z~~Bbzp3>9UzBm2~q(u%3gJcFYev7f#a$7ckfU|u}92LGIyGrqOa+v zV-u#lYNO~c0y2-1n2!(uxu$-Dv;(c0mUu&0o#~0sxvyXot_vvFRko-4Haubyn*Y6A{b87_Aox$cXpoiOpv<9ncYYf8hkq^gZ^Z^ zXvYr=l=y?*Cg|EZ7A}2$zlC;-*B);|>m=0xbCm619IM!gE|Xor@j9$fbg9c`deqK2 zYSug*4L+y)_;IsyW8))`2Cz@^s*n1lEdlmQg>bX;p$c$TM^dt7pT51b1}bdXK)s{? z1IdfQ9&kcJsou&9gy{Dz4n#h9W9lJ`HQT-U#3BD-(&n1o4#pvM(45F=Ni5ET7?j~N zIy2!tZg_S;Cd<8&+mXD$4Qz<3f*SRH#FzPafhrNKgPd5>VB%s|@+`Tj7m>07Pq`RVGWIk&=W z50?w(ehDyL`@@X0As62+DgI9Su9QEolkBec>njmIgmoKZcLgy43HAGda44*$w06Bw zvPT%Ht{dlF3zwRKXc#o-_Rcr#h1y|2AnT0?9{1Tz$cBvj_JjX)b*I&Jr6~ z#94ap3-|P7=mc}#y*Zn$pDtT?0_B!7Piyk_OPf~a3RzYd3c40NfDHttj;4!!g(&AJ z`cJYvp4$OdE6E9swMev)K2-ux6yf)~m)-tSXv)JAciv9QryMMlqPo!kA5~u&7FX7E zi@ODayL)hV2=0O4?(XhRaCZ$5+}$C#ySuwP-NkYiY+o~?$9_<~>VZWe)cjG^asO4n$#0q%%(;p7IVm1EQr3tP3 z+L7aZi^;I7d#0-pL;8N4{TglNMTbKbmunSU%q6^*Cusl~wrZ8DmWUV+S~oW1uS~7U zI&F)jvR2SMCPD~1GklMN-AaiVhK%Yh>r6fWT1Z+~H)HKN5JiEaMvDGP@W8(vFC3Pe zFsee@NmRM6qhnnzOTelP$a8+s(02Z_ZI4>(7LK{v)v7A1J8y5}ve?UqsNjBSS-?Gi5~!zA z8B>;cCetV7DWGII?1KTD3W2zf9bssDs6O9)MkeI;#J2UzG+*sO`)){&y`}Dcos_at z7x!*+JmkOlFR%;hD z^L&E2#5MSK(Y2A_W$jeJ+s-h!=DWn7ri2>}i$a&$LrMENy3;?cLN0LEOKl*BYYe_O zC?b0oY#w{qD#mg@t~HX8a8$yW#APgBaccAB(4S;+$I8#Aw8E){CD|XjTR11*T9l z?b>5%p^0AUS92mV6h!s~*<8MP_*wiL8$BOWitV0`R3-B?%-y<{PS<6MPP9*zl7 zOMg=%)BY;$2}?03#y1NVbp>x25Mk1_RNkL6N4zOaU>Q$}XC=6`sbJX;n~QWcL)?;#B?l*UT1dVI{=EFU~Pn;CDZSN$Sr@a&4P(a^1P z5OS_Rt#?*fp>?43qd*E!_I!=Vu`HU*R?$;$Du-E^JYa-W{UW?{IE%NftW-`prJRyk zw^2O(qnLY9Wy#>&wN2%?M>!bDwm_q`f`JR(3w4oW)2I13F$W0e!_x_vSaeZ+j3wX{{64w-s=x+)xIdE!_`D zFy~zdWZsLBw36pD3AdOHd<_ga_VyAX&tR8czmXot1RTX_kV_il#pu`G8#3em7O6@$ zB2$4Q=rB?`R-E1zDjmw6{b61E_~T?tU#bhkUd-_11lV+ES@U#SV^PlXzw~FbdFEo9 zi@37R-seV!o@8=H6Gi>4(y69qj5~2Da#`)PJP!`7>nA&~l3%yapn5@keYKJ+MyF)) z&@NMG)nVVYtptkwTi4`V_i6nP`E5Ijox=TsgH!p*&CJNl+Uzm$FU5q))Urip#yYF2 z-}qXgmvFiyiPyPcVP3fY+CF3Fgpu>Kgk&IVIRYZE{usBYV@>FNz8?~5W@>ImQ1u?k zX}L}kA(9D=^i44>eNYJR*Gc-XwHqLzWt^csK?$8WM%hDb__srqgSLQR=rEmKFW)lj z_nygj!1kt^p&h!?zai)VVN3vwZ`{3j>CZ5Cbt}S4XxGg=@}_U|YgcaD6BrL=KG%*y z%i>TDlm|;t&>$;=kV_!5o>JgIqR?ar8Fkq8JMa0q{4;4^$m^XWh0=troRPR#ke{Z* zvJs+tBLQe!-Z{SbChnx8Eycfa-RQMnGym5uTDVUPr;< z|8qpklgVx!$~b`Tnb@Gc`M|1~S~ADea&!^Ik}QOjo*3Bj`B|UG`NyHxmJ*>SPg{KX zD1h1S;AQzCY|96vNg`kbhEU0zc~JHiJwtp{_hgD^x?HAtiB_7)am-=i(WE>#nyAWD~_{^%gho z2v_{FpN8$j?Ik@5YIe)@Q~+D)Z6_ zwUy5VzMQh&56&e%vy>~p+uf_TecOL_0eB9!RMhk!oSmK3r);=Yct7pO8xlKg#2}poa875Ng61Vkx?1@@HxsCDBb0Amy(m` zMmzVX7Qp)*+pW~6)V=h=3R3eAeGPTnzRjrm!gYo0b`3uKD6rBgC9bK+BK(hH;I>x)U~H9u}WusLoHwsJAwr!g!86-%Y9RJI)} z>>6tEZuN27{=zjFzqkJ?{F?Bbu+dTca3#!R*D$Rz>3l-FbxFtfmgRiw$c`U`bVLUO zfD|(F!z1S;k!`i#PdQ8M`anJ9Ycj<_LEA;)34BM#L(QZkUD3CyBbS6mU<+}!jA{t)& zxm^pqYykP}m-eo8)}kyhZ+nI>NN^yYC2eoikOqsVhf;HeFFZwAC$dNvFJ@GCWhN8J zmD5fSqJ6#Dr^tJkuxr(3vpEBmt%?!+6kXHO?GJv*%;{g_e(zgoVp0~P_H($zbT{4bE%jkCOr*cjfU4Oc73vaAJI zC7^q}@Zt3AjfSG@i&xmnfgp0XWXow@QEBIhp=L26hmUPrS*zsP$xpuTF-USJ*o43~ z;EYm=v&q)dhK=XGQdQHT0DuH6GEZN>`lV3(GzU(HTDsN&3Ln}83zIUvqQfu>z zIrdTWmLlVT!X!GBvnxpoe~R})T3o>w_vD%P-|Cwdr`rp@H@CX{*OsRdzWGz656Dn7N#HnCSSy)LZE;t8xw;FCc)FNr z@W&M*@QXg!WplU#le+#&gpU;_=L}x2L{a1*U^$3{9^3byX=UXI98(PY*l>DcY>}32 z2O;i08=ib)k&ev0Q`qRe{^9<{H)hT4S5z7~Dzg%Kz@BpWo)#0D;h@Am23-EwWqaiUxhFe#{w-8%#(&J{BH( zW*8CWfCa@DCUh_7D^X-g$0g>r+t(d2GCGBvB*|&M^JhO_6PB|!!sq0}iz)|n@FU5MmoSu% zp*ck^rOW)lde*(=hZ>|>uMnGUCEm}HjnE(@Pl=SA4e<`A82pGg?;Wc)I&Ek}=?m$g z8?O9>K{;?AH#-_92n@#oO1lE5R3;rYetw>mGnfF!b>tD$N`P_; zYK(w3VJ1NXUM`*9n8u81LMPf`}cinw%iC<_(3Tri8cy!CZSb z3Ib7=h1x{1ZX1xI<}#wjQ5vajsG^xTemGc1r@EMYJHbHRR>}2#l40n@o?H{L3V4i~ zz7~Uc{W_Hx2*MB{)K$yG%92{-59>s;I z>guZRRcAIfv5vM%7N`&E9^m{GU^KMu`SjgPiTQd81vDah|N_X^7aT&={bFFI+YYD&Jqs145E zFvW5Vw#T5D%@@fS8o7l(n1fFaUtm6Zv8v@nT^qQwjHzoz_&$ak)dip_C5b@!xtqj& zipZkdMELra0v1ONqMV{=m66KZt1rVIiPu2mrHTnSh6&BO!%;n*teC{fA~2=1qpqEJ z=4QT*aJ${TEN5vCFa3`v3>t5hJW(Hh7|Fj=0P>DdZ#P{Jx|z+Mb~k0#r@wPdG>z(% z;-l~$6>Ei<-q^;L8Eh_N8_)V;8E9|>lJRw7zwl=W-;JN}C4>=o z1x`!X~I~t;TI|qinV5w2OzMEdk`mv5y z-gE;GziBSaw0Ueks#x|j^&%L8t)l7g{?=<~J?qY%1}pwmX#-17WEDsqBH9+zhk90Q z@7AN@#z+*a4pAG|ErTVW`myws?0!T0;WN(sBAWg%#QezmgAIES>3!TFSCfZO3;ZHgklLY=y z5*zq%9Bcf-%gQ6qYsib59UEy~CK< zO$LFf+_vAOZWj+!Kqg6cb)K=eWLGlfSk3eI);)sQG}%l(pfx^rc@I_wzcYq~9S94; zz<9xI8@(cfxQvomF=rT-Tj2fCqftZ*hGN6D0m*8R0&F%Y@57 zbsHi9?S5u>QN$)sHqqHHjgM!OY4R>@uXzg$invP(UAygfCV~}mKF^+oWfx@V^nK*6 zerziZDXJZI@YE-G{GuXmtiO9uTMf#<-?$RfobHUKJ&6QyCa7h9KEL0py7ukBgtF_w zr4|qf^YzSY!E=bBccJVcv{O%&ZZGVjXLqZTv(HHd-|dUt zT>4;mX1ZHP^qU(i%j4rkv*&Ee!YNb(!(S)xKgj!F>M4uSPR&IB?_B&))COT*hP2;L zaK()e_(>5NjwIvB913muN^r~5zh5yNO%M4VKm;g+%Eu>6_fE-j=fOM>#pn@wA>T3= z)eok>9&?i1ZoZIc4eB|Z0Q7Twx`BFZ4B4#rKzT`t3c&s|v%qHrCsYc&IEa*kqqh_9}%H*1K$v%C?u06i=yx*^SXkCxJ&If5D zNA_r`ypHF1T3phg?3rI{)Mu&k!bY#9+#r++rQ7 zKRGaqI5Zl6n?X^);YC8dCuZaXc^rbqee&^Duzv!7@x{jNPsYw(h?X;SHe z-KRan8_@St9&ss6r>`hPUJC~FbDq9(iuD<-3*jo^-sN$TuY|bqZAg^Yc8&8cm~V+Y z;G6FQF=MT+k?(xeVzQ-e$MD27!sHAY+*=3n1UAO*lTh}oN6!tT10*JoJ?AK13*(qO z#`z3J$sWHY%A!NB-Coseto#XpxiZZ%p+IMp=<->|G%NBE8^qS@wK7<~D&f@(_g@x* z|EjmIGz0HM#`4D{^sGs*N_Yg=fS8BluS$j{or@9)X=rgIa>cA8P;D+7{b{&G-*-Os zib90AOf~q{%c-y!Iqkq-ObtkW{tfc5T#Vs@WmxeX1?lp}+!F%s`Q*q`o(oBh9*w;? zkj4VDfYBwEr(OF!q2=L;31hdr?<}Djk<@7jv{Q>iCr`OZpJS>P)_Mo0^{Tp^^-Iip zSJj#CjL&9SItn91G(A3pcnl%E_}Qi+&}m5Vg~U1ARp+Jrum!?^SKgffHz;^rXcn{6%MH^v3}P=yL!`4DY&;51Q~sig)D|3t#)DWp&Kg!}CEk>y_%X zu6D24m%`d%pD_2frfrFHD^a~wE}oGJ-P_XI^UQO5411d!mzRN0)4cXK~-ZPQ$*FI-EpVQYPu6^&5M+5^z?Vi_epDp)u zxwF&j;N|Hf%`W4`Wa!0&1(W=@FrygS zEemV2%{8QbIn)OF?>tJ^%xBA~|+Jrw96PddLrWY1pObh{+Ka>-aa1Jm3u<}@;(Dh`=xc4&xP6Z(j?aT4d8cnfT%t5pvo25C*F}g z>Cjdv=&66w)aK`92&={40w9` z@A)YY_SmuNXv~$rDGZSi$FqR>mlE(alaK;tEgv5agtfN6#w3%oVXN5R-@kbR2aa}9 zX5-`hs_`I3f!X>sl;{0zui2X$A_t4BvmT2<4C9%!zIE4va?J**%UL7l)|{UzG<@UO9VPK-l-ig%d7B?Vb+U+>Xb*=3c zdEvK7J>(y9+4@Z4Cr-}x=UEU&Ms!R30NuE)0MP zYJT~UP90XD!o%`!Msj9%5(>k5&_5oXTg4(?9iOHmz3)5oQ@1LeI$)TO?O?W(3 z0sskF7+!e@j15# z19Lb1p^w#;ztTnLVl4QoUgJbw#j~u7(jJI=m&Y0=N*0Z&4h%L$uwVr<>38j-Z3UGy zN3`2i9aCEP=iMsc1|PmZr6JyGZr;nfMj=(q%Tn3?L38VlxcW!XIJ=N*+V2njoC-88+^9l=gFA9+P^c9vFIC zv#!iq4;!OB!}02FGpfVTyE?q5Yh#Z;Y++M&!LL`i2Ag-8xzDk3Wa0=b_3D%u3*rw- z-|CX?AV-x8QrNHCtx`S-IO?R?IvzBqlCrGaUd`@@iRT=oRyuzIE5ZV8zuO|bdq8Fo zJt4&1z1nS`*y`Nk+kQl!px%4gpDp5~Y(WDH>xN9xQnvA#KR4b@9;dF|m?VPW%;QY2 zFs7Hq2l9iHTLuC$EIOww=rV=Yxo`cxZy+Br4R#1|1*VfYYa??nQw{gI$s2p!jbq-e zS7|c0KReAP`OLoKoOc=MMsTdVUpD%-iQTHM{2LCX{kmH{!8~9Ym0)s!6U()YCL z&6||jw}*gW0vtrH8MCrk|yCT;PtJ zI4Iv3VKb5$>Zf?^a!jLFJ;Xv=j~!2#2YzBcDoN6DxOhi;=0!TH{F9ab#sg9`SgZ3?9$rO zW9quQSA>=)G#);&&$|dHUTVI&qE}5`?|?l#OpaD*kEc}`{w(XV895E>d~Zqlsf)Gu z*zXkQ4qUVBv=sd!L($Wly=g~>`Hp*g*U0Xo(3@*gaOw|)r| z5k%>f+J%$;pM43!lp90vyFJ=!we#}7v54h)DXof=>Xyp(zL5X4Fc zI?H^R4pAQ8tDx(aUa-Bi^HY~cnE{Po0JG|EQzm&24q}}fGGg?$ld;u^2!6DqpT-;Y zw!)9Lot_!#g0c`uv7hmOYqK`x-B0;fv@utD64uBE^1dX#V&x-bKAik5CQqULQ?z}| zTaM=$7~EiIINo)pyQ;6^Pq=&2H>Id8S{G%iHs7=h0pkE(^{$Ha!-$(RXh{B1#E9{R8%YG%Fd*mZYTYpWuN4 zHVNNyiZCoBWSZ+AE}iMvn{fRCz}poOfX z!U<~>eMHpZ?l*?X5=p5Uwaj(V(`#WCU_P*&fl8MV>mXlPs_fp}9Y8B)yRHYW#(^lE z>$|=4t&7{|tt&K6jC^{`)p4F;X;cxIMTES13B~m^_Q^G`?5`-Nmqk=L%%<T4gGv>w8^4nc&=qV`0i!?wp5wrnq?|5sQCXOfC$Pj&d2fH92WGC z!Q>KOiP*m08QOT?&PYhE`AtY}Pea z?vwUIR&D8@f)7*kk@D`H+p3<+>nimZi!W2_=8#TJJNt5FFYy3Ola~S)92WeY&!S(< z4?GI@C${{@=gMWDbwKS;4jzezv{JWQ@+H7V6?K7e6ve&yCH%%4t%2~8^ZgN z0r!I#XNC%r3;V%a1|VZ#cH}44v6}65BFXreoxX7xfiU4Ef&s^3OMJt(Oa{wtnr9%O zEQ^YeQ2mI)bU!Th!W#`NgAJ;7o}XBIl8!keRZ+6ehx)3{+i2E>Yh>&0^8T~2GVX7q zK_sp=J_QrFx4#I+R9k4^Zfdof@#6BgHmx0x}n zPgUyEow%xRhRwq-^ic-r(v`7C|ixmO_G=z-_` z`+fUm82J7*^h0w0E`U{HCtn8!#(zEv#9|43QCF$5^)a2eoKme*%>ssU9ovD9{#o#}irpOzhdM=2wr( zf#pAToWbBi7N;nv;EzW?l(SK(TPTGhN#3B@uL1(1KQT2!}t@nQ%`m!o?|CW z4QI!|&W?lo-l%+HQ4a4CS{N}+xYmqBA1UuD z?_WYqGPG6T5IuVGs0$TK+^oJ{{_HqfP$!Qm)18?L+WU1nIyTPxv9=9LWUtft9yc!4 zkD6s-O4GIhV<6Cy|>NVy=~IimQ7c-7WnuCC3Ti;BU% zs!M@e%%pbW4dih_5)_lpcLXazQ-i#kG%J|}>hsPGjk>x;;N0xsC+wkNkYp0M265L| z1a6`zr?V6?78CSH9r|g{KjphBLRlBrAM51tX^{U)ncV39mb~2-!g?kqg<8(D_xtG? zRSfyqW%dopawcJbL&*9C-vp=c_SGAU01d+YjhVs);MHi$;Mh;#19ucaD+5uz>K1o2 z9DvV8$o{~wJInuYxZNQpqBFbQ49phFXLDXQ-CT58cb{zZttqTksr_Rs-KAoBF5gXy z_WlKkEwuacWzhF|Zt>NYW1YkID!zAM#49Tf+mXz-`+cu#>3h6z1#}!ZxoSmu^sp9A z$j{%Hh*RUDr?Uh!Hv43XBj$#EXaI_Q5gjU0`4Hz=d8egL1VHn++Tlk+%0Tz*a%)7 zjrS(m8~UB!0Uq^tI5$P`$3M(b(s>qmPr9icWiWO(B0;-nNickEXz1*8e+?2-87vOd z|Hu>M=|mRa3&c}@Bc19aci`Y?&|a9=!jVb_r=I zl|%>)SLwtTn2JJBeBDDaJ==&#a}jy!7uRcASh1`P0lWfysG1UlRK5nSgqo{7vVd>o z=cNQ%&h}Tqxm*f}FVH^?gz>2o9j?+y_kS{+Qx8Vtg)09Yfv@688F_d#D?82$9rm47 zQv&3@)gW;fZuO-SoMRj{g0nHFbiTn?tBNOfy>u$2%q&@U_!`1vJE<&8D%6W==JU_x zzd7t3H264fF?aQt!qtVg`Mf8W&_cp@<6C6xJWL1o|2 z{}2PGsTUYPC`pOn9PD4uws8X&35&13$ z-zc_#GIUtkklb|hFFXraV3(WsmQ7Iu`MS(EhiqhXXl`a+Qf^Fw zZ29pt;$KhTze#zm)H4*1DlSAmDU0+t+UE5|8kRuU@m`nMd-L0^1uI`i0M6EOpaT7ymUWKMv7fF$Q-6w z^G7KQ59wem5y}7;hUh5ER#v(}`-c^|nC6DcllEeldw2u;Q)^^?@J_{p7=|bI^@GVU zA-BPv`{x1g%YZm$raRhng9Y-eVO7;lf6ZE^-$j*f?iTK!%zZmWGJ_&G+o1)8c*og%$JkNw8+ zXou86oKm%g*E=b7ZojE4J1)Lo+V4B0Bh=orA+S?Ib%BNO`s%CD%V&{Q)o(j|LN}{#xh>dE`VU_B&ad0ij61;BY~-c4?ce&!~38U>4b{_Vj*Za zT0M5(hyq&xq88IQ6rY0>b0mC=R4v_3Vbz`W8zA+y`IE`-#)d1b<*ry{jv*MzftXPd z;N5JC)5^H>X*MIdT~^ETMZ+fi&5{Ukjny=<+X3TFXs8o)b(3{3I?7Z>Ng3-|TWC5#q6RobJzG$y^Y+p=d49ruzgV4o9%V~x{0{>!z=Bzx4x4BBRa*aR zH;Deoo3EC>#wBBGrhT*Yzi;jAIiZI4cooR=iR>wcRJ_<)$T%fX5mdk{e@IRFA!>*P zWGASr^|)zBa}Cin-kF||m5rq?7vM>;1z8H#Gjrd`)ad$=XgVuAGQ-%iXMedXWCffL zH7Mw3Cu^Zv{v4PO4<3(gI5j|JDkKBx$QO@E34Qx07;hc-eiF_4iz2sLh^x&<4;*I8 zY#A`y&w5ng6fsoiIF-rjRc_Vl^1c{nxn#NAx0>8;@P=!u9F~WU(}<}6nQ_K@k;)S5 z{0b}Y*`QRk-Sy<#RD7W))J@C4xht5qDpn7-`eE5r=l6e{8$9~1w_W{QZxi=m=`8JJ zl@j~E(AB*hD99g}#mBQC_it$b9@>4u;bSwKOdq;o3o+I4V8<*{N;O30n+3A5t`dM; zdP*VTz|WCHriQ8~_c?7Lyodm^pq+Bb11z#;EAyHZRPOedAFzZyRV5!w^AOhQA(?BQ z#9tD1^s(U^VdWIFEpCe*%IDKKRry3A7A-)l?2IDir6aM=L8+o|4c}5Qm#jT3pI(ja zB+LFZgMec4oq6mNp!h@aZw0}q@wL3Hl#Sdstt*=xT={pG>)I%uCdqcF06pk+>4bF- zHR)qCL@}p|zHvtalI$sTQ0h7>=3EUKGIVZwHoWS@Oj7j?*5nWAPf8?9v)x@(5#sI_ zy51YS8=kTp;8bQ(=7GgB6@%P!#J zdr=xQpde10L&o=~!ZLXv^)Z=m<}msebZt51HEv*``^_*VKFS z^%pMFU>S!b!xaSyck&vUy;ki9?@G0=mdC-~KbS#J(^#AxXRxQkcuu~R%xn{#O^Lps z?TDKeCi0;ownd^Tj?XvK;p=`ue%;^QKlX+WA!hqKC4vC^s9w`IwI4jx?!Guu3(*^A zMb7M51P;TU)tc!08{W-@gU!#EmaBhX3^!j<5Nm5T(r4kwDxyoGxV^-!4y``G58Qwv zppGWE9m{w?LBOB;2LDLQl8XXgR)LQjBPPJwX*U{kw#KEQVLePu_zw`mTW2DA^ZaaC z-nww-YJYSQ2w2JE96aG@5A8x+YFb~5rY_xk{uuZ zX37PYKP}U8GhjKw*0iQzVsbX$G@q<-Sm9>$Drj%tqMD{P>;a9%lx;PSS*GL`sDba% z5ty}ja}~?>rI6Mldzl6A{#%&bjQ@RMA7^hnv*`ft7p735*Ql>;iP&y{(bq3AEIcp1 zrY3{7ZtJU!uPH1UA$kASIfQeG8LyY-Ft$Vs*&35&?& zUkg4j-{YmyY$u=#)W{n`7$D-+b}b``%1^*i)xQLVzZ2tK;}WAYAOyfj-_Sg>AN($8 z)nej!C9A1LX4BmLkwUf~FK)SN`w+!+cEjHy1e*2KA)EEyTBU6n( zNbLNH)Uj}k;z?00#>-rO`LU0sr0}oQzV5TX_2C&6N7qNJw;psU!|;BsPMhy8S4ToF z3q$Os+W23&tH_0Z(z?EN2Q25i~PdG!Wi;Hrcr9ovRMQ7)e}B)R!I5 zGVIu2-x++^@>7}5zV0RHR5j(X*?i}>`@K;iaE16mPO}}{U1B3r|B#b0XfQE}w-Z-`4Rbnur`qaNk#v+VXVQK({?fM@`9zQp(;^p(1hh zSh>%tsPqlE*ck0eJXKc7pR}~>yi@bP&(InEj7jcGzpNu28jC?QRX9VKiDh1Nl|ju= z9@5M54lkcN};GJ06|P@ToOH5w~BHhzmYXVP5@#-E#6H=omMK#{H{#y_k3*T zEdE9M8EXRZ_q?I{78Ksh6q)sdypECUn%#`G4Xl%NUR5G^e4urO;A(1h*Ecr~?ssn; zA1O!9PCUb3@xR+cY%3FfqHgp4`lixCM+g7F^Vpis7I0I@4Pc=UUVQCVJQg0Lu$$)!gS$#QF#IeukOnSndD`-}+ zQyXX|V2SfBv;~OuKQFntsy90H^u{}wyOv^OND<9a!!M_u%am4DA*nwG8*+BFO1-!I zI*jGC$~xo1x}LD8oLr70u$Df)vW4&QAmM%$5tB?B+MmTm(hBE)AKHDkrq%Mc&ygfu z)iNS&w4OKrnHH{GK!ukvy4ED{cMyj9x0yA|jMYQV#ZtbgwJcS}plUeQV%A=JM4XynB%^2J7%@N9lUC&ezA(FTETZE2_{4I9!7s^I63SRd~L?to*Q?C({U_mKMejuI%5p*gO ## Description

WHt3}fLU5!d?em6JQ(Wfwx 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 O(NfoaT=MYMhyMpt!y_61 literal 0 HcmV?d00001 From b5cf08a327445476a24011c04edf0253643d4ccb Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Wed, 27 Sep 2023 19:35:11 +0400 Subject: [PATCH 12/12] Update `README.md` --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f9ef98e..03e9033 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Swift5.5 CI +