From 73d1a00bbbd408c91e0c4f021d214fd189737d47 Mon Sep 17 00:00:00 2001 From: John Nguyen Date: Mon, 12 Mar 2018 17:54:45 +0100 Subject: [PATCH] Fix/down integration (#1751) * WIP: integrate Down in message cell * WIP: update MarkdownBarView * basic implementation of MarkdownTextView * swap out MarklightTextView with MarkdownTextView * tidy up * use staging backend * reset markdown when sending * parse attributed string when sending * refactor current attributes * automatically switch off header after newline * add comments * add support for different header types * update header icon automatically * only remove old headers if new one is selected * reset active markdown when in header and newline detected * allow designated init to be called for subclasses of TextView * add DownStyle presets * tidy up * improve how currentAttributes is calculated * tidy up * update currentAttributes only when activeMarkdown changes * adjust compact style * make method private * WIP: insertListItem stub * markdownAtCaret returns markdown from previous position * add Down via Carthage * add MarkdownTextStorage * tidy up * add methods to add & remove markdown over a range * selecting/deselecting header adds/removes MD over line * tidy up * tidy up * activate MarkdownTextView in drafts * improve markdownAtCaret * support adding/removing markdown over selections * tidy up * refactor * listen to notifications for text changes * post notification for selection changes * add method to calculate prev line range * remove list item stub * activate list button * automatic list generation * ensure only one type of header is active at a time * re-enable emoji substitution * refactor * detect link attachments from parsed string * prevent combination of code with bold or italic * refactor * remove Down from project file & switch off staging * tidy up MarkdownBarView * tidy up * fix compact style * update drafts * disable MarklightTextViewTests * process header attributes first * add tests * fix attributes creation order * more tests * more tests and some refactoring * still more tests * add button highlighting for lists * update list tests * add test stubs * improve lists * tidy up * more tests * tidy up * tidy up * tidy up * tidy up * add MarkdownTextStorageTests * fix Down import in tests * remove Marklight * update method name & remove unused method * fix typo * fix rendering for obfuscated messages * tidy up * trim trailing newline if present * update drafts to store attributed text * adjust paragraph style * tidy up * update buttons after validating list * adjust style * adjust style * update snapshot tests * uodate test * bump component * update third party notices * Bump Down.framework * Try #2 * Correct tag * Multi library approach --- Cartfile | 2 +- Cartfile.resolved | 2 +- THIRD-PARTY-NOTICES.txt | 209 ++++- Wire-iOS Tests/MarkdownTextStorageTests.swift | 52 ++ Wire-iOS Tests/MarkdownTextViewTests.swift | 776 ++++++++++++++++++ Wire-iOS Tests/MarklightTextViewTests.swift | 420 ---------- .../testLongText_1024@2x.png | Bin 52083 -> 51516 bytes .../testLongText_320@2x.png | Bin 36775 -> 34986 bytes .../testLongText_375@2x.png | Bin 45078 -> 46826 bytes .../testLongText_414@2x.png | Bin 47126 -> 46725 bytes .../testLongText_768@2x.png | Bin 49402 -> 49693 bytes .../testRTLText_1024@2x.png | Bin 17301 -> 17492 bytes .../testRTLText_320@2x.png | Bin 10772 -> 10887 bytes .../testRTLText_375@2x.png | Bin 11367 -> 11457 bytes .../testRTLText_414@2x.png | Bin 11776 -> 11922 bytes .../testRTLText_768@2x.png | Bin 15054 -> 15181 bytes .../testShortText_320@2x.png | Bin 11251 -> 11114 bytes .../testShortText_375@2x.png | Bin 11851 -> 11720 bytes .../testShortText_414@2x.png | Bin 12319 -> 12129 bytes Wire-iOS.xcodeproj/project.pbxproj | 87 +- .../Views/MarkdownTextStorage.swift | 62 ++ .../Components/Views/MarkdownTextView.swift | 574 +++++++++++++ .../Components/Views/MarklightTextView.swift | 673 --------------- .../Cells/Utility/Message+Formatting.m | 81 +- .../Utility/NSAttributedString+Down.swift | 40 + ...sationInputBarViewController+Editing.swift | 2 +- .../ConversationInputBarViewController.m | 11 +- .../Conversation/InputBar/InputBar.swift | 18 +- .../UserInterface/MarkdownBarView.swift | 122 ++- .../MessageComposeViewController.swift | 30 +- .../Sources/UserInterface/MessageDraft.swift | 11 +- .../.xccurrentversion | 8 + .../MessageDraft_V2.xcdatamodel/contents | 15 + WireExtensionComponents/Views/TextView.m | 9 + 34 files changed, 1908 insertions(+), 1296 deletions(-) create mode 100644 Wire-iOS Tests/MarkdownTextStorageTests.swift create mode 100644 Wire-iOS Tests/MarkdownTextViewTests.swift delete mode 100644 Wire-iOS Tests/MarklightTextViewTests.swift create mode 100644 Wire-iOS/Sources/UserInterface/Components/Views/MarkdownTextStorage.swift create mode 100644 Wire-iOS/Sources/UserInterface/Components/Views/MarkdownTextView.swift delete mode 100644 Wire-iOS/Sources/UserInterface/Components/Views/MarklightTextView.swift create mode 100644 Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/NSAttributedString+Down.swift create mode 100644 Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/.xccurrentversion create mode 100644 Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/MessageDraft_V2.xcdatamodel/contents diff --git a/Cartfile b/Cartfile index 00e7501dec..805228ead7 100644 --- a/Cartfile +++ b/Cartfile @@ -13,5 +13,5 @@ github "wireapp/wire-ios-canvas" ~> 5.0 github "wireapp/HockeySDK-iOS" ~> 5.0 github "wireapp/FLAnimatedImage" "1.0.12-wire" github "wireapp/PureLayout" "v3.0.0" -github "wireapp/Marklight" ~> 1.0.9 github "wireapp/mixpanel-swift" ~> 2.2 +github "wireapp/Down" "v1.0.2-test" diff --git a/Cartfile.resolved b/Cartfile.resolved index 535a0d6523..a4a1c53b26 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -5,7 +5,6 @@ github "wireapp/CocoaLumberjack" "3.3.0" github "wireapp/FLAnimatedImage" "1.0.12-wire" github "wireapp/FormatterKit" "1.8.1-swift3.0.2" github "wireapp/HockeySDK-iOS" "5.0.0" -github "wireapp/Marklight" "1.0.9" github "wireapp/PINCache" "2.3-swift3.1" github "wireapp/PureLayout" "v3.0.0" github "wireapp/TTTAttributedLabel" "2.0.0-swift3.0.2" @@ -33,3 +32,4 @@ github "wireapp/wire-ios-testing" "13.0.1" github "wireapp/wire-ios-transport" "34.0.2" github "wireapp/wire-ios-utilities" "20.2.0" github "wireapp/wire-ios-ziphy" "7.0.1" +github "wireapp/Down" "v1.0.2-test" diff --git a/THIRD-PARTY-NOTICES.txt b/THIRD-PARTY-NOTICES.txt index 1f9e931dd9..a2605ac468 100644 --- a/THIRD-PARTY-NOTICES.txt +++ b/THIRD-PARTY-NOTICES.txt @@ -806,10 +806,215 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -31) Marklight under MIT +31) Down under MIT ----------------------- -Copyright (c) 2016 Matteo Gavagnin +The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent MartΓ­ + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/Wire-iOS Tests/MarkdownTextStorageTests.swift b/Wire-iOS Tests/MarkdownTextStorageTests.swift new file mode 100644 index 0000000000..f2fc98491f --- /dev/null +++ b/Wire-iOS Tests/MarkdownTextStorageTests.swift @@ -0,0 +1,52 @@ +//// +// Wire +// Copyright (C) 2018 Wire Swiss GmbH +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. +// + +import XCTest +@testable import Wire +import Down + +final class MarkdownTextStorageTests: XCTestCase { + + var sut: MarkdownTextStorage! + + override func setUp() { + super.setUp() + sut = MarkdownTextStorage() + } + + override func tearDown() { + sut = nil + super.tearDown() + } + + func testThatItCorrectlyAddsMarkdownIDAttributeAfterAutocorrect() { + // GIVEN + let correction = "their" + let wholeRange = NSMakeRange(0, correction.characters.count) + sut.currentMarkdown = .bold + // WHEN: simulate inserting autocorrected text + sut.replaceCharacters(in: NSMakeRange(0, 0), with: correction) + sut.setAttributes([:], range: wholeRange) + // THEN + var effectiveRange = NSMakeRange(NSNotFound, 0) + let result = sut.attribute(MarkdownIDAttributeName, at: 0, effectiveRange: &effectiveRange) as? Markdown + XCTAssertEqual(.bold, result) + XCTAssertEqual(wholeRange, effectiveRange) + } + +} diff --git a/Wire-iOS Tests/MarkdownTextViewTests.swift b/Wire-iOS Tests/MarkdownTextViewTests.swift new file mode 100644 index 0000000000..bdfd451c05 --- /dev/null +++ b/Wire-iOS Tests/MarkdownTextViewTests.swift @@ -0,0 +1,776 @@ +// +// Wire +// Copyright (C) 2018 Wire Swiss GmbH +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. +// + +import XCTest +@testable import Wire +import Down + +final class MarkdownTextViewTests: XCTestCase { + + var sut: MarkdownTextView! + let bar = MarkdownBarView() + var style: DownStyle! + + override func setUp() { + super.setUp() + style = DownStyle() + style.baseFont = FontSpec(.normal, .regular).font! + style.baseFontColor = ColorScheme.default().color(withName: ColorSchemeColorTextForeground) + style.codeFont = UIFont(name: "Menlo", size: style.baseFont.pointSize) ?? style.baseFont + style.codeColor = UIColor.red + style.baseParagraphStyle = NSParagraphStyle.default + style.listIndentation = 0 + style.h1Size = 28 + style.h2Size = 24 + style.h3Size = 20 + sut = MarkdownTextView(with: style) + } + + override func tearDown() { + style = nil + sut = nil + super.tearDown() + } + + // MARK: - Helpers + + func button(for markdown: Markdown) -> IconButton? { + switch markdown { + case .h1, .h2, .h3: return bar.headerButton + case .bold: return bar.boldButton + case .italic: return bar.italicButton + case .code: return bar.codeButton + case .oList: return bar.numberListButton + case .uList: return bar.bulletListButton + default: return nil + } + } + + // Insert the text, but AFTER giving sut a chance to respond. + func insertText(_ str: String) { + sut.respondToChange(str, inRange: NSMakeRange(str.length, 0)) + sut.insertText(str) + } + + // Delete the text in the range, but AFTER giving sut a chance to respond. + func deleteText(in range: NSRange) { + sut.respondToChange("", inRange: range) + sut.selectedRange = range + sut.deleteBackward() + } + + func select(_ markdown: Markdown...) { + markdown.forEach(select) + } + + func select(_ markdown: Markdown) { + guard let button = button(for: markdown) else { + XCTFail() + return + } + sut.markdownBarView(bar, didSelectMarkdown: markdown, with: button) + } + + func deselect(_ markdown: Markdown...) { + markdown.forEach(deselect) + } + + func deselect(_ markdown: Markdown) { + guard let button = button(for: markdown) else { + XCTFail() + return + } + sut.markdownBarView(bar, didDeselectMarkdown: markdown, with: button) + } + + // Attributes that we expect for certain markdown combinations. + func attrs(for markdown: Markdown) -> [String: Any] { + switch markdown { + case .none, .oList, .uList: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case .h1, .h2, .h3, + [.h1, .bold], + [.h2, .bold], + [.h3, .bold]: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont.withSize(style.headerSize(for: markdown.headerValue!)!).bold, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case [.h1, .italic], [.h1, .bold, .italic], + [.h2, .italic], [.h2, .bold, .italic], + [.h3, .italic], [.h3, .bold, .italic]: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont.withSize(style.headerSize(for: markdown.headerValue!)!).bold.italic, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case [.h1, .code], + [.h2, .code], + [.h3, .code]: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.codeFont.withSize(style.headerSize(for: markdown.headerValue!)!).bold, + NSForegroundColorAttributeName: style.codeColor!, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case .bold: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont.bold, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case .italic: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont.italic, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case .code: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.codeFont, + NSForegroundColorAttributeName: style.codeColor!, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + case [.bold, .italic]: + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: style.baseFont.bold.italic, + NSForegroundColorAttributeName: style.baseFontColor, + NSParagraphStyleAttributeName: style.baseParagraphStyle + ] + default: + break + } + return [:] + } + + // A way to check that two attribute dictionaries are equal + func equal(_ lhs: [String: Any], _ rhs: [String: Any]) -> Bool { + if lhs[MarkdownIDAttributeName] as? Markdown != rhs[MarkdownIDAttributeName] as? Markdown { + return false + } + if lhs[NSFontAttributeName] as? UIFont != rhs[NSFontAttributeName] as? UIFont { + return false + } + if lhs[NSForegroundColorAttributeName] as? UIColor != rhs[NSForegroundColorAttributeName] as? UIColor { + return false + } + if lhs[NSParagraphStyleAttributeName] as? NSParagraphStyle != rhs[NSParagraphStyleAttributeName] as? NSParagraphStyle { + return false + } + return true + } + + // Passes the test if the attributes starting at the given range match the expected + // attributes and they extend all the way to the end of this range. + func checkAttributes(for markdown: Markdown, inRange range: NSRange) { + var attrRange = NSMakeRange(NSNotFound, 0) + let result = sut.attributedText.attributes(at: range.location, effectiveRange: &attrRange) + XCTAssertTrue(equal(attrs(for: markdown), result)) + XCTAssertEqual(range, attrRange) + } + + // MARK: - Attributes (Inserting) + + func selectAndCheck(_ md: Markdown...) { + // GIVEN + let text = "Oh Hai!" + // WHEN: select each MD + md.forEach(select) + insertText(text) + // THEN: it renders correct attributes + checkAttributes(for: Markdown(md), inRange: NSMakeRange(0, text.length)) + } + + // MARK: Atomic ☺️ + + func testThatItCreatesCorrectAttributes_H1() { + selectAndCheck(.h1) + } + + func testThatItCreatesCorrectAttributes_H2() { + selectAndCheck(.h2) + } + + func testThatItCreatesCorrectAttributes_H3() { + selectAndCheck(.h3) + } + + func testThatItCreatesCorrectAttributes_Bold() { + selectAndCheck(.bold) + } + + func testThatItCreatesCorrectAttributes_Italic() { + selectAndCheck(.italic) + } + + func testThatItCreatesCorrectAttributes_Code() { + selectAndCheck(.code) + } + + // MARK: Combinations 😬 + + func testThatItCreatesCorrectAttributes_HeaderItalic() { + selectAndCheck(.h1, .italic) + } + + func testThatItCreatesCorrectAttributes_HeaderBold() { + selectAndCheck(.h1, .bold) + } + + func testThatItCreatesCorrectAttributes_HeaderBoldItalic() { + selectAndCheck(.h1, .bold, .italic) + } + + func testThatItCreatesCorrectAttributes_HeaderCode() { + selectAndCheck(.h1, .code) + } + + func testThatItCreatesCorrectAttributes_BoldItalic() { + selectAndCheck(.bold, .italic) + } + + // MARK: - Attributes (Removing) + + func testThatItCreatesCorrectAttributesWhenRemoving_Header() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.h1, .italic) + insertText(text) + // THEN + checkAttributes(for: [.h1, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + deselect(.h1) + insertText(text) + // THEN: it renders italic on the whole line + checkAttributes(for: .italic, inRange: NSMakeRange(0, text.length * 2)) + } + + func testThatItCreatesCorrectAttributesWhenRemoving_Bold() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.bold, .italic) + insertText(text) + // THEN + checkAttributes(for: [.bold, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + deselect(.bold) + insertText(text) + // THEN: it only renders italic + checkAttributes(for: .italic, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatItCreatesCorrectAttributesWhenRemoving_Italic() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.bold, .italic) + insertText(text) + // THEN + checkAttributes(for: [.bold, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + deselect(.italic) + insertText(text) + // THEN + checkAttributes(for: .bold, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatItCreatesCorrectAttributesWhenRemoving_Code() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.h1, .code) + insertText(text) + // THEN + checkAttributes(for: [.h1, .code], inRange: NSMakeRange(0, text.length)) + // AND WHEN + deselect(.code) + insertText(text) + // THEN + checkAttributes(for: .h1, inRange: NSMakeRange(text.length, text.length)) + } + + // MARK: - Switching Markdown + + func testThatDeselectingHeaderRemovesAttributesFromWholeLine() { + // GIVEN + let line1 = "Oh Hai!" + let line2 = "\nOh Bai!" + // WHEN + select(.h1, .italic) + insertText(line1) + // THEN + checkAttributes(for: [.h1, .italic], inRange: NSMakeRange(0, line1.length)) + // AND WHEN + deselect(.h1, .italic) + insertText(line2) + // THEN + checkAttributes(for: .italic, inRange: NSMakeRange(0, line1.length)) + checkAttributes(for: .none, inRange: NSMakeRange(line1.length, line2.length)) + } + + func testThatChangingHeadersUpdatesAttributesForWholeLine() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.h1, .italic) + insertText(text) + // THEN + checkAttributes(for: [.h1, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.h2) + // THEN + checkAttributes(for: [.h2, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.h3) + // THEN + checkAttributes(for: [.h3, .italic], inRange: NSMakeRange(0, text.length)) + } + + func testThatInsertingNewLineAfterHeaderResetsActiveMarkdown() { + // GIVEN + let line1 = "Oh Hai!" + let line2 = "Ok Bai!" + // WHEN + select(.h1, .italic) + insertText(line1) + insertText("\n") + insertText(line2) + // THEN + checkAttributes(for: [.h1, .italic], inRange: NSMakeRange(0, line1.length)) + checkAttributes(for: .none, inRange: NSMakeRange(line1.length, line2.length + 1)) + } + + func testThatSelectingCodeClearsBold() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.bold) + insertText(text) + // THEN + checkAttributes(for: .bold, inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatSelectingCodeClearsItalic() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.italic) + insertText(text) + // THEN + checkAttributes(for: .italic, inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatSelectingCodeClearsBoldItalic() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.bold, .italic) + insertText(text) + // THEN + checkAttributes(for: [.bold, .italic], inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatSelectingBoldClearsCode() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.bold) + insertText(text) + // THEN + checkAttributes(for: .bold, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatSelectingItalicClearsCode() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.italic) + insertText(text) + // THEN + checkAttributes(for: .italic, inRange: NSMakeRange(text.length, text.length)) + } + + func testThatSelectingBoldItalicClearsCode() { + // GIVEN + let text = "Oh Hai!" + // WHEN + select(.code) + insertText(text) + // THEN + checkAttributes(for: .code, inRange: NSMakeRange(0, text.length)) + // AND WHEN + select(.bold, .italic) + insertText(text) + // THEN + checkAttributes(for: [.bold, .italic], inRange: NSMakeRange(text.length, text.length)) + } + + // MARK: - Selections + + var wholeTextRange: UITextRange { + return sut.textRange(from: sut.beginningOfDocument, to: sut.endOfDocument)! + } + + func testThatSelectingMarkdownOnRangeContainingSingleMarkdownUpdatesAttributes() { + // GIVEN + let text = "Oh Hai!" + let wholeRange = NSMakeRange(0, text.length) + + insertText(text) + checkAttributes(for: .none, inRange: wholeRange) + sut.selectedTextRange = wholeTextRange + + // WHEN + select(.bold) + // THEN + checkAttributes(for: .bold, inRange: wholeRange) + // AND WHEN + select(.italic) + // THEN + checkAttributes(for: [.bold, .italic], inRange: wholeRange) + // AND WHEN + select(.code) + // THEN + checkAttributes(for: .code, inRange: wholeRange) + // AND WHEN + select(.h1) + // THEN + checkAttributes(for: [.h1, .code], inRange: wholeRange) + // AND WHEN + select(.italic) + // THEN + checkAttributes(for: [.h1, .italic], inRange: wholeRange) + } + + func testThatWhenTheSelectedRangeContainsMultipleMarkdownTheActiveMarkdownIsNone() { + // GIVEN + let text = "Oh Hai!" + + select(.italic) + insertText(text) + checkAttributes(for: .italic, inRange: NSMakeRange(0, text.length)) + + select(.code) + insertText(text) + checkAttributes(for: .code, inRange: NSMakeRange(text.length, text.length)) + + // WHEN + sut.selectedTextRange = wholeTextRange + // THEN + XCTAssertEqual(sut.activeMarkdown, .none) + } + + func testThatSelectingMarkdownOnRangeContainingMultipleMarkdownReplacesAttributes() { + // GIVEN + let text = "Oh Hai!" + let wholeRange = NSMakeRange(0, text.length * 2) + + select(.italic) + insertText(text) + checkAttributes(for: .italic, inRange: NSMakeRange(0, text.length)) + + select(.code) + insertText(text) + checkAttributes(for: .code, inRange: NSMakeRange(text.length, text.length)) + + // WHEN + sut.selectedTextRange = wholeTextRange + select(.bold) + // THEN + checkAttributes(for: .bold, inRange: wholeRange) + } + + func testThatDeselectingMarkdownOnRangeUpdatesAttributes() { + // GIVEN + let text = "Oh Hai!" + let wholeRange = NSMakeRange(0, text.length) + + select(.h1, .bold, .italic) + insertText(text) + checkAttributes(for: [.h1, .bold, .italic], inRange: wholeRange) + sut.selectedTextRange = wholeTextRange + + // WHEN + deselect(.bold) + // THEN + checkAttributes(for: [.h1, .italic], inRange: wholeRange) + // AND WHEN + deselect(.h1) + // THEN + checkAttributes(for: .italic, inRange: wholeRange) + // AND WHEN + deselect(.italic) + // THEN + checkAttributes(for: .none, inRange: wholeRange) + } + + // MARK: - Lists + + func testThatSelectingListInsertsNewItemPrefix_Number() { + // GIVEN + let text = "Oh Hai!" + insertText(text) + // WHEN + select(.oList) + // THEN + XCTAssertEqual(sut.text, "1. \(text)") + } + + func testThatSelectingListInsertsNewItemPrefix_Bullet() { + // GIVEN + let text = "Oh Hai!" + insertText(text) + // WHEN + select(.uList) + // THEN + XCTAssertEqual(sut.text, "- \(text)") + } + + func testThatDeselectingListRemovesItemPrefix_Number() { + // GIVEN + let text = "Oh Hai!" + insertText("1. \(text)") + // WHEN + deselect(.oList) + // THEN + XCTAssertEqual(sut.text, text) + } + + func testThatDeselectingListRemovesItemPrefix_Bullet() { + // GIVEN + let text = "Oh Hai!" + ["- ", "+ ", "* "].forEach { + insertText($0 + text) + // WHEN + deselect(.uList) + // THEN + XCTAssertEqual(sut.text, text) + // AFTER + sut.text = "" + } + } + + func testThatSelectingListBelowExistingItemInsertsNewItemWithCorrectPrefix_Number() { + // GIVEN + insertText("1. Oh Hai!\n") + insertText("OK Bai!") + // WHEN + select(.oList) + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!\n2. OK Bai!") + } + + func testThatSelectingListBelowExistingItemInsertsNewItemWithCorrectPrefix_Bullet() { + ["- ", "+ ", "* "].forEach { + // GIVEN + insertText($0 + "Oh Hai!\n") + insertText("OK Bai!") + // WHEN + select(.uList) + // THEN + XCTAssertEqual(sut.text, $0 + "Oh Hai!\n" + $0 + "OK Bai!") + // AFTER + sut.text = "" + } + } + + func testThatChangingListTypeConvertsPrefix() { + // GIVEN + insertText("1. Oh Hai!") + // WHEN + select(.uList) + // THEN + XCTAssertEqual(sut.text, "- Oh Hai!") + // AND WHEN + select(.oList) + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!") + } + + func testThatInsertingNewLineAfterItemCreatesNewEmptyItem() { + // GIVEN + insertText("1. Oh Hai!") + // WHEN + insertText("\n") + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!\n2. ") + } + + func testThatInsertingNewLineAfterEmptyItemDeletesTheItem() { + // GIVEN + insertText("1. Oh Hai!\n2. ") + // WHEN + insertText("\n") + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!\n") + } + + func testThatInsertingNewLineInMiddleOfItemSplitsItemIntoTwoItems() { + // GIVEN + insertText("- Oh Hai!") + // place caret just before "H" + sut.selectedRange = NSMakeRange(5, 0) + // WHEN + insertText("\n") + // THEN + XCTAssertEqual(sut.text, "- Oh \n- Hai!") + } + + func testThatInsertingAndRemovingListItemPreservesCurrentTextSelection() { + // GIVEN + insertText("Oh Hai!") + // select "Hai" + sut.selectedRange = NSMakeRange(3, 3) + // WHEN + select(.oList) + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!") + XCTAssertEqual(sut.selectedRange, NSMakeRange(6, 3)) + // AND WHEN + deselect(.oList) + // THEN + XCTAssertEqual(sut.text, "Oh Hai!") + XCTAssertEqual(sut.selectedRange, NSMakeRange(3, 3)) + } + + func testThatIfSelectionIsInListPrefixThenRemovingListItemSetsSelectionToStartOfLine() { + // GIVEN + insertText("1. Oh Hai!\n2. Ok Bai!") + // select "2. " + sut.selectedRange = NSMakeRange(12, 3) + // WHEN + deselect(.oList) + // THEN + XCTAssertEqual(sut.text, "1. Oh Hai!\nOk Bai!") + XCTAssertEqual(sut.selectedRange, NSMakeRange(11, 0)) + } + + func testThatDeletingPartOfListPrefixRemovesListMarkdownForLine_Number() { + // GIVEN + let text = "Oh Hai!" + insertText(text) + select(.oList) + XCTAssertEqual(sut.text, "1. Oh Hai!") + checkAttributes(for: .oList, inRange: NSMakeRange(0, text.length + 3)) + // WHEN + deleteText(in: NSMakeRange(2, 1)) + // THEN + XCTAssertEqual(sut.text, "1.Oh Hai!") + checkAttributes(for: .none, inRange: NSMakeRange(0, text.length + 2)) + XCTAssertEqual(sut.activeMarkdown, .none) + } + + func testThatDeletingPartOfListPrefixRemovesListMarkdownForLine_Bullet() { + // GIVEN + let text = "Oh Hai!" + insertText(text) + select(.uList) + XCTAssertEqual(sut.text, "- Oh Hai!") + checkAttributes(for: .uList, inRange: NSMakeRange(0, text.length + 2)) + // WHEN + deleteText(in: NSMakeRange(1, 1)) + // THEN + XCTAssertEqual(sut.text, "-Oh Hai!") + checkAttributes(for: .none, inRange: NSMakeRange(0, text.length + 1)) + XCTAssertEqual(sut.activeMarkdown, .none) + } + + func testThatTypingListPrefixAddsListMarkdownForLine_Number() { + // GIVEN + let text = "1. Oh Hai!" + // WHEN + text.characters.forEach { insertText(String($0)) } + // THEN + XCTAssertEqual(sut.text, text) + checkAttributes(for: .oList, inRange: NSMakeRange(0, text.length)) + XCTAssertEqual(sut.activeMarkdown, .oList) + } + + func testThatTypingListPrefixAddsListMarkdownForLine_Bullet() { + // GIVEN + let text = "+ Oh Hai!" + // WHEN + text.characters.forEach { insertText(String($0)) } + // THEN + XCTAssertEqual(sut.text, text) + checkAttributes(for: .uList, inRange: NSMakeRange(0, text.length)) + XCTAssertEqual(sut.activeMarkdown, .uList) + } + + func testThatIfNewLineAfterListItemIsDeletedThenListIsAppliedToWholeLine() { + // GIVEN + let line1 = "1. Oh Hai!" + let line2 = "Ok Bai!" + insertText(line1) + insertText("\n" + line2) + checkAttributes(for: .oList, inRange: NSMakeRange(0, line1.length + 1)) + checkAttributes(for: .none, inRange: NSMakeRange(line1.length + 1, line2.length)) + // WHEN + let rangeOfNewline = NSMakeRange(line1.length, 1) + deleteText(in: rangeOfNewline) + // THEN + XCTAssertEqual(sut.text, line1 + line2) + checkAttributes(for: .oList, inRange: NSMakeRange(0, line1.length + line2.length)) + } + +} + +private extension String { + var length: Int { + return (self as NSString).length + } +} diff --git a/Wire-iOS Tests/MarklightTextViewTests.swift b/Wire-iOS Tests/MarklightTextViewTests.swift deleted file mode 100644 index 1e167aacb5..0000000000 --- a/Wire-iOS Tests/MarklightTextViewTests.swift +++ /dev/null @@ -1,420 +0,0 @@ -// -// Wire -// Copyright (C) 2017 Wire Swiss GmbH -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see http://www.gnu.org/licenses/. -// - -import XCTest -@testable import Wire - -class MarklightTextViewTests: XCTestCase { - - let sut = MarklightTextView() - let text = "example" - - override func setUp() { - super.setUp() - sut.text = text - } - - override func tearDown() { - sut.text = "" - super.tearDown() - } - - // MARK: - Syntax Insertions - - func testThatItInsertsH1HeaderSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .header(.h1)) - - // then - XCTAssertEqual(sut.text, "# example") - } - - func testThatItInsertsH2HeaderSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .header(.h2)) - - // then - XCTAssertEqual(sut.text, "## example") - } - - func testThatItInsertsH3HeaderSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .header(.h3)) - - // then - XCTAssertEqual(sut.text, "### example") - } - - func testThatItInsertsItalicSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .italic) - - // then - XCTAssertEqual(sut.text, "_example_") - } - - func testThatItInsertsBoldSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .bold) - - // then - XCTAssertEqual(sut.text, "**example**") - } - - func testThatItInsertsCodeSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .code) - - // then - XCTAssertEqual(sut.text, "`example`") - } - - func testThatItInsertsNumberedListSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .numberList) - - // then - XCTAssertEqual(sut.text, "1. example") - } - - func testThatItInsertsBulletListSyntax() { - // given - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.insertSyntaxForMarkdownElement(type: .bulletList) - - // then - XCTAssertEqual(sut.text, "- example") - } - - // MARK: - Syntax Deletions - - func testThatItDeletesH1HeaderSyntax() { - // given - let text = "# example" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .header(.h1)) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesH2HeaderSyntax() { - // given - let text = "## example" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .header(.h2)) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesH3HeaderSyntax() { - // given - let text = "### example" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .header(.h3)) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesItalicSyntax() { - // given - let text = "_example_" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .italic) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesBoldSyntax() { - // given - let text = "**example**" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .bold) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesCodeSyntax() { - // given - let text = "`example`" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .code) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesNumberListSyntax() { - // given - let text = "1. example" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .numberList) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItDeletesBulletListSyntax() { - // given - let text = "- example" - sut.text = text - sut.selectedRange = NSMakeRange(0, text.characters.count) - - // when - sut.deleteSyntaxForMarkdownElement(type: .bulletList) - - // then - XCTAssertEqual(sut.text, "example") - } - - func testThatItStripsEmptyListItems() { - // given - let text = ["1. example", "2. example", "3. ", "- example", "- "].joined(separator: "\n") - sut.text = text - - // when - let result = sut.preparedText - - // then - let expectation = ["1. example", "2. example", "", "- example", ""].joined(separator: "\n") - XCTAssertEqual(result, expectation) - - } - - func testThatItStripsEmptyMarkdownInMessageContainingOnlyEmptyMarkdown() { - // given - let text = [ - "# ", "## ", "### ", // empty headers - "****", "** **", "____", "__ __", // empty bold - " **", " * *", " __ ", " _ _", // empty italics - "``", "` `", // empty code - ].joined(separator: "\n") - - // insert so markdown is applied - sut.text = "" - sut.insertText(text) - - // when - let result = sut.preparedText.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) - - // then - XCTAssertEqual(result, "") - } - - func testThatItStripsEmptyMarkdownInMessageContainingNonEmptyMarkdown() { - // given - let text = [ - "# ", - "# header", - "**bold** _ _ `code`" - ].joined(separator: "\n") - - // insert so markdown is applied - sut.text = "" - sut.insertText(text) - - // when - let result = sut.preparedText.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) - let expectation = ["# header", "**bold** `code`"].joined(separator: "\n") - - // then - XCTAssertEqual(result, expectation) - } - - func testThatItStripsNestedEmptyMarkdown() { - // given - let text = "# ** _ _ **" - - // insert so markdown is applied - sut.text = "" - sut.insertText(text) - - // when - let result = sut.preparedText - - // then - XCTAssertEqual(result, "") - } - - // MARK: - Emoji - - func testThatItStripsMarkdownSyntaxForMarkdownContainingOnlyEmojis() { - - let emojiStrings = ["πŸ˜‚", "πŸ˜‚ πŸ‘©πŸ»β€πŸ« ", " πŸ˜‚ πŸ‘©πŸ»β€πŸ« 🐡 ", "πŸ˜‚πŸ‘©πŸ»β€πŸ«", " 🐡🐡🐡 ", "πŸ‘©πŸ»β€πŸŽ€ 🐡🐡", "πŸ‘¨πŸ»β€πŸ³ πŸ‘¨πŸ»β€πŸ³ πŸ‘¨πŸ»β€πŸ³"] - - emojiStrings.forEach { emojiStr in - - var stringsToTest = [String]() - ["# ", "## ", "### "].forEach { stringsToTest.append("\($0)\(emojiStr)") } - ["*", "_", "**", "__", "`"].forEach { stringsToTest.append("\($0)\(emojiStr)\($0)") } - - for str in stringsToTest { - // given - sut.text = "" - sut.insertText(str) - - // then - XCTAssertEqual(sut.preparedText, emojiStr.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)) - } - } - } - - func testThatItStripsMarkdownSyntaxForNestedMarkdownContainingOnlyEmojis() { - - // given - sut.text = "" - sut.insertText("# ** _πŸ˜‚_ πŸ‘©πŸ»β€πŸ« _🐡🐡_ **") - - // then - XCTAssertEqual(sut.preparedText, "πŸ˜‚ πŸ‘©πŸ»β€πŸ« 🐡🐡") - } - - func testThatItDoesNotStripMarkdownForListItemsContainingOnlyEmojis() { - - // given - let str = ["1. πŸ˜‚", "2. πŸ‘©πŸ»β€πŸ«πŸ˜‚", "- 🐡", "* πŸ‘©πŸ»β€πŸŽ€πŸ‘©πŸ»β€πŸŽ€", "+ πŸ‘¨πŸ»β€πŸ³ πŸ‘¨πŸ»β€πŸ³ πŸ‘¨πŸ»β€πŸ³"].joined(separator: "\n") - sut.text = "" - sut.insertText(str) - - // then - XCTAssertEqual(sut.preparedText, str) - } - - // MARK: - Automatic lists - - func testThatItInsertsANewNumberListItemWhenNewlineEntered() { - - // given - sut.text = "" - sut.insertText("1. Pickle") - - // when - sut.handleNewLine() - sut.insertText("\n") - - // then - XCTAssertEqual(sut.text, ["1. Pickle", "2. "].joined(separator: "\n")) - } - - func testThatItDeletesEmptyNumberListItemWhenNewLineEntered() { - - // given - sut.text = "" - sut.insertText(["1. Pickle", "2. Rick", "3. "].joined(separator: "\n")) - - // when - sut.handleNewLine() - sut.insertText("\n") - - // then - XCTAssertEqual(sut.text, ["1. Pickle", "2. Rick", "\n"].joined(separator: "\n")) - } - - func testThatItCorrectlyNumbersListItemsWhenNewListItemInsertedBetweenItems() { - - // given - let text = ["1. I turned", "2. into", "3. a pickle", "4. Morty!"].joined(separator: "\n") - sut.text = "" - sut.insertText(text) - - // when - sut.selectedRange = NSMakeRange(11, 0) // move cursor to end of first item - sut.handleNewLine() - sut.insertText("\n") - sut.insertText("myself") - - // then - XCTAssertEqual(sut.text, ["1. I turned", "2. myself", "3. into", "4. a pickle", "5. Morty!"].joined(separator: "\n")) - } - - func testThatItInsertsANewBulletListItemWhenNewlineEntered() { - - // given - sut.text = "" - sut.insertText("+ Pickle") - - // when - sut.handleNewLine() - sut.insertText("\n") - - // then - XCTAssertEqual(sut.text, ["+ Pickle", "+ "].joined(separator: "\n")) - } - - func testThatItDeletesEmptyBulletListItemWhenNewLineEntered() { - - // given - sut.text = "" - sut.insertText(["* Pickle", "* Rick", "* "].joined(separator: "\n")) - - // when - sut.handleNewLine() - sut.insertText("\n") - - // then - XCTAssertEqual(sut.text, ["* Pickle", "* Rick", "\n"].joined(separator: "\n")) - } -} diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_1024@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_1024@2x.png index f454b5653a2fb8ab87dede9383034dd33f898bb3..856e595dee84f4725c1e55a2e95fa209cd526888 100644 GIT binary patch delta 40547 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%0AMWRm6NtbPDeh7A}NhsypM~ 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_320@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_320@2x.png index e644704c3b592bf841fc9bbd3da421ce26970a5d..438172904999d8f371bfd3e874141a470b7bddf8 100644 GIT binary patch literal 34986 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 literal 36775 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 literal 47126 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%0A7Z@{Q$sQ{G=F`}}sxZQ~nk474M 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_768@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testLongText_768@2x.png index 82546eb4db1620616eb4bf5103d78a24e9f05a19..0e6b599f38023c9240661deaca6436a6f49c41bb 100644 GIT binary patch delta 39409 zcmdSAWmuHm_clC)gp`QVrIga$rAUZ`f|SV642^Vi5eiZRNY?-&-7O8$-7$0{Idly5 z4)^{0$8o&xhxfzt<>3>@!3=v}*FN`J=Q`K9kbW4cUoj$0ZPV_H6AZgIsH?Kar zq3xyyrBQc`oG;#OxnECX;ZLs__y@~j89EGNMf1G%?be}Z50gfJ^JJQlN@)-$42@w4 zvlBCl$G|!u@w|y)droMIZ;Vg9zNY@XU})3U72;7>0O+B9CgzXtc%z~-(5a#$(Qt6N z9dNFjqY9!}qlOtDm^=h2;6#r+c!q})Mvwjw6lRc_uNaN?fIeCn`z7ux%qJl7RymE> z`%gq8F<(6N$9Vzb_7Bfz#f|=eP7&>kjuWl?faM`3@q3T~CY6T9<7h)Pk{=iXxH!+# zK`l6f`T0@94ADmqn6Zf8NTc}@N7G^{VKIF7MF%lNe?k2!_XzC)NG_TOQyKUF+U0@& zetJr3%za>~b+`Od%Y@G7Vq}S%NyU=b?P|}p{FtlZg|64$X_ZAi^Ka*^J$Idw2IQxy z!odAYBFPKxWY^2<-PRylTG54$(npWbUmMgB=Ta4z{UrElp9N+u*d<)niqPj$oAcTk zog?+Ku`VQotM*hBHzekY0olI4@Ls1sK;IVQkfs8DsjyV_X{h3&J$rxu%AY@%L0*li zN(~H(Ag-?wQg@d_k&{N1(`H7u&5ODcS80gixK#1Y%8~rJ?^9;*a>%jEtk0y1M9EeY zHg!zA^AO!WYO?{FEx{~lNmDmsi~0bGxU^N+p^WY z`;UB1FHWC#fUow`W@XNA4sXFGQcOenM`ro^3FtpKar^>tauNKP>}3E#FTkjd)$(Ab=rF{o^3_`p;fl4HV%Wr5a7Wc`JJH z`N6+kbpqlR9{^-}Kh7g2rjQ@b;E*&~xUs+-9#>O>_hARw$W`4mKH4%Izr;{+AVEgo z{U%%p*?Hy^1Fz{Nc=bxdctWY_m0D-)GxHf(xwfh6ucaLO_GWkF-gQ2!UG_HNou&qq zj{xm7^^60xTQ$d6<)o09(E*eDdl5CM1v22K`Vk9&h$OBR&Q7QFiI@XcSVN>^)tQje zL7^HXhlFs#j?5E0=$-rKyz9G5Q!*?+<(W6*G^j1nw7nYei_JWF%KYKx=hlk~eP^mb zhwaY%MDu`OVQg)~)s1Uqz55ESs;l3D9XH|Tq%Rs;3rgcO$_MJ7p1lwBMXFHnPE74M zsht921^d0s%CFv9n2FwB;qREJJNld;&k`RK-C5V-7-y<2{3@zwWHLM@Kl zUq<*ZJ}sY*$4;oHSLm`#S7!xr4-YVG0D<^^KB5|RD(yk|Go8D=Bg5q7z1UwNOyV-$ zj-t$xV;?r&3;p0bMy->gqvbO8U0SPN2K7{{?)OhMfjCM!$gX@XjnglVDem;cdNh$m zDBs=@wTL+sE-g9I2WpAe_es3DTD)_~6WVkGE|%qWdP75+FE^5RD~6<8ftTm{cStQY zu(kKbx85=3@%aFvL5-aKfY$+&g!(?0Lt)L&tDN&Ix7ci0R!kuqWIJl-$xRAr*IiP# zAL9A9nriw_XGU7Y)Fm(5bB4~9uA7rdIV&<-gEcIjvP^n_; z?cMcgRBpDhawRX(>xyD_L}RPi%L!5*#aiX{>9h7E+SDrS_leugLLe>Pb#RC39S;+% z?O0U&T6t2ST2h>K#Q)-WPn25x%11-TW;gz0;u~y_2D(wJ1^ByEV0?o4)EeP){=ki^ zty=NS=v@5tqg2D+&-w9VRbI+^|7DcR`*N3{X+#s~*8w$lX=rL2j_vQaop^(iT$rRj zSM_4$Iu!uyX3MD`nv#TDS{0`rmo3O8n_$yAXuBM9)TsQ*yE^)79I**Nq)RGp<=knW(vMIN0|A;U;`?V1`sjgje zAGL8`w(d3KRR>o@FBse;E|6U4n1nGSBj z>)EvA4h`8er4E9`H%%j&Kh72(x{oleb7j~usN3|Kl-r4CvA^I>Y&_i1%^vrB%_2a_X;(!l;>)zek)u=vr5GuCZ{<+h_ZYK5C?J(=OJVFxrf(tn@1@1$Tb&0JO z^gxn*s5bPUf?l)@AsKIkoj((n*#f*|IPNybjYZ0j<0hUO_u=K>pPk-f)BH%(gW4`S zB5umDX}!9Ctho1ES$r1#l}EIWP8Z z&PP0%t+3_PRJxmLZc3za?ze|;ue#9ML;!*IM?E<(*hl$oVA}#>BK6rWK%C|_yr_C! zvi>^cL6swQU+zxB*wNwW+c^Ehig0DhjghLxP>;-bkHQy3<85uOZzT0jo(u&EpEx$; zSbyNV4~~ITE!k%eL65S4HXbv%2N+mTfSSrByk~&vn6rRdI$`$*ZIclxbZNWu4U71&KP0DIHBJC)M7}XXs)bpd_THe&2~b#r@)a zuIbl+2VRBH*;^+~mu^G(wLQqxMSCj+L&}>usk=X+Ml~#YnFI=W01suQ3pZ_|cA`4g zZ4~az96Bet{5S^_XlX(#pLwNI=qSLCXz04AqP4SDDaaY_QBT8)A)e7NZ$C9p(#nYx zMthzD8_&aaj;##>=-l~BhB)gHB6->;cy+!~c)f=0GXjzYU~2J~6@Mb$aV1OnF=+oF z^T3j?6tNvfLjVV_mV54QQwT5jf6{pdZvr1)-gW-k)nZBI^%Jw{Wh9^pTF9blxjm_c zm?}N#?JgMlwikpESbjO{Rbay`V!Lcru;-Ih^jU}2+5?#gm|l|0d_s5h+-^Avfe;jcx#l3Ft(xcN{+Cu+IqP}x;u3`{&L`^o+ z`!ShU#~X|EI;#*0^E?xA|HND%OZi3*D`HvMlD}!GJH-Urz=Dc=CEj?a-5ukNh<+nO{5~!g-z!XYA>46Cmh3!hju*`5I*Db zJwdMOv}JrIx)hu9h4ZerB+kzZr?_f)T%Y{d=r)FObhO5_r0{KQjBNF7-idnN-JG+G zlDYHCgnHS3CyTgk?J;uaEsYZiW*-P30whwV{8|N+`ke7FOY>=i9uns6#LaPUX+PK0 zEib3^N${$kKZ~=(eAL*Xdx`W zOAkuoeLJ%gZ&LURH+Z5}7}9dpV$WhrajHAywk5y48VsS3Ty{o=Y`vl$-$lovX|axy zy_;byv979vq*a_{rm1tHZ5bWl0oaA%Pn*R>B_|tEl#B$;QWF{I-hv3_YK+-)U23fr zFRN#iJ6VR;@4|BYxZEBFi{pkR5K8C75sOC?%B#`1_k6TWY{UWK|KMyhE2AO*d(xHW z<}g}j`4`?X1x|}N7Pc^|M=u%>?_%BYbPj!l)rysIoAH^n%VIw>vq+T~V8rQ?*_Ux% z4bi&GVNa=<6vAEk=4WgI(@5-ofF`a<5?%ccMBknhTJ+h}b$nUAQN4?}P1KoFdO0NsOg?ri{MX#EQ&Lka(3nm|)WzB8ih)WG1GKQNu|>$`4LRa@;rL)Rr@+RS+8xer zRzJ2FaX0by(jVRWJW}!&Sc~?GA}U3Y|aa8HMdK8Mj{hj96phbH&umS0# zu~>GdRHe@@u?PI+f_8UFX%#R z%X68i#671*<)J(K70fdFs6op!dEsvmE#7)-o9*$a`jW*z*arR=xYvn6sOmER>6Vga zcS+b6&e?orO~tP67!bzeK%1vL($j<(y0|3o=;WFZ4Qx%Ui@hCr0Wv~zg1E-cq^I-> zj~LKth41oYq8Z%&G^mAvG^_2eaRM|ch$n=wb^6^SNC-B$8Z@hD0;DVwuAkl^ull*r=F!Hj~%oGzmMf71e#23cwJF3#9PzPUf1z%rcn_5 zdKTHvr`IjBAx=Z!?A$tHNhlhY&1;lZy(hY&9YlVrJ~XTXMn={B616otwRH>!G4pn@ zP8+o_^+(_q6(xAD$7;3dUb+rRLiV~I0-{J+3ZB3gF`%r4QhwH+s7s$>#K+~AYX6q! z)y1LXT5Ed|`32!|rH170$xFP+EEO+t)BLxIfu?^k@pj04RN-jSJ^?@btgTInWp%FJ zOF?aY5dlPE;)VO|u81pHS26~5!HFCC%`LI1MwfTFFK(iYRHr%lru&fO zd5*@7x%g6OMS0j4uZp%nKuXM|h}~wl4zgIXEj9_OR1di^+Ohzk`C*1F*PW#PWxml2 zk-4g2!oA_;@H|om*m07p$IdVE<_;@mYqgTv*sXA%zdX^{M2p1J?prU9c&Q^xz!B#$ zES3={p=Pg)Dwm}m3ncs#jUiSg)FF={CHI$Ud0&eB)`t(sCn!g9p#z~tWdGvWHA$fxfGh+c|h>0AA ze8@*-xzM3l;N~n+L{(mfBF!arp8sz|Oiz_a{FlMb+%%6)bt$#@k6p@z3(6&awKTJ> zZ_=T{B{4oh$6Snvd+<>7JGWyJz>HR(*T4CFUN5#^*dKTsxWEBhjbNBdk?e@Q>%h17 zaG<7JU-kSm&3s5K59*ro{%=PE`be zxD5&^Q3NLnPYvZGp&sq#+MDjAMZTA!dXdvCE5yp*{r%4(~v7^PtQ63ZB)r*h>_{y#$s~6(&IkMNsNykzeCRguptL*L7tL7b zu)(XZ%hPK`pjd)my7?uk3Y2@ z2^BwmVq++LV%!i>)mWT$fB2%B7^&q}Am3x4^aHaggrnSJQrgyT_R#1Q``S|+>Oh(_03TD#a>IC!i>GOwXF8~D8kJ8`Ks*EKAQ%K{U8Al zheqo|n|5LAs}hoBtj$oj4BGN9qc0t^83nK<&qX{bgG@+xgKl3ss;GK|P1wbB z4AztD+;NFv^}`Nh^2T{Ri9rB4qn_FHr1wfp2Ek>hh&hU;@&6=C(!DWkDGNoqIpi2kMMj>DfHy3M136 zv7EBlp6()iEY?YqIuqmZ0UW!puwJ6FnCOMy`?>XEE1&A0i|-07TBR{g?|om0Wy_gi zXcHY;O||)}0^JPTBWyb}l9e!4*!6k%1?-(xo{xl9LGn?_fhgCFi^7zbkV5Xd__^3h z&hLash&A=TC}Q`UN`8Ly{JW~R60@@>a#AM=Jpn<8Zgo|^=H=m%!-bj8X#*&&KV8HO zXGR|Lo`wE7hGnn*)a5{3 zpKUCkqi`{kt^!0ubnYOn4{f^fQq?uxqT?HhvXoKbZ7~i`bD$GMXQ77D3$>%|w6=|+ z-Hfb_^%Dt*3vyEB=b1snp(xrQ4|D^%-tx40M`vRG!bs!jpo+7XtZ8{;^uV6O7;7$`#Kbt%z`d&$E*Le3O`j*P-Rr$zwP z8XA@=^!%hY1p<+LeBzVJAXxa7Cj5~YosndIIMwgkshI6ZB)0+h-4G zZ12{EV`51f*s0D$a1)PHs6xEie1hB}nFGJUayE z?PjG;#L-Hssr-n7nT;r!nwqqg;WVl4eF~Q z=hAN9l)p4NeVF$41}uK|wO^fCa)CEijkzI%rO@^zAvhUG`0UexPMh{7Ah*vTl7>=n zLsxGvn(X56Ig-XDMK2_vDtt=&fokWFafDRs&|4E>LVtqM?EPp~lIvV5Ewxi2ow!qA zHJ*kl&qV%tB`!$Yomo{`(%AS_;`}SU?E?noZQ)T&tE1EOl20?OF!E$uJKh{#Y)CRl znya^9l%^6;*ZTMPOGI>8r4GQT4!%Lpb=6GT{#Vb}eYwmN^3JiZM#p{}YdJLK1}bNh!D))y&L#csVk zQ0-`)QA`^PLXpC;phl}6RD~qW_1+e+{-Bb@02LPn%$5a0v&DbpV@h5hWQr3}JB(-a z=pT02aYubB4tfkz+v@)Igu(ZCLw)OOw94S&%J(EuWn<&;(;R{VN1d#jjm6tI@7v4GXxbX-Sto3e5>~?rL#&eXoD%x4bt1ke zBOH3&|K9h{0zF)l!N%0n$liT^&0}IvZW6zCV@poYwET=+(`B}{ml~)=H(QNams|0U zj~z<@^ay=ME?#FCNG0?5X=g9z>ngne{+yS(p^J5!k6rM)2ysj49x>sh4=VG^-x2Bm z(#Ef*qU%rve^r^S!3DXU&+^t|z;^!UfU}uzrb&!FGrXfkCaR@UWBcU)>x{b5N*;L zixxAmye$cIP+&k;Lj{@W%Pf0!Yqf%$sX5mFI^TbYosF8kf`xq676+fBYh;avrm@kFbD^*Vz zKtW!tdu8WMA{!_{N_CroWb0nlPgLgC{-(`{2Woe5dNS5@yk9RuXAMM*q*n!`PK5f! zymr}l{V%RBe6%%{2f<$*X1+nmLohXEK1vS?&SnHM%_nE5@*43eh( zPl6``|0jr-vI$2z3{o#bq#XAG;C6AYZ8xcLPqHkjhC68GQw-Z7PA_;B4N$ET8H1((fGc z8OlW59;_YU31mJqLISqQ!;a>=XSSDc>^U`W;YXqyOoE3(`Mpd9^_mHx!F_2G_{BQ3 zkb>X_AJpO)+wU$)xqYxKL2KYX|AT7#hgqCUohzs%H^+yu`JbHpb9U2>}2h z8852RqCdeX6?+%GnG)AW3%Lkt*QxF{+06px4eQ1cc_ehIiHaQ2q6q3JK zSDyv>LYj-p#kLPHuE*_v;ZDYeZ@X0#(y4zX>%3PBKeK!}G3%X%)C-N^*`R}f#up_@ zt_g(4!>*_t{7(?>R*bb-vZ&y%nlC^HwMhwcI#sBZKtL{mXx%0!O%U=iJnhM9vm($PyW<}pjVQ!D}`MdNPhqo=3 z=Kh3bWOdnbI~iZq6O?(-b3NgSw}uq=LT6X7P&3&OKue_?RaPEsW8++T7*W%G{LEWn zBh2W1A;Vxx0KyO#MBc3QX@}XkJI=-i`Va4#cr)i>x0c`#qk3v?mO}Dgm`j zYr7`Cv*$lpQ8EcXHmi@M@a)i-?hqegbBVj6#{`L=GB}_9sratDE5tQZ9y{`~K5m+) z<=p~TqxJ2t-G-~r+rnrhrqN!|@Yg|2C!_kzhm=?LeWSAu6xk&~PbPQZn=1%hoH55; z93(EbW>};R@*&sL;^+4#P6GH85_N)C$d3B#xvL*H(V_X4mD$$ycd8&YY2d{~GcW)9 z*dy=7+<1LzQQ`iA?}vm9_NAnIFcb^Rylb1aYnF&kI{p#b)&0~R(!pvosQ*7O$h6H{ zRUj!0Mb+gJf|Esb>M+y|=GHYt26-YFb^t}AR0t4GhVtA&C@#yju_IWUnCj zO$Oc5+Zx`w7!leF&dIwW8-LyXZS!Tth3VZnw5zZZaeQ@rBh=yN$g6=9DQ!=y5;+?=_ZT5nDb z*tfTfZ;10`wz7eio;kjRVzq5<=-L()0`mi_D#ASRH;#k#>AWwy%7(EosJ?=Hb9{cS zfZa6x$>%EH^45d61^d1mCr+aJSk&kDBC#SbN&*CK#Mb{3t~OshHt?tV`(f=DCyqfE zynPS@{AFFkomOnW;oUlXQz^T8#^p+!!|w+j<9lO4&2Tt5S82|6EQu!*;#$a#N z^gn?mlY59y1i}eGj$vZ^b+ZO`H(T)YJ|toPf5ns`_naz?W+(cK?EeKJR6U2&&~Wm^ zJ!?h!)5yuaPwQj_p;;#n^6klW25TBNA!n@AFWPvl2a)-28`h&&3^E?+&Z~S(n}5)u zF;jT<$)PR(=>hq;(45oplZD@rz&*Kx^1lC_V2MfX)@^th8g5izk_OxkkqiPU=4CWw zOZYAZZH(Vzf6D$jsBi^Q11mipvzKAUD zbW%Z`wBdiy6*#sDi=6_J_aGCZpI8LUmxCIo6Vo-U%Uke-aUauP73PEbUg3b=6L8%q zfRzvC?$Tw-2Y_;Amz~jB_sXXkCDSjlU=4uZDn>|ql$p{ag^HnDY?UbcQO~p5aeIG< z0_Mw%rZ<2pSr^B)EdsW5kvyG{G-dU9BloHhE;W?U{xq1u@i&D0NGS~GXJnuhI-b&( z-tKqVNilD4?hv!~mV*?IU9N}TBEb@!9D^688a2whSHz%$VN;ieKA0yWKI2`;SD&ud zAi|pYIMcnqBANur1pdW56wKPXm9AgPhw8mzjh_O^n>{(%`}hS^S`A1ko3K=qS2Ue3 zTppCZ!`9iLC47V~6F<=Wd~3Z;VFi#(0bL5wJrzqM}1ZFM9fFPW@Uc+|S7 zog4>{t-GAes^u6M`ASM}Nd-FKM78?dw(37#{+&wUh^3n;>lIvTiXRvqcPV)YYSA*U z!CwW$5d+OP9CQrAqQuER4*6Z4gPd&?!S@aEe~JuLa^wD2agI5&Hj4JBa?M{j7&guj zcRHo<%ZZ0QFZoEVz?K9?HRuw+*Yk=*7$E%HJfOqze9`ABbq?2(ggb2V-nU|GDpK%p z54qed&Z?iMsp%)EXmD6Hr3w`0uHg_eW1zaXEK-7?oYdF>ia^ttdsK3+K5KwkVt#SS zNWJL`v5OJi9Iluc*=`&gavhlV{vel90~ve@EnTK=<{Od}x-UT-*$LVj&*qz*vbK6- z5z3fU-59Wh7;2}#T;&7RbE2E;C>KMY4tX^QG$_Kn9LN%VHV>T7u(-n1RSyi=q~xBE zxQ)g>0D)Qx?&DukQ6lwBG2YKx%*8L76_yDuzFN>vd7=x<{FLmA#c6t`oE;;+$77nG z)K#4x^QIgvgc;rJvb!7^qQ9fx9UmL)UI)1w#4_*Mk<`D!1-&OCx>1nKb6auan=@AN zJW^yjNp5Tr2khDo)6qS?Nr@@??+Di>a>qnzrM;tJS!y%M_>JM~iJ9#>>xjTj{WJKx z4Jyp*dQ=`V-`o1(?LlQ2d2?dFKbi#`7Qv8WKSixD*Tw@Dz>1XORsM84Oz>Bjx|iqZ zM;^23ObGXd%;J9Skk92Hs8bP1Kb5dFJNVrP6V#Gj0B~mN!=va5N-o2$a71djB1oBE8(xF%3SwuDz01GtROTHAHTY!F@&U?HwoCA zDD39X;c;J9YRUUtvmUQlrGZYJGTJ&XB#dPYO`A3n`0xeF#?0CkZSobUBp z7l^S@e_10Nx~bv)Go%G}7g&{z-uPW1eqnMdwK+_x)f6;zoLbbYRIR1!IKd+ohdo#n z%9ScqCh9tk4$@QwD=Bh!P;Y7iQvTFjT>3DUcetR);mmv7g+nAQbVpa{`Cyl8-I)He zCm3#^@2f7CUV`+aNA4%OOwssYkjV6Z6+!xTP4OG&|3U+#d1;mme!lo zIVIgI`kOY$_e$6v9x_;5`#$?ZWf+=Hvg%0l!S#f#>v~#Dfn5r{Rg3G>XA0`FYn^Ax zl9;<3bdJ)Wk`BgXvXkP12|J0+PAgRX(a!v@e6T?+zd|`z-J#Q~37J2=#z=Rq`FXLG zbwDkn?qM2j<^k^k031Ro`c_#ECvy2k2bzu?s@#U$3DN$=m_`Xn28GX;f{j@}8|rq& zug4z2s}?okGU~RUk62ybsXjs0fU=X6bUY6$lpv?zfF;o>7F)k|bb`wRs z)<-l88}=0&gnwkh%z?pqTEU~y2vfHiJWd|%#^5IZ%=lX^XC-C5+M8WR=Y}tI>?1XQ z^}yp+(9{@68$We;Th!|%_0xr~2Z__J0FrUYcseICNJ-#jw6Pk_cJskXC_`2sc^j(H zv}Vi_ef06VZ>HO`u-pM_9*akE>)pxAwF!0M@tN-HlLz z8p|?D^Niacr`wjQRW3D<^(6@4CP*((cm_gOTls-;?}&bi2JQ^4$RDUD#i~+Sx&QLr zb9$<^X6?$$vwN4DGo$?2#NMPyM-9zD>$b*-2`2x7Qm0Ha%4qwYp@q;L3SUhX({qXJ zbez(7#yx$%)b1Gt=|0MI92fUEjUmW4=Av65kChQq4hwDY7T8>$evVpKjsy)(KR@fd zsdwHT0BX?s?uy;<-T29#Y-vM@JpWU)a3OV`k*BB+-iCs@o=TuhkhOZfD>3gj^llfE zk<6H8IOyfGW(qRrzmrfB5V?UV7iRCH$j4kVa#N^xmY{+ud9lV*fLN79piwU_oPh(WAdY z=nbD~=0l+C5iM+x`p~Z}N;1+evr1Nn3*%a7z6(qFpT9|Spf{`?-kY$57V9bniyr@D zI7fbKxk5CjaWr^*s9rg}2$=+Y4l^83@9r-Rdig7_(slBOC+lXqwi3(fyz)=eX04^z z>aSpnkVUWKa8*BsxX{jIVypKW@;Jf_+?yx0a8WAjlz|1)n%$5GS{n$kJ?CpUu3v^U zYBTTo$6EOEKrJmoQRGk1Q4ZyQ)<>;$@6Ufv+|oK^c}52IV&(C?cVJF+c9wHBUvH+D zvo-zung4vjj2x9V`b)92oWDiC!l1)5Fr!Ct?tXK~gj#eI20h;Y;lBg_{{Qcl$JlgU z2?OIn;O@Ty&(GTiq4I@-um__Jc!PR@i*!j$)95`+*354PpHWT z@6|fXxic68a8jhk@G;VQo7hrGL-s%KOd1U}=kd@Ne`kn9RZ`%ep#$&DD=QO3@n@0J ziGvNt67Tb&9q&at1l_dg(8tbu&Cq?;y5gn~_PP{-hP}Q%cO2yD`3cHPCyt4nxVvKN z3kWI|evGc8$#f_D=oYMe^%kLO*N&lT76EPVHZo8 z;cucI@!l9q!~O5Fe7WPGm{h&T$jVZF)5H5whJP@K8d9-1L;;vlXhlnZM;T{*veusKpb? zJ%2%HeA#BLu9_nu`qxG|GUA&*=B`$;7gwU*)|g3d%$Jr&k&@)4Sj1u&0Vp9JW9-R1 z`6Y6vP|NzXdhtRlasJ|X|UG!u*3o8B>D8r?>ZqIQJgjbv*1 zT*>VsmkzBa#iPZ{aOu?R3OwJ5Z()e%&$#Dt+-7*j^y0zsQs!tNgvjfXL#mGJAb2)R z#nUO$beW5*Ib~=sVeznLskh(BQhv)l`?k-oRoEKrs>+$dpm55=JdROx$OIl-kaNi;JFKc zg@wWzR`$zw1u9JBI>@?BcY-fK^o2X6$BhFe!Ldn}qFmtmf>W@~=a z$#}H5*y^XJEV#Em=t5p~VlQG9W<|h?KMof8>~6GS>^`*+H-ubN%lASWMrg*`or{}}9$86@8lBQ=4#w&q|iOlULEt|S$S#1Wkpi~C7S=*pA)A;^+aZy9}m7biV&2zDXCG*>k(3pz(LYfL2K$OiB(RkNn zoeNd%!)B_!sN1QyArfWOh1`TY&@MXesMykKWN;kWg z*Yx(5=-f=6+F9u=+NOGF9Z_F!LqGNH?*=4}0}meJL*y)=qGn=~sVtNhnTV4A=#igi ztHaDlYqeuGn{Q7Cc5{uPeZx=xN^RHf(0W2tQNF2PIg9R_sbRqzL{qc$s^`G!*0hfb zU58sS1M&_RU`b8c$wqhq;o=c=VLQR79&D;!qq)5rZOkj3ZjRLjl=pq*!NS&1ioPBH zW>{_Qe&#^vlWKzVBxq*G^~Ih>v-ZMr73cbRk5tz~Zk2X!Jolw<*7xoFxyjP%Ij7Jx z6O^7}Wb`=rbJP@;l?HE;OAf|VduN_pr z=(>1(wR><_J$=nGyXH+K7FLFg5y^p|5}?kRwojvW%{Wgf0j#myn3avZ_VRwN#U&43 zRBQ9Q#|%Ewl^V%`YM`$L=fyWTU4~5Q52=V>j(c5~-F9j_w91k}=)4XL!KDyTi}4(w zlFCpSMJ!YIBL0T5ukiX{%<02atwsVw%QMGZJ;>d2%ixH;8e{5yQqlUn@hmYRxwvM8 z8SbYgh(QJV&opWfb=8u!UvbZI&R z?AQk{JTp`&#wcVgR-dd$Jop8aBmpiIX|FwtgNx>?fUI!|rLioip(NOA^#Fnoci7o; zs88duJrw{FW)$lvqz_7F_%}P=D}l%MYcW#S!eqc_r?+z6uU|{~OE`WU zy)kbj;B$JDKTo{QAxOBKIPdo6yC4T-qEW0x?L^|`um-N*q>vqRQ)ro6v zOaz0Yv21rcl`Jx%YxhGDLkwAbbLA)1;(NP#E@|zmG--^?M&Bz)z!z<0?Q2x>etPxG z*~!OV1)7hS56Xa(muv)kVQ;9_W&a#1g72p!Xq8$-`s`v(QD0B~BIroawk?EL!fD1s z`?;1~7symTmQv>y?%1VFQ`TSE{UGncMNYKwxAU#d)J2NtBwT%4-8Ey-qW##e@zh1` zQTq(;XCFb&_=ZLsY0RPfVSrDcg>`hwR!$o@x+6sUffF)RrX@ix)Cv z6m|fR;enhi`gkQnrexgZZk6a(`&rzq{W#W=$Od20d7q5DxyuHN-FQs}8&ID9EYW%Z zxo-l!xp}L)m@f5RP}{*Kw5VnvVOW!RkTd0BAd~n{D)yxwXX-m)EJE>%VR0GQ!?dsS@PVV~*SXPb#U`$tj)OeBk}d8#;g)J!vwovYF#GXclF_a+m&kRrWTp%MDv9 zL*n>4O@B#^Y2JQQuU3hkPj)+G&*`MVh{mYd{`*%X{uNPu(5X)c9|`&!Q%APGskQ}N8_T{a$wnvc%Wr!vb}8>C zwQz)uw6vE(b}*Ah-pN{8MtDrNx^1yW$3>j82$DORlZt)CgBFI{b9UvDA)f?E?z#P4 zZVr1YvPIeYrea9j`~zdeVb5+Yb2U&cf5$qRwOb=k!(qqOl;&dw|H_2}w9X(m{1j~FOr>Gz7{j7g@qBHYo`m}YYG#B&t_-D|>BQzH4zW+*uj6@BZWN&L-d_x_og0b6Y$-5~ys<3U|-nam` zANEvmw0VUtD#N0bHDk(*qMnM%kq7NMr28m=w3*&WCp9-Wp2jitN!c4s527)DiC$Z z(W25Epa=4e64hDAdoTqM; zkyGNl5{T>I#w$tWRJ8vSGf>n$)VIKsjD#ItYDJk_MHhXs)l`BstCMM#v8K3_5LO>3 z5CbXcHS@Q#Uf+1u%Nc4y)OJ4%iME6WDQQmR^+~MmCH&a}HP^2WHqh8FOh&~^ns$-5 z8gD3L;un0ceY_VgQ|Y#wHFYsQK6$pSuW?%K33g_b;%Y*P2Lr(!=4AS!c0Y)M1w9V4 z;*Z?X_BsjYtJeew)qFxE71qa)YEvR_wSnf93w*AAn*@D720{D30XXib-Cca3;R&px zBV3*4PEJ$F!IkJ?{Xfpf&gB(hvh0;x&hKm!epwA`?LNw(IbfUEDlD}LT&_ns2Zj}K z#V08SCZA~&e?8QdQ^J4bavK62*u1T@G*ST@LRdFs*T{l6y5^pUDbb`+H%GHIDg%Oj z_c~xlA&bwd^iNI~Od>4BDDiOdWbXIOVvI(Ryib=(`MDS><-A9fG2%NoCE!3>_X&}3 zYbFxt*iXKc&2V8$TyY}F-7oe0TVu>@yJpWUb)DJK#Q3^HV?#Uk^i3YZ)?_H5ZLAEV zWt72Armc^oDMq<1mJ@kbU`0>30IY#OkUtZat_u^K&-e7=;@QJ=3gT2^=wX5_}$~s-T8cyOh>Ip;K%RIk3Xn)Y2gOg@=JTmDo2QpQR3gAUH zbzzw?Tc}Ap!VU!Z9_1P!Uz>hG6)ln9IQt}w0++8!p5W^I*M$pb z;B`? z2Nm*k$qgZ}mWT3Tyjmr*ueS13Mbt2SN)rpdFHvs^TV^YOfz@cZV@$M>mFH=Rk+)HE zOMFyr4%B^z+{r$F6qPhqg^%c! zt#UUW9X~D?2|4t#{(q=?>#(T8ZvT4_1Oy}m=@5}d zQjrElK)R$vazLazhT0${A>FA`(kb0Nq;!mQ58Vy#9-s64-gEx+x{zV^UiZ3JebzV5 z@^Oa1xFBVKSwZS|&0@hBSvo#y)yTigB?T2NOn56NW1~alxWmf2s`uASS6;HfCW!P! zA2tf*679(uerXl_t?~8=&R?BbI);?O$iTQsjgBWa#QK_)kKxpm0%)yOA$FM4Y@eP2 z2U5IAMxF8++@b4VMcTy?tXtUq@A~rBglM5KSi&k}-`vf7#q$D_B+nQ03IOZ72*^R`RyeW1}vu>SqwEkA8o)oh@t$N`{4IdVw0WotSV zFxl9>gB1KSR72RiIyDtiDiqV?5oQ|0TX;U~Y_n>f0)ZTorErlhmM_05UF`c( z#d`W{U0^A%I^<;M60xR)Q42+zL5*hYU1{lgDVnOLUyg;3LQSnHS_=ecLyjbe4)TJF zcBY$qk=B!FY3BEy%=Uwa`bC%SV*XqZ<*+rMf$n~mF$aDc!Mr(wg zDhDS^Q|tsgT?xb|=;6vLak;nNs~kJLr%(c!QB9&flV>!JXR1%Z^)Oj43&K9-f2R2Y zWkGIK2KQVssz)C_`Y3eIy!Y!kb(U}LQ;mb*im&U5o)dyNJ-}oY_Mt+*>WcZww7+k~ z!q(R~jr|S-orP9QmBT`YlfxIs$W&=(ff=uGDsB;|gHcS}*z+L%Jg74?YJ18rkuNhb zex5q}zHR5u@4tLWM#fq)6K2M~{!nfFHAQ&@y6it!8`t=#r4e8-;e;?Q2C%*8mO6=CSWkW!wRw%xNJE)oGz}sG0y@bZ zk9f?;5E&Ftw27$d4LWmosId+DRXN13ze#pi=|R7fz(;#39-wnYE6@wCWp4L8D0vO9 z2p{YFSH8?%ct`n#rH2G4^9fPZM8?*{nV~-}S9ij3ctN5b6 zbJRbab?tX3^!;%%OwG7->!x!5x7`S4q*r}ye8m_jK8aT`RRtX#HtI15LBnjs*+tohUN|`f4CE-#Lx(hPirZq=tv>E*flbk!4K|lJJ1d?3TSh$! zFp3M;&lClF#<7oIZn|p#DY2z1K+su@-b)!4BYO8*Iq;^#GUwP5sy?iA?au*!gCSVw ziKsH#{&`XXay|yzr~cND5vEWAw+M!K+gYd0G z1RO<^W*Xwvr{q++!+8QFo(=aP@4K8Fb*We$M+$)n%$9ibzOiY1KW^0OQhj3x!St0{ ze)tKe7$08q{}c<#P)UpGiSY;auBx!OqL7Nml6aU>O9A0dzsievH9TiR$yL+yOc0-V zR6otn;8jk*v8JxV)YzcEvogQG@15q0XC*UQi zh=Q7GOc&qaL&h4XUaj11EGzX~;Q+Yf#<9i`?n5bI5uCi{FgLG9{%>jj$ZD9#sA+z) zpSv7$*{hhTe^==A>6Tjf)W0%)SzTQhQ2;#N`Uu|FGPaG7jB_{g+?FrmR^nE+q?wN+ z4mlB%&eV8)vcp(Lm$7@+S1`V*)x6u zf{Tlt>b(v&T6D@Bimp8z2p+UR%B`3$SzQ=I2a#3H0WnPT4K|3{7MUt%pvgb)*zEIB zo1|#xwLUC{NF*=X26nD$abO#zp6{A(fZ;hy?6}{W2(Mq8*fdiJ-=My6=gHJ}^O(3q zJcaj#`<<8Qfxm`P)1-$$!ctA8S=(|t*x$?=lg){T#S92BSB#ehH)zk~IQVU6^;RT|`tRJ5eRP6%c<_h0iX}ZM1S^CW zxYL63@s?%a7^~v693N8Snedy;Ni;~r~7J9l3 zmO}Ka$Plg2@|Ni=p2L=^`5QLPi2dY~q|)YWZ!Q~k<)W0hJzr)RY=);xw|8A@xxhvc zi4(*mEc51X)y!@#MR!BTJtO_PzlY|$yBa6eu|g>gZqqv&ju__$kx}n!k16}q?4Bti zYBf?^O3L*Ha)8}Qd_tt?X8)PpQc*XS40L{2S93&JgDkXsW@#_otsnTLfrUaycsz& zQ4l`o-g^GYrVYgD7wB&bifUcDp33T5%ms$ca}SLHd!~-bBwmrdmXqE#CzelTc;*@o z>1~G~kPENz5zHl>o_6NgnUcp4?SR@_0>OLE(vB8Ekia?!BwR^TZ|VEPZ_KH;EL-^% z7y0KRCzX7M>s(2$Iu4doxO&h*1CpqRwDcLKNm>-JJYvi~U13Oh;h?!c$JDbVG9f>n z@OT11{QC2V@RQH=`7V`kIV8nsWfaXYNqVbNZ7jNSj}i{p`;8ZuG+EF5ImG8NP3`6D+DT$y1#D*bHD2k;d5Lyg_ZB2G zxWV7$e{>HsWhMWRT;<3fL&xoxPOU_`C0;D=*#@hIh=x!PlU-~Hy*iGD zYwOMEOP=kEJt}}A&8Exb8vo>SyzwhBFt|vO9e;tS+4lMj`i*?i_1R`74S~b9?hForBM!ezA@ywkc#e$+igymnJZ16k%+Dz8Rgft*u-4AQKU*eFzlJT_f9^`KY zkB~<0jPO_FJqYbG&GqZG_jO=vOH+^h&K5retZ)n1KfhiIuol14=mDl(zeFGV#wdvv zamXH?jMYW`AWL6aHSdnhz#0y+YQ?DsC_`7W`yPB6_TE?|$w%6<4tYc%KzG4KAsZ(j zQO0qWb$B<$PP_K-WF=+yYx5u>$3MV&^<55i>9MukDn1)Q<+mY{DZDVehCWF z?4yTI9qo|SeY+l?8ng;`_mS2qd3w%70@u=g?V?J<7k+Qtx~{nwW`$rT_YS^w0P zxPCs?F>$(WpqWsvJS21)V@s-1O4xfzingBvR*XK>vR<}~XnMJy9Q~fq5$|SR&0g2I zc3Xvd*H76T8(%c!23D<#np^+s#XLNIkbP=-A2L(SAXYGWg5qU&?yjbRr~rNmtwUnLGjh__#9xZ(+T8@cnBy8SVnn& zMQ;x0u;zg5gB`7s5xyp%B|^`&n{b+by-K*LmPEYQ- z%{AR7CRh8LY@-GEA**{Y# z7)0%eLA-QPsLW=)I;O;We)rzXaI;UW@v`>$?NVpCUJpAR?!r;iPoeUQ_XzOjNSKyb zTR+(Uk0l^Kd^`)f=gXFvgp=ihJ(7a~vHP858KA+a`d?Zl1 zVOw)~Ki$~Bt<7zr1PnU-WVi1FM(MHE?75djkcHK%{Q;Pn9=srY|8)m#lN*|$R=xve zk}o>Gvq=H{LIE43#cQylhyf`*GbLZbK{>eaL8j296y9T9edi+Qkn%SR10t}5k$ws? zN30heoTbSC>AL;4$fEWo2(bLGEO~nEGyYAvbszn0)lxK{3bY_KdBb9_3h#o$TRF~* zAUAlkvhMNQp5`=3N?eFfNh5cC&3J=$b4l~9`-mz{BOb(UyhJ-_$@ZVu;03X&O5D1K z`pA1%)C^xo(~eE?Wee0Nc|<#KfF|vL-g|+lxr-$|R)MzOp7Ra1%$sd3Q|AXIL6_Up z>&T(Q)sG*$o-(;e$rVuz!N4me-39Mrd>E{eT=%pm9u=N%cZttEO|ZRu4;oHtCRyR# z*vYGzqT=QNk*=oy>rMi7#(#s?in2#8C&X~)j|LW?EBvIy)a)`yTd#Sg>tofc8K^zgBr!JMGd0LmpRr9x;>yKx#c7Q+h z7q)XW@1?<8hFBL-0mO|D6njhzhuXTBaerzA5vj0&ks;mqx%g^m+|B#b(n*2O7r97u zc>~~db9{&^<8F(ZiZs#AU+wWC)CVB#B(=sZ@$4s)yg~L@g=#|#tqM~fns}((;h#t7F>2ZEMZP?@Un5xIx zA?6X}+^XRtE>kSL{GhGxbRnXm7wV>6SFXHQE@C=e@gHC0cl2eRqaQ$E{aF5jhtUuY?wM(6cgYcHT}5Fi z$#m?vI=}si8dfI|s~2DgWI?C-b3jw$h6dPZ1YPByJ(p*+#O=I4AO2w^RbU4pN08^| z%JHzFHh5`X2i$;-Rs0x*%U#rsHJ*j@{#qLaBGFBOT}QT|{LTx@bp+Q3&)HaN^{p;H zeJ~q>7X;BrdOMqRN78ssEyl^t!_3CZ$fiU)%MkJjNBU2MX(2kC3|}&_!uH(C4sr^c z<3#E7tDF4PGYe+*U&`!9qvBxlzBj3A&DBW&%7J|v?F@(f#Mc*^n(-}55^IGmnff={ z95v?0?R0s}{_QQm*XK1qDNZKPNzNZa&B0C1vL1zV(>dLDd9OflESJHn1@-PWe$(~H z@7G?KO3_Q-HwV^Id0ag^j}yA&ZsEw6gLjN=7BROVs-W$KuPo5Lg*hsV zC*$ol9#tr4OVxDV4l&}kk^l6f>mFnUJ{=KTu|9WYn%ZaZjERo?nw)5jgiR?K)`jU- zmAi9%q<7>Qx~^D}9|9I+KgOD~D}|UIdVs?RiiQ%?QtM*8PTSSK0OKJW)eF#OExsa< zO!ssPA8{4WwQK96s410L#7cH|r@MRnDl4iCjp`3l)V`qU3vs+OiHam1wbnqB?PJcl z3V|IWDxO0x5WoK!Y~pD8Eu~}IPcH7BSJPH~o~uu8et_fWcLHng+AXvO>$0BP#kR7` zm=X$f=m0(TTpEMhOxEfz!`&x`W`3P-{c59pP8S z=7@nZVf_ZfWQRpRLtd!TI6ga<)zx%K+oh)0(8;vh{5^v3nC}@R!O+J$zaH#|d>hDf zX0QdX*@8Tp_Fnby(gtv+wa8rJpYbpNvC#RJyuSS1)U#83pJio{S~ualo$S8nPacX- z32ocpJTPNh_aojmNkC0@=$?O^b{(>>w+LTgWXN;aM72dUof`-KhFmvngYg*{9_kAT zSOuXI2yy^K9@|!T;KbdL{}EkMQL@?pT*tCA1PBbOfF_;FyIKPoV4?h0I%Vyq)<)(H z4;OVqf5Gs5>TV)6buUUW-7^}!cS%*5boF`R4PCiRr_>^_lajhi`}uycC60{Mafe~Qrx+Mx{w*0<)ob5+ z6S*Crz*1gomO(rh;$5;F6Qq6eO>&OpnXeB+gdjg+uf?x|uBh6`d$u{7ur;8C{ULC64D-Pcrr;8cp1v2`2R$je? zNQmiM>vR!Ms;^G>nH#Tv{X!K;@4ktmpH7I}!I6bn(`5|}2qcJ4Xe7M8w5n7&wXrXu zIa;f^H)%G@I;;dWQH)bycJuSTr^j$+Dj;-G(uT+1BJL?j?M8fVO5MdOS5HXYF55eZ zJCof@zbQBuFtt;)p1-`vLf5D(^RJ&hJ`Ue?STK4uQz?lJ~-a@akz}sedF1T<5%M3In#bZR*mM?zMYyAz-uo%7wOG59sZYOju4V z(^#n_x_l%Y9)R1x0MRe?7|x(Zf18|ttJ!7gHf#B}IEBHj2bGzAGo@F`n@<@m;xHgU zWu{OF~+JuJI;?o30a z%j2C*F?}_VnDTxzu^jlQQ}}k8zZrit8#%h46uWnNOVewbN~A1P_uJcZviqJ6EZm<5@~fa68d8F zG3|ANm0+}%{CR`u*T3qQ#F!xGo6>$C$=6v5>B#fS1|8K7aPxPnDyD9(oiqZc4FvaL z#^j5U3=#VghCYo7`59;sw+)_ImRMIV0-f!%nn?m6mD_ckhCC--cLb+{6#^} zr8E*B(iciYFYurrn_J-*0lul-$qPPm`uVqNnM}c+#;*8 zV`PZ+6x|t0sw%HTGV%_$S6{RSpCIOEqe{A}#99F6nk8zm+#FT$8D+Omlm%}0IurDJ zwOEK$m=e2%E&uQtN#y*G?UsW}T##lbc;ceHc`!xY8+tEO?aNE zgz=ZP8JA~pe@POTgD2PY9%jg1;Jc8nEJ_t9{@Mbw z<8<5$us;KiTKrF{q?RRb?%(p_ zX^V>~i9o^emZr^Q8GOPjl>+Q@8GEl8>Ro!z%3Nrs>CO8S3<()~?!Wn2Tr+tvWDy6B zj!_i6PIQ9BcAI<&CPqsi3kEj~77Beh-FEa!pul6TS}EhL8VE@*zw9XXhy(BQ{Y`M> zr^EoT4*n6=o}_`@2`BM9j&7JKPY~gUr;r)izrXJmIC#kf%gR}0Aq+FX#mg0&WYlX$ zPL?9ABV=;0OV7EXO#Da!jN7V|y=tfJ(sZwOc2jM_|LG%_iR6l{}! z39A&0dCm1x#EIL5J=`VL%o;A4&`z)ucng?#?qb0r5IpIkrqAN4}_pc$T}LW&%1o>CVRsDNUW{ z(&ApAb^&v0M_0*uZnproIO-}qE52z+6hHT6IN4sh+ejt|_r893Zj2f`DOv}L!LdyJ zbN`UUq2u{G+Z^=om$?7v3KTb!84PI^|H4!CB|AS}0L>1w9Kq!BS9`poZrx8}6yl?t zSKv@a6M$QyvyxPFNNI>6@F`LZxN>_U0YX|5cZ4jskmCsSIPf3;fpFG9ysM?((s5k- ze>jttFbSYVACl_uHnNdB3~KRq)UUiAZB+*Bf|ea21WYaE)|XZ_hWoO zg5w`E_CMdpgs8>_{;<|@KKyJkpx<#YF{N2MlFWEU9t(yRAAT=MpJ&4ivaszqG&C`5 z7xQ3x3N|VFAp<7V_$%+2AKP=kH3)_P9PuLGfy~)0NcKwr2b$*p1(zfw&>(PM6uk5g zOyVBF-hZ@+;;O~xGbAL=t1mx@_bLgUR9da}o=H>s8U6Z;8Z;INF>j62I!T=s%pDq- zm^NItI_0c41tUqdJ+BSHB|nY-M`H!{2ZLW@LzL@Y!+UBy;HXIcO1D&w_`e_Lhti0_ zeASfC`QNw4M8Ch9aMv%emj*Qe`APov2Q2^eWANy?dr=HYZ&5+re{^Q-USZ*cp&lLu z;yAzNf23^gOnr;vHE`C2h zc6+CK9*&xVv;wK~q0cWagWHSbZHIV()$z$sFV^y}L4xJR@Kg02_jr?%=H7pWV5Yd+ zCH5MwY{W28!^=j7lX2as#AWj4cNx#5XRdHX(%+oXZ;icV_u9h%pP=3I1wVqLiz`0@ zQIUR?udXOA$%l{yM8+i02yc$17En{;cSp11<##u8$Xe*kE7w(0NkdS$#j(FSlL?2PhU2j*7}A3+69wDN&LF_&k)xdjC12Z@_neJ^bg4+82ea zOrxY)8gIL((uitJ<^a=Lv@(#;Fw5}1G+)1VPeWtx`E^BR;5oeY(>)##rG;u`w4(CZboidH>PFx5e9@waUv%f~cc2D~S%N{?6Wybrtu-jClKE{@b=QX&@4I;m z@gD3N;PhfWPC-GYdB2jCjeTCet57k1#>W1WXoQ9*PvKC2EjiaNJp|4I7^p%FV|A-dXFruc+Q{{tD2G|lZRIZ4 z$0wO9{86Sxrpk_Dw}(A4s^3YOF|io&oV{=ubOJiKtH zCcbZ-iB2H)!u2)-c3LY-LHz8AcIiaK1pDlLZkiioLhF#?a-q-8$#8tS`;h1{zek`r z68AUM6G?+Fzt$rrn3>Y+-cx8U0Zx$-7})E#3nDDppaWugKFlE21RjPNKHpHOh>%By zS4+$pFFf`nw9t3@xSIP>Y&IGF4tx&;Kh3%fqAoYjIpeLHgD8Ud8>*d|U}*&x|A*n4 zz=+FeSpK>FIkXqcFJ=F>1h`?Z8A&Ozb|O!8+Uau!ew+7c@fd_#n&;<+z_M;_o-$h_ zwZ;h|<6e7K<4olq-(P7&eohmp@uNxS2)oY%h(DZPJtF_g!z z8CI=7!U2z})5}OU4>;nX()B ztL)^O%3jc(W@**CZ+$ATO(?6*qb(k#=~CwsQ(uj+|51SdIRy8Frm{?U0+SZ{iOR~j zVd^D;=;WAE=63Op>9y<4@#h#4+J<9o^)w+CKp@vJ>%}Z;N11RSdIEa5geKnZe^Dc0 zLjKzW(&^Vhw@-E55j(2h;&kHjZs2m4RRATVa*M}xTW0C0?<9L|>Nbqm-1wEK4IG#B zxQ;bpQSTG)G;dmXg?n`TYR%29&zo_W#4OUKKZ=&3R~c#43lI3oQMDmSs9Ves|1j&x-P?y06O$AQwk6WLo?69{+@tyb(1nJJ!tzA)2SzqN#Q^du5kB1JS&v&_n_U_?Qxet9$8O*=II&^TPS7hxDPP@WkfOt0H?9XGO` zJoh=Xoh8%Kpm@0gcy7??X#hL!-NUxSJsbLA=aIZ9meI2A3f9u_RkIvSJOg}Gh8zp_*BB=;-c0egxJTM zI_s$k)oC<9$2w}U4oW;`q*Xt5oZFxYTG1lRAEufhwD_*c{IARFb;^>;J*E`fBpR2F zC<>t;xYru)8H<_!K$0h!tGlu+Az}19~m=K#!{aWu`{tw#Wy1RyQsU0M1iw8 zE{}!QAf{*!Oi0Um4Y5)`V(yaeu&?j?&MZ|))9D9qI;xU)=`PlViW#2Bys)&_pAZ#@ zpi3z6i(y&o%gXWJzm(N?2+t+Sb{gl=ra{zfByYoTn{KY!2*sMIU#8Dm>bk6#Szphx zZJ?*N|6zy_i=RY?y_GpqJKb>s{-fN(eiA;Oxn)L#)ir}c2BF1R;@3oY(nIzlAK9FL z2dMYarv-^l|JGZ~OsK2vn?gttbUR@=KUW)fD+SvdawpUm`%OPel{sn;ay)6R4!i#b zl0D$F2|PySs1d_c>RC6#?o?~A>_PgO1>PQLwb3%qr>fSj-gTg2Du>p+_*>dUPNPV- zetSozB1cKSGJ&Y{t)jC9RcZn9hetaKJ8mDHjL zCrrC9cKoSGcZML7JsT*)vYzf-#i)GixqZOwppO!yi8V{aOZ*X8-W%fhO*TT3RT^9X z#UXy_^J2^hh-f?;z$edO(ebJYkC~%hjqe84Y*K#ZQalszYy%y^myUeaR5wkm^iCdv zHJ5MvPwtqA`IZaLWt}Fdu~wQveW;Z|j1-@R#GiU#XBWf4?G_a9VI$>PeRUB<%4|yU zkR5-lJM>J*?2+j(Sz=_8RUxP_Lvi!eY7~VI_SVhU6oRIphet)Yk+AYWjVbi4?)3oC>8Z|77ECpos)axx1uRCj56tuHcTN@}X z*5Vo%-6rVs1CKs!P&gff;!P$$MXRRV5!*KeV%T(+$Bo}o-Nv}KvDh^m(uHrMaJwF* z0^vU#@98vxn11%j;g~u-?Z%7JK(0%O5*6pEcXXx%moTAZ*l)j`_NQDt<9|UTzTkx$^J*siE9VMIbqfn{t zV28ko&pKj`-$FOHdd}VBO?(eP?Dg%sl)Lp<9J(E+^}O;YC6FWF`3`#e2SgOU#xH`0 zX2zIavQQs7jN^776N%qYxaY6~wt)uez;W^K%vMC$7Yy>1F?!H2sdT$v4giSQ;pq%E zd(8YcN_m9GllHlRXyc99L5g_SNu7PBd`4Ao;N^>P{MOw$uM#gNHz2^a3j-IwO*|a1 zdMJF!vF)MPdrFS@!?^#IFLZ&piWo?-{XLNNoz@)Nq2!}Z)8`)K$SR)|I;qO=Y3w(# z*RDE$(kwUP=Q$ec$_2P|Ysw>SZQZA1Xm@5TXaBlv@8kzb&Zqs3Yp+RYM4-BQ-Mx(Yoprcr^mp zp!@|-OQM6B&!;y;3`5ou;KY9eN-*U$zNSThl1de3^EoggKkbc0n@UAnSpGb7?0ND^ z@WH(a4BXwuy@(hWGD3|;Z}>Ojm9bWG$P zR+<)^T0hz(f{=d#3*04+Ol2SXW(c4Hcr3#N22@mi-c1Nv7$sAeDZ97zNH@~-i@U&E z?QE#=vJU*vfS2550Lkv?zY?2dvD{hs84YX{RlDsWA-qGuO)J)@>Bc#xlQ z;)m$ga$EFiVGUJC@>HXveh=>LGJCVuLNA@}4)pFDeiS(-1L-<6cAGG4oYG{nzYiW& zAcI^M_H1n%P2q>Ao+p2qqam1-D%P#vv|lpe_mnqHSN4y2FJ=ob42|YIX;#q>U8Xt1_e!=1vU{I> zU)>&WN!#C+!HEYqY#}2pk`>KotQ?Tk8#dK9ab&h)NlgX&ldV}WOy}3kiOWX`GOiUD z4^zsOEzyzx#woj>TeX7XGobbiGjYv`)}K(G!^!~Y1z8Df3T5wHvsNd{G#;YIcE5x{ z2AI!OB5wh~N)~+Z}xPs+w>Bm(0yM4K=1Y_7FfN-U0|~oJkfj zU6@V5&zxtJ&4k6?4M)XpS+nX7j@iL2PH4-%!MYT_QANKvQcQ9wKUZ_={eF}JCuM)v zi*3e=NzhQn+YCHhd{U}myPgg#K0{~kCy*($-pLg~K4MVrp5b0zfP2L8u_n|XXc$*M zK(zOLb)pu2EksSpQ!YzqE+GBYEFW8j!`$A26#dJhW0iXl4R+^~dooc|Z0&41-Fa_y z42J`Mg(l!>@EN|G=}vPX}cU_Hk7K3xLB2m);|PZMiG}>w&tFoYf6=u7a%{g zYCe0)B`}7aND5b1rl2hhUpWu9J2YP%5hL}7^7c)fmfv<(dApef*l`7mQSBxh${^@= z8*Q(Dm2&BlrOa@NI0f-+nydd|>LESPaBY>!UZ!^sGbGsb=4tZCd&gAJh!5_(GijAj ztqv5i_rwAkXu$^X;_Awt20k5i2gYandrMitQ3>9MrJVw6L>$`ocU@G#x3a6dY2h=j zz7S;iofc29>box@_r72};NWTf3{joi%YE_$j{qis8?&z&Nra^`cMqL1=CL911e5X zP_e=nD(fQVM3KXRLs?&-o%qGbg8us#o|za@bO^CCYngE5IuC7?>qyt(;vm|{;ZIJU zL*BvxUi`U++%Q?*;)-A2zE!(W85yd4ba27+&yu367f=r*N|!{7HhT8=f^IF;NN&*+ zP;p0O*&OXtNCdkz)Upu1V?B$L)PDd~L2*v^QVBKCenxdDllL5bBv zrzDk)t@DnBb;Q9*@EMn&RFk#H+U9X0IB-hGfKrxTs~P}^b5CUpTojPpFNMdRnbo@> z0*8)o8XVUL;qctFGHu$`^2kp?!k9p-8bgffM>jbB__TWNAEj5M`L!33Fxt#l`2G9k zuTRF~Tp&-xS^cg&)ZPk@RHdeFO6piOxW*cPlS70+xylUmt z5YLWioOkLgdU#5%1|4iY<)g~*va#m~Uxj?P5ukOrT#lhiw{UCMAv|>*;+X~Fa|K2H z6=fVgyIKobEca0cULMK`LO6sX*Z(rLlbojE8uxiMi+R3Lw2b4vIN-)Gvgf~C8oNea>t z7FdSm^kaq!QO$KVt&SbG3Ry7zhy*(0w73eC;bf%u6@@A7zGt}{=Y4cpV-Mu$?v;Cx z9b9MM8XYjTDCZ7(G_Lj;j^%{`kKRP5<6T0LA4Z}R{GLGfu*1yWm!A86ACAk^#bmZG zpV2L0=z<C~%;weY9&7tTD{nj)sT`TI9@SAbO&Tf*RG`d4WGmM` z5~pIKI0A1sRpkL(UMZ?%zlTE0)IYn~l}3^*BU!SR&mvc4^WQSM%t^!wYC&`hd`!JZo zlN*~@i{b_y8cvqIGOD77*G(m`&``A?F-5#6Exsj5NnHEzSuYg>w`uq$q||?+{k0D< z`rI36{d!`&$nOn$%B!paL9LeRMnADtNNMa2AXp9Omi|0MU6e%7CrM?8hD5#T`YeYI z%D2#GFT!A3ZG!qD$Ff5%0|$M3lBN~Ck*S;YveFkDqKrYJYv={&PpVa=s6KG-=f1Nf z+@+#=!}_sDi#Km8%h`Nd@~ZofV1@rYHNU>Ypu94>IhQh43%T_YW4DNj#e+e{o1z>b zO&=p4-OwG8^OcW+Va8rwox*PO8IBQ0aq0SsKs>rcC>8Q8#|zRMub!XZi7JvEJdm9T>3Y6Ls&iu70)2$|tQK_*P_aIEBVWJ2msj>Xs5X(Wr^@4LDbu6>>5&w4)Vo6+~` zOt^kd&|Ff0r;Ab8Xwi?1XO7}5FRd-!evwu9SAq2qW15v8T#m3^;tb3!8oo;;>-xlDMeu;hYaEDHEUBRtX4WEija6LO$mCMot zCIspFOsp)(|2`*v!D`3y<*XBf3Jqj*R*Y#^z_>39uEb@WtfRkOvkfFi7PU>Z{ROW! zH+mO#auqK9k4xPqK{4%=Ijujxv)cTfp=!4E{VtnHL&$<)?BKB(XMVg~k;cqJ3Ja|3 z=;_%@`n+Kc&!M#glG}H23!x4@2{g0*K_B>vj7NfBGPgFPi;COgb?C!+$Ty|q;b#a?BC&Zp7pE2f=(@=4>(Fixou^&4;Bw zxvf98vC)8O_5L8cvqJ|jr-&&Q_%um&F8;77*HcP(IV)g6fCM{UapJv_b=RyD3 z6@S;^wv^K?_3ElttXiv0T)ip0IAuvE9z9Imr&m)CmAp31vO97p(mOY-1nnhmQ9|fP z{o43GiJX5ll=1Gym>UTC92Im|Sw+gx(7e^o=mMOF)3jKzB$TiY(-AMk>N!WOCtn-U z*>@F^#8sjJB80hVF4)TU`37NS=|rTG$Fh4akCoY3Q#1licQroD1@-*L40^r=A2mDM zkDfWWFEZ5caR~2(o$Ebr`-IK8GAu)Tf7_t8KiBfTWMAyK)9R*+ZaD--JN$n9SQCUb{X4 zxU>FPWD8}6Zj05;id8jIuc5A{`+R=K!$T8MZK$n=4N&KTqWJN=wc zwTx3sx=E&8(-b*Uul&p|3AhJ2CpxW4@mIKlC*rgiddRp9AtU&Z_I^j`0BE*jTU0fN z@`i~#hbB3(95gN_|WaDo;W#n-0Z)VpdD6i0IE@D*KR=YyJZ_P0%vQ+>LSHW zzS(pNYLr|ewx56pykb-{Ew$-v?&{m0_Fu;ny0&DEZJ})}9pJm&fe^mi=9oR~Ef^Sl z7xol<0*3Ye%tOEjk{8r?E1f)c?5HB_0H5pahRqg(Vx3<7oMpOXuw;$y=k{Is^m@{7 z|Ml;j(CDsDvR92_uO=%61Aj!yk@&RLkvMii`e8zp89a5dK+l!){75@Wrgl0kZAU@>;Kuty)X)uDhGVgp(;^wDG!-?LI(|E;O(6>*P znN%RHlRO$%_WxW!(sSWx3jw$%rgsVQ z-SbzaB56AEc8j&!I6JoIy{K)c&gRyY70R7g%zB6ZWjA?i6IFdKu|%g#Z|DrsCe{DY z??S=j{-fp@gAnqr(cGtCLYV&3}_vXFL}U!5||NRe00A^?p)VG z(vec}wrO+uJcJ#@8m(AU^wATP4e5K%!Y1E%lp@Y<&gLT?|3066XxVKKQTeWQ(<8qO zxqbc&Yn`q?!&?Go8Hf7e2 zt_0djxRL4Z7Swq5kjRAfziUS1e#~5K=IFiK4iLAkHrkWEO|aA;lw(E8lv6t?s~o$% zAxzhD^g<9Kvd$bTb|`yHa1ygG`pV4Rc$sm%;rK;qX(id_XTAZN_zMTTlt-Sc$REkM$;yW8i%e|-}`OBtS zh2~7yOKII;7-rOA7TvmFPS5m|!ncU5wdzQ8=~uH&uLoFwK^VB+mdpx*{`i9-al5EY z^X)+MOVe&@$p8OZFL9aqINshdd2L5;MoR(nTz8vViehDb{?9#Qb6R!Yiu<}MQO8Du z@t9SgcGdnyCz-usE2iJO@K~2@Wk^fVzxTK>wcHHv=73K-@Bc9P7(W4q+-0D`R1CV0 z!0lf?l}ExUb^5ODGdUT~dJ^XUoH7_+^QGaU2Sr{Y<%A&E?H!5C)XL$pK>RVQq?eW$ z?>V*iidrKEGXf2ZW@JB#H(!1&j6UO+WCG{uF_-uBz8p*CU)dLj!@+`fncyqkjIX|1 z7~Edo#u)Pw;K71WxNZKnP)AlBOs|(WL_uT-HtEtMa%aJi%sMVNmW$>QGcI$iLx-C` zpf5=S0Tc5CBMvQKYY$+wmPpsbhuG>(^#YuFav8^;wcrRI@T^*(&T6TN%>4g4ts4v( zZ|{7nNt_3g(x=?uf?T2xML2dC|2C}YuO@ixS;YKxyxyhn=2&G>l*@_E!7y9ZnKvUt zW!$q>x^04s&r}kdVN0y?O?#IuHYQ=iWr@J-b~rN^CjpI|AeIltlh7Cv`z!_FMM*5k zBA<#&l@*LJPU;9TMC^2Yhmm5^AF#i8g}-;{N8?5XYU#X8=FEIJs^L?cKc)sgz5vM8 z;6F?By4MZf&3nBT^ndgH?)$S!a~m67z9xb4#LVXNYqI2~UN;U#WeVx(_%f@-;ZQDk zUGb>Q(*2}DVTCR`5K|$zeTg5b^;asIVU2u5A9muJz<3g^Zem6AYIFtS=FqPGkl(-k z9Gt^QSR6eGSTZBdc_t0Ut)|mFs19xrX#M4NT69hbib#-s}G> z>&oMy>f8QEx3Mn~BTFG$*#?Oa5f!p$i^&*E?kHn2*$*|8#~@1-3b$pr$-WJ;#@Gqn z_GPSN-?PQMN6-7b&wYR1^Y=N|=Xb8(_gu^OI@k3ptDvn<70+R7(vB?EPTHJWgrtsj zJuH_By>Q->pW6*0JSpfEd$Q z2GzF}uJ=BPPsXf`BrkK<($(wKndhbph*K4wolPLiRnSiti^n}-W-1EF;(}r$STd8r zFD-K;2BSpD=5__qQjr5J^{2RRwW-j=8Cllo^ZpiiSOSfC;6i}a*gG0Y!>AZiWLRXv zL++9yEh6C-X|W1_Lye>bEN7S*J*xRi=%5MOhEDio@(aM4tnS9h%tKN;!E`S6#ctAj zc-To%&k0k4sRlSzwEnMqo|T2h_5|eJ%<$UL^?hW2;0mKbb7u?XkC46bObV8y^97*zcZ?B5m(+-Lx{t>P-L>+tbsTV6bn40NEo$QS^Y?=B#QF4c>c3;DE) z%i7^Lu1y8SzE-QI5bq}?cJ%LQJWkV?eLk7*pJ;bnZDix=Vm@f-C8zsr{<+{!FVH3I z*myrknr5FD%pH)_a{QbOjCFB}6r38QX`0#wCX!*^dNja#j2n-Gd9WT&bKE~18oDYu zig~&%k7tNYTNhO}wn(52npE>bZs|wAzPb1 zuL8Y;Px$e|w3iI96rd|bxM(kgn{XSh{1CGPU)X=tTm5J(3v1FvmFlxHpVX)e-(jOV z78pY7K?13*n(Igg)pvNb_K4q1IYkR4czn`0-Yqwh-vKwPqC8nr)(~sm&Q7OdUj{2& zW)AtOdx5z^tzT?fSj22!K<5>l_gst3IE}|Q(S#6FQh^0! zdl$E)8GR?z&a118WdfxPnQBT8oJ~h-4ngrIxc1a%rC~l{8#ftwLe!RpWmTL6t|M3> z+)*$__|)Dty_XDRUL0q)9d@nxja~B2`Hv@hye*%9q0$mWrP@XB4YITUrC5(_cwGep zEwH9BQDc8w7pq=^J_x(H`(5V4M-0SjIl}`^5&#-;aKUqP3WM^p6i1}Qt0otRlrryS z`TY(2a|wJf*=ZHAm80%_wB(@NouP{Ml;=*O64=y+C}KFNm|KCZR@!VaoOH}8=j+3i z=T!rnB!fj3vK~I|y3kUyV^bzsO;zCla40rAxq;Q_>l8mc^pKtP80HfJ+Cum3db%_F z+PY{e*A3RBhi{3vimymKIoPk$6je~_RzSRe7?>wpzT8IDu-Ti*%1^Mx`s|x+^EO=} zk9%No?z{n)wwxqc!MwL$mesnK)6!RcCez5bblIxdy36Iit`+!CB%D}I^rIv%hD8vP zw|h_7$x;Mny;muihsmcEF8kqk0iJl@?~46VnqCkCfbTrIa*d>6J;u_Lp9bb~fcl;)8w?nMfvulIm$ug+=OCjntPXPAuU7-UKrbWv;csqPJ7&0OIYeVP0a zezw7U6>i7b2I0fF{+?v^sHBBDzi}3pYCsYSVQ}V!%1&TfE_*Z@r*WQN!8J+Z8WP42 z?3w3nVIOWBKCGgo+fHwmREhzI8pRO8g=2GF?m!U(I&lk!+qTYlwv6;TkAjA4g9r^I zK}cS=IHV}%hAVrA>d$Wd(0BN`x37m>*lM|C&+%LP3%d|Yql-G<8I#nT|A04QX4 zHyg~W$$%VIZ_Tr67W{o6ksoNh7f$$4579QJbh@F|MNh472Tkh7{ehxo`3bDL8MT8! zA5r7+SMb~jA2rYuq=By^sa*0QlW4)rY)4z~R@TkwOfv}$tjQAYtYN^cq-VsXnli;FdKe=bm4cQ~?~xHd(GTuLVr-SykehkXfO(vp#QMM2-scyC5( zy1>sJ&e|D6sNucV&AkIzekC8TWs85UUyeGp!0uucKYL+B2#_;@wsjjnwAp?`pbcVH zpI7Q~5@dy_h=+}jC+Ll87H8^{w);Y)cQ^aQUzeYv_r28u0&LA1j`oDi&c8}dE{SBA z<(f&R&`O$0l;@+#!Qt&GS;SFPH&{p<$(qXc(o0B>Rn*>9+zOIfEqmMNvbOt}b2HZO z;uTWsq&@%=bji7v#{pFwAl<(BGzBqMg!$MU%-vvG2%kdYHQ}uss+39`yLLGjRyxqL zryQtIhTQFOdMmZ@HFp9H9`3p|FQzXY=)ej&SNK@$cI0%#6}Aa@jr=Ve8SyzQBC}^Z z?VPeMtbksjUf4j__)|k_c(kI|fI|GEHB}D>z~wV@%QRcl7w$lAC}gg1pJdvKvUZcB`e9gU+!L?zo3pq9sLO7v5Tl~Yws8~B* zshK@@Gj9uiVa#i<%B}L8_rlgn`6~mT!lRU-R!LO8cTtUBt6aMzZwG24L?lXwRa_be z2&}iVGGj29(F;l$R#9MtH+f&^ieI}cFH3m1pviz_5DxzzRz*A5Gmzvl1(>YrB3Au{#$*`$_({% z@jpTtJy5ld;x*5?WTBA#-mFe1<%(~##9n^E5phvWD10k8bg4{!x{XHj(+X@rjAeH( zfK53YO_$MVu$lLm^1i&??A>7C0v9I%jh-(&2!5-Nr!k~`QzHPGRek<+8&Jf54E#%_ z>!;DfADMkhZ`~F>!5r(gjN9j^gqtd*cBHpm?gn6a2OLkma#sa1b@kfC+1X?-18*?C z@GyC3&_Bjv1k%5*9Owf z!=@F9&NqHx&5h@Jz8v6P;vvMWJ^7I+#Z3?IMM&82mfnEGT_k-ru|-VO5Vv6^eOVLm z3rO}m!;P@?5Qn7?L(gVki4SQRa7#TM5<2UA_1M@M z^H4ed*caRmNuL0uvBrA;8jep`k@omC+D>mreU=dw4i9ZC1Y%}|nx+aIr5-LR#L3Et zirVs^D&2n;#;NNjrtLo2ej~&-quBlH+}q>W1K^p8lT4+H7Pn)-^2meBs0jGpz|Xnt zvG2Di%=3D=WZC#z&)Jmk-@9+KF}+?3830QtUyTB@($^`o$Xv zWeCJp*aixm}C9Sn@YDQ#!j$qc46Di{`wUb!4?> zVp^9*X3s(&$mSD^9qMueTZ3FPi=HEm0zB_l2c9b)mf!PjBfGA;1RQLAbsCvpOT%P| zD+P=amQ~o)yZR7UCZDVcfEz;Ex_LV?x-P*$8fX|cEl6~(IxV&>{vP#!!~(ZAnH_eu z$PqT?$fh?xd*#ge;D2fAqzcPP(@z=KPq~g?*7m-=V`KRJLAywh2$#P!A6jlGNSe^% z?Oevu?Xg6XjMV$zNB%9L<&^Mk(e-D$YJ@f>PF0wK!v0S-a4Ov1h8^ru&W$jM_p_>! z={;YNtZA%#UhAiMyGSZikhIY1bCWCNU<(oS5*rlqf@=QfKh~vm<~xm?(zKtZ&&t*? z5#z#nr%Wd9M-W}XgS>y-mrn0L_k^SrYQ1JPEtm=85Hr~m_W)dsMETB850@tuhdi%C zc``V$5|CEvMN;-ZF<96m5QX7Doq z$2Qdu(VIi-hu*By%%S1K9~P3Y6W2n^VqKJORzn9WEsFlD_Fr1J;IQWb4#DZu<6m78 zit3I7_oMIJ{{-gCIHuaG??g2BlS+E3Q{h1s=sBv<`mRf?zU(7~;i8%GExZebLFumg z##EESSF}^v-{gMBfdNup)?ayEIe%CFzqRHo6cn7oNhAAgLQTlOYZ-&tM&5X0F&R?& zr5^1~FEu$-8?d$BUN9mCuCTJ|sh2WxRlCIA2c delta 39092 zcmdSA^&g|KH?X`||9LGxW$2j-Fh%mEGRdy<7`vw3q!1JfFZ`{zf zQUV(vC=8s;-mDL_1L!aMm|j!7bx_P;^7URy9=i9Q%(T-;Hj+s+M}dTb;urosN*!Ns zs=x4E*Vvl=sfpCo)C4idKFJg9wEp_l3n4FhfH&-vuCQTcw9EDke)3~mTL`i19D&f4me-;y^ip7q{|5OIeo8S74=JP0fbmk~x4EFyYtN{GK zd!UHpgTvtQuy(1eyL`D@nub36&vS0{C$lwt;wP8*Wn*k?ABS9?@9ntnE-zoYGz;mK zC6xB(fj#5dq>FMgxCGQb<041%f!*csIQ>}3!#!5{m9oYK3zL+j4EN37NXMkb7;OXH z_1E)N_wLuf|8le_%SX(m3JUPy{)t(&mXYzy(c@}F_0^umSIi}DPMUqs@%JYF5CR=x zC^Ky@j?~rR&{lzCU+>K|D(xnOEvh_(3%k`g>&349T_ow|Y8MQ@U2cBk)wb;fXTGPjZ5%#t>XYt|(&hOeZ4wiF)LIw^P(R19 z)OXu&-8y%e_*IH)vqJTDY1f8yht$PZ z`MkiS#`^7|(?hWU^*!2vRLghm39(Y6;W)43bl@D&dQ+owh~w9Bf9_UT$%X^o)&nl% zo4FIgx3>cvJch1=xqMmI*}M`%Z^QXU{(!04dn}SKDiOX!6?Gy>7=Vn{nDn@htXkAD zv9pplx$xZAW^Ni@%zy#JMp{cu`nbsF-sXL2I>9HpAB0D%Es<^L0LSTF`Toa+i^?w< zH{1PwzAUICqo%@C?b5*Qal#ySovi$>1jryhh;M;M!&?fs_r}s4x}ZOpHA5q1n1p2y zOzjXjz(z^*YwbX_@(YKV$1PTDSqzHEJdjXZ?wlqkK=)*rw_{Z4 zTra!B+I);~fVvAy>Zk?VaH%QmMHZsgUC)!nhAxx7C9{*PWBEx$arHY+)m8+dr>&SY z?y}LC#1?sX_og6ujuf)!<@DtEQ&^YP0wwd!Fv5bMXb?^1^za*!xA9V`%^*RM8JNpm zy|7_)JNaM%PPRI}8hKOH?T|j}cN+-J3rO9a88mPAYd2e$@&520uU{jGi6;&9FOCa$ zy?Bx4ec|N>bXVP56AHl}H!J(Sa7=Y!;_N2qA#w?>>t++@w6Mf9>0at#ixfwFJ|ecg zoHV!#qI<{PJin;aJk`rD^hr0N$Z5{RZ=?;8lnF?=>ptgG*VDaf5NU9}X)xR4<+b#h znzuPqd7}h+%1l-ADn#-d*l@8^JMoo0EzuL)c1Ahfh$q+t7gqK1)O&bYV4%Jj(50aK zGpm%%ysB@S{D{nIx2s)`r$iQTU~i`DH8*S_}J+Gjry92$FXaV0^t z0XFOeB$+DFIV&SfJGo-|xqltkB#+JV{K^&xoj&yt;FG^taKd|CdQ}Zxg+5s>!{ogz ztegp;=2d1%W4YQnaW!>Z*@+&&{&CSfxoNgUzF2$eG3|=|VxxK%4aY2iNN2ZntYN~B zNK)d+?ISR^7%tt{Cvh=lJtleFrDfol0_N6i*Uw&8_XLKd^4ekHp+TdC-E=uv6l5Bras}JLWM7kj)&5&B;4Vh-PmSn^S z-pr3F_7jw)z0;FR)4SkIhX8?_Nqy;2>c)y6U z3gZk51Ap5ndhsvM4YVa^EiR%j=r#BDC?i$lM9KRp?Vm+jrIOrbgfLdXEH)3F8y4_o z+-NvK5L4+<7?|wt68gMP0mbu`#!Y1C8Iggb>x}cpTe_Od&*%WCDs|+9=sTxfw&d^= zupcij9mQ*xIGbl;{z=S&j`>6MY*vCl^_cwo`19K6@;ch8$od`XSyBEY;^SQ3dd@-Oh&Ecl)1yyX<1WybuRcbR7R}lX^}=U3(11xYi}dBHl^WWmBf%Vj zv8pNa+7Ejy4*y(BhERlTNh6MSi8|v^OT^?5;ebc1_W#(#XO`$T!6$ zv|qO2A(_P%Z@9QoURo1|TjuQAW(CIib@WhQhn?Y@NG0iq8}HeEVA(SYdOn7uB zQx-AfG&UUMft)S}n|jM>%752e`QxrJ4MKER)J%KoZhUaG7qVbT7mjk3n?pL?AedWw zimM7%a3mM{bjWVU3(^fS7xmac8)n90`;AB?#%?qB)#+m?NmA3drwQq#XHcK z4zZSYp|tsqBYXiXyy35=_TyYZH1M1fOtL8*sqp3loo9@b7|pt4TQM>_GO#q^0dsd2 zzv{^|Q1W_l5V1Kl=5Ys!v^BU=<2;(x0lwok3V$*uz8c;jK0jP*S=#jBKXW@WIe5Wb ze2{1Qy`!Zy?!B;3D(l!danDFe7OdyD*UelDQE<45CvO+F^JFf%5oHg?!5{ktd)Uv#g?}}2u!JxCydxSE zgm*BP#t^$*d*gHVf`KdACt$=b+DGHt$VcUlQ}@m7D(<(}@b2HpY!||w#)T(CJ3?n9 z4xrs6O2Lc&ot>efPD>n#VkfNX#-{6a+Y1z@*wLXNs)j@ae$C6P{4xN|9#x2+gRP&@ zX?EZ=sH1xe@v9%r|KvbWk8u+>?O-SCieMDiUk6yW%a_&OH2JQACpyJ&3$v-SL&r|D_&(XVllKsM`!! zwf!(gC~?G%WT+u&NH1#tQ_%6?O4`8?rrc;^W?MR2su?R~EBhlag zGlr$)xo=?6vqHfuf|M4y=!IXPf?kAWxr&#|)5_3pW3mow*HAkBW2M%ypR_x?i9k4llq z%1f%XUjCO6e%yYV*ceEr`7}*ESZA_9`q%RP+C`pP3+og!AfLtMQGC>+rMmXWfJ|yH z6PS{r-(zL;?xpn~rN@C5*yqF(KjKFmI!I-GiAmgkm-y|1Y)Z`JC}S?J{&JSx&?ndL z>V&q%Pno1$?mzpf5<#g&@QqOk>kY~Jc%`fuIv#T#{w+KTaN{;u)ZyI-KxGCw6tKCL zNAN7Eg&z?eSQ`&(?i-G&9N%$hOZKO`gVBh?;P6vYY`a`_0$ZAB`UCkh=NX;zqBKn2 z=5JowE@WgNs?EnL-`oJcJhD)DS*tD0m-3R);A(Xui% zbcZ~#mieCJuireV&4q2gHUD^6{=kQar0CbQIwrqxRwOoD9dG75lb^B1 zA@X@|{Zjybh()9q`Oe~8+To4D_@fR=Fnvx^7NZ<|ZjAp_M@PmRPdut_5*v_c_i4ZY z^sg%N3V-bk1WNKBZ?%_xLQ3`@7<+zcunm4_%vCtCZz*0S%95{~-J)b!WbUG;J?%{g z?pV=*2EK$EjlGO?o)$I@fI)g7}FFCL228 z4?hN@btz27i&D$`C8a+Is!5}ZJGzYXFIJ%Qt+U>?35Aju9~g(Q7_M1LP7*aD3G-7tv#-=?P!_R{SxgRq>{;cMFU9jB3&Lz_syePl% zh5W~lWhx>vc%-sy*+)ZTW6S-~irv2m z(rGfS09dVA$s?R6BE^Xwd=e&@<^{_5ST+(Vk4LYakBsq|JRFx~Lio0x1x^V)NcLbu zmI6`BR$bvvTAjNl!^@mGwd8QJDMKY>;#?QcbyNy#_9oyJmZY+NKtM}it- zxWAYj(;a(EuKWnp=|eO=D>VF7`pcO7oSKzRYB+e&P;NNK+I?LyUnwtYe9-mG^yFI# zdzfEFm>UuPuQbP*L&5iw7qYKcrLKC)U&rd)!IiFX{Zi8 zvab%66Nbw(FdI=Npyx2Ld?uOfV5VD;Od%;Rby;~Aa0|omg!;vEOX{)PesSw_sjD>4 zsNmsrZJiEdMw+qw=dA?+Tg<*lcyhiO=f>XGuUX4TjmC@Q`~K&nIc ztB*^ehUwcq1V;TrGaQy>6G}kS%l?yTDFr<>cA`BB6eYYbH|T#C-WqJcT1YtTD32Tr zP*D6jH5sIW0OLBbYw|RwTMwT;rUv8)2aUxpY%GQvuG?r`IBp(ey*uB7tYld~D>g@n1$#Mz5LS>l%o9r%X-B*5}riwO)yrzS_9$ z4%Z@-RP9~6!6hCNZEQo;b;X%sREx@la#1Tq2RGx3Twz%AS*skTViB3Pa?#)*V#X}{ z80v{yCnHk$8J756vJXgxxMyxln6KVPjz6M%hk<{?;)^_+&)u|dQ%G1@L1q+tID2}- zs-E4zi|2*KBUp{wvdKY9Bf`L(DB&SJu(y#DV74}tN#t&{H61R0#I29wfr=D)cbI3D z<^&zlTehM3%*Wb-wMAgQ&0aDi)hoU27+Fl<{DZi)oD0o&@!<9Xiseoht5TVayYR`U z&Ytb2k6L-<^d5OKqCTiro5?c5+Fk~0bc9iFL1`lEmQ5JKnwuOkFg=cKPtN-Sm7Sap z|3LxU{akO{snB}7d5mR+%X-%dMSavN_xrFv%=@A+c=N#Ws_=|!_=*8M7X zmdFJ6Aw+a>v;3JdSfSvMK1T%B9OOgAKftEfaYpPO=8j*aS4xw9`g?v{uwboxF!f0pV^LU(x;Pk zm2V0q*AIVfj99Evoj4v04fwjg^_P(8<>Ha$LDJ-IURUM6M@|R-Cg(D&w`TTTZ+VvP z{I&R^oTA_bHB!dGtQU)r*?o)@t6~p z=1Z=b4o6%l-YYT&uKg)?4bwkE=F3-E75{etpfAQYgu^RxrX1=7OjiH=8SH#F zJY?3Gn3l8qPZ;ECrfr+lG`0MXFc^F3uYTwQA#Ts_Q}Wb$7{Kvh8j9x^UxKb~eW(Bj z7{$?+NBQvGCq%5Enupbag7jX*K|8!tLc@h7$@kK-m(#v4V+D>~C$|rH)-RxC>7ZZUX`@Mt zyb_xp)kLU_N;qYXNdKD{-ZfeYWczm=ZsBA*Znohr`jtyY`sL|q>MhNJ8wxVwW>bp~ zy!X_}f4#EQ-TfEY4p!VP0Gfe|H(uOQddJcA2+zn>RMjE47iOI#?3$8|8$bl!SWvWbbE0-@Vd3 zLJqOzZHlXy5_oA0x%Uc5EFBN2O7|jz>qJr?eU1-~1ik*E0h?+1j(H7}I0Pz`Zl}S@ zD@o(J4A%{0Z`Bg7iPeDb(gis0)W-mTkdMqRg%zQ5CqydsPD*!b9#z~UxY@@NreZeG zY}pL2jJM^-7lo0Nc)y`jv%OajLM-`=Tb;k~eGyqrmGu>*33hYP-(E%)|D=olCpuV8o10dAj%5t|mYXLn;J*wXU648_1In-D&!Jhow%w0^{a?a{}ol8@T0{yN44GK&r|iBgDX`?X$w9k`=-6IzzjpI$I#eaDVQsjhTZ`*og-PV^;-BsCikqL(RH5HVuQleXzDlSSH+-nK3Sk5!8!!F=ff!&|CuC{zl9uM>#Ye`a zW~bX0#k2wZTCXXT<6HHH?im*i{jDCDf>`_W{PwgZ$mn%rG}cR6!aLIL!0KOW;&#V@ z(W^fE&*>8{Ni2E3adb2gL>W(L&YD0#AP%*w{trR7Z`}Q!{$=c@C~aRZsu7Mq_!OP^IF1SbW&nZk z+(uEcuiV~SJw}xP^rq^F{ihA3*UeXNa9AxjaTlk2jqBDDuG_mYEQgGBDd_dmJJk)! zU}Y=mw0D!p*h{mv&n>Z8KV{*=k1>X-olX4rb%oLq7p?u-&{3nOu`M!ymI-8W|Ld@$ z4{F!P*VA<++Br7jH$vu8o^TxQ)b6gFC!Y|E)Sn_O4fY11Vz6@$XhQqA_)he@!Dm)p z+0_JLG+@`>Fc||-xJ)`UQVprUurGa;zB{wrdQR-}t)4Ckpb~#Lv3<6pYipJUUY|Wa zwk`z+t?_{P+wLJT%vtjoZ`)jq%XH|K)vr#*OftaxiTnCF#2luyaq`k<>ATLN+AYVD zF83tp|9_5~GSGu_yJ1X9bOro{+8I{L9-OxpZg=@0o+WB2CoYyPaCVN* zYbrN0j?I`ce7yVdmwy+J!9}lTV=o+bPqb=8Wf=hA$d|dGdjE}?FQyjM^_2F!qk!7W za@C?gAA<4e&`d2DH9+6jWMOnIFR}^0~<*T z_YoC((#86AurQO6msT36lmBG;!jE#W6O%OO1JyY?QSqHWQ6>}jXJ7u0EDzp|LJPSc z5_;P?y5Dw=Q^&QlN*}Mms#LF)iTC=VzNH)^M_9ZN@LT0U12$|{adVdB&mH@8OC8Hq z0Pj`FcAtrR08qu!dd|0A$9KHb-YVwb;2uZ0DX*soL|zP1EI=(^$6Up&_=QBYL;z zDdJSKx$Ba*nBQu*~{ zmWjFoi3!*(pdJw}kp2Erf|gmw9lokT&T6^c5&E~=AFNJ$k?ic`1IL8C_2#F@WuQilnV-H&( zqy$2ZonsKx*tuL)G*RvjJzICxT!tU}4fFqY%S}{6UPbqFo;5;jtYZQ}J)OjZS%<`E z#1W665QMZ5k6|qWuVA2dXi7FOBwp;=bB<6qZ(NX-JvW)|W;B6o{@1~gwR?_;&JOqM zi-_NhX}9Gi&6+&%uTRQ_0ZpJIU3?)LK$DqA5 z@jtwS_v@ivOv9!s0kv2M+o|J%rDqiK{EO56f$LCD-!BSklKy`(FVd_x{bo*{Xzak4 z1gTOr&PiqWLEvv`Xta+<+7;nX?l{bXI<_@6ujUYrjsyze`;Ml?IVBoIe9<~4yWxAl zTU#Jx=piJkJGJrQR_;SJpS`~?=ugG8`Gr+)&YcYt5b>MMxCZM^8fw5iGfbJEv|u{m zU1)BGqfB3VFyJd(hg+gt3N-Oum?rce*dp9pE*4sOV{8i#FJeDeE$b|}J=B1NS%)!T zyD3<`HlkCQ_pFdrm*i>n?U6z!DtMHmpR6tQVd1kbVw1(J{a(KJTRo5c2XQJUz2%HQ z!bsX=M*Jt`uY-@kPdln3yPbUcBA@*2iP*Kis85d8D!Uy0I8@yP8BCz!OJJl~C(J(p z+p4H>9{IN~TM(bsWz|J&U9sHf@@$`J+WB7C-6tL1Fqg%pzBwfX?A6ZBMw&Fgon6jU z?V6k34-`jL7>@nZoI!oik2Pw(y`3Dh_rZJ3zdg-2aNwE5*yt+7rXVgXwU8+4ZV6QV22aO(n_boW%@*9E(3 zE~Jgmq7E6*0M%-t8-Vbtrd4{p!sW454j_}kz42dt+Bk{cm4ZUTE^-#f2Fw_cfmGjt z4}pE}p|v#u`3Y(~59h~!tkj!zXCq{^Mc*V5IHjqGk@h~Pari~iJfHPouLD23t4~xT zLXaEqc1(117L~3K8fPwR!-=x-Wq9lgmIx2xS8GC^P(rZ9(Ns5arA$eVSnaan#D+>dsOC zkRZ%g)tWaMYbH*>8meLPhOrZ-Jkg;9_&n^SoYSjjyu??@Q}gu=pI_I}wy;SL7fvZX zi^@YvggEd{m$O;}W%xj5d638}!<3^ZT_AGpA9*A}TlyJ2Ylu(Y zoyxe&eu$ojr+{^febnN0d0(ENQRvzxULLxc^l#b;;z1f zhWTLGMfm;?C=oc)@k!dd8bZB=*Kl`gF|B;vMXnLe`PO7$=Mbq$zZYGe?OCD)oS#}` zBi_VORBAIB)%8gEqPNtgLmVvUhSHJrhsnUaEpnQ`MNiA{n%2kW#ZfNN=)jte3qRkJ z#Vc@D-}#83cF?cRIzwmHr+>KGZ-he#tZ#qcqG4mn7-lXP;C7=zZvPHT9Ir4H0+G3h zpE;>d8aB7?gdg+k&CT;>NY+6rN=y)jr9!6Pt@UDvB1L2$7ns{B3+s8&18J(T2dQ=h zN##=J&vc}mg9h+QMz%!^CiK+8Xv)8xpVMj;cw4Ad&u1rX59F%;6Fvagc){rO4AJ#* zwqK6x7M1X75LyzX{v}bJBXBWnG5s=s}SuRoroZ2mlYqX5BQxgxnU#dBjgdS-SPr z6cY2igQ&T6VYE`8K&yC9hpaYUy@y?R0`GRpJ91N~gXb9r*`3hEQTUTXF7kK90U(?KD*vClEG?FFSZtkrlCB6v9wH9|bZTcN zFTWD}o&6x497q?Z&K4%f%BPfAe}V+F8lHYC_KFZwqzW$u?^Fg}t{x>0R}OpjO{J9m zO~|#LSWPve`u6-(O z&^LVB4r-Tp4=NPfH_@HKFo4`o+0Ui7#YWu@jpiWkpqw%857X&Td0l+LWVcx9#qKXu zQH)!25zDitOCQa=wU7x403a(qlZ}#kTFvi{b#VbUrn06wZCFN$uQe`3a>&`zJ5KFW zD`ido&U%dpH2uW-Ze3UHaZRpq>3X(cM%sD~5?%@&1^>uCvEyq=i<|luCmKJ1R#3ys z%V+qS70up*X3P75UK}7psyhtPiW3m6_;BW*j<9blF((JWV7v+EJ-eed66kr{H<0(ZPMvFNzuqo@%*@@T|baI|uI-w3eGRt*<3I9*;u5ak%Y!AErfe7QW~PL)M8h?iJd7VbcRW{x)Ngvkp08N6Vq%U(O$P6_v z%Rf^%dqisE!9y@0E-CjDTV>j(P$9jGlKEX9emMNdWHEndD8EkZZRLp@(<-J^qNDet9|LTOvt|ux5ZG66hehf+yo5{ zw#K(fbiD=>czCPG6$Ym6mU{->l46+H433-!&s%*eG6rOCi>_txD=--f+H5-wDfv~9 zB)9&s%wRcRpx07aUu4#fa}0Ks#R4No&sVp9HgU|Kk3p(|P9mb5|MMqP{-B*F^yJ=W zRPe}!iw$BVC8k{DpnLTirJSG-iCH0Wg^8%XgSn`Yn`9;3us?Aq!^~F=|X&yegMdL&Gq_EqT>dTpOG}>itCC( z{}P2r@n{1Dk&cOlPCWGdTF-lQMrB`Y@-m_UKo^V@pCrgkyX-AhkFgzb4r?;za(Z1H z$p|k;b$mGLWa1oCdH?_hdJruZtQuBb)>%_Y9$*MY#y)~SD3oDLSxSR&zB?Ht|w!D}>>qqtHin?EV})x72;P zsc9Z{z0Q9dX8E?$7EooDuc8WPSbU>lfvIGhPN}?edLNKsG91WQ4XNx>EpGU$p#2yu zbTl(#vyI0n|A^x)8GLD?UHTXO64%Apgv_;ic;5`3<>5k)1L+lW{0jX)jy3vAv#l6~ zFKdmh&)g18y1ABzGNE8=WiYJ5Uvzn`%~w=zX9>w$eR)S|6EpzeUxe}-mWsxZIxFte zXQt_J_I>0D&@#2CPfWnc8-w5iu|9InYHsyR1GC1 zZ(q2wk=<659i70}g|)T=Hm{-0%Cc+*|!MFnNX;J4O^e%KcTy7YlzgqflB3*|q} z*XtIky)$l$#m@s=wK=|C2)QOXtZwq2)9S9L-E`wm ze0xw_F&eDz+5A#lCnfO6@;n+9CfR94xAt3uRFagly=0%xs^)l}B~71-D36g6&h53E zS$As(4c|2kqe7DCFIgeHcCEZ3f_Rm#!4hEoGo=CDY4U@ZoM@-5lD4n!o$2&mFmPBx zI4QbJQ8YAeDkG}Ya)3O9+K;WvN`nZINsS!%B9WnMz$()e-|4XNn=A}ed74(% zt@M~4EmUY||1U4(oc)cfto*3==%Es82B;ush+tv@2dpjEuQzf58BizxJ~Q84G>$_{ zyR|^banI@t@M5+awQ|ZuLa!DBAy~GJblQK(yLuk!7`o|VS=RD5Y-LUabHEAn@u+gU zd?V!Q#$|0f+aJ%O?5%waCd+7lZi;7tz9U|Ei#R_EXd-Ub9w?`UzG7nfIP1 zTKmVS)KMKl)TA;UzE10V}jOcRZ*sa^wy z)`{vMd4eVGUPimdD{^0*snriDiJ0lK{_VPyg3lVt_FwM!) z=`y{qWI@VGdGEOROs-oq7Y9y^Xx{16N2KV4p6hJX)k)(GOuH#wI;+&YhgN5V6rG-U zuC*Y)xcU`hB39P|hw;4p603~9Y$#LCP_ylJ>qB5Qk!J7Fydz;W{A`%e?m;{9PY5wV zOZmy-?Uy#P#anl3e7t57Zc(hFY--?@8}}ycqx;v}fcek+d$gd_i7(_X{uC7nW5&~g ztnf`bPl`F&p?M7^ymE4AN6oFe^Jk*?pU_4TqhsOojouP9qrLfEx8oL!_)XTg4&aH& zgS@IJSqvt;5TRSEwKFQu;lCfzy&cCuAnG=_Z$A|@356ogWU!9W>z72*t^Ze^NLpY} z=wJo4qDyJMnhMGuPyYGyY|LF)z!jQ8Kp~*oG={BpGUqr1#-R1U}e5~pe|on~=5x& zuZVsKrbpK^mGr9;b|6=Fq-VrS4z4dRQE+O=)@)&D_Hc3F>21k4K+L-I5&ne!4`adCZE&^?j;r3ZDZ*sY&7+-cA~$G0q#AI4Ck-&~(Gmf!j; z#5a>2%e4(?r;H!*dc}nQd)WUil_o>;1!wm?Vn)CS&*KS;`sj&lVp}N_(jei>qay-w zihqU_pcZm1zvBn!aD80Wxa?66spQYsO}?JTEB{H>;Gc2o$3attTXsdF11cmMpP2vB z`NW51-4vHio;V^Ge+RD$^}koeMYF(E96>k~WxsU!&zgCF-ZJI$k_jBNb-wMtvcv6y zsub;|A`y+Guf(!mj}B&q&Z#eu$jUf~v)pACRs?Bo$=n+FV8X>le(}K~I9?>(wbW~2 zEyv#_Qu2}7kAQvUVI+0%++@tZOVc|WLmlC|b-nbo9MXV-kDlo29=e~*_gC#@_;a@t z5L8Gg=Z)ir@|ANecDpsSy^WZQ^>zw@75Uis5th%mKg;r&Q5N+GTGvp-j)}nQ z)npp2i@sO~$>l5#bEv8+D6fB(am4&#l4O$29uU~{b5g5C{zuJH!}e-JcYaazj{j|> z5yc>nCZWA4sv|l$1H+}xA6|^QHpUfJ_nl8jT@;FZJL;?5dBvk%^O&0R0Ua~u{VLXB zDq}O#+k0c0q!^OL#HYbdmMJC!ry2BAW?M>rvHrmC_@8bT=d0m-kZpM?Q8^^cQ))TyNOvtP-Fc}``}aah!ZL2 zPkGlE_~)*=AMjfS~qx3jdKq^5?LU5+P3pSK$YkX$GST56VW@+roN4S zLt99T4eijGrPw1en)>CY(T&^s!0YlXlV3-ks%YK~B#dhC;M5BZ#0bK%>~?k{<^|J1 zfBo&q!>s&#GC1ElflX^G>?}N2Lu;K(3)aO8KfSeOrz&l1po#4YJ9;I<^@G0jL$%%C73pnC-v|xzkM0&=4^%4uz-{sb& z@W|e76*jy3LO;k^=lpzgqO?6Nev>%rPKo&K1O<`w`&4$=Jz#AxmYJIC;N9i*emkRu zMXIL_Vw1t$EV=51cri56F)?$oomK@tjCk$QP}sv~FADj&%Jp1k9bfDW?BdW}4q4B` zswjg$9Mww%TpktMnoCO``~(RkW$7o(8~$rjrKjR@*7Ia~3)0kk8yb&m;59cX%2lnS zNb@*-Dd}8Zmw~$qiWH594lcv|?JMUY4FvsbV*2m9h2d)>WBT2@fo*C#l*oWtSR0Tk z$bxG>)LXUW>0bHV6GwFq0r6%QfpjiziqrK!@xz=Cz(2fUV4pp!UWgk%67rriGqM+| z+Ez>umA~Yv_4p|8^*#T}rIY$i%-82Rp-LRhI<&U7$$x%5TT+o)^CvSVV7Y<@D@xQ4 zieNgixtq3i9E`RRSl55)>*&Z+bbriVU58mijFiAR>AKxk#2AFS$)cRkXEbxjHeB^T^=m=32r?i=90Mo=#bYvIoOvKk`o>OU{dTr4$eJFcz+bct|(y4eTPLp>%^Wn|O`ma}!OL7^B)akRfG+LtR`xmL@(Gc``c4l@d>vCaSr zcj;O;zd$&vD&H5-yU?cI9N*<}ezdyT{Dcr(F-WqlR1gc!xy=fqPw{t@gGV^8BvnC@pko{DL#uNeg2^!V+X^&=5q;PSW^V3?fN{kftbZ$99ad z`1qUiu6(U7zrL@mF^@T-dUPpfVslbzQ8q&dLHm|>zA`NQ%6N3mhfQs2M=@SWYf~et z%772dRj_$}Sg>IVKmo#MRt9OEbP4$$jgV&IOQ@q1qAW$ z>snle9!MwsTBIts@(}j?TCPO@mfKn)e(0V_N6|iflG-A`@T-2X3foq5FmJVWo=S6A znce-t(UqS_>+ZsGBB{&23<<|?onGZRmJxg0_uUuV(tU-X;rO#$W&<&x4i+XXhvbbB&rEPo($0mrkCSzkKWW zjWVAgzdGp3a{K5>&jpnaF&`$;xz!7xDU&-`z+56giV>a^(!gtihpxu zE*I)mi7*BS@Ofwcn3q_2+ z-+MMOI)mb9)6m`e?TfzUZ%lkQ=>$?heCsWT+X#d^?QhIt3qlLrhOgpi4{(#$LaT@wqBxEj|j;y$@|!y-?L7Q>bmu7Vt&Qn+pX>fX`tQMLPH zV=Q$qljqEBQ-xB8{^O15@qP+ zy8w{io$!6Jj+^$52oG%Vx}4R^NR!a(6YMqWahK7sBNxnCK=!RR?=N9n3p(nt_pY98 z8~rTIejZVNS=e^i#gjrWU?9DFZVgvIk>=lEw_@pWI1?e#L3mS z(|cIDv1~Pd4aH}0~?Jtv9{`_LDF2n1x6fco{NpbEoGoFgrvCeTf;rUsB1c8&4&9k|VvkF6Wt85vw}D_Vaf(C(y*hiEcJdtW05i zxUkR)Pf#9yINOnbx3Dp@pW4>$8QI0dvEJ-o&={wnZ(~T@m_FE20kSUrB&`i;!qKSZ1#?lZP}bMU*OJ)$_tR!@X{%{Uo1l5(ZvXWSLt zLb*q8d0kDlPaw~xI~~`e=Jhsz&Ow>u9JhJ7d!LZfUlXy9!Q;UyOpl zqnaj0<61oX4-}o{AUUe=eCM^&!SMp^S!wIjt$6Np$%h!UU(bNDwxSfolBR9f$v54D z11i^!9G%94so0BCaRMdl`31Uf7m9kQ{b8TI;gRe8!A#+7FytFI3?`hH20{Ce-H(^J z%q5WC?Ok$OIqhNTO{D=W?VTFg(pT`-rQ|TJR_xS$8rXk0%Q}R)+`0ljjtDMqrkcUK@UedtK9ateLUB10yowPO z-->7C#YP-v5yLC9I;mu{iH+1sNpbZ>&3PvxRO5M;e+O`9PiVV^&{ev=e*;G@T_0E4EV*>d?kt`ky~8!(_O0 zz5~&>siNHzH4OiZS@4FBL@OM8l;7Na#M$J68;O-&l0)T)d(Z#NTt%mNv#;<{u10}P zh4%F6>SuQ6Pc1U|Oo$x}W-&PIWI^%hji%)M%{D~hLc4%&2kL3+>Q2pZ?&y?yX9vw8 zUG@!mg&*{P(m=#beF_yH?)M;CO?H*dVvwJmcgNWM%OB5h7J+ky8XE~aE&=Nf!JnZV znZ_@lY-6-MD~1dkYK$@o|0HQi2t5xBzMcMJ{9W*K2i>cJ;e3|9p!?x}H`b`qFxl)b zQPw@_X3OtNd=EXb05=?2dZRZ@q`$Ny$AD$a=>J36TZTo|w{71;gQOxQEeg_tiUSNS zprq0v4bmXZPzyvr0SAzll9pyjX^`&j?(Xh)jpun?_x-%v^X2*CCtTaitbZJ_|MsKN zGMiCHwP4|R%=ic(r2| z@!1#qMA!od(t2#+rrJM(Rk0u(PkhmW?Z}vD63Q+TB56!yBB>IM$etdX3fj>2kG}3i zK68Tk9~AL?jvOQfNM$A799TBf(h!Rrn3)KmH;#BU5AVX}(y6UdWcvi~7e3)_{cUzN z1Qs(9Xf!Wgx$h+gQQj5xXF;r4O8jSOAz6mdD)Pgt4EJC|nL;dFE+Bgq&yDEFe&|?P zQ{0RwEh^EqHoF!wX4lm8upc6a+QX!RaaBSQNFa+4zHvWCd-@C~N!RszbhNdku9I=A zKUwcMk&y3J(d3g7je2|s+e?0xkcAh!2MZ1u^zO)ByWB6TTkg^Pk(mh?Av|%@4*3R^ zXzrh;!*~qQd}&|&5zG;fun2HNFeVDHt7LMG5(yufoLJ8`cDF?Rn9J z)>XKD?oJNcdqys7`1l>dcS1a>ofwMxoBuh{f&)3Ni=Z8-1I>Q(Id~AG4z#Fx0YfKF z+8=dq9YZ4rrv%{#zrV5>4x^a^b6Ijc!giGVG(B%4RA`abAxBq!H0{1mHTZAR5%t)K zu5djvIN{qwr_ZA*5|!Dy&6~*fS3Ek?F4}(WCyl(Z4s6jrf!oK;rXM%vNFI5@UzFsP zG`)GC9cy{suf9dIf54|bFy^gNYB+c>@A~j;-V=+}xaFRMn~mp;GW&}R&TI4SyY^g*lV()vY>8XYR&oR z$2Uf&9y13m<+_8N0(-O;V(wXMS)OTqfijx~LzBg^fZa-n_b8?QvYKa+FPhhxEERFi z!J7)YMx^dd&MaCz|LtB9aIY^wQE-6!@3N8G8f!u}UKY ztD#fyZlL*@jS+_FKslo#cunR|-~QOs3}At4))Dhh#zjPak7^g-Z4!Jt0Tq7Ih*~if z`8S|)bOqa~`u=XK&-k8oHXJv~>vjJ*TDVx{Z#*>{OOn z6za~!&XS;1XOx!jrFvSkVSVo2k+-aQN=5Brg>W5Q!lPh4y1Cq46};1lCJ^EQbNU%@ z9sUW&eB(doPv(ea%sQwYX1+j}v<90}?~Pf+iaVFQS(7Z2i_$D@P&*6_kFf5eB+pGF znhpW+Ih;W5>Y)A3Y=ud$X;8q5JK&*Uj|=W{q)xEr`!r1-ls9t=d1u}^)GXTH;J zQD^Un>FSRNeY$%8bdv_57E1Lz`r4va2j~!i6Qi9E)zl@Qg_bg5tH)Z2-l5e|k+W2Y zLsd*&D-Hy?A)geT>7GB{Ma6PtZ-y+v6hW!fOk`jX+vLDXHXNA^fwU?%v<{^2lTEjz z8u;_5XQ;%^^E>>c=q=@5Rln-CFg>$6yuqcGaNSoA#{K*byVZF(j5hARARCa!6%u2k z;q>i=gRXc(#oO8y<6rm?*KcTybb+I|^}dgRWPJ}F>(N~vFl7-b!>C8t#>Hs-Xfn)I zbXRz<-_nBCvPqKQdXU9`qJDF-(YKvu=>(oMH9N2mpZwa;s?rQ!6$Uw~B8tX}rw)g} z9Her;0Fk+HEdYCCX=G2220%KBjdI2odhPrftD+rMm;5TquirNp=$vwK^SvzORTeg? zw7TDll(rsWxMrE(zH3z z)~(lhprr-k{&L_3hxT6gjB>Pdm_y9bKzIg*5<=~0NAF!B?dDp0Il%d#F@LVwC4O*b zX}GK%!=@yUKg1zP>a?6y>t9Zi~@Fzr$-p_Wy1(_Gis2Z7Hct+W~c36A`A z5%0N15tt1Pz+1_GVxt$sq50YB`)*de@8nv^^>jbu*{~??BfFfb zKz`G#B0$vTFdu z2+EQvM&FT#E0q}@(*2-xGMBJi6o?gA_+@0TE3qgS_R@X+KrA5liYU{tvd_gf;k#Bj zFSpL#BW~`=>@M|TTU~n_?wJ?UtvfKpY)p)X*0F}yG%4!B>Ns1H-v#3!--p~fj^l+b z$cMMdyVk3yBgmuqpCib>5@6ycWG`mdh$l}`5gc+S;L)wz;OJ~!3_mqW4!CjM^^6?n z;VX8{xA8a}Nw;2}QdZ2^fYcxE=tUCp!W)YbGaieh2Khek_XE0HJ>r{REi=K4oCu~5 zbIX@^Im?$Oou^nQ8g#Z?3&1-{pW?E0qEonP?H#pp8XX;XkEWj z^~z(zG{EgQ_J~y4ICjh9Alr!6&|{*)&nbM$FxJ@^Y(*T4ky4x41**OS9IMAXOUK@p<4_~iS; zbZ~9Nv9UBe%71#;5_cS1$xtLeq&&ex4q3~lCZKnYO#4o2-Y*UD)`6`+xyuM=`G5FF z8!X0@xr2I39Xrgbm@9|bjr}uH#RG>xL!bPtS3o*9QuuoJO{NDa%<7&8NQcO#=bp9O zePs4so)%=rj|a3R>8xWWW-nt(G?I9N<2?KwWh|x%^oU{YmS6{M5xGG+Zmi0=3m67i z-4#U8ES&|t)t@9iM1%O;3JXT*2O0H8z0 z@L8MAOg-5gbLF#XH-!9M*K_X^C=J{{#$$IFKh`@oJ$ex*B$&;PzfFpI8ak7$@ zk*umX-sLX0fu+f&v^Whf5vm9@LtWjbo2s0=u)4x13ZZhwUN`M?kX~_`LSCeIeGR_t z%TyP>buLStkAzK*iKrG-NM+;flK!-r{G$OyH zrmV%(ulLrI2zJ6+GOa6CpZKdxTu3_{@RC7dG|?c~1n!!=3Ib~NML)bLR6K9aR|kL4 zw~E-4;X`tZZ=?njzh3`dc&WZ}9@(qk`a3zE`M_mtUV5qbGve!O+R)th0J8>7^6(P( z(ZRgNbWNvBf@`zu0$q+(1KlcKQJDCt$FScCbwUVkItm=AHVHX{?e- zONYt5(O0^!J7vCSLqo4eE@GzmVgNGaw zB~LCTGo|g~^A_qnrZJ>}gWz_N(;RfjjOULFjkt`tcN7qB7x#BZAT+YPdVhaGt79R3 zpYgz=ap-2IHLY1YGi`*>qXyjmz3n3BFVaIq&L36T9(cY2%keuyopE80XE;^7_RCpT zW=Da0ah+z9Jcu{O69uG^TmD`A2sK?+fbR;C9iRPIkq~17>#_H?v z=nmLfIym~S9b(r??qP5^S_2t7BldJ#Ud+Pq_24T6TxVoMGA81{P0#pVYX1kg=f~JM zT?2u?n?5if9}?=nc<1d!v$cPj_~&A=oF^@-w)q#y+J0y0U^;!(CJA!#LH3~ z-Z)cP7O!P(6>%ke>t7*FJ1_K~#5z|1%~q|_>!@G4Keva!Ko}ybn}raL`>pHIZZg;b zx*K8fD=yd9m%K`+Klv`(bHfQJXLpgnyl)p3U={Ixm$s-Fqq)aQQHSiq?!-^-$o68+ zO`4x4y!}JPD|n9mGgiY~;Q!c*r~UTg%QOB?k8}hhC>H0Q)?W=AvBoQ{{EvL#sRC@OcfETkzCBL+U z`h?n26giSitCsk8&;KZK-G~^fgfG0Ib{kh?Ce{&I7b$!D*l{X?;{Wn~moGC4espEQ zwrS43j&CJ85DpTSgAQ9Jl%ML7P%Mn1L$JXYrR}!`JWblBej7ta4`AcKhSlC2Wz!hF zgKn`7%CbgdiowyGnm>S_TPQXg$}o=r!9xyUk@i;VvE z<;3Fyqj7)a*v23eJvVKPmQT#}VwSYETvpufv59Qv!m}<%(CL8Gv$eNxq<#9Q1H6y)Zy<^0&9*%iZvxXz+k*MXKv zLkGs@Z)TYxbADjOt`!|JlDS)XnK*IreXbAm|7v9!%B-+O^NaWzQ3{qrL=&raOBHni z=BlR*YS+H}J_{t8Rjwrl7Qn9Mz(SU?(&oxnmhI&i=ftI+la|oQLe4PuPYRL;f2JnA zxDF^Uc64;DZ06ECFKAlDW190zW0m0({CniZ<3g(sGN_@5Cw^VY=iz}&<3Gld>5RUV z_sBH-CKX9;-!HxKnZlutm2 ztS`Nf5|@@}-RKf3aMR}3wcmWPGbY|JJG+l#gd7IXbUJ~;H(1$Q^ol|jMuF&%bDjrCl0w_K7ggWX0`*e~}+6;d{z0gpcFhs`ap#bjT7 z+%l@(3qaFgc5vqXJ#<%lv@Np$0^x?I!Fq%@#lZxWIOTM&8Q;80$%@wi!)w|CP0eT` zJE{@_Ssfp_>#8iW@9OZ0;ZI@;=R>2An$-%B>`zBW1Kr;o%2<_hOG+jbw}SQNf#!rijO` zM7$9FiwDi4&NR>W{hMw;B*IhwzQA6z;zJ2`LN^>Z-AP48B|TdHV?{J|62# z;ul6MI&{c#`2w4KT3UBX25M+ovz!i_!cPv0^2Dw6YWaAO&qW>v84>&g2RX@U=2t&G zElb+mSVXM}{p;GCnz2==T7cfUSKQwUg$P)oxL~z@C;g#wxI0ta*_Gec*kzC~*)u49S@wGB2e2UzBT%N&Ri4cs|J;|Yo<18P~=YzJ= z+`ZAn)h=VNK0vxT_50`x@$`4!><^^^StlR#%ATJE3$Q|-Zg57l>2jeNwa>~{!`zOHT5A;sduj;E)o!=A2jJ({B4}OE zp!O%wUW{fyGrilQX7H?V2NbEpy;inZDS9jnIvTTR93Iq`TWNlf4pza+0i#FP7@*nq zz25E z+N8gWKLd+pUim_^h7+JYVQm=fLm|*PvJsJDDjdf#`U%g;EjpT!X|(!n)wgH-P6Qw! z;=1ndp?Vunzk1C4^tzcs4^uMm1d9TUi2E5ZAhtEv&brv9Q~|ml%n0n&e)AX3XUWI? zy>USD$LYEICp<&4ks4v6+}CVwI!Yy*ABxeH>x3EJ1SVX>zaKJF7k!7WyYoaI@D zFAl9x!NzD>voaWLbdxGR=-xu)m#L;h?%RwZ4Nzs>`Hc>}Ak&!W%OX_8^{}H<<2=w5 zj;!#B=Gt_i(Wc6~V7FdT(RC)8(wxQn_bTEz6S!*AGuHDwR(%Xzvps^g`l*e#0DMyE z{~l0(GQM@cWNSFTz$VhOy7N&6Ny{l>l{Q8*vDBcAI-UMrNCZs1Hzsg3Pq*Q)D^N>< zV`Q&Nf%!Bpr`>&&0H@b2Jo9haHJ-e1$DiFp70FaIKOKKnwN=X^k{O0NsYqHXCqxq6 zhFT&7u1BLeg@C+ysiOc;;xzG8emoEiMsQ$pg^NqUVNNsCCsTszHqcb@9Na*7)7c|h zsZjn>4NcmOE|jNmQd;qYrg%P8qNkIO3qgH{X)mnmSDVbuHA;g;_%n`~79n?ac?S}2 zKS5Q2^jAjO=<9r4AHXUQ_|CbyZ}jRQAT`FPf)f~Lp!p#;_bZcNuXeGgN{#Ik#cSTP z0UK23C6SLDqJJzR{qkzp_$_W@X7$8<&E~9EvC!C$X#ro_D+nLOzwF2!;=L=!OZAOE zg(E4HAo{SYGa;A#YX6=!O_s^R82(O}fBW02iN4$enqUU+D zSPGE7)9J=R;vgxd@C&vCbUJ)|?ft&oXysBu?*RHoaPNTCi(Xvk? zXjx4vSk|1b3E2nU?hwA5?lStu`tK^mX8YRnQd(fUH6P+ERv6^(4lRtCd&-zc9rvR| zo&(oPns6Jm^E~e?==|nWYpjHz0b(Vp<@HYgAQf(mKswj?{E9u}0^2qE5?c@ny$N{V13raNXVALd z-==|@H|x12cy>l7V1)C;C0u6E*Q_XG`i&o#o_bxb=H#(9;+odgbVb~#3KtCy?2k90 z8o$+!Gx9J-#{D7Isb|3U61+*)kZrQ#3&WQ4tn9Dl(F3JRFUZp{Au(35 zuzJPmeG6Ud7&c{3MJ*UAgv1 zdr@91Ct@OILIK7InNx1Tg8q1d=5j#6T@C|88x4JpWz{T_V#E2n`_f`EMwYtzWvgt+ z51J9q-&>PWWo7iuivQ|^?mtV6BXV7Fd~L_8HA9KR8vY9u^;r}b;j*ap&&yC*rT(F^ z&cOw*wxxDHz6cKKrqFbme3FIPC;ntP;{yPETmu2GhTQ5_gj z+$Cau_Au`~^ROISmIMW_ke!V(bntr?^g=};Y69k8nL2M#1P>&LV|QBW$T1rxKS0Izx~ z1NazAgLhqZ;etsmIe`Lb+!$WUef`7_HqqBX)BHwO9V|h|}2)(<)kueD8(( zW8g*yx2Cs~IH-p={LQELYl#OoWpCj+JmoNk=mx6QRk;?ddo1Q zx~d^$Oaad9SQ1TVNB)^1{jy+C;>YjNdNz7XKytfFft!1KUh8k=+*?ah(n0d#2Z@+( z_e|$W6dA!*i6cWbSp0?^nZf0<{=7x=zLk&y|7jGTmAa3n)|}de+TSkhB&4RPu{E02A!SRLgF^G zqO(_dn(VAnHx1bpauVrFH)kr7v%O9R^k=yHDf)%M()}UN*SU6vV=F!Ah=Fv%`XER@ zEXeGNy(WZcP|;L~dw;6VMmQCh08UAmEHS~&h#$Di{if9Z9lMKKNdnE(y=;>m7lNeX z+=kWY>{~?W!_dc*-zipfPaG_SE}qz`IBK#nduDDn_N?=c{<0q_M87_-s}AMVJdnvm z7JjAO;PH1H)`U{Q$M=6JM{?0J&+57ry`jBW)06b7-dJmR$y-0xLMgp>2M~Jt1UwMH zs4YZr4hJz*9JD?Af}WW63xQ)PP`S}B);|AxB?nUfyDWF(@xP#ke$+#6vF^_}sl0yB zJ48571wX!O6#HoosSoM|4{P|O!~MIwOb-A|=!YEndef`0cZ7cR`gebUWr#ABWv>6y z9^PO%`8$B|U;aZsmqg=gptHg^#9@9@Eugrn3o&V+oofcgC18i>bFbB!&7?PG{g&CL zMbm}JKz??+N4uG-VcqfJ5eK0U9t$~DNfflifcb$26pDBKW+rX?FM}dVi~bk+S(-G+ z)Zv|>y896Exj4G#FcHA+-y;G2rMwSEbp?6^eLA?sXz1>-!TWGOo``TqQQ)C5_Hl!c zI|?e7Aw~b^d2dm3Ivzf__@A#5jD?QkMZ$M3lR4l^^@{Bh1gDbs*Z( z$34R)|Ie5DEP59t6#~uHs{YH?Jmtgn0Hc<1l;Y01=sZf<2NDmQl%qu2RXepTi;^BG z^A8J;jz^18qO3SDW5Vvh<<`;m>~=z#qYDV0^(AR7b5qfq`E+=sk$}6I*gnC#8pTPi zQJ^8TBzgylCI9Cq{QrL-@UN)QXs&XvJm;G!ilyn@VeX&{@8yAP&0gv1hqrd&256*r zo?@abkEz1p5!1Fx@rp+V^d3_ zQvOOFjL6Ajic9f(x^@=;*I$Z}HXH1}+)vl+zrW#AFBGigWi6oeLSQ~kx#;$M#HAQD zegctn?5+oW{YbkeHa)49zcV3qWyp!UK-YQ$1QuGRP$6gzh< zpP@|P-EGH<43J~LrZhYsm^^R17lQg4hW>adV`LzgCpwDsh6@}zt!#t3#DgzGGFE?g z*Jtm4rdseb!@+SRK<9r(j;y^;4O-CwzEj_u)v^Az1-hhd$It$Jre6wmx?Kq3#?~3C zKcF9dW2anyA7U0bc9upT-~}7hO5JP%gVb_jFFoC&N0Uw=H3vKqcokTKx2ILJan9QT z+SYO4Po4TM3f6jTCYBzTI!0ksbj#^AwO5nC!q)W{TF~ z5s;0O!&DiLImSH_+Ht1EpNq!A9(zEc3$x9gupMgIMxu{a@Oqw7o1U1;IsbvTJdYGi zy#x6zA#nK2xcRxS2+>e}Q^zYB(%o9YXKJ^_7KxS5knvg1^TQW1wv!>E%1tdS*U+QI z*pUZ1EQ!zZYJFFtBV8@?i@gA0x;(J&F+Pl+-yKzZ<91R2T(cX!U%uI{t7Do3S-^wm zvp)##!1kAvBdy?w%}75?n_xq|;C8mLqQy@}8rfz;pd3a~m9}O6;`f9Am__(HW)q1s zfI*~-Pz$;h{>t`ZS@FlA7VF~>3(Sk1m&5VFr?m61nQiKv1at@w;P_#^W;~aqr9qSu z{ILgje*GVxmX5SHR&7;m|8f_&6`b5@b#Q3CArjpFehto;Dd5-uxf(_1rT)6E!TcNF z(qhyEniyw|#fv8=&G|(F7ET*lNk8kmyn_}kHo>Kg@mZ1Mjt?d#_|Z%^HA4IDkN^4x z;^?s6k>}t~J3r;wuxr))F=Ip<%{z9&9%IR!kA24ODM^cy(v%8l)B3*_fdr{y9r+@q zfO86}L}^U#ab{rMf=N&YI{#e7>gmB%pI#TX9KYKN(lK!w+88Po7W0Wk`}aL#<0fg` zN5@0G=$;WIz>v&(AMzT_{MEqGw5?RyL`^YcynBF$@f{VAUixA9H24an8@q)suMVYR zLxRNhFBe#np1bdgj()w4*7J&`@9)Fii~3r3bwE!Am^|=%V>dkBZlWvXrCy_*0-Ce4 z?pm{KCKmk>1S5vqCq^$m(w6q)EyE^{^6cqY>n0C?iBkH^J?s^o^4E*Mt+P{=T=CPz z_(H?REI{d!{3b=5D{A@>O~q+;y>iFcYijlNn1{NFvnbp1sn|M@!gy?YIf*rD{I?ub zhe32lc+lxR{c`OWxxvJ&`{Bb8u*$V)v7__+B0ND5WKAp>Ih$s!vO#2x$zgm+`oUF-JZ)*}{1>zzIfv<15-W;dactIZxop{UK#ZaXLWbw{bw^23gcNb>K&#_Wq!& zCC-|snR;{vnUyiVs_vaxh+@COGpB+9inpnK8`vb%@Z80vXUcIcb=f? zpgTHiHdx(*y4QPoL2FgamHQX};cjmJbPSKaXIZt(JLc;;nX$dK0(l=S3^MBtp!XR; z1d4BRaU7=_uQqlIsX6IJ(Yskz$`}wGctKpQBG2>l^qkzS;#stc_l9#kZ!okc=wp|6 z!P!*oC+>0cDlS8XPdYj0_Z&TOcIE7+R zq4OAZh(~Y~sq1=j3a#;MSrC>K+7Z{5RH9MAf+ zJrq{*m_=30o9mce5yo@I4NjpcYhTe`al1SHyO~d<<9I<&*Oe!b?3%hJNVy7OwPk2e zkz$xMe*+qKMQmDZK3ikey^;}@yqI1(zd#L;8OL`43Qydq05~cJPO#-nnxHc^) z&=y#>9rHGcv-6C&T$m273ZM_OE?XYqS8E%Uio1S#xo&*BwA{|a)@i}Bow9lp(Mh-H z5{6pkr{@};xkOMIaDq-(wT*t$**oT~)HvpCcE<^eaDlJF==mU10{?r%RpwmDt(}6b zED%;F(a~ahpy|>mUxd07D{dW2oy0ww^XFAkzMW2-vW!2l%!?bPrKY6LIQz7XVh&qF z?do19mZ`R7xNfXxg0psDt{oYxzqzewj$qZ9N|VC!H`c9D`D4zkRkEI}$anuM~%KL{?5@WG%anhv`_6 zEe^}hYI>cFn@nwYgtuzcd(g%u=Pv%z)4aL47=2lsL=RW-&wq6j<5K)_J}Wbc2YR45 zgW7W|pw8^)NQzi;*N!$7{y{k+6~)8!M?_%CWhPXFfO1{6@NRCi6oM*SXSe|1jQfY<9PuEH-`vqIuPeE&Q1gy0k2s{gpR~T z)e`2~iUsz-AumtMElbeOGby1hio+~nTGX%G0TfijvcY$^Atpr!EKb^X%}4Tm_+#Lt z>o85oJ5klf&Yk^!VGhbvDbLW^@n`JOZ{NjMAb%PhrNaLi9Hl}$BN2XVPwm!z2SK^f z&OfVf<GobL;bkpO`2;FiH!9!NvR=&M03C`2C-Ce z)!FyXjEP{=KAttxrO|_iCp&vSRNJ=qAL9!*_wlLPLbVgnUhR%&q{y zqPaYUT&@~%7Te-!o#R)2dIx~2eGOxS371dZF!!Bv3b`t}3!fe)&V~pQ%_IYHaZ#U= z68dW#+78-e zjvk%MAC)S`(O@*_ycze$RPF?@)D1-Dqy-gewH%@*svM5N%Y`zgEpqfO)((*uZ}FJh zp|cIx@g005=9J1BXQB^o>YXkt1XsresY>8Z1o zq2Xtmxp!oQ@MdV%Cs-bhW;4wP6LU`v9Rzv0jfK&b-GRBSRb^L}(Ygq^9#G<2*}NOE z8!CSSjOp^7{vrQh1t9&H*D|AZz4!yxQbUA)JkVZKtRDRZyJ42z0ITR z))rijkk}>nMCT|Pw~L-WM0U1tbiA)VOE=f~C11Bs<6_VvAuXSy(o7tJ%*wkeX{bnf zPzm!zr7zeobz_~LDZDF$0&7c>;>g$(Q*TqlyAOLg#VARDJqftUfy$I^?fHsIC<;`U zclc3wuno>0DfT=SdAjNs&93%tgIw&OiRaZcF8P%E?De2C1&Kio%6-t3+MGz_fI?N0 zS*LaWmGBkvUdZr$sW~(2s@9oHh5Tw)0YwU}yPIG6m%--8*&iP@f(QmZl%0a$cBOkF zwr`;gV3IM+dW5%2850q(-xio|IETv=u7eBZ(r9=~0ohxqfoc-(Z?m$G0CrMyU#da7 z9us7>3gJ1QL8g$ZCju((2GiV6mhO)AoMQ~gzh7vp3|{`IeXwoNgVzFaM!Vk%LDc`825|TK z6jZCo<<;P|a;j+FhLtMU1L{d3!vQw|-4MFm+RL+W#X!~eIwSTU#c|b%pmNk)+ApjX zHT$JiEj}?>za% zz5JuQ`FDt}L6{`}lOUT?o+VRh$KqqwXHxzc4%Mju{C(}OulqHxkL=X!m?*{?$H*BE zO5`QZDGK0YVY+33(Y5R&1sm=gzc-te!3@o9j8dBdq95?^(84k8t{8yk+{@_B@!ROd z3ujIM>`azD?i8`rbe$aP@i|w&`Y<7MInVEpnD{;IRDJZFN|9E5sLDhS%Q}#YSC2sK zQ%Z0BM11d%S0nUG?!I~nRuG)5u9f_|+uAQfP1V^TN~ir{r%3uU+2)FDu1aAC)OJ`Y zn||K&?o-*pl$xlbEU>_`~oxq~8 zoA;7w#qGEX=VeX(iV@9hD=%lxEKT?*BXj+WIQ!ciVqx$Cd;sFw5lCe*CmPBmHPkP` z;(DAX>{`mJbcsw4@m%P`wq<@sIi+fx(>cC<&%P+mciRVtKD*6qn@XY5B`q_5jXnGw;EWuV&QD~B=)_X)Wk00j^Hdej_vR5Vv1msqC2zneX~W%hGt%pW;Cc?7r^cUZL*IRtxwvo)NYUd71! zcs=TC<{?+b>~$uHqPYA|h=?qVRP*R>rwgLLfA z=&VaPR@FCR2zT90W0Lc6n(E6~+Id^E$(X8C^0^Ma&Kz=sp{phw@O-G((ih_eq>yjM zsCa{r@%2O;pZCGVoh}W)YNxs&qM{a%Y-A@ zN3Qax>-$K2%dH=b(gXAs(ry!Mbb0Rpnr#S#?(Ycc1Fj72)9GxNnvV~%@qadgX5+Oq z-^#cn6(oL#v%@4FbIHH`QQM`Ln_BJk%S3l>`h#3St^1m6f$-wv#S(4biwO_1GySoI zrWBuuo+1RbVp7Xns&p6aO1HnOB~eW{+ARB&JRG%JVs@?3Ee~>%Me~3jRob4D4FoNz z6a3C+O)LnMlH%fJA~26Bq~ldciL1pa14%E@QrIry)yug%Za6~r@wM3GN_rzZ=g&8{ zB^VHypnHOX4$vZ}2LcK~MCx6U#6YX}l4d;8x&b@U2j|XHxC=4E|Mg_=lW!fSTkDcQ5>{bNV*L65#&^s2{p_0xu&g%$ zBmP0E1-+XZ5gd}(T8xLQi)!E{c6!ZS$UiSVCGiB=CeVjqC9hdeoi2Hs_tLAK5) zT+y2*{O&er7LC+xCk#WNy#AqjftNb{X`z#f>3TMgPp({^@wX&Gb$BluBvdx?{(_XZ z_wd}F2wB_SgFzj~AQs!?QrSt}qk()YE+x0J2Dq#_+!cq0O@xz#9%`9G7~^hM-I8PU zSkd%F2o-7#0BqJCgV*1ym1E0tS{g#9dkv_qq3|_ySqK9eCegl1Va!eRBs}BbK)U)$ zMnE;PBQl?ycH;#%30)MQDqpSJTIcVcsnasl8hBn%>uFwIi#6l6nb#s^^unEB#BPxa zLdlkD_&{m4#xY#|7J0xgDSK^=!>3hE|~z zgv|pu9N6ga9P>=se8u6Q{%Nu?@i*?N{mz4_>Us{=%87hNdn!>@ia6XvS0&yTWK!bl zASt}8LozRxkS-9@#ZHU1-SR*0U2~w(_3vA+^WCeW$j??@_n~J-AxM+;)c@>OSC&9y@SNOF0hk`Di z+#eS;#%OPy4-uW|s!xOjkLXP6Ld$$;MP(#0xvr3#>%;{$QP$!I<=uCA3XI+r4P|2# z1#46$*9vf>c_$kQrv(7Rj`nG!G#1)l)fbdKh*?rDw71@-c^XL6EJ2&?BLCtO>|B0}~vOquE2=j24C^sP2ZB!{5i-lN69}g0$ zm5<5cETK@;m`ynLLTa2btC&Mz$WoWVjl(+IYC}LpFJnXQdSoP|#yEauIJN)e{(}Us z;(xcg31gq~OZX8zdlF~KFmF(^&jW}??rCIGR9@K=MIx+aZ_-Zs94#M2QA*xMJ*`+0SGv`SKK$BhM!QVt|2ol3SzQGO0? z^$_IasfC=E`9ro;tvqyDyKVrc9H)Jx#5pBt`Wt}w$i9u){Feq#+c{&Kwgm(bAPQ3oV{^r@lG$_{iL3*IGcV z$$!`jRe!VZEfIh7hdw-LD9|Oeca4fmT z`Ogz42DfT<>B_nw*tTHET`q~O*Ylg^K#aj@-vm~ska*EQ&QSBb*?nO(7c=7O-U*1&K6|ZNxAOZMAt>^ud%l&9i{v=t^O%sn=l~-i@D#1{f<0zq5@?eUeKdP2cO-O`Ydr$&)ffmy>92 z`2)>c*wt?`>`iYU*2P|YWd5Gd4b7*QJLwQn`f6FvW{Y26rPg*YqQB$q*{+S;b+O+eS-%EVF$&|>WXLWmH*ve3@lZJB(k9S|G?^yJM1Ox`Sy%~f^I-z?d2nkSv zkx5kAgAbb=s_NDOE;nR{SNlz2#_>xw6xW;&l+-tW`v4DC`Qskt>iIO~)B@ILhYCrT z9lsLT-gw*%`D`0)nH!{f-FIWOTs)C8TH1)(=oq`-X&P|v(a0`UZy!hx@nI|aJl%wN zn;AH4S5jt3yluvYOewP7Rxp{lAj2OvTmvd=NUW`4Up=y^OAly5OkzQ?i_7<_9&# z;%#-cM(nvvS1`i&oQu#V##7B*;s8gA3Yqb~{g&T@Xg+Bb`c9mJ;jhQ<(JuuqCh>>_ zflkk!dx`+5VkhJDLiqq`lWFP@#2ac{S9B5QB_Wd@kzcrW45tgS7w&)Q|LJ1mIR>Pd z2Hdzu&*R&D^M@54c5a;L37?z=7ALAGLE%ti#0|;GW9G3Vo*Rzv?OU(YX&(M9?usq# z?j2?!*_r*bdIMYS)&c1YnzcNL^%jkzIA3$-$;_y@l=4dDrmfjT$RHIQ zVV-kH{22z9^&BY^T2I%>>6RRqyaRcC>VnL=>@k{?C(zk`Juf&!juB$sUKJx%t9`_^ zT#X9c>P>V(I7eWJmwV5K)JrQls5VUj4AB@DOX`V}yrn0^Hh=FARqeZPu%#}nF75&| zm8|)7mbde8_N2wKjnn2;Q9=mEjiA+&KH~!0oy$e(bRa@(k%1?afgCYnh4VMPR#a6+C&tU?dw zCAO+N=f51AwE37<=COKe7A;njQ>llfhp-SX|)9GXyjFgK5w} zJc1;H@$UCit9L>ZMIY{Cpb5^*`aAT>PL`d*8Y^S){;d zKO@f8+>F}3zAPrCR-hYF&(T`FhDSkpwI$+JyD+5K&#L?MB*L9uNE=;kCnrQRe#%Z~ zO$KX4Il#|-Lcne^Yq#90wlul5C?#PP8T$$V1>!?x-{r-$qblp=gC5noEDw83<5jnm z4C5&-CRV4{qAqJdwo2_<4E1ii+~_a>nZ6IwZsTml5iWg}v5M{s&tFljU3bYs>a_#3 zRSUM~QGOAo|~`Wv#n+9NMh9&=q~&-T@$e`SB&>e#sb$7nqP&i{sS2 zmJwJLmCE`&Bp(-2KgP6aLDC-u6d%`573wY@dCoNi{7EWKDwSa&gUm5x z_BsSwhItXg&g+4s--L%&=Qav;51N&U6~g%5j%#i~_ELy{Jm0_CFwnDQLRJ)b&)pq#<|F8 z-!8;mSak68WDB%xMAzAymE8&Q=!YgY$MgdI5|y-OVymk}8jp5)O+fdzB#xTO$i0-1y|b{XYtaS^5)%v7n$5bm%-7&gW|33yH$0szON^mO#OPuU6XS$k^ZvHKSm!L)bi>K|<4tj|mko5#S(#go^v(4FdSwSNSTE4k6q7gh>dQ!>_(OzZG?BXbQV!h^~`v zSGnz*)x1UnJ>mskRzA7r(|01qe(89%wBtSz zs5rHH&2E3wmMW6)oBq~&F|_PVqM>>2>;GB>Wy@QkvfiR$$v znw=f&jp!v#CbAFU#pbCL?~Cc&hAC+-A$z!E!CN^j z?s+zX{XN7IbQ`bHgYNzGf0=fS{KM^au5n1fDx;)7ym=@<&Mzv@KD-P36r$`w`1I26 zHQQN8mRwi>vk-5|+AjO9=rzW<9;k#%nlrt5u9z~l85!4cGipwXyHNnLyM_=%X^III z)_O>uN7Yy*6z&X}Zt+~;9)XfvVkJp6uf;xVBJ)fR09@rW-~`GjY!l@^B2%hTv=cUy z+nvQKgmQyO0nc8%%02Xxt&mPQ@IQek3M(9y^K8Ke_YQ}f2sdYuj4~uF!gYO z7w@ZGx3(wq%3#i&(Ql@4dl&J4E)JUF3q_)lh{k7+!X=VoIOd*w0a)xJ2A4oH{Qs}5 z>yCzN>*7}nLX_yyNz@=n^b#dclpxwf7$q`FgpA&e@(@uYJd+T0M2X(Z2qDqS=-tB@ zMi9LOG2ivQ^}Ut%*0=UQcinaGS?8X+&pyBN+k2m_%Ahj7?qLCh+*Vi^W`2&T73=8$ zD`Jo!PAd#ByA|EvV`nJMjfd7r*>;lwO1}Exn4jIvf6!W-cPk&+?<_?M915MuwDTY!^zj_? zsvTroO5_GEGcqfNW6g(iEy9`CXfx`a(I{eI0Y3$4WPQdZ_1WV&Zl0wjVBy;M3(n3( z>4w1xE1#f|gh#gKJucdbIy8Lg3A};WzN&W$;&YyU$9rEKjIIoI{s7S&K&ph#<=RQV zt+jz{Z5<3X8+O0cI)gah(?m!Tk1lBlv+6#+oorpHM6!F2B>$a(LhpeiE zHmaey?lL*8NlAcP-+H)EI5GX%$oifVGtS121-QKmXvzKem|YnDVCdE#a5&F^!xH#LlND9V6nE4GDO8@!6@t^K$}b3 z${O+WAmwmL0qyesI`L3~f^;<5CDI|IkXeT@?m!fn{3Ze{z$~1KuTrm^6%C8)E*H}X ztQ1Eu{$*;mx0hW~Yn$;Ak>WC`%OmCvnZ3Ejq2hr6ktfB^l!p7%8MRK9KF4#t@%!bb z=w;}A>$R#5guC{Z|HU%%GTx68@Lf0DvFF-9H2iCc;i&D%$h6Av`7^LLVf1|xgpBHZ z^P{!yd|fQNGCtd<`Drq|2ioj8f;s0uYuq*;99^GY0O3P%+|i_Awg%u9T=`AON^C&W zcCVzDoa_nR3XLIh zTXKB9f1b%sIIJ7g#|)q#4L>Kve`^x9xg%1)&?iR5fUMVXstmhn${jCC2Ad}45Vmal z^Jzgi`v9+5ZbS$}Tr!!SzB#8xgC%G-R;ycn)Xt>UIwoZ4Y|M7@wDNupI@cLMCn7RN z9XOsX2{s8^`TOm1f@h3E`+1QlD5j^=1ZZXO5ypV8SCthE<~bVd^l1qA#+5JzFTUUc znZj$ z8xNGhjju0;Tl31=(NJ;(r<9utg+lbciVjiO&0e+1ty+~DmmJmsg|NUn39@_g z$KD{G)9a%sWti>i&Y*mf!#xj1X9x)CBc>1D1js~9@#`AjomTaIFf|x>9wMnf%IGYH45Q3yxZjPx~)dBnC zteT;Kz~MhhZ};>e^>%bcWc=L%YNLl)LgxaLo)?z(W{4D?@VJK|>wQd%@<- zY>DQR*!RxiuS6Bcza5GC_ z_Pk{;@4T9$E6!de#c5$8BP3($Dw|SQ!T=tC-q%L;n97*pKrEuWU>4qw7(3irAOW{MwKuh@piTOjP0HJ0KFGAVAq5;+9 zp$IG=^VRuT<9o>CCeooxu(aACEKJLPQp9SvG|v745=f*+ej|p9cgr~w_9%dmn0&Az zTC=i=wf_N|0b8e{T@;x&>B$?i)MHX`UdyKR0~T3g9wD$<4A;Vitsa&74M*T=baEun zNB)Hhc0d{y0mKk!1chvH3U5d$A3u14L@p-UxDQ>@bZXga7QL1qCcs7!T?%r8hJxg0 zPO!{voX)Kfrl1f3wL$C>spxxo~9qORue z4u6{}g`_Kx*0k}&Og~9U_vU>>45}fc&x3JYB4Bz4FAAl;GtEeyLTP2Edz@UV;buAq z?Wo8QhMISW>3zu-dt2}+o@AvX&2>P5qmZR@Tv?a=cBRJMLAQIZ96_@?*dfPLqr#mc zQUKxTBLtFrA_P^2yB%2^VHlll(uQNO7UIZL(Q>iWXcDJe>KXJ4IH+UspfMQr&JEY8 za&KXL?s_A*5D1E7YQ?7}o^MMN37uH=@Uqtp{g?7zZnh5Uuj$usHr#4s>0oJ6UrKS{ zmH4mz74-61+uvEy-T&RQoyGSH5)tU$JHBmJr5jSRFR40IwIRgRm5p3~fgh3n)L?sK zlJ3xy*z9PIa946W-&@Irb8O1{#vHTaJ#&**;z%#S;unszK4Z!0c14H+(A=tnDT%PL zEaJ>1VW(1xOUXvEl!DNxSddIGaEX}6MsLm>()oXGiRm9>1|In=Y4;x^u+YPZ(m;%F zKR8F*+huAnpw`jUn6{=sA9C#usMmp(c40Z2N=Is7nt;Aw7CbZdWr7?EKJDYBGon5N&s7wfSQ>^M)EtQLhzs%im>*{)# zESh=x-v8xg3*hVL>rpA{H&(;*N^7M?6Lzzd;T*(PN-Q*bw`;-hx2&W5#_7_Hz6H)I z4U_>Pc0H5nd)0=hWSj;pY+~}&j!qEwtB>C{q~Z|=dTTlg%(WHLmvkGtJiOp|rou+n zmTV7UNbq9a9u35x>xFGL}x~O<2jyv^zBw$Kdr{knPZ=R4XWw&TgUhf&uARrl#bY* zLp+&xeO@Zt9%%TjK_%E=Y_b|&7qE>3A-1axTle~(M`nd9z@3NT2h3DGq9^p<;yqgpxUi3DGf=2))u}>QkX|Ux6q11(;L;9IwuV7|Q=WPS;#h+pYBF){?N&002NBpf0H+t12@ge2gF8m6cF$pNoOF0quMGnx*PCVgCUr C4Ia4w diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_1024@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_1024@2x.png index 4f00d3331972180e086b3dd597d24be48a50ae8a..d62729ac7f651c6679fba485417319e7118840ff 100644 GIT binary patch literal 17492 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 literal 17301 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_320@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_320@2x.png index 4410c17e6c5d1b1776f81ee2815f921e1a4df820..6eb2ba0320b0176564b35fedee88d7cf0c44c3c3 100644 GIT binary patch literal 10887 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_375@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_375@2x.png index 5d3c570929ab3566ca7c8b07e13269887f2974f1..0eca07f6bae32576702e25ae00c8e58dd5ad6ad9 100644 GIT binary patch literal 11457 zcmeHtc|4Tu_dlXUvL)F`qC{nz(AX(uUy^KeQmfkcpXT^SAw7Mo2)~Q5( zXDvfBYD-7Getw=(FNuFz>Tj;b^e?Wv)HXs_OWiDhb`86mGop2@pMJ(4AxxMu_Jomz@7Y3wr+-e>_0XA*|+Us3vZ# z{U7P5uVBRUANxb?3u~*nu@2puODJhZ`dd1S%-j{{l=iU16q%f%1ks=kn7xd<@QVxEsjFyAQQ3-i7;zZ_f zhzaCHkm%o&o$b6Qp@B=U@n)RRMBrHvLD>1}_0`0C`zJ_Tr zx7zBy+V;6HsHmj{)3UK(wb1F9eHZP#+8_g&-~aw4Zn-~%vhTRHTGduGW7q7{xpv^^ ze*n!3T^ny2u7e;V1X4|x8ot~QB>|MzC;*QMmpEkb{<}c8o*S~z_8z7$k|W6S4b;K5 zd}gETbpT~Fr*YaZI$hQyB$8Ora!EVgc*iQ%S8na={x*JU=5V7!D8+BM@klKkBF3fi zj{|^>pIl-hMAt5kOX8VsFagxN8X)`FOt zctHi_i|!QxeRMLdBlkCjLiPr~E_{q+25r17Tp$82p36FA-7jXBX`bf03V03S1L#Ma zCUgtk^tpckHIL#<$?sWRPDNFbGV5b)}ro;DX%@NkW zogeHn;~SuVUp&8j^U$?ZT!jOh>jeUCdxPdSk&`#1>^vsloCYcF4;Zln&e{?(6+9d? z170bC13IOMyyKzC#jS4AMIlh9k?l#(EF_)IffWX~j$5|8(e8n#@e*j(rY6E`_u*A!-s04{RM5sS@YW#3# z%0v4y%H_)&74q&W5v7_vpFzik7ZBcw@-=0DDEO0kA~$40sXtrx>ZXBQ-%Pz})u$s; zSs=WFI_?it$5lKL+CK!$?6vD_2kcnOYLq<`1b{ofQ=tdu7o9q}F~sgT<-pQe?(N+-J-iga z^{(Q6Q`gc;bNh27Cw;HpP@Q%;699JB1ay5YONJ<*9ECdPFj^#I?J1=Ct@k}>kr_W( z;z|M(kwp_H=h`g0$K*r4^NuHlv7W@!N(4XqJ7R^g((Qv@4RYD_mS%gPOssB_G0Zy) zBPRG;fF<|wJ>N*1ksnp3nm?9bC-KsK;<%EV>5|9~e6Za8nBJeOjL(Y54_lkdA3ANn zP5S|;lcjF{D>_LOy{}uA?b(>?h_ig6+ch-m+3RSVnYz!c(qI88p!e5jDg6fYUeFOb z|EmAp8Ha@_N0AxH>QzcyZsGk8z>+mYDAhO+R%6v)#wimvvJLt2f<1>gxOUmq=0IN# zqy3FI!5uWYED65rX(2p%lcX=`#B&MJpVjsrzSzFJ+Kye3E|jQk_U)Rcq%T6w2_O&5 zB_JXQ$GCODe*!Uw)V0-56AJ5**!LF63B!Ajv1iJztrS7Gfe5fc5Q9N)C*0C~TkS%< zDw=DTg%41aBexn3@g>!saX3r5KNNo(j>^!#UCZPkO~0$hLiy#*Xkee2TS(KV_(Ha? z6?rfAExPuTYE`Z*EwlvB&reS5&Irj8O#m?~op4TZ{Te{V$|F7Fa8jbGAmDCViS6F7sDcL(KE&%!r$n*(=RNtx*hb{;b1 z6RnRM(TKg|VuMJ$ss*ylq^N6n1vvK9RdS%7mIn9>k1(O>kv-W;5MkA97d| z{nYM_lJDfr&HLh3py(G_z0*(<#^NtqF8-;8(9btFwrjaGs-wEKPU7wDLO(TJLPsR$ zH;CV{gd6id@UqVeDx%>0Gd4IcHYbXoC;~dqG=3OlE99GiUvz|1S&*1B|Gf&_;Zw*kG$$H{mGdL_CVxr4T*`YP` z2*xzSEsMxe^lrzPHMRm3ORJM#w~8P->g-F-{>sHhxdw)HxEiK2Zpzn{I1^eO(SyTE zTl%$ot}d7wW{;rJ8@M>`t5K<0^*R9mbN97YV zr9{Etl8C{9a6eZ6>M7?6zY*=NR3vn{KCrxDVHB-1W%T+g0<6@rBOq8i<&WRdT9PjK zTP@u*yx}A#OQbe=ST|Y&JRldTo-(w~3!Lq!w-Q14&ro#S1{@!KK-n+Cm)(3m)*Zc9 z=et61#(X|LnG2l985fxbw8vp*r)i`+rbWI^E5#{hz&0I$8v#=(1S}QN`b0V zM4UT#*>o#xpfiO6pMPCmz@l zA21l>fZ+~@U?9&AME*{;k~C+NBje)RYon!j@8yO0UibZ?GRzTO;*H+YO$Y_eq)QhB_cduh}r&t_|NmC%3o>Pf7gMTAv@vm<)A8J`m+KmWk1 zzP!uET7(F`*s zTGt2pHiy8ogGS9mao&0^2m40sXEBl;5S}K&u`(Cgn@6Ot^!ObMGHRg{TTP>Bl*eP*tPNv{M|IE zM&ih8e9z8h##O<{DE}G9-O>h01k!IA9o9oEIA>nivj#=%@+uW7IZ#$d3auh*_8V$w zkDRTW8irGLtvft-icq$A$3|wP@%@gHu2J2@?AWqqr5UmARP#-*jyQKp0!ib~=;g&I zakx~P!PLei%&cnjWIA)d75X(%}mb?YQs-yZ)A@k; zy;+s0w*ngKh%d4oIrl9$G~!4W11}&R6gCWc{?)V0I7;7ZRv=vU?Ytq7)H3+#1ryH# zTYK&|QC^aY&p4yi334o(*{$7luwii@Rs-Gbo;amIlCQ0}K4)vlBL3isoFmF=q*We_ zo)nSn-wp0Or8|1vDMO<%M5Ky0qu_*blM*!xRjLERr_*skO*3HwM4R-ccqXag${d2Z zMQ6d4=9;FCyC~cnV$+Mc9)g@g$oIFMDbzKO$pMvFwmm8!i{0^_Qf5X)jiM@CAt3ge z!^~O1ZudNsU%F~>-hk{>WEomnL~%)Q-SibR0laiMXf3y>(vf^#&sL&Ni_I0tB$nKaq!FbF(x56 zfg6$8C@+;ar33Hgnp?B2A%=4o{erZ5p;g+o`CrumXLD})UWS_&+m2FU4U1!m`v2^X zau*mb8bX!H)fX7h&clu)!G(9MBN$4fwVRT;P%DqL(!HrW1NarnNj405)%3xyd{eEG zb3iU7(I4lYQSa)uZ8kPpeZ{V3$kx~5A$m=t*f8hk?za(UYsl=dVHh@xx62ti|H}d{ zm1=H$=e?GP#A>}4;Y?(d#|(vu5IC1e^8uUF`c~{WN+L)#3J`Cd5%n)7GyC68|22W| z|6e9J6r!OyIs(j$-J{~SRX^ca95$K?#tQucW7X9%#D(?MjLvYaaTyy|hncAx8*8z% zeXy+-6&6-7QfK3GJ{uc$=F7*t+%1fMfLGNM1%HSlK|wjazs0sX^RB`?FdaM7XQ22Y z=?}nBEq8^%;4A5rMWv0$UNr44&HwnS)z2IY?C5Pefe$?98T_x~qNNXJ6ZYH{NxO0D zUm9$dfe{nY#z6BMxLj8cdykE_{?7j!%naui_GG1;rTOKre!9K)Cur&Xg}h?Ce}lM; zwqfsqdsZ|w|1zf)qG!ZFzl!z!#%P5DXz6xmJ!oluEAwBWsJ8#FrT*XN6q5iV6y;nS z=+v$!8}L=EXe%Atqg$Ni-u!0t)2XH>uhaL(uhjZZDF|&o_twh&LO*>pt7$rnD&9xO z6q{}5yePF#W@EI;ZD<%<8?PCzI0}xi+`!-28v1C_g9+T~o%7DVme`l!2I|eWPs<6! z2i7`maBMAS)Gxe;MdZ~!B{RNaEaA`c|DauD(;@A99Xlts8g~$_aU4I@NVxXNqq)%a z;U*#3Kwi{?&n;x{k-za)+Ny@INYbqVL8$IPjV|M}^XtQgsuNesYeD_;{_#9uX+gjA zW$R(o+MEvCa3O3LJs6_Rf|+`KFC%vzi-fk`4HE{)TCEGmhK8&Q6buq~@3E+d;= z&FVM~eG(S~@x&&x^CCKPa%@D0Cx@ z5XG}6$0!$gG>W_vzA7G_RFn5A#K~mW1+Cexw^v&ayC^=($M*%0 zW3Q>AYGrOdSNlefd7oc@wR)%nj9Yzl#E78F@fc6q!#pJf`Zu|eUKDv8!4~rK(lWpv zh{5<~vVrW=%`>vjU1lW1`sec*Bk`FxCV(ud?2HBvhZlNd-W4;Ae~M;J^9>*p0X>~= zlM`rLZ?Y#Ld{=`Wzw&2GAYvJlO|HK?8cizCv<-u}~mDYTyPNL8Di!*_zEY-MbvYN9~BxL8i+CN&@$*#Entg(KxZjCFAGc6A##u7m9lN2SQg@x#CwZ`_C!^R)0XZB$jv1Ssl&z@=%T5h z7o1VfQkViNT&&Ex3~d=}72HV-ll0tPGWMS96-{szf&obEz20J zctEc4S6wD$6}&;Q(p9zW1f35VUQcqqB;{n$i_GZVOKoAnq>YU#eFk?CK_w4^w^F4P zSV#1V^pB}Sw%Y@->+F73WIYbDej;x}+%q+HhVQ#g*#L3e1QPw?O`anAwxPV>fz<<- zn7Kk+TAPTG8(qf>0oiVg7BF~*kC*;~6f6FnZE*vkOy1gh7rfaDC6(c16ou%^?x?Fk&^nZyCsOQ zdkZ~1>FYMlfX{F?a638Y5yr%u58IXJ%bL2m@Tvi~5(2Vz+w%G>)p*gi{IupBm&|iG zQ+1V}VrlILY`-S*Vt1YmhHRJky2nqYbvmlW=_NAk$-F z_HplI|5{IJhKRYq{aY`Zv3{UYZW{T0pWV{_8h0Rs4;qEqrJT^V{}IGi!aWdQl3}e& zX6JfUZqk5BLkHx%JP;TKPM{$EP*?60Z9DK}!RqE^&rtt)h?qKrWMI?No?th%IjHB#wgSAl-HLO8yu41N9f2LkS9`1G$MWC)<@h~RD1gGSLpY398>Ig^10D70@s?l4 zTbJk#Vy2}mQtk`h{P8`1*b53{l4t-|oLXkCars_*VYH=uLXZ6=0ESeKtPA(ifBSZO z-oh@09>=sKY zzUH|e8Pm_&7%%T=c}#L-d&!}X=i1kj^OtblAHvil;taZp43}rypEx_*cF50LxUTKE zb=zBFk<^h4u4k@zpr$33}-GYZ3xjZa6X?Q1Wiwt{wMy)Sv=g$2KsS`L67S<`Daw>`rK0U?v6uN z^p}+G>X!?(BbpXJuCg&2t9@t<4`Dbu;K)@;Ixv~F+LZA`U%1QL2&5Dh0qUGCJNasO zPJISju^)`+^q6(XRlsLKUb88ZVL5S*}$M{;=?@XNUZ$VhJ~^p_2In@@=ZFWj?Jga+ah)1 z)8!n>q#!-nD^pqT_wN;iDZMN5-Sq1&P-?#iq52cm0BW^7)0Y94!TUfL=Q=zs$9RQdrEjQ?qE)xBqp{> zNDs=f=?`UmCd?KZF|;M&-2P1x-rDds7%>H=i+jp>F}-rCLHnxP_8=5mz*oyb%gQiv zeKgDdGm1d8EPNzD;8pHhLeChYD=zJGRD@Y;@|ElM5I=cb-gi)(EI#lnf z{)&BXkuF0^H%I$2C+9_MvU7ASmwZg}ar5VfEj%e#>%W%l{Lr6;_Z9I%fFDN-CfRg! zP3PLt%lj?+%xf;hR#8jb_jLj3)D0ovkh7}ka#}*?iChk-7$cxqMqv*Ay z>5a_+qh3gpUGerrz4I1GIX(ID*S{JQ8Z>L}Axo(%DrzLwapbv`yZ*RKe(c^s(^huf zYG^t0W(}GCn;cARIq%_`Tn33A_?CU092*N82x>VP)cCUhd}A=8 z`)5w9LhjdxX6fjNim=71Js5yrZFNzYyU4OnO%%U8J8&q!-I@8G+;`m{?f6VaOTZ8F z_K{#gpEqyj*7rw+>Ll!(I7c1Q^U4WPHdK23Lcz2IS4&Au805{v+@^tt^dlFBQT>_7 zij%!M*pTADz;ES#J04Jcsm5iuP|0ba%HYFm1J+K}bQzc)vhSU4riI~`%3isXb=;Q% zIT5OR1M#0T(X#!5LdifW*)w%uYlGchcWRx99_ReY1hp*JK_d z|ClN&kH{Bbdp^0IEMVU*v*Q-WCF=L1R;}gm#|FkxxlaJ*Mdu<|6sS1@x5-gnc~Y`eN1FIRx4>kW2#x?aEUl!g)=#)NYzFZUZ%1f4R+cmuaF{qqRvn zb7M@pPU59In-@K~5mBLf5L57QYr$Y!o$tzqo%`+F{3jRDFf~P3os3CmTZ*#kn5dBt z3{nhCI}LIu~pg8G%qrH{6vav-&}^`MY_=o1Ee>!2_aF=0izv)Ic|RVNpt<; z-X`JMl=l@A-W>CKb9LNef!qjYTTWX!1=FmM^TtJ7rTV7E?l<6~cCZXQkkbQ{athVj0?K|3hqPXk1&uI>fi3^pe_?zYm^Br!@_w|K`y0e&e8MU0*}w2* z><`k9^J=r%%*rQz6@Gsmp30&D%52?t|;-x>B9*s|JuMB`9DZa zjBJR-kA3RD(KfcP7peSv<0}6oX;Z;9Zokv9|6=K3Y6?{TuC}fTe~_f<=|T;pN*{{fJY{KEhM literal 11367 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 Qdf9BoSIrDyS8hG}ADN!-mH+?% diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_414@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_414@2x.png index 0e002d8d63e7045314a83a7e588557d7fdb98220..97bc535a48b5ee0c272505ed0bae1f9ad347d1de 100644 GIT binary patch literal 11922 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 literal 11776 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_768@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testRTLText_768@2x.png index 22f45831308fff6bf50c05d6b4910a63928dd233..49bf99e7d56ae1c93842ae2c99054ff03c923eaa 100644 GIT binary patch literal 15181 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 E1rO<*mH+?% literal 15054 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 n*ZUoKe*>ofbJ(e7?BJ(dzdBQS-3jwgwCC;`{hS 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 MjjYa>opX=+7bMGMAOHXW delta 5541 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 K*#d)W5&r_C;ksY| diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testShortText_375@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testShortText_375@2x.png index 38eaca8c68bf489c74ceea28904e102b67f20f2f..5e0e501296182ecc683853163fdb21f618932391 100644 GIT binary patch delta 5858 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 diff --git a/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testShortText_414@2x.png b/Wire-iOS Tests/ReferenceImages_64/Wire_iOS_Tests.InputBarTests/testShortText_414@2x.png index ab68f5e2343b1a121be457ad23dae700e7cde8ab..d665da1369b2f2aa77c8af6b664347fb5002a841 100644 GIT binary patch delta 6005 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 delta 6197 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 [String : Any] { + return storage.attributes(at: location, effectiveRange: range) + } + + override func setAttributes(_ attrs: [String : Any]?, range: NSRange) { + beginEditing() + storage.setAttributes(attrs, range: range) + + // This is a workaround for the case where the markdown id is missing + // after automatically inserts corrections or fullstops after a space. + // If the needsCheck flag is set (after characters are replaced) & the + // attrs is missing the markdown id, then we need to included it. + if needsCheck, let attrs = attrs, attrs[MarkdownIDAttributeName] == nil { + needsCheck = false + storage.addAttribute(MarkdownIDAttributeName, value: currentMarkdown, range: range) + } + + edited(.editedAttributes, range: range, changeInLength: 0) + endEditing() + } + + override func replaceCharacters(in range: NSRange, with str: String) { + beginEditing() + storage.replaceCharacters(in: range, with: str) + edited(.editedCharacters, range: range, changeInLength: (str as NSString).length - range.length) + endEditing() + + // see setAttributes(_ :range:) + needsCheck = true + } +} diff --git a/Wire-iOS/Sources/UserInterface/Components/Views/MarkdownTextView.swift b/Wire-iOS/Sources/UserInterface/Components/Views/MarkdownTextView.swift new file mode 100644 index 0000000000..f60dc36418 --- /dev/null +++ b/Wire-iOS/Sources/UserInterface/Components/Views/MarkdownTextView.swift @@ -0,0 +1,574 @@ +//// +// Wire +// Copyright (C) 2018 Wire Swiss GmbH +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. +// + +import Foundation +import Down + +extension Notification.Name { + static let MarkdownTextViewDidChangeActiveMarkdown = Notification.Name("MarkdownTextViewDidChangeActiveMarkdown") +} + +class MarkdownTextView: NextResponderTextView { + + enum ListType { + case number, bullet + var prefix: String { return self == .number ? "1. " : "- " } + } + + // MARK: - Properties + + /// The style used to apply attributes. + var style: DownStyle + + /// The parser used to convert attributed text into markdown syntax. + private let parser = AttributedStringParser() + + /// The main backing store + let markdownTextStorage: MarkdownTextStorage + + /// The string containing markdown syntax for the corresponding + /// attributed text. + var preparedText: String { + return self.parser.parse(attributedString: self.attributedText) + } + + /// Set when newline is entered, used for auto list item creation. + private var newlineFlag = false + + /// The current attributes to be applied when typing. + fileprivate var currentAttributes: [String : Any] = [:] + + /// The currently active markdown. This determines which attributes + /// are applied when typing. + fileprivate(set) var activeMarkdown = Markdown.none { + didSet { + if oldValue != activeMarkdown { + currentAttributes = attributes(for: activeMarkdown) + markdownTextStorage.currentMarkdown = activeMarkdown + updateTypingAttributes() + NotificationCenter.default.post(name: .MarkdownTextViewDidChangeActiveMarkdown, object: self) + } + } + } + + public override var selectedTextRange: UITextRange? { + didSet { activeMarkdown = self.markdownAtSelection() } + } + + // MARK: - Range Helpers + + fileprivate var currentLineRange: NSRange? { + guard selectedRange.location != NSNotFound else { return nil } + return (text as NSString).lineRange(for: selectedRange) + } + + private var currentLineTextRange: UITextRange? { + return currentLineRange?.textRange(in: self) + } + + private var previousLineRange: NSRange? { + guard let range = currentLineRange, range.location > 0 else { return nil } + return (text as NSString).lineRange(for: NSMakeRange(range.location - 1, 0)) + } + + private var previousLineTextRange: UITextRange? { + return previousLineRange?.textRange(in: self) + } + + // MARK: - Init + + convenience init() { + self.init(with: DownStyle.normal) + } + + init(with style: DownStyle) { + self.style = style + // create the storage stack + self.markdownTextStorage = MarkdownTextStorage() + let layoutManager = NSLayoutManager() + self.markdownTextStorage.addLayoutManager(layoutManager) + let textContainer = NSTextContainer() + layoutManager.addTextContainer(textContainer) + super.init(frame: .zero, textContainer: textContainer) + + currentAttributes = attributes(for: activeMarkdown) + updateTypingAttributes() + + NotificationCenter.default.addObserver(self, selector: #selector(textViewDidChange), name: .UITextViewTextDidChange, object: nil) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Public Interface + + /// Clears active markdown & updates typing attributes. + func resetMarkdown() { activeMarkdown = .none } + + /// Call this method before the text view changes to give it a chance + /// to perform any work. + func respondToChange(_ text: String, inRange range: NSRange) { + if text == "\n" || text == "\r" { + newlineFlag = true + if activeMarkdown.containsHeader { + resetMarkdown() + } + } + + updateTypingAttributes() + } + + // MARK: - Private Interface + + /// Calling this method ensures that the current attributes are applied + /// to newly typed text. Since iOS11, typing attributes are automatically + /// cleared when selection & text changes, so we have to keep setting it + /// to provide continuity. + private func updateTypingAttributes() { typingAttributes = currentAttributes } + + /// Called after each text change has been committed. We use this opportunity + /// to insert new list items in the case a newline was entered, as well as + /// to validate any potential list items on the currently selected line. + @objc private func textViewDidChange() { + + if newlineFlag { + // flip immediately to avoid infinity + newlineFlag = false + + guard + let prevlineRange = previousLineRange, + let prevLineTextRange = previousLineTextRange, + let selection = selectedTextRange + else { return } + + if isEmptyListItem(at: prevlineRange) { + // the delete last line + replaceText(in: prevLineTextRange, with: "", restoringSelection: selection) + } + else if let type = listType(in: prevlineRange) { + // insert list item at current line + insertListItem(type: type) + } + } + + validateListItemAtCaret() + } + + // MARK: Markdown Querying + + /// Returns the markdown at the current selected range. If this is a position + /// or the selected range contains only a single type of markdown, this + /// markdown is returned. Otherwise none is returned. + private func markdownAtSelection() -> Markdown { + guard selectedRange.length > 0 else { return markdownAtCaret() } + let markdownInSelection = markdown(in: selectedRange) + if markdownInSelection.count == 1 { + return markdownInSelection.first! + } + return .none + } + + /// Returns the markdown for the current caret position. We actually get the + /// markdown for the position behind the caret unless the caret is at the + /// start of a line. We do this so the user can, for instance, move the + /// caret at the end of a bold word and continue typing in bold. + private func markdownAtCaret() -> Markdown { + guard let range = currentLineRange else { return .none } + return markdown(at: max(range.location, selectedRange.location - 1)) + } + + /// Returns the markdown at the given location. + private func markdown(at location: Int) -> Markdown { + guard location >= 0 && markdownTextStorage.length > location else { return .none } + let markdown = markdownTextStorage.attribute(MarkdownIDAttributeName, at: location, effectiveRange: nil) as? Markdown + return markdown ?? .none + } + + /// Returns a set containing all markdown combinations present in the given + /// range. + fileprivate func markdown(in range: NSRange) -> Set { + var result = Set() + markdownTextStorage.enumerateAttribute(MarkdownIDAttributeName, in: range, options: []) { md, _, _ in + result.insert(md as? Markdown ?? .none) + } + return result + } + + // MARK: - Attribute Manipulation + + /// Returns the attributes for the given markdown. + private func attributes(for markdown: Markdown) -> [String : Any] { + + // the idea is to query for specific markdown & adjust the attributes + // incrementally + + var font = style.baseFont + var color = style.baseFontColor + let paragraphyStyle = style.baseParagraphStyle + + // code should be processed first since it has it's own font. + if markdown.contains(.code) { + font = style.codeFont + if let codeColor = style.codeColor { color = codeColor } + } + + // then we process headers b/c changing the font + // size clears the bold/italic traits + if let header = markdown.headerValue { + if let headerSize = style.headerSize(for: header) { + font = font.withSize(headerSize).bold + } + if let headerColor = style.headerColor(for: header) { + color = headerColor + } + } + + if markdown.contains(.bold) { + font = font.bold + } + + if markdown.contains(.italic) { + font = font.italic + } + + return [ + MarkdownIDAttributeName: markdown, + NSFontAttributeName: font, + NSForegroundColorAttributeName: color, + NSParagraphStyleAttributeName: paragraphyStyle + ] + } + + /// Adds the given markdown (and the associated attributes) to the given + /// range. + fileprivate func add(_ markdown: Markdown, to range: NSRange) { + updateAttributes(in: range) { $0.union(markdown) } + } + + /// Removes the given markdown (and the associated attributes) from the given + /// range. + fileprivate func remove(_ markdown: Markdown, from range: NSRange) { + updateAttributes(in: range) { $0.subtracting(markdown) } + } + + /// Updates all attributes in the given range by transforming markdown tags + /// using the transformation function, then refetching the attributes for + /// the transformed values and setting the new attributes. + private func updateAttributes(in range: NSRange, using transform: (Markdown) -> Markdown) { + var exisitngMarkdownRanges = [(Markdown, NSRange)]() + markdownTextStorage.enumerateAttribute(MarkdownIDAttributeName, in: range, options: []) { md, mdRange, _ in + if let md = md as? Markdown { exisitngMarkdownRanges.append((md, mdRange)) } + } + + for (md, mdRange) in exisitngMarkdownRanges { + let updatedAttributes = attributes(for: transform(md)) + markdownTextStorage.setAttributes(updatedAttributes, range: mdRange) + } + } + + // MARK: - List Regex + + private lazy var emptyListItemRegex: NSRegularExpression = { + let pattern = "^((\\d+\\.)|[*+-])[\\t ]*$" + return try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines) + }() + + private lazy var orderedListItemRegex: NSRegularExpression = { + // group 1: prefix, group 2: number, group 3: content + return try! NSRegularExpression(pattern: "^((\\d+)\\.\\ )(.*$)", options: .anchorsMatchLines) + }() + + private lazy var unorderedListItemRegex: NSRegularExpression = { + // group 1: prefix, group 2: bullet, group 3: content + return try! NSRegularExpression(pattern: "^(([*+-])\\ )(.*$)", options: .anchorsMatchLines) + }() + + // MARK: - List Methods + + /// Scans the string in the line containing the caret for a list item. If + /// one is found, the appropriate markdown ID is applied. + private func validateListItemAtCaret() { + guard let lineRange = currentLineRange else { return } + validateListItem(in: lineRange) + } + + /// Scans the string in the given range for a list item. If one is found, + /// the appropriate markdown ID is applied. + private func validateListItem(in range: NSRange) { + remove([.oList, .uList], from: range) + orderedListItemRegex.enumerateMatches(in: text, options: [], range: range) { match, _, _ in + if let matchRange = match?.range { add(.oList, to: matchRange) } + } + unorderedListItemRegex.enumerateMatches(in: text, options: [], range: range) { match, _, _ in + if let matchRange = match?.range { add(.uList, to: matchRange) } + } + + activeMarkdown = markdownAtCaret() + } + + /// Returns true if an empty list item is present in the given range. + private func isEmptyListItem(at range: NSRange) -> Bool { + return emptyListItemRegex.numberOfMatches(in: text, options: [], range: range) != 0 + } + + /// Returns the list type in the given range, if it exists. + private func listType(in range: NSRange) -> ListType? { + if numberPrefix(at: range) != nil { return .number } + else if bulletPrefix(at: range) != nil { return .bullet } + else { return nil } + } + + /// Returns the range of the list prefix in the given range, if it exists. + private func rangeOfListPrefix(at range: NSRange) -> NSRange? { + if let match = orderedListItemRegex.firstMatch(in: text, options: [], range: range) { + if match.rangeAt(1).location != NSNotFound { + return match.rangeAt(1) + } + } + + if let match = unorderedListItemRegex.firstMatch(in: text, options: [], range: range) { + if match.rangeAt(1).location != NSNotFound { + return match.rangeAt(1) + } + } + + return nil + } + + /// Returns the number prefix in the given range, if it exists. + private func numberPrefix(at range: NSRange) -> Int? { + if let match = orderedListItemRegex.firstMatch(in: text, options: [], range: range) { + let num = markdownTextStorage.attributedSubstring(from: match.rangeAt(2)).string + return Int(num) + } + return nil + } + + /// Returns the bullet prefix in the given range, if it exists. + private func bulletPrefix(at range: NSRange) -> String? { + if let match = unorderedListItemRegex.firstMatch(in: text, options: [], range: range) { + let bullet = markdownTextStorage.attributedSubstring(from: match.rangeAt(2)).string + return bullet + } + return nil + } + + /// Returns the next list prefix by first trying to match a previous + /// list item, otherwise returns the default prefix. + private func nextListPrefix(type: ListType) -> String { + guard let previousLine = previousLineRange else { return type.prefix } + switch type { + case .number: return "\((numberPrefix(at: previousLine) ?? 0) + 1). " + case .bullet: return "\(bulletPrefix(at: previousLine) ?? "-") " + } + } + + /// Inserts a list prefix with the given type on the current line. + fileprivate func insertListItem(type: ListType) { + + // remove existing list item if it exists + removeListItem() + + guard + let lineRange = currentLineRange, + let selection = selectedTextRange, + let lineStart = NSMakeRange(lineRange.location, 0).textRange(in: self) + else { return } + + let prefix = nextListPrefix(type: type) + + // insert prefix with no md + typingAttributes = attributes(for: .none) + replaceText(in: lineStart, with: prefix, restoringSelection: selection) + updateTypingAttributes() + + // add list md to whole line + guard let newLineRange = currentLineRange else { return } + add(type == .number ? .oList : .uList, to: newLineRange) + } + + /// Removes the list prefix from the current line. + fileprivate func removeListItem() { + guard + let lineRange = currentLineRange, + let prefixRange = rangeOfListPrefix(at: lineRange)?.textRange(in: self), + var selection = selectedTextRange + else { return } + + // if the selection is within the prefix range, change selection + // to be at start of list content + if offset(from: selection.start, to: prefixRange.end) > 0 { + selection = textRange(from: prefixRange.end, to: prefixRange.end)! + } + + replaceText(in: prefixRange, with: "", restoringSelection: selection) + + // remove list md from whole line + guard let newLineRange = currentLineRange else { return } + remove([.oList, .uList], from: newLineRange) + } + + /// Replaces the range with the text and attempts to restore the selection. + private func replaceText(in range: UITextRange, with text: String, restoringSelection selection: UITextRange) { + replace(range, withText: text) + + // calculate the new selection + let oldLength = offset(from: range.start, to: range.end) + let newLength = (text as NSString).length + let delta = newLength - oldLength + + // attempt to restore the selection + guard + let start = position(from: selection.start, offset: delta), + let end = position(from: selection.end, offset: delta), + let restoredSelection = textRange(from: start, to: end) + else { return } + + selectedTextRange = restoredSelection + } +} + + +// MARK: - MarkdownBarViewDelegate + +extension MarkdownTextView: MarkdownBarViewDelegate { + + func markdownBarView(_ view: MarkdownBarView, didSelectMarkdown markdown: Markdown, with sender: IconButton) { + // there must be a selection + guard selectedRange.location != NSNotFound else { return } + + switch markdown { + case .h1, .h2, .h3: + // apply header to the whole line + if let range = currentLineRange { + // remove any existing header styles before adding new header + let otherHeaders = ([.h1, .h2, .h3] as Markdown).subtracting(markdown) + activeMarkdown.subtract(otherHeaders) + remove(otherHeaders, from: range) + add(markdown, to: range) + } + + case .oList: + insertListItem(type: .number) + + case .uList: + insertListItem(type: .bullet) + + case .code: + // selecting code deselects bold & italic + remove([.bold, .italic], from: selectedRange) + activeMarkdown.subtract([.bold, .italic]) + + case .bold, .italic: + // selecting bold or italic deselects code + remove(.code, from: selectedRange) + activeMarkdown.subtract(.code) + + default: + break + } + + if selectedRange.length > 0 { + // if multiple md in selection, remove all inline md before + // applying the new md + if self.markdown(in: selectedRange).count > 1 { + remove([.bold, .italic, .code], from: selectedRange) + } + + add(markdown, to: selectedRange) + } + + activeMarkdown.insert(markdown) + } + + func markdownBarView(_ view: MarkdownBarView, didDeselectMarkdown markdown: Markdown, with sender: IconButton) { + // there must be a selection + guard selectedRange.location != NSNotFound else { return } + + switch markdown { + case .h1, .h2, .h3: + // remove header from the whole line + if let range = currentLineRange { + remove(markdown, from: range) + } + + case .oList, .uList: + removeListItem() + + default: + break + } + + if selectedRange.length > 0 { + remove(markdown, from: selectedRange) + } + + activeMarkdown.subtract(markdown) + } +} + + +// MARK: - DownStyle Presets + +extension DownStyle { + /// The style used within the conversation message cells. + static var normal: DownStyle = { + let style = DownStyle() + style.baseFont = FontSpec(.normal, .regular).font! + style.baseFontColor = ColorScheme.default().color(withName: ColorSchemeColorTextForeground) + style.codeFont = UIFont(name: "Menlo", size: style.baseFont.pointSize) ?? style.baseFont + style.baseParagraphStyle = NSParagraphStyle.default + style.listIndentation = 0 + style.listItemPrefixSpacing = 4 + return style + }() + + /// The style used within the input bar. + static var compact: DownStyle = { + let style = DownStyle() + style.baseFont = FontSpec(.normal, .regular).font! + style.baseFontColor = ColorScheme.default().color(withName: ColorSchemeColorTextForeground) + style.codeFont = UIFont(name: "Menlo", size: style.baseFont.pointSize) ?? style.baseFont + style.baseParagraphStyle = NSParagraphStyle.default + style.listIndentation = 0 + style.listItemPrefixSpacing = 4 + + // headers all same size + style.h1Size = style.baseFont.pointSize + style.h2Size = style.h1Size + style.h3Size = style.h1Size + return style + }() +} + + +// MARK: - Helper Extensions + +private extension NSRange { + + func textRange(in textInput: UITextInput) -> UITextRange? { + guard + let start = textInput.position(from: textInput.beginningOfDocument, offset: location), + let end = textInput.position(from: start, offset: length), + let range = textInput.textRange(from: start, to: end) + else { return nil } + + return range + } +} diff --git a/Wire-iOS/Sources/UserInterface/Components/Views/MarklightTextView.swift b/Wire-iOS/Sources/UserInterface/Components/Views/MarklightTextView.swift deleted file mode 100644 index 45bd5195d7..0000000000 --- a/Wire-iOS/Sources/UserInterface/Components/Views/MarklightTextView.swift +++ /dev/null @@ -1,673 +0,0 @@ -// -// Wire -// Copyright (C) 2017 Wire Swiss GmbH -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see http://www.gnu.org/licenses/. -// - -import UIKit -import Marklight - -let MarklightTextViewDidChangeSelectionNotification = "MarklightTextViewDidChangeSelectionNotification" - -public class MarklightTextView: NextResponderTextView { - - public let style: MarklightStyle - fileprivate let marklightTextStorage: MarklightTextStorage - - fileprivate var needsNewNumberListItem = false - fileprivate var needsNewBulletListItem = false - - fileprivate let defaultAttributes: [String: Any] = [ - NSForegroundColorAttributeName: ColorScheme.default().color(withName: ColorSchemeColorTextForeground), - NSFontAttributeName: FontSpec(.normal, .none).font!, - NSParagraphStyleAttributeName: NSMutableParagraphStyle.default, - NSKernAttributeName: 0.295 - ] - - public override var selectedTextRange: UITextRange? { - didSet { - NotificationCenter.default.post(name: Notification.Name(rawValue: MarklightTextViewDidChangeSelectionNotification), object: self) - } - } - - public override init(frame: CGRect, textContainer: NSTextContainer?) { - - style = MarklightTextView.defaultMarkdownStyle() - marklightTextStorage = MarklightTextStorage(style: style) - - marklightTextStorage.defaultAttributes = defaultAttributes - let marklightLayoutManager = NSLayoutManager() - marklightTextStorage.addLayoutManager(marklightLayoutManager) - - let marklightTextContainer = NSTextContainer() - marklightLayoutManager.addTextContainer(marklightTextContainer) - - super.init(frame: frame, textContainer: marklightTextContainer) - - NotificationCenter.default.addObserver(self, selector: #selector(textChangedHandler), name: NSNotification.Name.UITextViewTextDidChange, object: self) - } - - required public init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - deinit { - NotificationCenter.default.removeObserver(self) - } - - class func defaultMarkdownStyle() -> MarklightStyle { - - let defaultFont = FontSpec(.normal, .light).font! - let colorScheme = ColorScheme.default() - let style = MarklightStyle() - - style.syntaxAttributes = [NSForegroundColorAttributeName: colorScheme.accentColor] - style.italicAttributes = [NSFontAttributeName: defaultFont.italicFont()] - style.codeAttributes[NSForegroundColorAttributeName] = colorScheme.color(withName: ColorSchemeColorTextForeground) - style.blockQuoteAttributes[NSForegroundColorAttributeName] = colorScheme.color(withName: ColorSchemeColorTextForeground) - style.fontTextStyle = UIFontTextStyle.subheadline.rawValue - style.hideSyntax = false - - return style - } -} - - -// MARK: - Text Stripping - -extension MarklightTextView { - - /// Returns the current text buffer sans empty markdown elements and - /// leading/trailing whitespace within non empty markdown elements. - /// - public var preparedText: String { - get { - var text = self.text! - var rangesToDelete = rangesOfEmptyMarkdownElements() - rangesToDelete += rangesOfMarkdownWhitespace() - rangesToDelete += rangesOfSyntaxForMarkdownEmoji() - - // discard nested ranges, sort by location descending - rangesToDelete = flattenRanges(rangesToDelete).sorted { - return $0.location >= $1.location - } - - // strip empty markdown - rangesToDelete.forEach { - text.deleteCharactersIn(range: $0) - } - - // strip empty list items - let numberListPrefix = "(^\\d+)(?:[.][\\t ]*$)" - let bulletListPrefix = "(^[*+-])([\\t ]*$)" - let listPrefixPattern = "(\(numberListPrefix))|(\(bulletListPrefix))" - let regex = try! NSRegularExpression(pattern: listPrefixPattern, options: [.anchorsMatchLines]) - let wholeRange = NSMakeRange(0, text.count) - text = regex.stringByReplacingMatches(in: text, options: [], range: wholeRange, withTemplate: "") - - return text - } - } -} - -// MARK: - Markdown Insertion - -extension MarklightTextView { - - public func insertSyntaxForMarkdownElement(type: MarkdownElementType) { - - guard let selection = selectedTextRange else { return } - - switch type { - case .header(let size): - - let syntax: String - switch size { - case .h1: syntax = "# " - case .h2: syntax = "## " - case .h3: syntax = "### " - } - - insertPrefixSyntax(syntax, forSelection: selection) - - case .numberList: - insertPrefixSyntax("\(nextListNumber). ", forSelection: selection) - renumberLists() - - case .bulletList: insertPrefixSyntax("\(nextListBullet) ", forSelection: selection) - case .bold: insertWrapSyntax("**", forSelection: selection) - case .italic: insertWrapSyntax("_", forSelection: selection) - case .code: insertWrapSyntax("`", forSelection: selection) - default: return - } - } - - fileprivate func insertPrefixSyntax(_ syntax: String, forSelection selection: UITextRange) { - - // original start - let start = selection.start - // insert syntax at start of line - let lineStart = lineStartForTextAtPosition(start) - replace(textRange(from: lineStart, to: lineStart)!, withText: syntax) - // preserve relative caret position - let newPos = position(from: start, offset: syntax.count)! - selectedTextRange = textRange(from: newPos, to: newPos) - } - - fileprivate func insertWrapSyntax(_ syntax: String, forSelection selection: UITextRange) { - - // original start - let start = selection.start - - // wrap syntax around selection - if !selection.isEmpty { - let preRange = textRange(from: start, to: start)! - replace(preRange, withText: syntax) - - // offset acounts for first insertion - let end = position(from: selection.end, offset: syntax.count)! - let postRange = textRange(from: end, to: end)! - replace(postRange, withText: syntax) - } - else { - // insert syntax & move caret inside - replace(selection, withText: syntax + syntax) - let newPos = position(from: start, offset: syntax.count)! - selectedTextRange = textRange(from: newPos, to: newPos) - } - } -} - -// MARK: - Markdown Deletion - -extension MarklightTextView { - - public func deleteSyntaxForMarkdownElement(type: MarkdownElementType) { - - switch type { - case .header(_), .numberList, .bulletList: - removePrefixSyntaxForElement(type: type, forSelection: selectedRange) - case .italic, .bold, .code: - removeWrapSyntaxForElement(type: type, forSelection: selectedRange) - default: return - } - } - - fileprivate func removePrefixSyntaxForElement(type: MarkdownElementType, forSelection selection: NSRange) { - - guard - let range = rangeForMarkdownElement(type: type, enclosingSelection: selection), - let preRange = range.preRange - else { return } - - let lineRange = (text as NSString).lineRange(for: selection) - text.deleteCharactersIn(range: preRange) - - // shift selection location to account for removal, but don't exceed line start - let location = max(lineRange.location, selection.location - preRange.length) - - // how much of selection was part of syntax - let length = NSIntersectionRange(preRange, selection).length - - // preserve relative selection - selectedRange = NSMakeRange(location, selection.length - length) - } - - fileprivate func removeWrapSyntaxForElement(type: MarkdownElementType, forSelection selection: NSRange) { - - guard - let range = rangeForMarkdownElement(type: type, enclosingSelection: selection), - let preRange = range.preRange, - let postRange = range.postRange - else { return } - - // remove postRange first so preRange is still valid - text.deleteCharactersIn(range: postRange) - text.deleteCharactersIn(range: preRange) - - // reposition caret: - // if non zero selection or caret pos was within postRange - if selection.length > 0 || NSEqualRanges(postRange, NSUnionRange(selection, postRange)) { - // move caret to end of token - selectedRange = NSMakeRange(postRange.location - preRange.length, 0) - } - else if NSEqualRanges(preRange, NSUnionRange(selection, preRange)) { - // caret was within preRange, move caret to start of token - selectedRange = NSMakeRange(preRange.location, 0) - } - else { - // caret pos was between syntax, preserve relative position - selectedRange = NSMakeRange(selection.location - preRange.length, 0) - } - } -} - -// MARK: - Range Calculations - -extension MarklightTextView { - - /// Returns the text position indicating the start of the line containin the given - /// position. - /// - fileprivate func lineStartForTextAtPosition(_ pos: UITextPosition) -> UITextPosition { - - guard let caretPos = selectedTextRange?.start, caretPos != beginningOfDocument else { - return beginningOfDocument - } - - // if prev char is new line, then caret is at start of current line - if let prevPos = position(from: caretPos, offset: -1), text(in: textRange(from: prevPos, to: caretPos)!) == "\n" { - return caretPos - } else { - return tokenizer.position(from: caretPos, toBoundary: .paragraph, inDirection: UITextStorageDirection.backward.rawValue)! - } - } - - /// Returns the range of the line previous to the current selection if it exists, else nil. - /// - fileprivate func rangeOfPreviousLine() -> NSRange? { - - guard let caretPos = selectedTextRange?.start, caretPos != beginningOfDocument else { return nil } - - let currLineStart = lineStartForTextAtPosition(caretPos) - - // move back one char - if let prevPos = position(from: currLineStart, offset: -1) { - if let prevLineStart = tokenizer.position(from: prevPos, toBoundary: .paragraph, inDirection: UITextStorageDirection.backward.rawValue) { - return NSMakeRange(offset(from: beginningOfDocument, to: prevLineStart), - offset(from: prevLineStart, to: prevPos) - ) - } - } - - return nil - } - - /// Returns all ranges of all markdown elements. - /// - fileprivate func allMarkdownRanges() -> [MarkdownRange] { - - let types: [MarkdownElementType] = [ - .header(.h1), .header(.h2), .header(.h3), .bold, - .italic, .numberList, .bulletList, .code, .quote - ] - - var ranges = [MarkdownRange]() - let groupStyler = marklightTextStorage.groupStyler - types.forEach { ranges += groupStyler.rangesForElementType($0) } - return ranges - } - - fileprivate func rangeForMarkdownElement(type: MarkdownElementType, enclosingSelection selection: NSRange) -> MarkdownRange? { - - let groupStyler = marklightTextStorage.groupStyler - - for range in groupStyler.rangesForElementType(type) { - // selection is contained in range - if NSEqualRanges(range.wholeRange, NSUnionRange(selection, range.wholeRange)) { - return range - } - } - return nil - } - - /// Returns all ranges of leading/trailing whitespace exclusively contained - /// within markdown elements. - /// - fileprivate func rangesOfMarkdownWhitespace() -> [NSRange] { - - let text = self.text as NSString - var rangesToDelete = [NSRange]() - let charSet = CharacterSet.whitespacesAndNewlines.inverted - - for range in allMarkdownRanges() { - - let contentRange = range.contentRange - - // range start of first non whitespace char in content range - let rangeOfFirstChar = text.rangeOfCharacter(from: charSet, options: [], range: contentRange) - - // if not found, then content range contains only whitespace - if rangeOfFirstChar.location == NSNotFound { - rangesToDelete.append(contentRange) - continue - } else { - let spaces = rangeOfFirstChar.location - contentRange.location - if spaces > 0 { - rangesToDelete.append(NSMakeRange(contentRange.location, spaces)) - } - } - - // as above, but starting from end of content range - let rangeOfLastChar = text.rangeOfCharacter(from: charSet, options: .backwards, range: range.contentRange) - if rangeOfLastChar.location != NSNotFound{ - let spaces = NSMaxRange(contentRange) - NSMaxRange(rangeOfLastChar) - if spaces > 0 { - rangesToDelete.append(NSMakeRange(NSMaxRange(rangeOfLastChar), spaces)) - } - } - } - - return rangesToDelete - } - - /// Returns all ranges of markdown elements that have zero content or contain - /// containing only whitespace. - /// - fileprivate func rangesOfEmptyMarkdownElements() -> [NSRange] { - - var result = [NSRange]() - - allMarkdownRanges().forEach { - if isEmptyMarkdownElement($0) { - result.append($0.wholeRange) - } - } - - return result - } - - /// Returns all syntax ranges of markdown elements that contain only whitespace and - /// at least one emoji. - /// - fileprivate func rangesOfSyntaxForMarkdownEmoji() -> [NSRange] { - - var result = [NSRange]() - - allMarkdownRanges().forEach { - if isMarkdownEmoji($0) { - if let preRange = $0.preRange { result.append(preRange) } - if let postRange = $0.postRange { result.append(postRange) } - } - } - - return result - } - - /// Filters the given array of ranges by discarding all ranges that are - /// nested within at least one other range. - /// - parameter ranges: an array of ranges to filter - /// - fileprivate func flattenRanges(_ ranges: [NSRange]) -> [NSRange] { - - // sort by length ascending - var ranges = ranges.sorted { return $0.length <= $1.length } - var result = [NSRange]() - - // take the largest range - if let next = ranges.popLast() { - result.append(next) - } - - // check each remaining range - outer: while let next = ranges.popLast() { - for range in result { - // if it is nested - if NSEqualRanges(range, NSUnionRange(range, next)) { - continue outer - } - } - // non nested range - result.append(next) - } - - return result - } - - // MARK: - Determining Markdown - - public func markdownElementsForRange(_ range: NSRange?) -> [MarkdownElementType] { - - let selection = range ?? selectedRange - - let elementTypes: [MarkdownElementType] = [ - .header(.h1), .header(.h2), .header(.h3), - .italic, .bold, .numberList, .bulletList, - .code, .quote - ] - - return elementTypes.filter { type -> Bool in - return self.isMarkdownElement(type: type, activeForSelection: selection) - } - } - - fileprivate func isMarkdownElement(type: MarkdownElementType, activeForSelection selection: NSRange) -> Bool { - return rangeForMarkdownElement(type: type, enclosingSelection: selection) != nil - } - - /// Returns true if the markdown element specified by the given range has a - /// zero content range or the content text contains only whitespace and/or - /// other markdown syntax. - /// - parameter range: the range specifying a markdown element - /// - fileprivate func isEmptyMarkdownElement(_ range: MarkdownRange) -> Bool { - - return range.contentRange.length == 0 || markdown(range, containsOnlyCharactersIn: CharacterSet.whitespacesAndNewlines) - } - - /// Returns true if the markdown element specified by the given range contains - /// only emojis, whitespace and other markdown syntax. - /// - parameter range: the range specifying a markdown element - /// - fileprivate func isMarkdownEmoji(_ range: MarkdownRange) -> Bool { - - var emojisAndSpaces = CharacterSet.symbols.union(CharacterSet.whitespaces) - - // the zero-width joiner is used to combine multiple emojis into new ones - emojisAndSpaces.insert("\u{200D}") - // '+' is used for list items - emojisAndSpaces.remove("+") - - return markdown(range, containsOnlyCharactersIn: emojisAndSpaces) - } - - /// Returns true if the markdown element specified by the given range contains - /// only characters in the given set, other markdown syntax, or if the content is empty. - /// - parameter range: the range specifying a markdown element - /// - parameter set: the set of permissible characters - /// - fileprivate func markdown(_ range: MarkdownRange, containsOnlyCharactersIn set: CharacterSet) -> Bool { - - // we ignore markdown syntax to allow for nested markdown - let syntaxColor = style.syntaxAttributes[NSForegroundColorAttributeName] as! UIColor - let markdown = attributedText.attributedSubstring(from: range.wholeRange) - var violation = false - - markdown.enumerateAttribute(NSForegroundColorAttributeName, in: NSMakeRange(0, markdown.length)) { value, range, stop in - // not syntax and contains non permissable char - if value as? UIColor != syntaxColor && markdown.string.substring(with: range).containsCharacters(from: set.inverted) { - violation = true - stop.pointee = true - } - } - - return !violation - } -} - - -// MARK: - Automatic List Insertion - -extension MarklightTextView { - - fileprivate var nextListNumber: Int { - // if the line before the caret is a list item, return the next number - if let range = rangeOfPreviousLine() { - let regex = try! NSRegularExpression(pattern: "^\\d+", options: .anchorsMatchLines) - if let match = regex.firstMatch(in: text, range: range) { - return (text.substring(with: match.range) as NSString).integerValue + 1 - } - } - - return 1 - } - - fileprivate var nextListBullet: String { - // if line before the caret is a bullet item, return the same bullet - if let range = rangeOfPreviousLine() { - let regex = try! NSRegularExpression(pattern: "^[-+*]", options: .anchorsMatchLines) - if let match = regex.firstMatch(in: text, range: range) { - return text.substring(with: match.range) - } - } - - return "-" - } - - /// Checks if the caret is currently on a list item, if so, determines whether - /// the next item should be inserted or the current item should be deleted. - /// Note: this method should be called after the user enters a new line, but - /// before the new line is inserted. - /// - public func handleNewLine() { - - if let markdownRange = rangeForMarkdownElement(type: .numberList, enclosingSelection: selectedRange) { - - if isEmptyMarkdownElement(markdownRange) { - text.deleteCharactersIn(range: markdownRange.wholeRange) - } else { - needsNewNumberListItem = true - } - - } else if let markdownRange = rangeForMarkdownElement(type: .bulletList, enclosingSelection: selectedRange) { - - if isEmptyMarkdownElement(markdownRange) { - text.deleteCharactersIn(range: markdownRange.wholeRange) - } else { - needsNewBulletListItem = true - } - } - - } - - // Invoked when the text changes - @objc fileprivate func textChangedHandler() { - if needsNewNumberListItem { - needsNewNumberListItem = false - insertSyntaxForMarkdownElement(type: .numberList) - } else if needsNewBulletListItem { - needsNewBulletListItem = false - insertSyntaxForMarkdownElement(type: .bulletList) - } - } - - /// Ensures each sequential numbered list item from the current caret - /// position is correctly numbered. - /// - fileprivate func renumberLists() { - - let listPrefix = "(?:(\\d+)[.][\\t ]+)" - let listItemPattern = "(?:^\(listPrefix))(.)*" - let wholeListPattern = "(?:\(listItemPattern))(\\n\(listItemPattern))*" - let wholeRange = NSMakeRange(0, (text as NSString).length) - - let wholeListRegex = try! NSRegularExpression(pattern: wholeListPattern, options: .anchorsMatchLines) - let itemRegex = try! NSRegularExpression(pattern: listItemPattern, options: .anchorsMatchLines) - - let previousSelection = selectedRange - var index = self.nextListNumber - - wholeListRegex.enumerateMatches(in: text, options: [], range: wholeRange) { result, _, stop in - - // the range of the whole list enclosing the cursor - if let listRange = result?.range, NSEqualRanges(NSIntersectionRange(listRange, selectedRange), selectedRange) { - - let currentItemRange = (text as NSString).paragraphRange(for: previousSelection) - let itemsBelow = NSMakeRange(currentItemRange.location, listRange.length - (currentItemRange.location - listRange.location)) - - // for each list item at or below cursor position - itemRegex.enumerateMatches(in: text, options: [], range: itemsBelow) { innerResult, _, _ in - if let itemNumber = innerResult?.rangeAt(1) { - text = (text as NSString).replacingCharacters(in: itemNumber, with: "\(index)") - index += 1 - } - } - - // no need to reformat other lists - stop.pointee = true - } - } - - selectedRange = previousSelection - scrollRangeToVisible(selectedRange) - } - - @objc public func resetTypingAttributes() { - typingAttributes = defaultAttributes - } -} - -// MARK: - MarkdownBarViewDelegate - -extension MarklightTextView: MarkdownBarViewDelegate { - - public func markdownBarView(_ markdownBarView: MarkdownBarView, didSelectElementType type: MarkdownElementType, with sender: IconButton) { - - switch type { - case .header, .numberList, .bulletList: removeExistingPrefixSyntax() - default: break - } - - insertSyntaxForMarkdownElement(type: type) - } - - public func markdownBarView(_ markdownBarView: MarkdownBarView, didDeselectElementType type: MarkdownElementType, with sender: IconButton) { - deleteSyntaxForMarkdownElement(type: type) - } - - private func removeExistingPrefixSyntax() { - removeExistingHeader() - removeExistingListItem() - } - - private func removeExistingHeader() { - - var currentHeader: MarkdownElementType? - for header in [MarkdownElementType.header(.h1), .header(.h2), .header(.h3)] { - if isMarkdownElement(type: header, activeForSelection: selectedRange) { - currentHeader = header - } - } - - if let header = currentHeader { - deleteSyntaxForMarkdownElement(type: header) - } - } - - private func removeExistingListItem() { - - var currentListType: MarkdownElementType? - if isMarkdownElement(type: .numberList, activeForSelection: selectedRange) { - currentListType = .numberList - } else if isMarkdownElement(type: .bulletList, activeForSelection: selectedRange) { - currentListType = .bulletList - } - - if let type = currentListType { - deleteSyntaxForMarkdownElement(type: type) - } - } -} - -extension String { - - mutating fileprivate func deleteCharactersIn(range: NSRange) { - self = (self as NSString).replacingCharacters(in: range, with: "") - } - - fileprivate func substring(with range: NSRange) -> String { - return (self as NSString).substring(with: range) - } -} diff --git a/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/Message+Formatting.m b/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/Message+Formatting.m index ca5c178b27..2d95e7c3a9 100644 --- a/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/Message+Formatting.m +++ b/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/Message+Formatting.m @@ -31,10 +31,10 @@ @import WireExtensionComponents; @import WireLinkPreview; -@import Marklight; +@import Down; static NSMutableParagraphStyle *cellParagraphStyle; -static MarklightGroupStyler *groupStyler; +static DownStyle *style; @@ -101,31 +101,29 @@ + (NSAttributedString *)formattedStringWithLinkAttachments:(NSArray 0) { [nonURLRanges addObject:[NSValue valueWithRange:emoticonRange]]; } - + // 2. Substitute emoticons on ranges. // reverse iteration keeps values in nonURLRanges actual while enumeration // (stringByResolvingEmoticonShortcuts changes length of string) @@ -169,34 +167,6 @@ + (NSAttributedString *)formattedStringWithLinkAttachments:(NSArray 0) { NSArray *matches = [detector matchesInString:trimmedText options:0 range:NSMakeRange(0, trimmedText.length)]; diff --git a/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/NSAttributedString+Down.swift b/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/NSAttributedString+Down.swift new file mode 100644 index 0000000000..44eb540a3b --- /dev/null +++ b/Wire-iOS/Sources/UserInterface/Conversation/Content/Cells/Utility/NSAttributedString+Down.swift @@ -0,0 +1,40 @@ +//// +// Wire +// Copyright (C) 2018 Wire Swiss GmbH +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. +// + +import Foundation +import Down + +extension NSMutableAttributedString { + @objc + static func markdown(from text: String, style: DownStyle) -> NSMutableAttributedString { + let down = Down(markdownString: text) + let result: NSMutableAttributedString + + if let attrStr = try? down.toAttributedString(using: style) { + result = NSMutableAttributedString(attributedString: attrStr) + } else { + result = NSMutableAttributedString(string: text) + } + + if result.string.last == "\n" { + result.deleteCharacters(in: NSMakeRange(result.length - 1, 1)) + } + + return result + } +} diff --git a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController+Editing.swift b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController+Editing.swift index a326178971..6312d1763e 100644 --- a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController+Editing.swift +++ b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController+Editing.swift @@ -86,7 +86,7 @@ extension ConversationInputBarViewController: InputBarEditViewDelegate { switch buttonType { case .undo: inputBar.undo() case .cancel: endEditingMessageIfNeeded() - case .confirm: sendOrEditText(inputBar.textView.text) + case .confirm: sendOrEditText(inputBar.textView.preparedText) } } diff --git a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController.m b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController.m index 9de04d3e88..2c15dbfac5 100644 --- a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController.m +++ b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/ConversationInputBarViewController.m @@ -487,7 +487,7 @@ - (void)updateRightAccessoryView { [self updateEphemeralIndicatorButtonTitle:self.ephemeralIndicatorButton]; - NSString *trimmed = [self.inputBar.textView.preparedText stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet]; + NSString *trimmed = [self.inputBar.textView.text stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet]; [self.sendButtonState updateWithTextLength:trimmed.length editing:nil != self.editingMessage @@ -554,6 +554,7 @@ - (void)clearInputBar { self.inputBar.textView.text = @""; [self.inputBar.markdownView resetIcons]; + [self.inputBar.textView resetMarkdown]; [self updateRightAccessoryView]; [self.conversation setIsTyping:NO]; } @@ -873,12 +874,6 @@ - (void)textViewDidChange:(UITextView *)textView - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { - // markdown text view needs to detect newlines - // in order to automatically insert new list items - if ([text isEqualToString:@"\n"] || [text isEqualToString:@"\r"]) { - [self.inputBar.textView handleNewLine]; - } - // send only if send key pressed if (textView.returnKeyType == UIReturnKeySend && [text isEqualToString:@"\n"]) { [self.inputBar.textView autocorrectLastWord]; @@ -887,6 +882,7 @@ - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range r return NO; } + [self.inputBar.textView respondToChange: text inRange: range]; return YES; } @@ -1098,7 +1094,6 @@ - (void)sendButtonPressed:(id)sender [self.inputBar.textView autocorrectLastWord]; if([self checkMessageLength]){ [self sendOrEditText:self.inputBar.textView.preparedText]; - [self.inputBar.textView resetTypingAttributes]; } } diff --git a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/InputBar.swift b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/InputBar.swift index c53807521c..e2b468bd6c 100644 --- a/Wire-iOS/Sources/UserInterface/Conversation/InputBar/InputBar.swift +++ b/Wire-iOS/Sources/UserInterface/Conversation/InputBar/InputBar.swift @@ -21,7 +21,7 @@ import UIKit import Cartography import Classy import WireExtensionComponents -import Marklight +import Down extension Settings { var returnKeyType: UIReturnKeyType { @@ -83,7 +83,7 @@ private struct InputBarConstants { private let inputBarVerticalInset : CGFloat = 34 - public let textView = MarklightTextView() + let textView = MarkdownTextView(with: DownStyle.compact) public let leftAccessoryView = UIView() public let rightAccessoryView = UIView() @@ -176,7 +176,7 @@ private struct InputBarConstants { setupViews() createConstraints() - notificationCenter.addObserver(self, selector: #selector(textViewDidChangeSelection), name: Notification.Name(rawValue: MarklightTextViewDidChangeSelectionNotification), object: textView) + notificationCenter.addObserver(markdownView, selector: #selector(markdownView.textViewDidChangeActiveMarkdown), name: Notification.Name.MarkdownTextViewDidChangeActiveMarkdown, object: textView) notificationCenter.addObserver(self, selector: #selector(textViewTextDidChange), name: NSNotification.Name.UITextViewTextDidChange, object: textView) notificationCenter.addObserver(self, selector: #selector(textViewDidBeginEditing), name: NSNotification.Name.UITextViewTextDidBeginEditing, object: nil) notificationCenter.addObserver(self, selector: #selector(textViewDidEndEditing), name: NSNotification.Name.UITextViewTextDidEndEditing, object: nil) @@ -199,12 +199,6 @@ private struct InputBarConstants { textView.placeholderTextTransform = .upper textView.tintAdjustmentMode = .automatic - // we don't want large fonts in message text view - let headerFont = FontSpec(.normal, .medium).font! - textView.style.h1HeadingAttributes[NSFontAttributeName] = headerFont - textView.style.h2HeadingAttributes[NSFontAttributeName] = headerFont - textView.style.h3HeadingAttributes[NSFontAttributeName] = headerFont - markdownView.delegate = textView updateReturnKey() @@ -452,7 +446,6 @@ extension InputBar { func textViewTextDidChange(_ notification: Notification) { updateFakeCursorVisibility() updateEditViewState() - markdownView.updateIconsForModes(textView.markdownElementsForRange(nil)) } func textViewDidBeginEditing(_ notification: Notification) { @@ -464,10 +457,7 @@ extension InputBar { updateFakeCursorVisibility() updateEditViewState() } - - func textViewDidChangeSelection(_ notification: Notification) { - markdownView.updateIconsForModes(textView.markdownElementsForRange(nil)) - } + } extension InputBar { diff --git a/Wire-iOS/Sources/UserInterface/MarkdownBarView.swift b/Wire-iOS/Sources/UserInterface/MarkdownBarView.swift index f94d3fece0..5756da599e 100644 --- a/Wire-iOS/Sources/UserInterface/MarkdownBarView.swift +++ b/Wire-iOS/Sources/UserInterface/MarkdownBarView.swift @@ -18,12 +18,11 @@ import UIKit import Cartography -import Marklight +import Down - -public protocol MarkdownBarViewDelegate: class { - func markdownBarView(_ markdownBarView: MarkdownBarView, didSelectElementType type: MarkdownElementType, with sender: IconButton) - func markdownBarView(_ markdownBarView: MarkdownBarView, didDeselectElementType type: MarkdownElementType, with sender: IconButton) +protocol MarkdownBarViewDelegate: class { + func markdownBarView(_ view: MarkdownBarView, didSelectMarkdown markdown: Markdown, with sender: IconButton) + func markdownBarView(_ view: MarkdownBarView, didDeselectMarkdown markdown: Markdown, with sender: IconButton) } @@ -44,7 +43,7 @@ public final class MarkdownBarView: UIView { public let codeButton = IconButton() public let buttons: [IconButton] - public var activeModes = [MarkdownElementType]() + public var activeModes = [Markdown]() required public init() { buttons = [headerButton, boldButton, italicButton, numberListButton, bulletListButton, codeButton] @@ -77,8 +76,7 @@ public final class MarkdownBarView: UIView { codeButton.setIcon(.markdownCode, with: .tiny, for: .normal) for button in buttons { - let color = ColorScheme.default().color(withName: ColorSchemeColorIconNormal) - button.setIconColor(color, for: .normal) + button.setIconColor(normalColor, for: .normal) button.addTarget(self, action: #selector(buttonTapped(sender:)), for: .touchUpInside) stackView.addArrangedSubview(button) } @@ -94,64 +92,49 @@ public final class MarkdownBarView: UIView { headerButton.setupView() } + func textViewDidChangeActiveMarkdown(note: Notification) { + guard let textView = note.object as? MarkdownTextView else { return } + updateIcons(for: textView.activeMarkdown) + } + // MARK: Actions @objc private func buttonTapped(sender: IconButton) { - let elementType: MarkdownElementType - - switch sender { - case headerButton: - switch headerButton.iconType(for: .normal) { - case .markdownH1: elementType = .header(.h1) - case .markdownH2: elementType = .header(.h2) - case .markdownH3: elementType = .header(.h3) - default: return - } - case boldButton: elementType = .bold - case italicButton: elementType = .italic - case numberListButton: elementType = .numberList - case bulletListButton: elementType = .bulletList - case codeButton: elementType = .code - default: return - } + guard let markdown = markdown(for: sender) else { return } if sender.iconColor(for: .normal) != normalColor { - sender.setIconColor(normalColor, for: .normal) - delegate?.markdownBarView(self, didDeselectElementType: elementType, with: sender) + delegate?.markdownBarView(self, didDeselectMarkdown: markdown, with: sender) } else { - delegate?.markdownBarView(self, didSelectElementType: elementType, with: sender) + delegate?.markdownBarView(self, didSelectMarkdown: markdown, with: sender) } } - public func updateIconsForModes(_ modes: [MarkdownElementType]) { + // MARK: - Conversions - resetIcons() - var buttonsToHighlight = [IconButton]() - - for type in modes { - switch type { - case .header(let level): - // update header icon - let icon: ZetaIconType - switch level { - case .h1: icon = .markdownH1 - case .h2: icon = .markdownH2 - case .h3: icon = .markdownH3 - } - headerButton.setIcon(icon, with: .tiny, for: .normal) - buttonsToHighlight.append(headerButton) - - case .italic: buttonsToHighlight.append(italicButton) - case .bold: buttonsToHighlight.append(boldButton) - case .numberList: buttonsToHighlight.append(numberListButton) - case .bulletList: buttonsToHighlight.append(bulletListButton) - case .code: buttonsToHighlight.append(codeButton) - default: break - } + fileprivate func markdown(for button: IconButton) -> Markdown? { + switch button { + case headerButton: return headerButton.iconType(for: .normal).headerMarkdown ?? .h1 + case boldButton: return .bold + case italicButton: return .italic + case codeButton: return .code + case numberListButton: return .oList + case bulletListButton: return .uList + default: return nil + } + } + + public func updateIcons(for markdown: Markdown) { + // change header icon if necessary + if let headerIcon = markdown.headerValue?.headerIcon { + headerButton.setIcon(headerIcon, with: .tiny, for: .normal) } - buttonsToHighlight.forEach { $0.setIconColor(accentColor, for: .normal) } + for button in buttons { + guard let buttonMarkdown = self.markdown(for: button) else { continue } + let color = markdown.contains(buttonMarkdown) ? accentColor : normalColor + button.setIconColor(color, for: .normal) + } } @objc public func resetIcons() { @@ -164,15 +147,30 @@ extension MarkdownBarView: PopUpIconButtonDelegate { func popUpIconButton(_ button: PopUpIconButton, didSelectIcon icon: ZetaIconType) { if button === headerButton { - var headerLevel: MarkdownElementType.HeaderLevel? - switch icon { - case .markdownH1: headerLevel = .h1 - case .markdownH2: headerLevel = .h2 - case .markdownH3: headerLevel = .h3 - default: return - } - // selecting header level from popup view always inserts/converts current syntax - delegate?.markdownBarView(self, didSelectElementType: .header(headerLevel!), with: button) + let markdown = icon.headerMarkdown ?? .h1 + delegate?.markdownBarView(self, didSelectMarkdown: markdown, with: button) + } + } +} + +private extension ZetaIconType { + var headerMarkdown: Markdown? { + switch self { + case .markdownH1: return .h1 + case .markdownH2: return .h2 + case .markdownH3: return .h3 + default: return nil + } + } +} + +private extension Markdown { + var headerIcon: ZetaIconType? { + switch self { + case .h1: return .markdownH1 + case .h2: return .markdownH2 + case .h3: return .markdownH3 + default: return nil } } } diff --git a/Wire-iOS/Sources/UserInterface/MessageComposeViewController.swift b/Wire-iOS/Sources/UserInterface/MessageComposeViewController.swift index 19715080ae..96f8a95769 100644 --- a/Wire-iOS/Sources/UserInterface/MessageComposeViewController.swift +++ b/Wire-iOS/Sources/UserInterface/MessageComposeViewController.swift @@ -19,8 +19,7 @@ import Foundation import Cartography -import Marklight - +import Down protocol MessageComposeViewControllerDelegate: class { func composeViewController(_ controller: MessageComposeViewController, wantsToSendDraft: MessageDraft) @@ -33,7 +32,7 @@ final class MessageComposeViewController: UIViewController { weak var delegate: MessageComposeViewControllerDelegate? private let subjectTextField = UITextField() - fileprivate let messageTextView = MarklightTextView() + fileprivate let messageTextView = MarkdownTextView() private let color = ColorScheme.default().color(withName:) private let sendButtonView = DraftSendInputAccessoryView() fileprivate let markdownBarView = MarkdownBarView() @@ -54,6 +53,11 @@ final class MessageComposeViewController: UIViewController { selector: #selector(MessageComposeViewController.keyboardFrameWillChange(_:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil) + + NotificationCenter.default.addObserver(markdownBarView, + selector: #selector(markdownBarView.textViewDidChangeActiveMarkdown), + name: Notification.Name.MarkdownTextViewDidChangeActiveMarkdown, + object: messageTextView) } deinit { @@ -88,9 +92,6 @@ final class MessageComposeViewController: UIViewController { } private func setupTextView() { - messageTextView.textColor = color(ColorSchemeColorTextForeground) - messageTextView.backgroundColor = .clear - messageTextView.font = FontSpec(.normal, .none).font! // NB: setting the textContainerInset causes the content size to change // drastically when tapping on a white space Β―\_(ツ)_/Β―. We simulate @@ -101,6 +102,7 @@ final class MessageComposeViewController: UIViewController { messageTextView.contentInset = UIEdgeInsetsMake(16, 0, 48, -16) messageTextView.textContainer.lineFragmentPadding = 0 + messageTextView.backgroundColor = .clear messageTextView.delegate = self messageTextView.indicatorStyle = ColorScheme.default().indicatorStyle messageTextView.accessibilityLabel = "messageTextField" @@ -219,9 +221,11 @@ final class MessageComposeViewController: UIViewController { persistence.enqueue(block: { if self.hasDraftContent { let (subject, message) = (self.subjectTextField.text?.trimmed, self.messageTextView.text?.trimmed) + let attributedText = self.messageTextView.attributedText.withEncodedMarkdownIDs guard draft.subject != subject || draft.message != message else { return } draft.subject = subject draft.message = message + draft.attributedMessage = attributedText draft.lastModifiedDate = NSDate() } else { $0.delete(draft) @@ -267,7 +271,7 @@ final class MessageComposeViewController: UIViewController { private func loadDraft() { subjectTextField.text = draft?.subject - messageTextView.text = draft?.message + messageTextView.attributedText = draft?.attributedMessage?.withDecodedMarkdownIDs updateButtonStates() } @@ -288,25 +292,17 @@ extension MessageComposeViewController: UITextViewDelegate { func textViewDidChange(_ textView: UITextView) { updateDraftThrottled() - markdownBarView.updateIconsForModes(messageTextView.markdownElementsForRange(nil)) } func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { - if text == "\n" || text == "\r" { - (textView as! MarklightTextView).handleNewLine() - } - if range.location == 0 && text == " " && textView.text?.isEmpty ?? true { return false } - + + (textView as? MarkdownTextView)?.respondToChange(text, inRange: range) return true } - - func textViewDidChangeSelection(_ textView: UITextView) { - markdownBarView.updateIconsForModes(messageTextView.markdownElementsForRange(nil)) - } } diff --git a/Wire-iOS/Sources/UserInterface/MessageDraft.swift b/Wire-iOS/Sources/UserInterface/MessageDraft.swift index 116ea664fe..ce96a0e535 100644 --- a/Wire-iOS/Sources/UserInterface/MessageDraft.swift +++ b/Wire-iOS/Sources/UserInterface/MessageDraft.swift @@ -18,6 +18,7 @@ import CoreData +import Down /// Class describing unsent message drafts for later sending or further editing. @@ -29,6 +30,8 @@ import CoreData @NSManaged public var subject: String? /// The message content @NSManaged public var message: String? + /// The attributed message content + @NSManaged public var attributedMessage: NSAttributedString? /// A date indicating when the draft was last modified @NSManaged public var lastModifiedDate: NSDate? @@ -52,8 +55,12 @@ import CoreData text += "\n" } } - - if let message = message, !message.isEmpty { + + if let attributedMessage = attributedMessage, !attributedMessage.string.isEmpty { + let parser = AttributedStringParser() + text += parser.parse(attributedString: attributedMessage.withDecodedMarkdownIDs) + } + else if let message = message, !message.isEmpty { text += message } diff --git a/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/.xccurrentversion b/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000000..b359cc6ebd --- /dev/null +++ b/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + MessageDraft_V2.xcdatamodel + + diff --git a/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/MessageDraft_V2.xcdatamodel/contents b/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/MessageDraft_V2.xcdatamodel/contents new file mode 100644 index 0000000000..00bf070b36 --- /dev/null +++ b/Wire-iOS/Sources/UserInterface/MessageDraft.xcdatamodeld/MessageDraft_V2.xcdatamodel/contents @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WireExtensionComponents/Views/TextView.m b/WireExtensionComponents/Views/TextView.m index 5a4e687add..b56bab7969 100644 --- a/WireExtensionComponents/Views/TextView.m +++ b/WireExtensionComponents/Views/TextView.m @@ -70,6 +70,15 @@ - (id)initWithFrame:(CGRect)frame return self; } +- (id)initWithFrame:(CGRect)frame textContainer:(NSTextContainer *)textContainer +{ + self = [super initWithFrame:frame textContainer:textContainer]; + if (self) { + [self setup]; + } + return self; +} + #pragma mark Setup - (void)setup