From 631472673206d836272bf4948acb9e11b5f5c73e Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Thu, 13 Jun 2019 19:54:07 +0700 Subject: [PATCH 1/7] #391 add direction for text attributes --- Macaw.xcodeproj/project.pbxproj | 4 ++++ Source/model/draw/Align.swift | 13 +++++++++- Source/model/draw/Direction.swift | 40 +++++++++++++++++++++++++++++++ Source/model/scene/Text.swift | 18 +++++++++++--- Source/render/TextRenderer.swift | 10 ++++---- Source/svg/SVGParser.swift | 37 ++++++++++++++-------------- 6 files changed, 96 insertions(+), 26 deletions(-) create mode 100644 Source/model/draw/Direction.swift diff --git a/Macaw.xcodeproj/project.pbxproj b/Macaw.xcodeproj/project.pbxproj index 8eaf5d54..daed5a1a 100644 --- a/Macaw.xcodeproj/project.pbxproj +++ b/Macaw.xcodeproj/project.pbxproj @@ -670,6 +670,7 @@ A74C8326229EB77B0085A832 /* masking-path-13-f-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A74C8325229EB77B0085A832 /* masking-path-13-f-manual.reference */; }; A74C832C229FB7690085A832 /* color-prop-04-t-manual-osx.svg in Resources */ = {isa = PBXBuildFile; fileRef = A74C832B229FB7690085A832 /* color-prop-04-t-manual-osx.svg */; }; A74C832E229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference in Resources */ = {isa = PBXBuildFile; fileRef = A74C832D229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference */; }; + A7632F6022B2500500803489 /* Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7632F5F22B2500500803489 /* Direction.swift */; }; A7E675561EC4213500BD9ECB /* NodeBoundsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E675551EC4213500BD9ECB /* NodeBoundsTests.swift */; }; C410148E1F834D290022EE44 /* style.svg in Resources */ = {isa = PBXBuildFile; fileRef = C410148D1F834D280022EE44 /* style.svg */; }; C4153A8F1F8793DE001BA5EE /* small-logo.png in Resources */ = {isa = PBXBuildFile; fileRef = C4153A8E1F8793DD001BA5EE /* small-logo.png */; }; @@ -1248,6 +1249,7 @@ A74C8325229EB77B0085A832 /* masking-path-13-f-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "masking-path-13-f-manual.reference"; sourceTree = ""; }; A74C832B229FB7690085A832 /* color-prop-04-t-manual-osx.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "color-prop-04-t-manual-osx.svg"; sourceTree = ""; }; A74C832D229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "color-prop-04-t-manual-osx.reference"; sourceTree = ""; }; + A7632F5F22B2500500803489 /* Direction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Direction.swift; sourceTree = ""; }; A7E675551EC4213500BD9ECB /* NodeBoundsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NodeBoundsTests.swift; path = Bounds/NodeBoundsTests.swift; sourceTree = ""; }; C410148D1F834D280022EE44 /* style.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = style.svg; sourceTree = ""; }; C4153A8E1F8793DD001BA5EE /* small-logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "small-logo.png"; sourceTree = ""; }; @@ -1642,6 +1644,7 @@ 5B6E191F20AC58F900454E7E /* Color.swift */, 5874CCB620DA8A860090DBD5 /* ColorMatrix.swift */, 5BFEF5CD20B80A83008DAC11 /* ColorMatrixEffect.swift */, + A7632F5F22B2500500803489 /* Direction.swift */, 5B6E191B20AC58F800454E7E /* Drawable.swift */, 5B6E191C20AC58F800454E7E /* Effect.swift */, 5B6E191D20AC58F900454E7E /* Fill.swift */, @@ -2870,6 +2873,7 @@ 57E5E16C1E3B393900D1CB28 /* CombineAnimation.swift in Sources */, 57E5E1661E3B393900D1CB28 /* TransformHashable.swift in Sources */, 57E5E1921E3B393900D1CB28 /* MoveTo.swift in Sources */, + A7632F6022B2500500803489 /* Direction.swift in Sources */, 5B7E79C020CA7E9300C50BCF /* Pattern.swift in Sources */, 57E5E1A51E3B393900D1CB28 /* NodeRenderer.swift in Sources */, 5B6E193920AC58F900454E7E /* Drawable.swift in Sources */, diff --git a/Source/model/draw/Align.swift b/Source/model/draw/Align.swift index 2c278597..662eaf58 100644 --- a/Source/model/draw/Align.swift +++ b/Source/model/draw/Align.swift @@ -11,7 +11,10 @@ open class Align { open func align(size: Double) -> Double { return align(outer: size, inner: 0) } - + + open func reverse() -> Align { + return .max + } } private class MidAlign: Align { @@ -19,6 +22,10 @@ private class MidAlign: Align { override func align(outer: Double, inner: Double) -> Double { return (outer - inner) / 2 } + + override func reverse() -> Align { + return .mid + } } private class MaxAlign: Align { @@ -26,4 +33,8 @@ private class MaxAlign: Align { override func align(outer: Double, inner: Double) -> Double { return outer - inner } + + override func reverse() -> Align { + return .min + } } diff --git a/Source/model/draw/Direction.swift b/Source/model/draw/Direction.swift new file mode 100644 index 00000000..05c5becf --- /dev/null +++ b/Source/model/draw/Direction.swift @@ -0,0 +1,40 @@ +import UIKit + +public enum Direction { + case lre + case rle + case lro + case rlo +} + +extension Direction { + + var attributedStringValue: NSArray { + switch self { + case .lre: + return [NSNumber(integerLiteral: 0)] + case .rle: + return [NSNumber(integerLiteral: 1)] + case .lro: + return [NSNumber(integerLiteral: 2)] + case .rlo: + return [NSNumber(integerLiteral: 3)] + } + } + + static func from(direction: String?, unicodebidi: String?) -> Direction { + let direction = direction ?? "ltr" + let unicodebidi = unicodebidi ?? "normal" + + switch (direction, unicodebidi) { + case ("ltr", "bidi-override"): + return .lro + case ("rtl", "bidi-override"): + return .rlo + case ("rtl", "normal"): + return .rle + default: + return .lre + } + } +} diff --git a/Source/model/scene/Text.swift b/Source/model/scene/Text.swift index 440225ab..7f2d3ac0 100644 --- a/Source/model/scene/Text.swift +++ b/Source/model/scene/Text.swift @@ -47,15 +47,28 @@ open class Text: Node { get { return kerningVar.value } set(val) { kerningVar.value = val } } + + public let directionVar: Variable + open var direction: Direction { + get { return directionVar.value } + set(val) { directionVar.value = val } + } - public init(text: String, font: Font? = nil, fill: Fill? = Color.black, stroke: Stroke? = nil, align: Align = .min, baseline: Baseline = .top, kerning: Float = 0.0, place: Transform = Transform.identity, opaque: Bool = true, opacity: Double = 1, clip: Locus? = nil, mask: Node? = nil, effect: Effect? = nil, visible: Bool = true, tag: [String] = []) { + public init(text: String, font: Font? = nil, fill: Fill? = Color.black, stroke: Stroke? = nil, align: Align = .min, baseline: Baseline = .top, kerning: Float = 0.0, direction: Direction = .lre, place: Transform = Transform.identity, opaque: Bool = true, opacity: Double = 1, clip: Locus? = nil, mask: Node? = nil, effect: Effect? = nil, visible: Bool = true, tag: [String] = []) { self.textVar = Variable(text) self.fontVar = Variable(font) self.fillVar = Variable(fill) self.strokeVar = Variable(stroke) - self.alignVar = Variable(align) self.baselineVar = Variable(baseline) self.kerningVar = Variable(kerning) + self.directionVar = Variable(direction) + + if direction == .rle || direction == .rlo { + self.alignVar = Variable(align.reverse()) + } else { + self.alignVar = Variable(align) + } + super.init( place: place, opaque: opaque, @@ -71,7 +84,6 @@ open class Text: Node { override open var bounds: Rect { let font: MFont if let f = self.font { - if let customFont = RenderUtils.loadFont(name: f.name, size: f.size, weight: f.weight) { font = customFont } else { diff --git a/Source/render/TextRenderer.swift b/Source/render/TextRenderer.swift index 8883647a..583780c5 100644 --- a/Source/render/TextRenderer.swift +++ b/Source/render/TextRenderer.swift @@ -69,7 +69,9 @@ class TextRenderer: NodeRenderer { if text.kerning != 0.0 { attributes[NSAttributedString.Key.kern] = NSNumber(value: text.kerning) } - + + attributes[NSAttributedString.Key.writingDirection] = text.direction.attributedStringValue + if attributes.count > 1 { MGraphicsPushContext(context) message.draw(in: getBounds(font), withAttributes: attributes) @@ -141,6 +143,7 @@ class TextRenderer: NodeRenderer { if let stroke = text.stroke { textAttributes[NSAttributedString.Key.strokeWidth] = NSNumber(value: stroke.width) } + let textSize = NSString(string: text.text).size(withAttributes: textAttributes) return CGRect(x: calculateAlignmentOffset(text, font: font), y: calculateBaselineOffset(text, font: font), @@ -164,7 +167,8 @@ class TextRenderer: NodeRenderer { fileprivate func calculateAlignmentOffset(_ text: Text, font: MFont) -> CGFloat { let textAttributes = [ - NSAttributedString.Key.font: font + NSAttributedString.Key.font: font, + NSAttributedString.Key.writingDirection: text.direction.attributedStringValue ] let textSize = NSString(string: text.text).size(withAttributes: textAttributes) return -CGFloat(text.align.align(size: textSize.width.doubleValue)) @@ -172,13 +176,11 @@ class TextRenderer: NodeRenderer { fileprivate func getTextColor(_ fill: Fill) -> MColor { if let color = fill as? Color { - #if os(iOS) return MColor(cgColor: color.toCG()) #elseif os(OSX) return MColor(cgColor: color.toCG()) ?? .black #endif - } return MColor.black } diff --git a/Source/svg/SVGParser.swift b/Source/svg/SVGParser.swift index 0310c786..dadb0809 100644 --- a/Source/svg/SVGParser.swift +++ b/Source/svg/SVGParser.swift @@ -930,21 +930,21 @@ open class SVGParser { } fileprivate func anchorToAlign(_ textAnchor: String?) -> Align { - if let anchor = textAnchor { - if anchor == "middle" { - return .mid - } else if anchor == "end" { - return .max - } + switch textAnchor { + case "middle": + return .mid + case "end": + return .max + default: + return .min } - return Align.min } fileprivate func parseSimpleText(_ text: SWXMLHash.XMLElement, textAnchor: String?, fill: Fill?, stroke: Stroke?, opacity: Double, fontName: String?, fontSize: Int?, fontWeight: String?, pos: Transform = Transform()) -> Text? { let string = text.text let position = pos.move(dx: getDoubleValue(text, attribute: "x") ?? 0, dy: getDoubleValue(text, attribute: "y") ?? 0) - - return Text(text: string, font: getFont(fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), fill: fill, stroke: stroke, align: anchorToAlign(textAnchor), baseline: .bottom, place: position, opacity: opacity, tag: getTag(text)) + let direction = getDirection(text) + return Text(text: string, font: getFont(fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), fill: fill, stroke: stroke, align: anchorToAlign(textAnchor), baseline: .bottom, direction: direction, place: position, opacity: opacity, tag: getTag(text)) } // REFACTOR @@ -990,9 +990,7 @@ open class SVGParser { nextStringWhitespace = true } trimmedString = withWhitespace ? " \(trimmedString)" : trimmedString - let text = Text(text: trimmedString, font: getFont(fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), - fill: fill, stroke: stroke, align: anchorToAlign(textAnchor), baseline: .alphabetic, - place: Transform().move(dx: bounds.x + bounds.w, dy: bounds.y), opacity: opacity) + let text = Text(text: trimmedString, font: getFont(fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), fill: fill, stroke: stroke, align: anchorToAlign(textAnchor), baseline: .alphabetic, place: Transform().move(dx: bounds.x + bounds.w, dy: bounds.y), opacity: opacity) collection.append(text) if tagRange.location >= fullString.length { // leave recursion return collection @@ -1013,11 +1011,8 @@ open class SVGParser { let pos = getTspanPosition(element, bounds: bounds, previousCollectedTspan: previousCollectedTspan, withWhitespace: &shouldAddWhitespace) let text = shouldAddWhitespace ? " \(string)" : string let attributes = getStyleAttributes([:], element: element) - - return Text(text: text, font: getFont(attributes, fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), - fill: (attributes[SVGKeys.fill] != nil) ? getFillColor(attributes)! : fill, stroke: stroke ?? getStroke(attributes), - align: anchorToAlign(textAnchor ?? getTextAnchor(attributes)), baseline: .alphabetic, - place: pos, opacity: getOpacity(attributes), tag: getTag(element)) + let direction = getDirection(element) + return Text(text: text, font: getFont(attributes, fontName: fontName, fontWeight: fontWeight, fontSize: fontSize), fill: (attributes[SVGKeys.fill] != nil) ? getFillColor(attributes)! : fill, stroke: stroke ?? getStroke(attributes), align: anchorToAlign(textAnchor ?? getTextAnchor(attributes)), baseline: .alphabetic, direction: direction, place: pos, opacity: getOpacity(attributes), tag: getTag(element)) } fileprivate func getFont(_ attributes: [String: String] = [:], fontName: String?, fontWeight: String?, fontSize: Int?) -> Font { @@ -1026,6 +1021,12 @@ open class SVGParser { size: getFontSize(attributes) ?? fontSize ?? 12, weight: getFontWeight(attributes) ?? fontWeight ?? "normal") } + + private func getDirection(_ element: SWXMLHash.XMLElement) -> Direction { + let direction = element.allAttributes["direction"]?.text + let unicodebidi = element.allAttributes["unicode-bidi"]?.text + return Direction.from(direction: direction, unicodebidi: unicodebidi) + } fileprivate func getTspanPosition(_ element: SWXMLHash.XMLElement, bounds: Rect, previousCollectedTspan: Node?, withWhitespace: inout Bool) -> Transform { var xPos: Double = bounds.x + bounds.w @@ -1594,7 +1595,7 @@ open class SVGParser { return Shape(form: shape.form, fill: shape.fill, stroke: shape.stroke, place: pos, opaque: opaque, clip: clip, visible: visible, tag: tag) } if let text = referenceNode as? Text { - return Text(text: text.text, font: text.font, fill: text.fill, stroke: text.stroke, align: text.align, baseline: text.baseline, place: pos, opaque: opaque, clip: clip, visible: visible, tag: tag) + return Text(text: text.text, font: text.font, fill: text.fill, stroke: text.stroke, align: text.align, baseline: text.baseline, direction: text.direction, place: pos, opaque: opaque, clip: clip, visible: visible, tag: tag) } if let image = referenceNode as? Image { return Image(src: image.src, xAlign: image.xAlign, yAlign: image.yAlign, aspectRatio: image.aspectRatio, w: image.w, h: image.h, place: pos, opaque: opaque, clip: clip, visible: visible, tag: tag) From 3d3a0f4a8651d70482fa7ddd5495f8e8ad636163 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Thu, 13 Jun 2019 20:20:40 +0700 Subject: [PATCH 2/7] #391 change UIKit to Foundation for Direction --- Source/model/draw/Direction.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/model/draw/Direction.swift b/Source/model/draw/Direction.swift index 05c5becf..4c95211b 100644 --- a/Source/model/draw/Direction.swift +++ b/Source/model/draw/Direction.swift @@ -1,4 +1,4 @@ -import UIKit +import Foundation public enum Direction { case lre From ef54a2041dbed9fcb9f4968957c1d82eb062a082 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Fri, 14 Jun 2019 15:06:11 +0700 Subject: [PATCH 3/7] #391 add direction for text serialization --- MacawTests/SceneSerialization.swift | 16 ++++++++++++++++ Source/model/draw/Direction.swift | 14 +++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/MacawTests/SceneSerialization.swift b/MacawTests/SceneSerialization.swift index 1c914c58..1ed212c4 100644 --- a/MacawTests/SceneSerialization.swift +++ b/MacawTests/SceneSerialization.swift @@ -76,6 +76,9 @@ class NodeSerializer { if let baselineString = dictionary["baseline"] as? String { text.baseline = baselineForString(baselineString) } + if let directionString = dictionary["direction"] as? String{ + text.direction = directionForString(directionString) + } return text } @@ -174,6 +177,9 @@ extension Text: Serializable { } result["align"] = align.toString() result["baseline"] = "\(baseline)" + if direction != .lre { + result["direction"] = "\(direction)" + } return result } } @@ -629,3 +635,13 @@ fileprivate func baselineForString(_ string: String) -> Baseline { default: return .top } } + +fileprivate func directionForString(_ string: String) -> Direction { + switch string { + case "lre": return .lre + case "lro": return .lro + case "rle": return .rle + case "rlo": return .rlo + default: return .lre + } +} diff --git a/Source/model/draw/Direction.swift b/Source/model/draw/Direction.swift index 4c95211b..2b914dfa 100644 --- a/Source/model/draw/Direction.swift +++ b/Source/model/draw/Direction.swift @@ -8,24 +8,24 @@ public enum Direction { } extension Direction { - + var attributedStringValue: NSArray { switch self { case .lre: - return [NSNumber(integerLiteral: 0)] + return [NSNumber(value: 0)] case .rle: - return [NSNumber(integerLiteral: 1)] + return [NSNumber(value: 1)] case .lro: - return [NSNumber(integerLiteral: 2)] + return [NSNumber(value: 2)] case .rlo: - return [NSNumber(integerLiteral: 3)] + return [NSNumber(value: 3)] } } - + static func from(direction: String?, unicodebidi: String?) -> Direction { let direction = direction ?? "ltr" let unicodebidi = unicodebidi ?? "normal" - + switch (direction, unicodebidi) { case ("ltr", "bidi-override"): return .lro From 70d23d7f8210e72ba2c7e644d339be53f017a897 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Fri, 14 Jun 2019 15:25:11 +0700 Subject: [PATCH 4/7] #391 add Direction for macos target --- Macaw.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Macaw.xcodeproj/project.pbxproj b/Macaw.xcodeproj/project.pbxproj index daed5a1a..6475dad2 100644 --- a/Macaw.xcodeproj/project.pbxproj +++ b/Macaw.xcodeproj/project.pbxproj @@ -671,6 +671,7 @@ A74C832C229FB7690085A832 /* color-prop-04-t-manual-osx.svg in Resources */ = {isa = PBXBuildFile; fileRef = A74C832B229FB7690085A832 /* color-prop-04-t-manual-osx.svg */; }; A74C832E229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference in Resources */ = {isa = PBXBuildFile; fileRef = A74C832D229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference */; }; A7632F6022B2500500803489 /* Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7632F5F22B2500500803489 /* Direction.swift */; }; + A7B4899322B3914D002D1D56 /* Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7632F5F22B2500500803489 /* Direction.swift */; }; A7E675561EC4213500BD9ECB /* NodeBoundsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E675551EC4213500BD9ECB /* NodeBoundsTests.swift */; }; C410148E1F834D290022EE44 /* style.svg in Resources */ = {isa = PBXBuildFile; fileRef = C410148D1F834D280022EE44 /* style.svg */; }; C4153A8F1F8793DE001BA5EE /* small-logo.png in Resources */ = {isa = PBXBuildFile; fileRef = C4153A8E1F8793DD001BA5EE /* small-logo.png */; }; @@ -2732,6 +2733,7 @@ 57614B2A1F83D15600875933 /* Polygon.swift in Sources */, 57614B2D1F83D15600875933 /* TransformAnimation.swift in Sources */, 57614B2E1F83D15600875933 /* CombineAnimation.swift in Sources */, + A7B4899322B3914D002D1D56 /* Direction.swift in Sources */, 57614B2F1F83D15600875933 /* TransformHashable.swift in Sources */, 57614B301F83D15600875933 /* MoveTo.swift in Sources */, 5B7E79C120CA7E9300C50BCF /* Pattern.swift in Sources */, From fbaa559dbdc221292fe29d176a1c49901728f1a4 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Fri, 14 Jun 2019 17:24:49 +0700 Subject: [PATCH 5/7] #391 add svg tests for text --- Macaw.xcodeproj/project.pbxproj | 60 +++ MacawTests/MacawSVGTests.swift | 22 +- MacawTests/png/text-intro-01-t-manual.png | Bin 0 -> 700838 bytes MacawTests/png/text-intro-02-b-manual.png | Bin 0 -> 691258 bytes MacawTests/png/text-intro-04-t-manual.png | Bin 0 -> 718542 bytes MacawTests/png/text-intro-09-b-manual.png | Bin 0 -> 691258 bytes MacawTests/png/text-intro-11-t-manual.png | Bin 0 -> 716166 bytes .../text-intro-01-t-manual.reference | 212 +++++++++ .../w3cSVGTests/text-intro-01-t-manual.svg | 95 ++++ .../text-intro-02-b-manual.reference | 183 ++++++++ .../w3cSVGTests/text-intro-02-b-manual.svg | 81 ++++ .../text-intro-04-t-manual.reference | 202 +++++++++ .../w3cSVGTests/text-intro-04-t-manual.svg | 75 ++++ .../text-intro-09-b-manual.reference | 183 ++++++++ .../w3cSVGTests/text-intro-09-b-manual.svg | 88 ++++ .../text-intro-11-t-manual.reference | 419 ++++++++++++++++++ .../w3cSVGTests/text-intro-11-t-manual.svg | 94 ++++ 17 files changed, 1713 insertions(+), 1 deletion(-) create mode 100644 MacawTests/png/text-intro-01-t-manual.png create mode 100644 MacawTests/png/text-intro-02-b-manual.png create mode 100644 MacawTests/png/text-intro-04-t-manual.png create mode 100644 MacawTests/png/text-intro-09-b-manual.png create mode 100644 MacawTests/png/text-intro-11-t-manual.png create mode 100644 MacawTests/w3cSVGTests/text-intro-01-t-manual.reference create mode 100644 MacawTests/w3cSVGTests/text-intro-01-t-manual.svg create mode 100644 MacawTests/w3cSVGTests/text-intro-02-b-manual.reference create mode 100644 MacawTests/w3cSVGTests/text-intro-02-b-manual.svg create mode 100644 MacawTests/w3cSVGTests/text-intro-04-t-manual.reference create mode 100644 MacawTests/w3cSVGTests/text-intro-04-t-manual.svg create mode 100644 MacawTests/w3cSVGTests/text-intro-09-b-manual.reference create mode 100644 MacawTests/w3cSVGTests/text-intro-09-b-manual.svg create mode 100644 MacawTests/w3cSVGTests/text-intro-11-t-manual.reference create mode 100644 MacawTests/w3cSVGTests/text-intro-11-t-manual.svg diff --git a/Macaw.xcodeproj/project.pbxproj b/Macaw.xcodeproj/project.pbxproj index 6475dad2..b251699c 100644 --- a/Macaw.xcodeproj/project.pbxproj +++ b/Macaw.xcodeproj/project.pbxproj @@ -672,6 +672,21 @@ A74C832E229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference in Resources */ = {isa = PBXBuildFile; fileRef = A74C832D229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference */; }; A7632F6022B2500500803489 /* Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7632F5F22B2500500803489 /* Direction.swift */; }; A7B4899322B3914D002D1D56 /* Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7632F5F22B2500500803489 /* Direction.swift */; }; + A7B4899922B3AAD7002D1D56 /* text-intro-09-b-manual.svg in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899422B3AAD6002D1D56 /* text-intro-09-b-manual.svg */; }; + A7B4899A22B3AAD7002D1D56 /* text-intro-01-t-manual.svg in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899522B3AAD6002D1D56 /* text-intro-01-t-manual.svg */; }; + A7B4899B22B3AAD7002D1D56 /* text-intro-04-t-manual.svg in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899622B3AAD7002D1D56 /* text-intro-04-t-manual.svg */; }; + A7B4899C22B3AAD7002D1D56 /* text-intro-11-t-manual.svg in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899722B3AAD7002D1D56 /* text-intro-11-t-manual.svg */; }; + A7B4899D22B3AAD7002D1D56 /* text-intro-02-b-manual.svg in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899822B3AAD7002D1D56 /* text-intro-02-b-manual.svg */; }; + A7B489A322B3AAE1002D1D56 /* text-intro-11-t-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899E22B3AAE0002D1D56 /* text-intro-11-t-manual.reference */; }; + A7B489A422B3AAE1002D1D56 /* text-intro-04-t-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A7B4899F22B3AAE0002D1D56 /* text-intro-04-t-manual.reference */; }; + A7B489A522B3AAE1002D1D56 /* text-intro-01-t-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A7B489A022B3AAE1002D1D56 /* text-intro-01-t-manual.reference */; }; + A7B489A622B3AAE1002D1D56 /* text-intro-09-b-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A7B489A122B3AAE1002D1D56 /* text-intro-09-b-manual.reference */; }; + A7B489A722B3AAE1002D1D56 /* text-intro-02-b-manual.reference in Resources */ = {isa = PBXBuildFile; fileRef = A7B489A222B3AAE1002D1D56 /* text-intro-02-b-manual.reference */; }; + A7B489AD22B3AAF3002D1D56 /* text-intro-02-b-manual.png in Resources */ = {isa = PBXBuildFile; fileRef = A7B489A822B3AAF2002D1D56 /* text-intro-02-b-manual.png */; }; + A7B489AE22B3AAF3002D1D56 /* text-intro-09-b-manual.png in Resources */ = {isa = PBXBuildFile; fileRef = A7B489A922B3AAF3002D1D56 /* text-intro-09-b-manual.png */; }; + A7B489AF22B3AAF3002D1D56 /* text-intro-04-t-manual.png in Resources */ = {isa = PBXBuildFile; fileRef = A7B489AA22B3AAF3002D1D56 /* text-intro-04-t-manual.png */; }; + A7B489B022B3AAF3002D1D56 /* text-intro-11-t-manual.png in Resources */ = {isa = PBXBuildFile; fileRef = A7B489AB22B3AAF3002D1D56 /* text-intro-11-t-manual.png */; }; + A7B489B122B3AAF3002D1D56 /* text-intro-01-t-manual.png in Resources */ = {isa = PBXBuildFile; fileRef = A7B489AC22B3AAF3002D1D56 /* text-intro-01-t-manual.png */; }; A7E675561EC4213500BD9ECB /* NodeBoundsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E675551EC4213500BD9ECB /* NodeBoundsTests.swift */; }; C410148E1F834D290022EE44 /* style.svg in Resources */ = {isa = PBXBuildFile; fileRef = C410148D1F834D280022EE44 /* style.svg */; }; C4153A8F1F8793DE001BA5EE /* small-logo.png in Resources */ = {isa = PBXBuildFile; fileRef = C4153A8E1F8793DD001BA5EE /* small-logo.png */; }; @@ -1251,6 +1266,21 @@ A74C832B229FB7690085A832 /* color-prop-04-t-manual-osx.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "color-prop-04-t-manual-osx.svg"; sourceTree = ""; }; A74C832D229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "color-prop-04-t-manual-osx.reference"; sourceTree = ""; }; A7632F5F22B2500500803489 /* Direction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Direction.swift; sourceTree = ""; }; + A7B4899422B3AAD6002D1D56 /* text-intro-09-b-manual.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-09-b-manual.svg"; sourceTree = ""; }; + A7B4899522B3AAD6002D1D56 /* text-intro-01-t-manual.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-01-t-manual.svg"; sourceTree = ""; }; + A7B4899622B3AAD7002D1D56 /* text-intro-04-t-manual.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-04-t-manual.svg"; sourceTree = ""; }; + A7B4899722B3AAD7002D1D56 /* text-intro-11-t-manual.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-11-t-manual.svg"; sourceTree = ""; }; + A7B4899822B3AAD7002D1D56 /* text-intro-02-b-manual.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-02-b-manual.svg"; sourceTree = ""; }; + A7B4899E22B3AAE0002D1D56 /* text-intro-11-t-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-11-t-manual.reference"; sourceTree = ""; }; + A7B4899F22B3AAE0002D1D56 /* text-intro-04-t-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-04-t-manual.reference"; sourceTree = ""; }; + A7B489A022B3AAE1002D1D56 /* text-intro-01-t-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-01-t-manual.reference"; sourceTree = ""; }; + A7B489A122B3AAE1002D1D56 /* text-intro-09-b-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-09-b-manual.reference"; sourceTree = ""; }; + A7B489A222B3AAE1002D1D56 /* text-intro-02-b-manual.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "text-intro-02-b-manual.reference"; sourceTree = ""; }; + A7B489A822B3AAF2002D1D56 /* text-intro-02-b-manual.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "text-intro-02-b-manual.png"; sourceTree = ""; }; + A7B489A922B3AAF3002D1D56 /* text-intro-09-b-manual.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "text-intro-09-b-manual.png"; sourceTree = ""; }; + A7B489AA22B3AAF3002D1D56 /* text-intro-04-t-manual.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "text-intro-04-t-manual.png"; sourceTree = ""; }; + A7B489AB22B3AAF3002D1D56 /* text-intro-11-t-manual.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "text-intro-11-t-manual.png"; sourceTree = ""; }; + A7B489AC22B3AAF3002D1D56 /* text-intro-01-t-manual.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "text-intro-01-t-manual.png"; sourceTree = ""; }; A7E675551EC4213500BD9ECB /* NodeBoundsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NodeBoundsTests.swift; path = Bounds/NodeBoundsTests.swift; sourceTree = ""; }; C410148D1F834D280022EE44 /* style.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = style.svg; sourceTree = ""; }; C4153A8E1F8793DD001BA5EE /* small-logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "small-logo.png"; sourceTree = ""; }; @@ -1413,6 +1443,11 @@ 4295954322A0F7CE00869079 /* shapes-rect-06-f-manual.png */, 4295954422A0F7CE00869079 /* shapes-polyline-02-t-manual.png */, 4295954522A0F7CE00869079 /* shapes-polygon-01-t-manual.png */, + A7B489AC22B3AAF3002D1D56 /* text-intro-01-t-manual.png */, + A7B489A822B3AAF2002D1D56 /* text-intro-02-b-manual.png */, + A7B489AA22B3AAF3002D1D56 /* text-intro-04-t-manual.png */, + A7B489A922B3AAF3002D1D56 /* text-intro-09-b-manual.png */, + A7B489AB22B3AAF3002D1D56 /* text-intro-11-t-manual.png */, ); path = png; sourceTree = ""; @@ -2053,6 +2088,16 @@ 5B1AE1F820B6A669007EECCB /* text-fonts-01-t-manual.svg */, 5B1AE21520B6A669007EECCB /* text-fonts-02-t-manual.reference */, 5B1AE1DA20B6A669007EECCB /* text-fonts-02-t-manual.svg */, + A7B489A022B3AAE1002D1D56 /* text-intro-01-t-manual.reference */, + A7B4899522B3AAD6002D1D56 /* text-intro-01-t-manual.svg */, + A7B489A222B3AAE1002D1D56 /* text-intro-02-b-manual.reference */, + A7B4899822B3AAD7002D1D56 /* text-intro-02-b-manual.svg */, + A7B4899F22B3AAE0002D1D56 /* text-intro-04-t-manual.reference */, + A7B4899622B3AAD7002D1D56 /* text-intro-04-t-manual.svg */, + A7B489A122B3AAE1002D1D56 /* text-intro-09-b-manual.reference */, + A7B4899422B3AAD6002D1D56 /* text-intro-09-b-manual.svg */, + A7B4899E22B3AAE0002D1D56 /* text-intro-11-t-manual.reference */, + A7B4899722B3AAD7002D1D56 /* text-intro-11-t-manual.svg */, 5B1AE1EF20B6A669007EECCB /* types-basic-01-f-manual.reference */, 5B1AE20420B6A669007EECCB /* types-basic-01-f-manual.svg */, ); @@ -2271,6 +2316,7 @@ 4295957B22A0F7CE00869079 /* struct-defs-01-t-manual.png in Resources */, A74C81ED229284790085A832 /* struct-use-01-t-manual.svg in Resources */, 5B1AE23620B6A669007EECCB /* paths-data-07-t-manual.svg in Resources */, + A7B4899B22B3AAD7002D1D56 /* text-intro-04-t-manual.svg in Resources */, 5B1AE27720B6A669007EECCB /* coords-trans-03-t-manual.reference in Resources */, 5B1AE26420B6A669007EECCB /* painting-fill-03-t-manual.svg in Resources */, 5BAEA9C9206CEAA20049AAAE /* viewBox.svg in Resources */, @@ -2295,6 +2341,7 @@ 5B1AE2B820B6A669007EECCB /* painting-stroke-03-t-manual.reference in Resources */, 4269F43E2257265800D91393 /* color-prop-04-t-manual.reference in Resources */, 4295957522A0F7CE00869079 /* color-prop-01-b-manual.png in Resources */, + A7B489A522B3AAE1002D1D56 /* text-intro-01-t-manual.reference in Resources */, 5B1AE2C720B6A669007EECCB /* paths-data-02-t-manual.svg in Resources */, A74C823C2297DB2C0085A832 /* shapes-rect-07-f-manual.reference in Resources */, 5B1AE27120B6A669007EECCB /* painting-stroke-04-t-manual.reference in Resources */, @@ -2302,6 +2349,7 @@ A74C82E4229E35D30085A832 /* pservers-grad-22-b-manual.svg in Resources */, 5B1AE2C220B6A669007EECCB /* coords-trans-05-t-manual.svg in Resources */, 5B1AE29D20B6A669007EECCB /* types-basic-01-f-manual.reference in Resources */, + A7B4899922B3AAD7002D1D56 /* text-intro-09-b-manual.svg in Resources */, 429595AD22A0F7CE00869079 /* coords-transformattr-01-f-manual.png in Resources */, 4295955E22A0F7CE00869079 /* painting-fill-04-t-manual.png in Resources */, 5B1AE25820B6A669007EECCB /* paths-data-08-t-manual.reference in Resources */, @@ -2323,6 +2371,7 @@ 5B1AE2CA20B6A669007EECCB /* shapes-ellipse-01-t-manual.reference in Resources */, 5B1AE25420B6A669007EECCB /* paths-data-06-t-manual.svg in Resources */, 4295959622A0F7CE00869079 /* paths-data-16-t-manual.png in Resources */, + A7B489AE22B3AAF3002D1D56 /* text-intro-09-b-manual.png in Resources */, 4295955522A0F7CE00869079 /* struct-frag-01-t-manual.png in Resources */, 42DAF9AC22A612CF0095B936 /* color-prop-01-b-manual.svg in Resources */, 5B1AE26B20B6A669007EECCB /* shapes-polygon-02-t-manual.svg in Resources */, @@ -2367,6 +2416,7 @@ 5B1AE24820B6A669007EECCB /* coords-coord-01-t-manual.svg in Resources */, 4295955622A0F7CE00869079 /* struct-frag-06-t-manual.png in Resources */, 5B1AE2B620B6A669007EECCB /* paths-data-04-t-manual.svg in Resources */, + A7B4899C22B3AAD7002D1D56 /* text-intro-11-t-manual.svg in Resources */, 5B1AE25620B6A669007EECCB /* paths-data-05-t-manual.reference in Resources */, 42DB451522A52A4200091DC6 /* pservers-grad-09-b-manual.png in Resources */, 4295954C22A0F7CE00869079 /* coords-trans-10-f-manual.png in Resources */, @@ -2406,11 +2456,14 @@ 4295954722A0F7CE00869079 /* render-elems-03-t-manual.png in Resources */, 4295954822A0F7CE00869079 /* paths-data-03-f-manual.png in Resources */, 5B7E79DE20D2781A00C50BCF /* masking-intro-01-f-manual.reference in Resources */, + A7B489B022B3AAF3002D1D56 /* text-intro-11-t-manual.png in Resources */, 42DB451322A52A4200091DC6 /* masking-path-13-f-manual.png in Resources */, + A7B489B122B3AAF3002D1D56 /* text-intro-01-t-manual.png in Resources */, 5B1AE28A20B6A669007EECCB /* shapes-polygon-01-t-manual.reference in Resources */, 4295955B22A0F7CE00869079 /* shapes-rect-05-f-manual.png in Resources */, 4295958D22A0F7CE00869079 /* coords-trans-02-t-manual.png in Resources */, 4295956C22A0F7CE00869079 /* pservers-grad-02-b-manual.png in Resources */, + A7B489A322B3AAE1002D1D56 /* text-intro-11-t-manual.reference in Resources */, 5B1AE27920B6A669007EECCB /* shapes-circle-01-t-manual.svg in Resources */, 5B1AE25E20B6A669007EECCB /* paths-data-17-f-manual.reference in Resources */, 5B1AE23F20B6A669007EECCB /* coords-trans-06-t-manual.svg in Resources */, @@ -2448,6 +2501,7 @@ 4295957F22A0F7CE00869079 /* metadata-example-01-t-manual.png in Resources */, 5B1AE2D320B6A669007EECCB /* shapes-rect-04-f-manual.reference in Resources */, 5B1AE23C20B6A669007EECCB /* paths-data-15-t-manual.svg in Resources */, + A7B489AF22B3AAF3002D1D56 /* text-intro-04-t-manual.png in Resources */, 5BAE2039208E163D006BF277 /* polygon.reference in Resources */, 5B1AE27220B6A669007EECCB /* struct-frag-06-t-manual.svg in Resources */, 421C66502225196900DD73F5 /* color-prop-04-t-manual.svg in Resources */, @@ -2474,6 +2528,7 @@ 5B7E79C420CA7F1B00C50BCF /* pservers-grad-03-b-manual.svg in Resources */, 5B1AE27F20B6A669007EECCB /* painting-stroke-07-t-manual.reference in Resources */, 4295956622A0F7CE00869079 /* coords-trans-07-t-manual.png in Resources */, + A7B4899D22B3AAD7002D1D56 /* text-intro-02-b-manual.svg in Resources */, 4295956A22A0F7CE00869079 /* paths-data-14-t-manual.png in Resources */, 5B1AE23320B6A669007EECCB /* paths-data-06-t-manual.reference in Resources */, 5B1AE2C820B6A669007EECCB /* paths-data-19-f-manual.svg in Resources */, @@ -2490,6 +2545,7 @@ A74C832E229FBA4C0085A832 /* color-prop-04-t-manual-osx.reference in Resources */, 4295956822A0F7CE00869079 /* paths-data-06-t-manual.png in Resources */, 5B1AE28720B6A669007EECCB /* render-elems-03-t-manual.svg in Resources */, + A7B489AD22B3AAF3002D1D56 /* text-intro-02-b-manual.png in Resources */, 4295956522A0F7CE00869079 /* painting-stroke-01-t-manual.png in Resources */, 5B1AE2AD20B6A669007EECCB /* painting-stroke-05-t-manual.reference in Resources */, 5B1AE25920B6A669007EECCB /* coords-trans-01-b-manual.svg in Resources */, @@ -2498,6 +2554,7 @@ 5BFEF5D720BC1C1F008DAC11 /* paths-data-18-f-manual.reference in Resources */, 5BAE203F208E163D006BF277 /* transform.reference in Resources */, 5B1AE24920B6A669007EECCB /* painting-control-06-f-manual.svg in Resources */, + A7B489A722B3AAE1002D1D56 /* text-intro-02-b-manual.reference in Resources */, 5B1AE2B320B6A669007EECCB /* coords-trans-04-t-manual.reference in Resources */, 5BAE2038208E163D006BF277 /* polyline.reference in Resources */, 5B37139C20BE95D7004BB6EE /* pservers-grad-01-b-manual.reference in Resources */, @@ -2518,6 +2575,7 @@ 5B1AE29F20B6A669007EECCB /* painting-stroke-09-t-manual.svg in Resources */, 429595A222A0F7CE00869079 /* coords-trans-08-t-manual.png in Resources */, 5B1AE27D20B6A669007EECCB /* shapes-polygon-03-t-manual.svg in Resources */, + A7B489A622B3AAE1002D1D56 /* text-intro-09-b-manual.reference in Resources */, 4295958322A0F7CE00869079 /* pservers-grad-01-b-manual.png in Resources */, 5B1AE26020B6A669007EECCB /* shapes-polygon-02-t-manual.reference in Resources */, 4295959022A0F7CE00869079 /* painting-control-02-f-manual.png in Resources */, @@ -2567,9 +2625,11 @@ 4295959722A0F7CE00869079 /* color-prop-03-t-manual.png in Resources */, 5B1AE24F20B6A669007EECCB /* painting-stroke-02-t-manual.reference in Resources */, 4295958C22A0F7CE00869079 /* shapes-rect-03-t-manual.png in Resources */, + A7B489A422B3AAE1002D1D56 /* text-intro-04-t-manual.reference in Resources */, 4295958A22A0F7CE00869079 /* paths-data-05-t-manual.png in Resources */, 4295958B22A0F7CE00869079 /* coords-trans-05-t-manual.png in Resources */, 4295956322A0F7CE00869079 /* painting-stroke-06-t-manual.png in Resources */, + A7B4899A22B3AAD7002D1D56 /* text-intro-01-t-manual.svg in Resources */, 5B1AE28420B6A669007EECCB /* shapes-polyline-01-t-manual.reference in Resources */, 4295957C22A0F7CE00869079 /* painting-control-03-f-manual.png in Resources */, 42DB450E22A52A4200091DC6 /* pservers-grad-24-f-manual.png in Resources */, diff --git a/MacawTests/MacawSVGTests.swift b/MacawTests/MacawSVGTests.swift index fb22ef30..cdeb0c70 100644 --- a/MacawTests/MacawSVGTests.swift +++ b/MacawTests/MacawSVGTests.swift @@ -19,7 +19,7 @@ class MacawSVGTests: XCTestCase { private let testFolderName = "MacawTestOutputData" private let shouldComparePNGImages = true - private let multipleTestsWillRun = false + private let multipleTestsWillRun = true private let shouldSaveFaildedTestImage = false override func setUp() { @@ -814,6 +814,26 @@ class MacawSVGTests: XCTestCase { validateJSON("masking-mask-02-f-manual") } + func testTextIntro01() { + validateJSON("text-intro-01-t-manual") + } + + func testTextIntro02() { + validateJSON("text-intro-02-b-manual") + } + + func testTextIntro04() { + validateJSON("text-intro-04-t-manual") + } + + func testTextIntro09() { + validateJSON("text-intro-09-b-manual") + } + + func testTextIntro11() { + validateJSON("text-intro-11-t-manual") + } + func getImage(from svgName: String) -> MImage { let bundle = Bundle(for: type(of: TestUtils())) do { diff --git a/MacawTests/png/text-intro-01-t-manual.png b/MacawTests/png/text-intro-01-t-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..29f2c523dec32ed31f6bfbffbbf4cf2c6c443fd9 GIT binary patch literal 700838 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 `KtA^+OU3{;}M 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 literal 0 HcmV?d00001 diff --git a/MacawTests/png/text-intro-04-t-manual.png b/MacawTests/png/text-intro-04-t-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..5be3f4ce94cbb059de7ff6bc80bce91654cb3d2e GIT binary patch literal 718542 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 LL;no==b!%rSpqGy literal 0 HcmV?d00001 diff --git a/MacawTests/png/text-intro-09-b-manual.png b/MacawTests/png/text-intro-09-b-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..60083c4f6ee27471bdf240436dc642669c8c95c3 GIT binary patch literal 691258 zcmeF32e>6g@%EdXqa-EgsFFbeSxE{A{K=qzYd}Crl2lw^0YOm-A`(P#$)F%0SwQ$u zL{JnZOAyIHlH}<3{&uD~eVds%bLND*%dL8z_fE&^>bFD9^vt;%Z4{OY(;oPrkjYnd z8S8Kkd=B^=@Hyafz~?|;=K%f|*;4quaG=9E@Hyafz~_L^0iOeXodeg4->n3E@414D zGvEw31I~am;0*MafpetZeQ$p`cJ0o9GvEw31I|FqfcxH<4G%j5&VV!E3^)V*XTW`L z|2g&+oB?OR8E^)iftUgJy)hdeb_SdQXTTY72Kvu{``-R@>@7G0&VV!E3^)TZ1MYic zHazSMI0MdrGvEyLp8@y1{pZ+Qa0Z+KXTTY724V)>_r`2^*cosJoB?OR8R$O)?tA;s zvA5t1I0MdrGvExw47l%&+3>J4;0!ne&VVz}e+Jz5_Mc;K!5MG{oB?OR8HgEh-y5^x zVQ0V@a0Z+KXQ2NKxbN*h$KHZ7;0!ne&VVxzGvK~AX2ZkIfHU9>I0Mc={~2)K+kcL| z1!uq+a0Z+KXCP+4eQ(T$hn)duz!`7`oPqu`;J&y29D57SfHU9>I0Mc=%z*pem<eNYFH66EjLe?5fDE+c2+lsfjOeXi5ffBYjGk3|>FuEaZ$Ud)M3 z+DprFe;V7|WKO0!yNQ?0@5v_1_&x8umiE;4R?g5+w_`L^o5!4i1`G_N?_GQC5RN-8 zg!$)hV0VKmP4>~UX6pE~I{i!c**bMnn>O9F<$Hhhqby7s(knaBmGXDwks<7|3po>~ z)UiM9bDf_4{qNZrEV4*;CEkhjVor3@URw6jOG9|=wN`4AIoYb+eW+}H7x~`Q_OjNy z9iuY6p6(3PW?(?RccFzsn0e;fR)ra74BcnCAiR9=RhdFKt|brCMx zM_I!>qjX|l?9=9&D+D_qq@8v$)l?xYyl@Ddjivi+yShdBE3TOB@!$Mr2>b4vg;!cB zE7^^mXsE+qkxfNubIzIdd(ugZa_gnl9V_O}bkhyhIr-!vEU>`Pw4zv@K3Cas$t5AY z@=6GldGW;%@CWUr>6|F)XO(TS9c62*uKz+;-7%eEh7h|R`@|Qzf{_JP7^o=*p(!cSIEdJ#$hwz{OWNUt93o%2!%#;U9nc(-7W#v!(OTe-43nL9uMUc?fsjnU%rb zbJWkLo*H`Q%zpQSA7uL^Z2{U|YN=RLaTuS*`Sl#QtnXU=II&ik&svK;U`%{1BbE!=X`PRs8!v6CLu;qT>_LtqbU zCmU=K!oBylc%t6H2Zu1l6d|m!MmE+*9W_)7_f(X-_S!7H&R89AK&I=6BeJ$$eKk9K zXZ%k)ErdrN$^S`JY~Iq!pZ*jA_LNDJIZ@WnI<{d))f&6uhSoU2 z+kX3nkj_bTRE;V52>hOWa`s*VU97JcUdZk@vl1b6Grv>cTV#6~SDlQJ+3Htkpr;JT zCxxwqEroO2Yfk68)v)I`zU@K2{q1b6vG-qaL3TEY-(~$Be|%OZeUHR_G5!%>z3Z+a zeBlcra5luczohw${%S-tpu zFFqVy_|GqWDTKZD3IRQoon@A+y|Tabi@JB;9Rl|qyYHUWWxwG$7)kqg_Ssn-`j740 z51<2>?@j9*b4&>L-(L=%brGK1r=B_l_TR-8%hLGU#Ll|>)p=jK$|~7?5}Y!oTWPN0 zPw6vfzB~s#^iT+oKb}1&n&sS6P=;|q>WtMv2etUT=%UQ;%`;Cc?STifXQc0aFVh*@ zU$@V7>|pNj?2OQU)whIA=0sUP>)6(AjcvGL2)EvvjTvianPuKPkK2uD*7Mf=G3#*b z*w$L*zS+*Sx|!eUUQ}dz8CRW*k@d%~&OlEY(Ei^~-y1*A@O;Lz2+y)e>Syd-CGVF^ zcn0PC?&zbl`*rr?^bBwBy|exGCqKz*;g@;#Gk;C$s8LxN^S$gr_$B;Wd=6&!5ImPv ziTSkn85tjpecV$casMbs-nq&B&2`sh>1DomyrM4tbZRF})!~nFvF{>YBs>?>Z+rHq z3}?U3KAY{$oYfz4NLJ=kpK58i{`wF&AF#8^I%8$~?2muk(nE;$nRoW>x8=t6*XeV& zbH>`WYtuPV)X%!MwOeD@mY&Di+RV0g|q1_FJBhQnB9*?73&QZnxwaJret#l;>CEo_j*LMeqgO&&R?$XwomgJWGxHx9zsYw(q!O zmR{z2(aE`F8SrCO(y5*3s>2`U%y*UX#JD~8T=7_(d1lt{_0|i4ZvnVh;#?S6V1X=t z>Z#+Sq0U%Q(#FodGs|jc?G%0QWcE|8PM_=AVePiNHk}hi{j6(SyETT*ssD=SaosUR z55CvV_lYBRf65i@lhEUf7;{_t_`27n?cLPVtw&WZ!X-AH#lA zgHJo-jI@R9d9LWWe$1Fm&su8@t;0DP`pbN;ok_+v#9_{DtE5vq>+(mN=DT<|8{0$} zp13c-r`kK)*v_4H%Ia*teU^INb=h}G++!G5qef+Ub;gR4=95-fA**M9vFGB8E!Mi4 z{dN0X*N#>T)gkL=r*opHpLK0(x5luz%J+6MrmRDB#lpK5#^ZCJ%Tl|U-<|m0bWX%J zdDs~k76v->y`0aocG5Lv`$+10`9?7oeD8htWhtreu=VxL2%ez*5&4m|c zDRKXJcBZ|px3<#Rm3L~Sm-$}m{qTq7uzEwawql*yNzFR^QOd5wiuzgCwsva_d#ije z`E|z>-)n1%Ei8mc#&LjMW)MqEM?d;Ip1J!=6(g?_dtB-#=N5K0}ss7`CE6aihL6F z(bvxR*6DLyJ7}|xG@TPg{j6(SyETU0tS`=iY+a;tvhJAH@x66;Dl1dudsEwsxGK}< z>CV7F8ED{puevJR&v<8tzhPfve*@k4UjBC->y`UzzH{YWDDUY=<69DhwM9F$jlbfo zjc;-udo26yC}r4(_$>qPcSn!T&Z_Z~)HB~pIs1JN&jS392!2n&bNBPl5B)xbvZ>(H z(8t*{&uV-l%{>YA`Q0Rv?pZ(kSytziQ$pZfALp#-0R8m6o!VKKzdF8`cMhBdJo#jH zZo$2c&7btQH^vX;)Bm?pXRONhS^D43_tx!m9XrMke$7AD=T7ECSwHL8R%eabyZ94N z41sf=bRO3o)8X*FsqJN4l?@Ny_VHV^qW2_abv)e}Xv9DR-^>5Bz+ai);Cv9@Mf@|L z$*i#T8b9xl!cro`^6m?LrW+s1S+fc67TKp**OX!Z=iM%QN-X>jUHjiP zl;a$Y|05TF`@ypo|5pngrt7!A4PpKDV@<_jd@uI_aT{+r|-=l1@)$|CsWyEOU<9)39c%}HA4;~&rR`7K&1b;iox zd!*-!Ji`_F-qij&eXe6iYI{|@$($(bXIu61qiReP?-8EC{n7rwVq zdtS*Ia0Z+KXTTX4=?u8<9qBW``|k`m1I~amFlYwc_YRtIZ_gQU2AlzBV5BqPzIUY0 z0Pnvu;0!ne&cL744MJ=y@O`l+j9n-0cXG&80ieS?;Ytg!29nE zI0MdrGcafd-1iQeac|EVa0Z+KXJDi=;J$aH&j9bgGvEw31J1yp8F1e_XvV!gXTTY7 z2AqMB&Vc*gkv;>w|IUCj;0!negJ!^e@1Pm?_M8D{z!`7`MmhuTdq?^V@cugk&VV!E z3=En9_q~H=+}m>ooB?OR85rpdxbGe5Gr;@r3^)VMfHN>?2Hf`!nsIN>8E^)i0cT*O zGvK~=q|X5Fzcb(rI0MeWpc!!AJ7~teJ!ilfa0Z-#kfVn$~O3RP8DgqD{4pf1eawR{eNcIN*KK zpQhdDmWNLFpP6LnF2X`h4bJP0()F{#Bzb&7yui&bgbRdgh2?~iES>t^aU$!?8aP8` zrV$1$-&2GC6OI;^&%;mX`hJtE)uFcKoJJYFcQE$k`SJeWn{UdcXEgzk3oRTaP<%FmI9Z_)MrCQbcS z(|Y~nZ$h-GpZ%Q>b$9D?Cd589v8h`gI^BP^k&$l*hc+=buQRExw+i^QUc56{R(ehq z*hj$_!QKh+T)m;do=V;`!d5~jd;L%Iy6$^3?zR*k=L+ov-+M$*ixU+dD|}s;Mu-ItP8U{< z6AQv+)Ah2kCGQZy#>TFU5ziFNziEXs*+Chc%W;Mn z%V5$klX(=_ zSGYzvPuN6=WwatieP*5fPN44ef=N1d))%hmVQ-?ZWm1=ivazq)f6CgNrYxg_bo$MH z(JNt&F&{v>zG#DSB=2$}9m;VkPu;aTtoME^-syAizeT`I5eZ`yhR5ThG}hI?XKfb=K^lfux+eKwwRM^@l`|2n!u1}bKzf9`Z`-2pq>rP?5L>WGW zyiermqw;uaM?d?rdDP||3Xc|S?-`|VY76nY_SC6gHMTq>6ty3x-L5iaYvI1A{>ciP z+@=6JUK2=PTtHS9V%=roUyUza{AcwF9ZxCG{C%fuC~l4Y;6VZVwiiAqu%D#%l4nxZ z=Mz-G>cORn`98}lyME0oB-c7TRE>Sr{*yFSD>`#tioFQ`+Ku4j*_-PK?ZF*;WsxvO z8pnWu4oJY7NlaZ01E`QG^6si63~N!&XYaZuLIyA>zUK&QSp?Zy}-z$0s+O!iX7 z1HzNSv%;yu48nTCJrNGf)9;GXj#l_q;Z1>d2!oAg3^0roC*aqntk z``1yHkY88P^>+g0FU!-o%p)8xkX|+a%F5wK@v&e#VISdg0ex`98b&@MTrH6PUBTp& z3RwNmD-6ds3Y2?DD3iMN7$0kw`yTv>2|TbS&Bo#A3+rtMf%!w9!6O3W*sVQv>z9q~ ze6j)CunFH`MtU8syfMNv z!rQ_Jgd&+;iB^~AZQB2V@VY=-UldF_T|-un>xYFG1@43H6j;~$39Pdt1=@O0V4p?G z`po!$T3~KcXC(nyRIq-;*X@*kh`@MIo_ot8smnvz*rT&*|B2f?R*}1e#|6gGguWjt z@chDFz`ps4z&NL}j1vAP{7ZOFV4X65ZV?_3sK0^mM}hgm8u_-+PP*~E3rhKw!V3bn z(+_MgG2eTD68<4z*E7Nog~_4O#XO^B`=TgFJ0=9M{W%V|e650j#3(Wax1lH4iLOU5mUzoFR39K*rKD$sR-PnW9 zqWWcH%bbC?OQ@L0E{c=4O_H8Q&&ta!9%U@8@Y@1DguV7Cp^hA_) zjM4~px`yKF?0wh*c8fC=VF6(>;aY(?yOe;~T>O*5pAgm*D33nY7y`F8Pw)*V3U>*V z!H>6V2OsfDUf%qQqT}Z+wtR?)WGdlqVO$>8WnglST4GH4;d|$jUiuGbvD~i+W6In^ zxKD)BYX#~&C@d?)@~k4y#0d?rnV^Jh`D)G@IgL(g&Kwg#9 zEr*VE1nk?FNG?CCI^OY+N-%j*4B6`m4)FVOxi!ohj?OS-m`e)olS z{ibkPZpZ@pwd~T3J?Jc|Up2PO{i_O$*-UBh$(~vzhbxnEt44(m%+prZmG#5Eh%j&0 z7M37VAO|Q7U7sw-t4caDueVlIsOcIq73`hZ@{qvXj^!JQkhe{gSk`BXd`qDGRzz}P z--fe!Eg`zjtuW<(8Ku<;7V%Iu_H}ephJ6lu&L)z}#k#&E%wq|<;^S6`;%V?gC7@^V zDC3emjk#j-9R(=Io?9j6dnwBvkm6;fk%wKe9IXiHTStl8=V{z$Am)4HIW>#Y(aHX0 zeOOUpblJYQroya=>4iG&oUU@z|Ez#;zd;=ADa>c+N0wtey0`FYK+@b9_5P^89Y> zK}Avhs&wr1Q*QHPe{@&x=)_Jt|ipG zVm~%82TYo-A**lCOy9SJ==y&O(;oJkl=YeXGX=`qeofk9dD<~V62T`>eoT_yE?UGx z)!4VwXZash0DIy++()#N3sfNG0Uu7a?@5>QJBgig4dCPIz0O zKC*>y$@tLV|Mb)M?yc_7cYMaq1(;oFCd?1Yg5@kRy7t2Na&NPT5V+Q(siSYHa_eivJPP`xNuNdzj*q>sY1Jzu5P(UPgJb*O00Cr2^~-S z6Faznq#xYpq_V9N$Qzet6vWx<{~%EQPGK4$mR|VY6{QgUoMD+vs=%)W(oeO-g6nNc zOMP!av96Pjkp^su*9%HXyOKbO?5}jn)b)#|rmP_Z}lXDJ&5!P+4s&S`0oe9`G`OE@TVUMK^87GLs_gGvsX$ zXGGya_}*#N-gAP@k*N9cwiWr_g;eMl0=8c(OfA%rcJ*$TlE(@Z?W;7}!p2Dp@-1l) zed)yaHnGS0!nLY?TrLi8qzGKG*Tga*`(D=R=E5VwE5as1EZwXj^w_yQ`%aO3K#6en z>nM}5q}AOc*;goUd&q(cpOvRwt?QIRJ88#5yZUwWKdOS*dUjNSXSIc+_*@FVF8ne| zOM@3E0X>UH85ieitaX#E6rkMUmQZq?Eid;@Nk0A&J(ni=r|0SWCF#6p|9YNg_dx4J zWf&9g>$%_Oo&#AyppDarBvPjxsxW`i0d^6P83cR@X%`8@CCqEaV@u)O4vpYmk~u>k zZW4;lMC`ufGUYR$SU?tbt?r(>x>b<0L zw@^5d$rLA@x_jk$!_}8E-`lM{oz~B37=Ph@3dRSfx?! zV^Ln2AHu&-mV5ak*++@wuUnLvr?D1a6Dap@VL2g{PS#Lbm-v1H`gbHEnL>C_fG_ZZ zK>q21Nm-vQKfNxd1a#ngR}$FIi61A>UOTD7LpvRH^GB&5wp}lR zKm0!;C32n8(Sz+K=pb!POVD-aJnfVyttbd@)CC_YC~#1ocek$7MfpoA{HE}-u&qGe zG6H+X*9GJx0lkc|^?7ujcBHN*>ncFGYXmE2d3D;M>{J5#>g$5>so=Zc32aAXn1p%V z#P>3Wwoc#&!1(yGQ#f2GlUtNwys^)2 zE8L!>eL?Z>3$_nap1r?FPE+C=g6ZV!@`$|PRJuMC~|1?t+3kXwop`)rQ%nz!`7`oB{W}J_nouXTTY72AqMxGT^>xbO8j;0!ne&VV!E3=Eb5_q~JV+go!6oB?OR z8E^*N_xc=g2AlzBz!`7`2Frl^-of(itvLhEfHU9>I0No`eGWJS&VV!E3^)UWWx##! zVEOjeoB?OR8E^)i0r$N=2b=+Cz!`7`oPohI;J$aTe0yuofHU9>I0Mdr`(B>|&VV!E z3^)VMz+f40-#b{oy)|dR8E^)i0cXH{ug?Kzz!`7`oB?NGunf5G9W3A8nls=GI0Mdr zGvL10=YTWd3^)VMfHN>y2Hf`!mTzy(8E^)i0cXG&aNp~5z!`7`oB?OR85k@B?t2Hz zx3}gDI0MdrGvExk@AWz03^)VMfHU9>43+`+y@Tc3TXP1S0cXG&a0cA>`W$cuoB?OR z8E^&$%Yggd!Sd~`IRnmsGvEw31MYi$4mbnOfHU9>I0J)azTu-af}tEQpf(Z&vkk_YE(7`(@&pW(b0+6cy==?D)4Qk%@lR_*RX#z)couF@X&!Pdo$GiEiq9iystJEjLe?5fDE+c2+lsfjOeXi5ffBYjGk3|>FuEaZ$Ud)M3+DprFe;V7|WKO0!yNOrL z?=rn<9}Yb<8;fO@$!c^vMrG}Kx-(FlfnoH$Yp)%`amR%)|NOPB?W$mteYC8>IzFvV z|I&T7PMy@IO*d`%-XHxa3zLTQ%1(5p{2h5@2)pb;&crEo>`(h#r>B4ado~7(ERtP` zcOt!*6P>h|mc8`S5MFz&mD*%ZwrY1Ds+!+r+S5LyzPH;kDr?u%oq^g649NE`v``2$ z&s^K8z}e7;K2%`|g{CS6V46*^QlOsKZ~8O+{&Q&YAUl z(n*VQ>!sBlE9TC0(+$-*`Q#xiu)xr?qF9|iSJ`pNB_X`>N(hvB@x>7E1MQ^goG9vN zm2I&dWos<;TXCH~r2MVgF#)%-Sl(y>kZkow*xV`Odl)fwms10DKa*7aL& zh49N?4sHFjpUu)Y-Z)GD#y7I~m%kjsfBuvC1I|LPzB+_C<``NgK6A!r+;me`m-2u8 zYY1QYN~BOEO)`JE|yO>gAGEs_udvy)I0d#5T=+S zgf-U4#`>tEhHBxSigMRpo2Azos{;-s`pq|II#c`W z^tp~5haaBJTUzjH;8Yg($Z@&=IIf;&{F(n^?-;+Q`r=rwqs^g{_1wg>&0$#`m&@&O2{t zS$lrt+aBcG-_FXh_g`>9b~cIMrS9>^XJyj&NZc3WAMw?@?i#`uz7PUuL#!{pl|XpM ziVl1~d*%N7XTI~l|7|@dFSlHl_OE}1u)_`^?7VXbPd}a2i{JO+!_kHR{L+^~*lVv4 z&_mf-X35$s`%Ay5d-vTTaNn`}?pa;-8=ixaw0~!xozlHDi4DPy{o<{JK#K6B>FbI?N%h4A>} z*>j><&OHTX7#F0@SRHgwi_eQL%KY9u^R&_)cp#g%-}_#sGq%5OpX=Dc+~L_7q5Z0F z37gD`vVPXFt=$^iaKjL8y)_#%)(-DS(>d90OtYT1?vGiAW5>4ED)-HHrq%8Iw)GQ_ zZBZXm-`mL;S%3WM4D^%%?f?Dsz47x5&u2V~@GOg@Yuesb@_xyLXHd@Xjy^iOUuUhQ zXLx(>o$aqb`AJp_zs$3r`D;=~jmpZH?`03dFX7kXb1=Jy;JK_y%%{cA$oOFF6HVV^~*=hnr-gn>T$Ue2as z;anCV>6&K0<@qQT`>nv9duHo)OPr*EWCpz{qoDR)VP1!Zd+{ojyq=QWxf}koJ*DgKUO83 z+KH|@{87$)R~b)?+jGwqkHwj1X8m4oy%6{ofO{p*g^>jo$l|A-IzAfej1?tq?Cd+U ztajE;(f3YfKjrH5xvm}7Zo6yKIZ@Qly0*1jW7wSft#}^S9aHq+d+mImIAZswT#;_) zH*2_PY|}ot@6Gu3zY`DxJ@UPr53>%^GiUqe$9jC*ZP~j&;_;d$&il_IpGh8K&qr&n znZ@J3oLTY=%ih46XOBsR_rmtvyU#wEz1Yl|c8b6JCHszx{22C|8hqLrXQVA;&vQl3 z^<&0lde&NNXdTYS&|l_z?MyPZAr5nHTP2;^S(iWBG~dO$+1Mt+@Wg!qKGojY#&+(s zQ&wmD?X%SDuFJkl;vU1e8Z|1*t20)VG@rD>3Ryk-i#-=#Y_ZnW?62GBx^}c$s18{_ zJDn3n{j6(SyETTzso#p%X(waKIz(42ylY`RKKHpSwcGh!HnwRW-1o+#;Nb~^few8y z=d;ZBbWPbllKNi0QH%xOd*6LoO1!2?;XM=YdsE@}eVjwve$D^mh=skAGe!IEhi|Oz zx+^Y`g?T4rzL&L6KMp(Wz2(q{@NS!OF+TapEDxV{{`pzh{_?IBUvuGwSxVeLo}FoL z>#ePHcIBNK>1Do`dO!SOIjr7Lt*uz6c2ctrf0Q%dRmBtcM7Q5g>7ioW*!(aa;D>kU zjFpW;ov}i@`K0u_JNUIRiLEgENvqT6x^~2ERE3+)iK2eiwXNM6!`{?y*;v_ogSumi z@3l2)Jecp@Zo4d{+xcBKwrL;S_u2^fb%J4_L*I+tyu-n_*?Us1*IbkNkZyeM>8EEp z>|B?&mRvIPXFOx_4KZsieTLa)n=GC6g>ZIBx%l~K`Q@`T^S!(arVQWt*d9+^&MV(| zBl`}Bc$whSI8Tkg$@=0KGo5^gio|;s=c=@q{yz@Rwn;Z18rR9RboaMYJ87*Bf0T=T z7x5yw;)<+)=3^;?ujYJ%y_x$Jgx>@4og4ECJ`OxEOXqLhu`2RO)JI=C-&?28b?u=n> z{%>8nXZ`GFS)Ef(34wQgoU@_>^waltYG+;k>iAyXIdB&6k+xsDy_T&ap%pF5coW&NyUTb(s#@8VB9F$B(e(s^8WOo!9= zrhTaEd-=AH-=Y=0C#f1o&vOPkW}t!Z<$qe>ugq_7K8Wuk{+Z8Y7T9`?pLfXN%$e_6 z5PThV>@15k-hH9ZbmK!gYc}ECBKs8UnlkMFyxV0@iG}~6i{CaqoI&w__mGV{`mgf-hWqF1fP7DW@GX2!`W|6(mEgicvgnrqNP%2tn9rgw*>}8rAIY;Y-{w>adS;ugszlZX_Y?f@ z`zFF~Ipg0^w9|p@^o_IEK}x4~Vp|>l>h=L$_Pf`*b<%Rohi=9y)mId+)8}5>(aSke z*EafDw#KlBIbF8?jJIBlsp;zVwQe7J-LC6%25K?Th3~DU-wQbd&VV!E3^)VMz)%L< z_YUR5W6ppx;0!ne&OpBzaNpZ+hF!li;0!ne&VVy8lmYj>L;3KSGvEw31I~am&~FCZ z_x77%*Y6BC1I~am;0z39zI0OA=zI0MeWPzK!h4&}pR&VV!E3^)VMK))Gq z-`j77UB5Hn3^)VMfHN?Z0r$N_`S6%C;0!ne&VVz}ZwB1=_M2hX?+iEt&VV!E3=Cz! zeeX~{Jmw5I1I~am;0*Me0r$QAX4v&R1I~am;0!neLm6=2JCqNPIRnmsGvEw31N~;e zeQ&=RcKyzPGvEw31J1xu2Hf`!<-=pnfHU9>I0Mc=zZr1f+i!+lzcb(rI0MdrGcc3^ z_q{{;@R&2;3^)VMfHTl<2Hf}dn_<`Q3^)VMfHU9>3}wK5?@&HG<_tIk&VV!E4D_1; z_r3jQ*!4RD&VV!E3^)Tr8F1e_ln;+N1I~am;0!ne{bs;@Z@(FK{my_h;0!ne&cILx z-1iRU!(+~XGvEw31I|Fd8F1g*Z-!mJGvEw31I~amFq8rJy+ir%m^0uEI0MdrGth4a z-1qjIVb|{rI0MdrGvEviWx##!P(DU-Y~hjI`Ka&CLqx_f1*cQHa}875Rn0b;8xv|@ zs`}}9{byi8_q~gVf?o(12-gbB2@|V~lHs2fCh4LBGpX(_!a@}~;OvLO62fG{LBiHT zm7Jx_x2p<_kUZyM_y>Afneei3!0?+g#DXSsV?yoAkdE~@(q#YXu?Z7}x(VI)&L9>y z6P^_QC#)rOBlx2;3ou)*6d#r5e?QOb=0ZPS6X?TgT_`#%*Kt*aj_>7Vj@EVgJp4pO zd9tn+-fB~3BxE}e!#~Qa%LLZRnBg~Nhy_jN#)R6JAsy>+q{;r%V-wz0H%_5+KQD@( zp>or_TWc_ZbJWaM!j{6hgK4r+D?e4OUijYWrRQ@3z6gDP7d|CSDIoI;+;6`lkbj!6 zg3zr@Dh0O++(UG8mbQ)Rzabndl*w0>f$jSUbL8P$bghym`%0C*i8ar882*u)Q2kYt zxiO*krJtkR>Hfq1da&@(J{a}7bh4KpD6Au}pR+e!D6B2)DcCd7ED8@&CKlg&oJfJQ zZl8ON+Y@trV=W=M{yWcKB}wllivKkq-;JJj_h)NJIb5xqH}aUSr{rPIgMKIMD{voT z!oEVCpX4}J*MkK1jw<24#p=Y@A1VFY!smrq1(PEbI9*uP5_BCcd{>xDh-F?y&K4Gn z5lCVE58_LQ@`C$8rDT@OPBAvjF!dqZKIX^A1Yq z{R;0U>c}A~6t_i~v4i{VglPqnvax4g9wV3@&Uy9|VtbjlmkFGu%q_%Hr~VYGaK6C! zwR`8noMSHjO)#67H#-S7hTYmDRbg_0IRsCsU?XkAgGrOQQKv8HFB|td+)}@6Y{`qI zsvPU>SHkjfg*@EJ8miiV3RH(3mB@IrMtUvyUgnO;7zJqScuUZA_dIPR_}-b+*LLd< zY9FDrdp0ohJ4{VyuK1c|wf($(_fYg~Wx zsLUM-j~2?tZS|;ZtdH~J0AB@QF`2N%&m%)u50pQDVqb7Ia07TxEG71lQmSe|HL{i+$-P9{T=&eEdN#n zdrZbCKp$h@JGtU_3o{CX6rKmR61Ei1ZPV~P%D*SVAEWZyD9nAl$)yTdS(}%8DeVE_ zN#R-HRDnGiA@2_1G2tX(tU#HEg*gTDl?N#N4}taajPOGN?qaEG$I6+$11%xB*73cu z%|BIrbUiPyo-Y@Ue-r*CJSVVcmdVGJaiQ?2fS-CuI88u~748xq7k(~O$=9RI zjTBxak260%Eufz{xRQW;QedA2pBL!cjRIw`p-eVahSjs{XO+f1>^Olwpko~YVGc3x zNn?&6iwP$Qj4A0{t$)lB(r(GqnRDw2>kAJGQwaxY$KtKG44HX=Q!J)~^V!3U3Hi_i^(ne+L1*w+Ytn_6qMU+$WH?nt+szJ$}^c zZl~}*!sP;WS%b#SM-(<5jVq6v-GR($)z@ znFCHcN9}DTY$=>uqwUpI<`n_^7mCWmAwK6rdD>LE!ofI!@WBFgST~ajYv=K^bw#EY zSkIJU&pAD zekQO!xsqmlPNMKfg(vd##dR$bc!9H@2-I0n_?z%+0b%a32cg?|Q?QX7pjznJt)li^ z%6m=Vexj*hC+%zzDS)?^glD3(r4?rW;6t7hY|mrge^o%oLjupgCah1=e`N_3*NyYC zl)qn?Q^;!cqWY`}*2*6R=GN>&UE#h3d-jYfbZZZ)*t^gR_7M>7U5IZ-q(Yj` zjiSELOxtXE61iuHj*OwK@(-+Zo6(R1cRk1xHUI*M)z|WmlNLTJ_>DS5v^MU&zlbaPF zZ)Z!$ujpa??oQH+qQ6xl&S2Oj)7~pY#8sysADk@3C{$ zsC-%Q6=hsikhz)C(DAh-ug=(0WgUU~`x428zL9o?B~)C~`je^bo5E#zodxo1-OG_G zNZauq(2YH``|(`oMY=LR>_CcE8WP=IG1}X0NNN`OdY*T!u5$?w3haR8GPd%!fV3hQQo2or+xT&o;F8R&Vv6@;0+<=g8W;B zmk3k{exLRZ74YeI=W)_*5U{gK>hf@^l%R9Y5@py)dnQ$V9;-s=`j{22xIV1Bn+x*S zR~kC@O!DfCJyn($sQ*nOk&t#}6fX;=_2*SV>K&sXbr2Tf|o^osY>yB+zIon5fG^M&OC16+6H593OPq51OvNo>~ zXq$7xFAK5UrU-c_2uI{NFHbvP*Hk8U-#e8$^n&nTf$;spqJnX>oWktK+Y89v0{pOE zd3H%LyV8&{KSo}e?>$L*=>C>aw;dIISKox>d$EiC@-cxvf#-!S1e0F*-tS7`IYOD= z;Th#d0iU;wP$gx)_j9U5AC62aFRM7~V)G~+TPVvO7>lj>E8@f`%)L1En1^LT`;=KQ zFR+lVPvvQc(xIan9(tPh86pEzX*jv#}6~KmV zEFr&=##(MCY5gTsfx1Vvt5}e~VP2QHmP%85W|1PE!x=Xdn=3CWf&41zWNyTIs`@fk z1?f+_aZkB5{dLE-svPSQ8)DyUyfj%uW?R{{%J))-^@=@UIUyFtiS*rsof9zsQ<>O( zFa0?~pwEX0HwwsTfi&(xo)&B$-8N4jr)!n0piJs_^4xoUUI#y4w;dIoAbsx#WEc1J zQwprD-w5#WsxX~^^vd^U+RFd#uPoYb=bO+_z0Vx`ezl!M-dk`km{ znWPm()A~()?`%^3sPL>XXF)?v?O9Q}s2ksZGe>@%r^h~7N$-(P=7v>n*O##>h)vAT zDoMGmD%)vZk?-wh4Yh0E);RvNNbviA5a5OL#AyVRdlVpj0ZV9eeLwi#P1HyF40g%; zJAG(TR&2inWx>Z>thA^`znpP+&jj8nW9a27%tztk?f@($6nY^ToTM9B6C(^0ESCrqBhf{N1MbBoa$Br8a;*zBb$#!Ns$_iH72eSa->Hy(Wt3RAekZ<{HS(H3TmKf8 z6UwBiJ$CQ4QGw!3m4@Dj1@6LY0WB-Q2*sw{YtkX3V zRc#xj9oqYou$Zul|L`3^J&H50-j=-T9K0kTThg^R#-$pJ}=mMhnvR)n|}(9 zKZm|m*9V2a30Dc|I$W4cFlpD$iYmzX(T3q!h368GeFWy2<#D}MD3Z@BF}C?0#TO9R zE3E!=3a=_K7c33CnJ1~>=kFKLN%_AER|?pSd`^hl`^Wgy-u#(gYF-dd6s*0vn$7nv ztO`#GhY263TRAUhYa-s~@ZE5BYNYG;d75#_m3dJn%tOjtS5ja(rQ^Fs=lS#N+LVWJ zs!Ln52}Q!Z;-1N*sLz%+RsnRaVhPE0^*o<42Hv~Gvc4kZ?GYy?VfHxYsOgBW>~V7^ z<%v?}@;tqh`itjvkIL&-T~1NvZNh#+ySdcVo@1n&x}$_5IbVr43fBJo3OAV>o%Cg_ z+Q25py%TO#ys_ZhXfwu(icgbk>~sy~)oNexfp-hm{v8T`J&ONDVdNm;Ey2o-AyKl1 zz`kke+^h3GAeNmKVeG67SA5W+!f?qsYPhNIol12FME}XGvEw31I|Eu2Hf|y=g3P`Gca1&CkRtl7xP?az!`7`oPnGH_q{$9 zoB?OR8E^)ifx$B1zIU*Eduz^sGvEw31I~c^UY`TbfHU9>I0MeWU>R`VJ6OKGHD|yX za0Z+KXTW{0&jDw^8E^)i0cT*a47l$dEZ^RmGvEw31I~am;J(-AfHU9>I0MdrGcZ^N z-1iQaZ*R>Ra0Z+KXTTY7-|KV08E^)i0cXG&7%T(sdk4$6x8@8u1I~am;0(C$^*P`S zI0MdrGvEvimI3#@gXP;>a|WCNXTTY72Hf}h9B>Al0cXG&a0Uj;fcxIT^6jlT1I~am z;0!ne?t6U>I0MdrGvEw31A}G2eeYoT_ST#MXTTY72Al!+y*>w=0cXG&a0Z-#!7|{! zcd&eWYtDc(;0!ne&Vc(~p99W-GvEw31J1x;8F1e_SiZeAXTTY72AlzBzvO;va0Z+KXTTX4ECcR)2g|p&<_tIk&VV!E47l(0Ip7R91I~am;0z3w0r$Ow z<=b0x2AlzBz!`7`-1qt%a0Z+KXTTY71_sN3``*Fw?X5Wj&VV!E3^)VsdwmW#1I~am z;0!negJr;d?_l}%)|>%nz!`7`oB{W}J_nouXTTY72AqMxGT^>EGOQXB>R+gPE>6b<$Q%$Fj?Yu=LWIKGNO~V*QzM#t?eZPt#$1Z?;(o ztFJy-rY4!B)!uNl-)g-%r`89qtl^J+EYoWIz8~je%$tXufvy=CM&J9bZ-wx`|Anyf z%3b%OmVyT#4B?hrY87o;=>r=P=O! zyz?@ho$6~@;vr{XgfTFTzIW}lLpbiZ5ayqMFq{wC_txoO>I>@BN!i+T)0Xf3(T}n) zY3~P#eQz)Nneu()ks<7|%V3yVX{BszzWL2odxLDh)oLr$DW_>4Qs3LDzLq5(at1~i z0|WBC3oR7F%rn>LmNUi=eW<+rlv9SV_~IeVG*fvQa^{^k1au)~zL))D(M3D6FMjTw zYpxLN3^Qw~`tMXzg|P6#A#h%o`hx13#kni4*xJ+g-8T!fN2W5v3?VGCNC=Zon&!0P zbIzIBR#j&5$wOFRfmR(0(I50PHnGe%UkFoA9j6QpqmO!wC*fFP-&?nzaecx~_%7=s z??>8kNSn;}DW)LQlGJata^4%NJHM&f>Dr20tHWu`McRkd_tw!Dx9?$RV8k-eq3>m_ zz4cZIzx?G;#yJ@0ViPeDe_QyfZ6k0%UwLIY;CGs7Lckul|MaIrc;}rErkgIaq_IQiu4TooSR^o18PpWm`Hgbg+b z;of^&eWBjL2M_fh)IaUC5FU9XD|hqFA(*{i`&w(9;q$-)Ls)LP5bnFL)h2e}pG|l- z$hrL+Z?xKd@x>5!-PKBj5c}S$ezt0~LUs72pO;+Hs#DZQav8(hZfn`e7=HWPA+R1y z=-V;Jgz)5(S-Iz*&&HSgzYRBR)n$BW7fIW%Grx`Vsc^*}SRZH09!+ zd*0iJ)c02D%X;j8odIWHJOd4UFZ;K>-!T^L`HgRo5cVa?;S(;nAUoH??~-=>@mZPl z-6qcy_(yy-`|lUN5W?U8p7~+Exk1>g(Sh&BzwW<(<~#rU-_~<7dp`UBzy1}%4m*Uf z^UfhW{d86@e&34^M;HF{OJ53Muf0M*4`pYWC2OzjFa4tK-FJt;eaG&*XLZ?2c@9R> z{+)exR)_v$JNE~W3d*5q~GkHJ$aR@wjKm2f37cLlc{IcDneEj34 zExX5}9&OO(5l4jZ%rn`X;amWTeJ}B{ev+3;9lq1|twnw0x$?EwLco{uPJPQQL%8(P ztdC>Hv|2s-=q!!3!TA30huM7)c5t3>&_P)~bN6$f%j%`=*O}jS))qEb%^U8C?Eb8b z)07MPp7tU2z4WR~UyCUZIRnl>(EcB^?*;8A;oSCo6s&z?C6 z$71J{d+wR-Z#;Lz!hJUT1kY9oXJdEVk%i;Gk3QNub4CYsZnz^9wZR@R<)rK$pWh~|g_??LfzvH58{LIW*Drw`!S*h$w|2U`Edh6`DoOcYA zvoUV!d+YKY`#vlx>LYWBbk2I?xx)Ji(y@Q7wX!hJ__5gBB`x(^q{Z#mo!`cJ)!L%n zvN=OK_rdL?h>Nrj?t9y@==sh-2?IUyy_^rTR?{=~9l2Y-VfPlflw_T0PAKAA3T=Dk*mzx*Zpj*I*l_Inh3>=|dI zEo9G%_zxuRA7_*3VULc*-UF8TUOP99ZHU9Me~a~67%tLt0?tFx!MP{Cn==B=m{Zwl zr>xxe+h;k{x%lFtrOXd-Zf)|(PiFOY+s#r!;I}E%k9{xi0ytx~{_vcA*Iik>Ti;uk z@7VWYZBZZX{d_t{EYA4>eW9+|-RgNOl=>}l;`ZyzZ|WH5Rcnjy){NJ(E8pH#Nf8%m zAKdp=G3a^DKm`LG`d-dwS(E90ZhKwod-?7$7JRRrMaI5~GPmBEz3+|76XrLAoI{&0 zh@Y{@$KP@mYTwN8jTL)%Dx49T@5S%XkHZd2OSQfSVqc+L4Ezd$?>+zgENp*y*NPvz z@WL!5?jO(2w8!&ZEWD2v=4z4rd`p@)XYPvUzytBt?O`r;R} zHV!x-Yu9`ieui&furd9A9Gq>FZay@w)3UyKsE+Tw;)=|M*nhI8at1+t+oQ3wSH73C zTlDdbnh9;%_jsI#BTap8UA|-AM|(wm{ME0rbiOM#;k5DVYa z@qEm4DDx5hd;@M0w_kUD*YUlkzng0j7ik~d_jbdu*B#LeH1NGwU6t)2ybr|RuphHd zK{vja|EI`a&vO|29PdJTzepN;8-m}Z9ooiUadym^;A4+v&rX!Vukt$@-tUecot;(V zC#h$?mvZ*|9-g=P{|fu}Oe> zQ%(ti_mS6Km&MUDoW7T58T{!dquK1DE_ZE#a@8i*9{*&72nKNnZ#c`W_ z6UO}EKH%5CrbPA|V{~!;(W%too3mtlhmZcEK9W9aRQ7u^;|II>O;!BO67%V#lZO6Y znde~pEf>Dld^UPGk51dKGrx;C$HsVV5${%txJdiJ`2ypWe!pMTw*3Z+cOEXzz=&s{ zf$ufWcsAsJ7WG5;jV$Y$`|2X$`&gcx_-3<8&@XcchNI_uCn82AlzBV7M4?-#c8)d%MnnGvEw310$6I_q`)^ zI0M7QfcxIzV&2s8F1e_Qb*qV?F={r&VVy8TnxDH9WLg*U1z`jAz+Zk{MoB?NGxEOHXJ6z0ryUu_!;0!neBb5R7y(4wx zz2DA&GvEw31H;9D``+PV-rIEsoB?OR85pSyxbGdQBk%oo2AlzBz!?}W2Hf`!7xUh( zGvEw31J1xmWx##!NFDk2_Iu&?CXL7x=VADVeL9&i*YKP19t)bxjS00c@9CT;43vQ; zzIP^BxQnn*7nb%yM;Fc4uDX{>o-JH1{J3_l;Vrm`n*X7&gfN+Kkg&B-C1)w~?WzJJ zB+q#m{()XrCcG>hF#M(rv7pJ^m{9vNq+>mfG}(W8Y{EpLu8HqGOg;Oba8(yQ?1hfF z`EM(7W`dpa0#hXER&JF%zv}W~W&Tv4zt>k4oPhGam)m=^uFL1)C)(I|wesI;Q)VP& zI}gJ@%B#x+*4vojH)V(gP3Fdg+Ls|6>v5!${b!uow*9#3dWOnP(_=e_TU`_1yN!%~ zLpZbx<9neaZl3$gQw7$nty?=EnnYVt>aUv2jS00c{T$^^_Mg{f$UDM;!aBlf0(*k$&OxIKLFy}$P6ZRFR&(pZDuh7Szg9P@DD*2Q$txkOXk5?+T1xEb}VDdH-Tj;%5~8nZQ^aCCn_elND8fc^=zgb+{+P?xpjD zraZ7u#Ql%M-%;Mq0^FO7R-mZQJ1G4E;j=;=IYfoxwg@wJaKD`}tzc3%_LHi>F@ov& zzQX$nvAt6&ewn~o%G^RMb?Q%{3g-)qU(wo(^)cs|i+>Z$Cg#mff{kIf_DEHjTwo5t zQ!3a<+wfr0WNy^y3;N5(y$-k3FB@C(VyP;}di#~Id|V+9cd~}6_McQWzL&8z8KVGW zf4n8=x_h41OW(U=u9I~+T+-C{mf1U4`=}^AZa3yuMMBxwk{3%=xg%B3 z+TdO+mQL1C)&3LfB>ZoI@+M;xz=qiOvj5*L%qYad{T%+LiA;>Xm%ZvP;c?;TQKvty z@P)#o0{iPj!f8U06zO1ZzD0OIcvjdz_@ltOctrTN&`!)pQm06&eD7YWK-*6Ww129A zO^E5eSz(^%{wuI%v3CW*1Rd-vj|nFUV+C|QEX*k&W$nzPyn71<11Y3B3vxczU^scea6iBFz(IGOQVmk=vy-l!ondf^8_X*^! zCLm>Fj~}(V+bO({aJfKT=C5({5rvJ%cs|ytPutjfkAPnAh_JGd%Ir!od*BZ~ejvOq zQ16QZ(v3Zth7dMWfO|gl9$|^PVi##gMQKguM%})Yje8w#F|llHBlE`xtI9Fg_7z?f z=zBaiova~M4Q2Zec~vq-nY4XEMWF?icct)xz>=338YOK>p-Rk0vX{BWz*r+rk|Q+P{Y zk6c7RrWV+f(8a!aqHtFpXKu7>XLXf%B`?2_t|rVCeEo;=gsF6e?{Na*CUSr(VdriY zmFH64Yr^vtW!h!IA?<7t6@;gkglD3(r4^=+_>kuW+w<7>;TRnc3DXKD_+Zk1WeFA6 zjq|dUzh9VBm_}gj-6vE@FLI(NQ^p&+|(ycw{VSS+&>?0tobK=_(sgR~~ zqo^-5Q+M2pxTSvGv8^h%uk_IOEm0UrH)|+TQyCniT-rXNq|_Wre_Hs1uz)a`aINsR zu#_;JaDjl1p9{#8!lS~Eg;|8v1mpi`g;y7r7X~ez`d;i?R-kXT{#MB2^uuIb1m4^@TEZ$35lN^w%BRs&ZRN8Jz5BO7m+sYba4w z8g1u$@iEx8b);eYJnaX08e{Trfw5$+u+Gg_DL7ts*I)GPmPLoG$FlDmKW= z99vO_th4fRGbiOHQTz@8KRbDpx2VFjZS#k$pXX_F5J}`eioYQg&8b_J{!&stjpFxd z?@$4sj;|&TZV<4uO6u}(s+6E}&JtzVNqZ($eIBbq==zuyuDCv|yqgR1*H;=k_Du5X zj6GGB7pVVDB9V}GWfU(9ruFAlLFyh~R-sKgeWX5P7)w)o(7`%mTxJx$Dxk}-p2F>< z?%YWAl=Wq-3etYNaZkB5{dLE-s+{drJDO5mmlCk6=^BbuRR-JnUiLujI6<)e`n){t zd|gdGsQ`X}XXM)jo>yXdzxZDI#5#XWuzCBu!dnPsVty;$e<^#hfQ~`=-o5ko*h_e> zN-?|AX3NW@zLz}~TVEGUR#1Sn)c4kD2OU!hJk$O+58torqQW%-dY2RMb=wQw$ahtl z`>ry-!!yc_0zPjUp-Rep@8?trn~zK?FRM7~Wb-H;TPVvO7>lj>vga)B#i<8xWkUOu zSuiia+Q%Nhfn7)>GA& zu_{P^+Kqe4t?92jwpHa=m)H>dUgM?78Zz7JT-*6x#s%AU6LwC(e2;}an6ekeiFx?_ z;(I@!{%|ikrNEr{jX9am&zo>u02*HS)p@sB1eC_q~3d+W4g zI?l*-9HQ%udE)3ijr%?Be3|b}ij_u>Q4V?+ zN=lG+Ws+7DP3t%Hy{x}Sg=YoscT;I<&x%q+-2)?q%#mN`>9J3aio6@_WNuicc6}ME zg4o3Ttdf-5sit28}lL51tIV^ucEb)b8fJaGnHU(VBu z?&I=eU0>k+7kN9^>N<4|jpqMmR#~0}cuwN};B|rhzmAmoUb~ND-!76LD-oVPQk0pe z-LC6n1^N3bjk?_5u;<3ogooksy&K7J`f*&`0fph7^gWXFI?-uW=sCge{o*?4Z0CE6 z>NAGaJt|gK5oSGZE<7T@Y4dRSE++=Rl?aNrTLAzDH zw}{)^w4Pkx92<6wv^7~nQT5uvcE0y?X~MSs5{=w@e?3o|O4pkN`mwmcJ@yO2{DO)3 z-c*m}58}$6x0TR|?;WM`^#6Kc65(qC{w_Y78mIVQ1@enzloDedR_2C0eN9Wyb>}?o zlqjtzxKdsYy+wQRL3#e&y2j7r_MCZ{(iawH6nM`1r!c$lK>?jSBYjvv@P)StoDIj% zT z_X_avia;MO5Mrt8drwp))~(-(?_FDMu-<6v-@?!7iD zP`s(q(EG3u&&eipqm#aj&D%BKTbEl^>q=M$Hui5QOy4(&G%{kd zPUUS~V*5XYFAMkQ>2UCOfwj4!P$We3nW zcI{Bc1V4M8Me-~5VjItwy_Wf3YVnYnv3_jl~tCp zIyI{E`#gv(%8iXs#U6*F$@#S=7E{x9O^XuA_hjFS)TeAs8@{$s-k1~q-Y}sQK zK-VgkkX%>K^C@H4J}I+)p0`Jm9!Dot9H&KHFL*>^Dz0B=iyH3FRnV&Ju0tT zb>Tjnd)xhlc5|tzJ;z8lbw>$Ba=sF86s-OE6>c&&I_b+;wSi5Hdneqgcw<>gHEA=( zi;7Q^YwUCl<<&a6?5xso8{5EMcW8l@HI#OLRF->l{44UTfR0y%Ed|yh`>^R{uH&!q z>vu=#cjW213{1{ZOIr!pd2Yj2nIn@4lMCE~%py#TGKGx(h%i%PJpN#dJdM7sDlDAG zn_SA;iFHk-2#AIILTu@WaE=w91$5Ge`QACZ(9ubIy)KL0Cf)F0I{ex_1M!%2udSH| zd``Ruo6e01p)buCs9$S1`Z$-&vO;va0Z+KXTTX4ECcR)2g|p&<_tIk&VV!E z47l(0Ip7R91I~am;0z3w0r$Ow<=b0x2AlzBz!`7`-1qt%a0Z+KXTTY71_sN3``*Fw z?X5Wj&VV!E3^)VsdwmW#1I~am;0!negJr;d?_l}%)|>%nz!`7`oB{W}J_nouXTTY7 z2AqMxGT^>^wRf!Ky+>@tm(8m z1I|EK4ES2=iaxLG3{3D0^wRgPq2B&a_|pX6Yd6ptn6Me}wKQRmk6Y&qbjv`uzIQGe z@D1U5;duey`?l~8;itk%LYYjXjFoF*d6ip8m|2)am{?>!8ESo8u*XLCQ+JO|9f-PB z)XK)fA_Hly_lh7_reOI@nT6j%>>tnlYZ3)$Xsv#b0*mk#TsbRBT%^7e8 zhKYfuzL#f=*9G${?XHIu^slM!jobQhf!+xzsh|F_pSmX`4%^u>s|s+=V)LR~-@8nt z%XHSgzS+*$g8W{rr2@5{b%E zb|Sr6OP#doWt{T<$wbcT?ZX{eL^*o!ALNtoLEX zCvR7AnDRfOcE6Bg`5xQQPu)E>wJ++p-+NMs=K|qweJ}oSv6{FrYM=Yd4TVmmS8J)0 zHodGf;0z2u15JGIH)Xc%ceg}cNPRC^e~QZfEhU$)8{f5bKdUFt?AezH3k#{NpoI8a*LLT{{I12y za}GLxuJEuZ{pdU`zHo+qoDlEhX5-UJzd~3_D3W%%sl(XpAlxmyEtqbu^#3wpNuf-> zrwr>C_fhzq^MogaSQlkZ6s8r5gm2PK5BxCpO(ebN`n{BJA9a#o_6)-J{xWKhdBuH5 z6Y14jYSOmXaR!`$;bWkQ?_E^p+CIm1_uTwJ`rdCQHmsG~5MS^E>AT_BZVU69CHBBr z@LB&7tW1&LjLVOW%HFTA-H#j-rKi6!npJssMfuiNdVN)8zAB_rrJJ%mNAvw!sxOVB ze{W$@Ar~_ZeQAO0U*Z z)AqfdGvEvi4+BknFP1(e#QP6>-xu?=Kj~UWnm+fgC*}VUto=6>PS3Mx|E#DCWwH5q zVSnLFf#*Kc!S(-y|KHAaz*TWP|GihK(h(HoDJqJBqEc-r7O=$LD*^%vhzMehB}QY3 z8a4LVV@=d(tg)iT8heWxgE81mFvi|~Gsx=Z{_mj_MgPqBnYXjMv$MP3yW8*W-JvK$ zA;ashg3Z@?(TCf}x7>FyFN8EJeq1fI!M{ye0oorFzezg)`W%$Ud>u_9h$t&(H3V~aJ%I_227x&^f zeaQQKz9+#}gXTu^;#$g0|J0TcAOzk&0y*X0iZImMpnMGy)5}nf>m%;#vJyG>;{OF* zT#w@OTzux+6coAh8K~IbaLCK0Dinx5^B`{~b8>bB#eo@r2AdQ0|uwc45&0Y&rMh zJx{RA#~JchK*cylG9P@djrTiT%gO3u>NKZ3e~>JvHlif!N4-U)$4zU2M<0tSzPdq~``=o8#8 zBj<2meD*5JR><(W1!9F@<9kl-^OI1HrXhZ;BDBGMyS_PKd)&Jt|E7WBeTOK9Vr#(Z zE+`)p?oAB|-q&FN+!r}o6gl^XiIsv~A8Z~2)2!Yh3(fM(d|%vqOql0Mu%$ejL2j?5 zJQ@atAp{74_k=)hxEF_r>wHVlb)d+#;`+<&dr%$?Dwo`F?+pkx1XLfV+Ce$*8&l+k ztOVcXa{sk5M{%End}bo6N6r+VU3ZYx8{$VR@DuS`26AA(O6G878#0-drCeZ zOmY95l^~~c|Fbejk$dqz%MjP#7v z*my6*$8*V4v*I3Dyq^)dcTZM9pzb~>?-%iYpYlGqcOy)Q&kxU2`8(&loNsoo zrM&E$Vi5v_z`I8vFS!@F71ySHpq8McK*jf!zd~N*6FK+#LcLtdL%|QAe9go3D5$J zQ5Mush==PhKGR0Q_4pAekB@$GF~pDDuQ(Vfpge}5bPo7vd85qKP;7A@k9)N@i6uCQ z{ffLPa__V^1p5EXz4)G6#Hhp@u*hw-$h|yPR@V~up_C9H1U?P~a>~6Lm|g`?@%^X1 z^#Z@871u2ByU@4gUPKc4ce^YW?sfD@3>5M{@p*CYY^tfApr?hHv6=Nfgt9Yw+F+3( zew4erLO~zU&7coJ`S`_DzUMX+`!k{ao1PPcD{~Y4vA?odm?^})FM-$q2|pHZ^DKem z_cm!>TuX1$5BU%RgusV`Kz6wo*NLN`{M*>3!c_EeFIL|M~rWDL3PwwuAs7@ct3VF8AUH zuYmHkdb}`XecX%di};=_Nbt`t_hM6#S8xotuPuTVg6P2J+rht_;fGWg{obpHo9oh8W^Uf2bV-x&$;j!&CoHB`D_o;9Ob=Zdt|V z^T)RM&O9p-zw`bZ9K~;lhi|-6YfRM+6T(l zI!w=iF3c>u4e3-R%m3u;KzP;moPY=id}8bb}B9M^a5KTGh#eXbls z`rugQ^E(J-!$G4!@%Z3z65}J!$|bM3w=o13`wEhGl*@c}xfhQ$AJ5)5^!>BoyY>yf z*{#m2Ybm?^l0P9p2;?sUOQHMLpshfcWn(D#tP;75uU}cE$ibm{V&{f?am|wN*=EZ6 zaDx0#pjnNL*PQ}C8(DjOS$x0E+hF>pJyury=m_oql*JQci}o7uliyop6&u_$zF$VZ z72_DP@xDOceFt&xf6wz#2y7lpUR+CgJR}N72oM7A7=fH}FAmEB6xaXDp!(MI=TMG& zyGo$?q$CuI?R@n)Wl>fE>YfNOus?jZDVInnNCg%9;`VhYPXaXseH)SAFL=G7(HBt9 z`%Q*3CK@t%7Sq}M=sTro|7a(wP-NJM_uH-53* zRmkwzmBk9M>j-t|^Dg(j;`e{DVZ6%j0E>@x@2gV%hWLD-gMOD>m*)0b%Jl#!03kpK zyjKL4LT@?Q_sR!}95ewG*RxBYoj`G4_aR9k7>qwCuAlgAvn!|y^g|GQM(hsS0u-?e z0Das00dRdQ!FQ~+L2>?pp!i&XBBh|G!jDKT_BK`+*=I>i2L4s?_!`7lMpCC2+*}ufDSfIwLl_}m)vU%2!?>- zb6pZbfDp(z0(33q96M@B2z(3(fDj-A3K{~$y#?)v(|id5LVyq;1o9gJ z;@}VI{$$#bU@J0g6*C#K zMpC{kXW%SpGHnIeCPKLtQ$ZXJ_#c<7g>t)08)_x{OuG))gU6Km-^#KIi%&>|88-#*%Ha`x!oVH@c1&_&JeH?}ZQHFU+6u(kHUS0* zwgcLcFYWRfJ}>P+w8LZL!odf}93LJVj`nV_zv!D30k*Oc*dzN!M~4ac7|{>L$yiXY`2Gpekx_}d zGGS$PUjF`my5NZ9n25wgkEWqvJwp@1bwRyi<3r>6Gxl=M*os*rwmJaW$IIWx$D@)b z!2e3JtbFB_wSmX>rN`Z78OKbrKlHlnb=%ivy%sR$cMq_c_`0my48}Hm&X~iw*JUN= zF=jD>vGqrU`Pk$65|x-3A5ft}a&od~bVQgZ0{Tkc=lM>0DM8mKJ~S*s=OI6dbKFoEmN1U;%_F);Bt*nPSFPbJi;jzg!yOkMofzFK zP8S_#=m_VqnJ@-4U!K=s*erU^Y`b_e%Okc-dHWDk*_bkA$2m|Vy*h4in zl$~PdSt?6oH(5Hn&z?wsEB7i-C{vZUl#f&zm5oZL@=#S(1*=-A!c@IgpQ^^GW~!E|)~j}_PN*)a z(pAsZ=4vN(Idy$sZLgpR8LheR+H|Ptbko(Q`%EvHJ~Fd5b2kez>u8o_Hr{NB*$%T` z&F-3;o0m2ZG;eR7Xg=P2nfWgBi{=jt*%b0D6jCU>(2zp23au}6ywG13#ulY4YFTu) z7+^8gVy(pyi(8h)mZdF&EJH0nwVY+S$?}ZlJu4e4FRLb2u~y@(mRs$&x@N7lE^S@c zI^24M^+M}i)|YLRHm){7HeoiO*(|czW0Pj9v30WzvF%|y*7keb!?x*m)^=6wTHE!r zn`O7vF4bOXU)nyzKE{56{Tlnz_KyoY7p_$}qVVX#D+?bl{J^28L!d*1!x)EE4yPO* zJL(+kI`(w@%5j6^Z$(r^+>10Tl3Zj?kv&Cj6}2r|wP;w;F-6xDJ?Erwa(8O(G|*|G z(;=sO&c&STJI6cEaNgy7tC)SUz+yd$O)0jm*mV~hml`h7E>m2#yWG&(>1yd>bklXa zb?L>OiU$`@Dn7sX;o?t9xRq#CVt9#FC4O@?arJZU?mERa#WlU8OUcG12bEk=@?0t7 zQhuePN=+-Zx735uZl&9l9#win>1%EdZXs?1+*Y_#@S)lBd0ABhTTU z8$AE2P_jb%3SU*&Tj6;{?}{-M7gap(W$o3#Yq-~DuYW4JR|=~%tJ2BJ=9TMJ9#VN@ z1fKx$axix2x}L-!p!;eog(x`R(&p``7j# z;=jfJQGicCV!)b!zpHvw?OAns)oaz=RPA#064gVi&##_ZLsz3~jd?XvYZk8= zT600oKLT9?!vhxwUaeKOR*zcW)%vS;#o7tA*VTRy6c98xXh$7oo%(gg)Hz(&x^Anw zGwWWgSE62Iy%qJ+>wDK9Sbs;bI=Er*SHWjOoI}DwmW8A@@NF=-!S04;4O=vv+3=4> z?u`-}ZEmb++@SH~#uq**^-0_(8=9~tAx$PX`K_s2)80*gYNlz{wArj?SDJe@AJlwr z3!4^QS}bpIzh&)~6Iz~cRi;%^tCZFjtvj|}*7`x4I&CJkNo`x9?clZt+ZAaS-EL!h zZTr^k7q`FHp>Bt-JEV2=?l`jJ=}vB)`gPjhxk%@j&Re@!bP4UUwyU~po36{dJ`HUW zx*+skw~%hLyQPN(g-r{)86FruCH#6s^@vFkSG!m5KB@b)$m)@kBd^88 zX7rsN!9C{oc+j&+&m}!y#I%W76>AjRHFi^+bzIN5-MxzS>euU7e7X3M@u|H7dVk$J zJ)vR3;yzNJPJK2e+QQA$p`4wJpWVa({7)p3~?PYVo2K1`a_ovGa1%%*e}B?4xcpq-_P27 zwt0l}h@m4ce_sFd6(b9cOc;4)RMk;)zfgS<{l($Yl}FDQ{d`RLm;+-gj-5L8>A0|Q z2fpCC8^r)JfjwQ9E0?9sCyd=vi7@i~EWR?c;vJ9h5l zdC~LE&aXdz{esd9rY_Vh?7Q&FqSlM{e(U$`vc*Lfk6rw1N!*gurOlV_Ugo=O*>b1l z6ILizB(1pqUB~Z^eqZPNjVnD?&R=D}YV2yZI%)NdAG-cif3r57@uyfZu@)2Yn8% zKjeLA-7nt1tUK&;c>NLIBO8zUAKiSc+OciNYaZWuqRxq*PllX4cQ$Gk%dSql>NxRG`<{^pZgBX3*Xp8Z#uzkd8X@b5$E zZPU~4B;0xN&$zpecbEKI<=>QhP48X2AAA4FgE0>sA1;05_h|3qHjl49Nq(w*I{jJM QXPcile173Y?28xw0}y|4@Bjb+ literal 0 HcmV?d00001 diff --git a/MacawTests/png/text-intro-11-t-manual.png b/MacawTests/png/text-intro-11-t-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..e64e1f3e619d89b31c5b8d2eb96033cf5db870b1 GIT binary patch literal 716166 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 + + + + + + + + + + + +

+ Test left-to-right aspect of internationalized text. +

+

+ Various text strings in various languages appear. The main + purpose of the test is to verify that the correct characters + appear and that they appear in the correct order and orientation, even + though the first choice font does not have the right glyphs. +

+
+ +

+ Run the test. No interaction required. +

+
+ +

+ Correct rendering requires that each character is rendered. It may be rendered + with the 'missing glyph' if no + glyphs are found in the fonts listed in the content, or in any fallback font + that is available. The first choice font + is a special SVG font that only contains the 'missing glyph'. Missing glyph from + other fonts may conformantly be used, however. +

+

+ The test is passed if the lines of text appear as follows: +

+
    +
  • Polish: Mogę jeść szkło, i mi ...
  • +
  • Russian: Я могу есть стекло, ...
  • +
  • Greek: Μπορώ να φάω ...
  • +
  • Hebrew: אני יכול לאכול זכוכית ...
  • +
  • Yiddish: איך קען עסן גלאָז און ...
  • +
  • Chinese:我能吞下玻璃而不伤身体。
  • +
  • Japanese: 私はガラスを食べます。
  • +
+
+
+ $RCSfile: text-intro-01-t.svg,v $ + + + + + + + + + + + + + + + Test left-to-right text. + + Polish: Mogę jeść szkło, i mi ... + Russian: Я могу есть стекло, ... + Greek: Μπορώ να φάω ... + Hebrew: אני יכול לאכול זכוכית ... + Yiddish: איך קען עסן גלאָז און ... + + + Chinese:我能吞下玻璃而不伤身体。 + + + Japanese: 私はガラスを食べます。 + + + + $Revision: 1.9 $ + + + + + diff --git a/MacawTests/w3cSVGTests/text-intro-02-b-manual.reference b/MacawTests/w3cSVGTests/text-intro-02-b-manual.reference new file mode 100644 index 00000000..d76f062c --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-02-b-manual.reference @@ -0,0 +1,183 @@ +{ + "contents" : [ + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 40", + "text" : "unicode-bidi=\"bidi-override\" direction=\"ltr\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "lro", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 80", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 140", + "text" : "unicode-bidi=\"bidi-override\" direction=\"rtl\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "rlo", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 180", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 240", + "text" : "unicode-bidi=\"normal\" direction=\"rtl\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "rle", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 280", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + } + ], + "node" : "Group" + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 32, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 340", + "text" : "$Revision: 1.10 $" + } + ], + "node" : "Group" + }, + { + "form" : { + "h" : 358, + "type" : "Rect", + "w" : 478, + "x" : 1, + "y" : 1 + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 1 + } + } + ], + "layout" : { + "scalingMode" : "meet", + "svgSize" : { + "height" : "100.0%", + "width" : "100.0%" + }, + "viewBox" : { + "h" : 360, + "type" : "Rect", + "w" : 480, + "x" : 0, + "y" : 0 + }, + "xAligningMode" : "mid", + "yAligningMode" : "mid" + }, + "node" : "Canvas" +} \ No newline at end of file diff --git a/MacawTests/w3cSVGTests/text-intro-02-b-manual.svg b/MacawTests/w3cSVGTests/text-intro-02-b-manual.svg new file mode 100644 index 00000000..4e2946d5 --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-02-b-manual.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + +

+ Test various aspects of internationalized text, including + left-to-right, right-to-left, and the + following properties: 'writing-mode', + 'direction' and 'unicode-bidi'. +

+

+ Various text strings in various languages appear. Ttest of bidi algorithms and support of 'unicode-bidi' and + 'direction' properties. +

+ + +

+ This test requires installation of a system font that supports + the various international characters used in this test case. A + suitable font should be used by the SVG renderer if none of the + specified font families are available (or if they are available but do + not have the required glyphs). +

+

+ Run the test. No interaction required. +

+
+ +

+ The test is passed if the correct characters + appear and they appear in the correct order and orientation. + Ensure that the three lines with Hebrew are ordered + correctly, as shown in the reference image. +

+
+ + $RCSfile: text-intro-02-b.svg,v $ + + + + + + + + + unicode-bidi="bidi-override" direction="ltr". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + unicode-bidi="bidi-override" direction="rtl". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + unicode-bidi="normal" direction="rtl". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + + + $Revision: 1.10 $ + + + + + diff --git a/MacawTests/w3cSVGTests/text-intro-04-t-manual.reference b/MacawTests/w3cSVGTests/text-intro-04-t-manual.reference new file mode 100644 index 00000000..5d49f084 --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-04-t-manual.reference @@ -0,0 +1,202 @@ +{ + "contents" : [ + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "Arial", + "size" : 16, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 20", + "text" : "Test horizontal text." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 60", + "text" : "Polish: Mogę jeść szkło, i mi nie szkodzi." + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 90", + "text" : "Russian: Я могу есть стекло, это мне не вредит." + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 15, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 120", + "text" : "Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα." + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 150", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 180", + "text" : "Yiddish: איך קען עסן גלאָז און עס טוט מיר נישט װײ." + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 210", + "text" : "Chinese:我能吞下玻璃而不伤身体。" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'", + "size" : 15, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 240", + "text" : "Japanese: 私はガラスを食べられます。それは私を傷つけません。" + } + ], + "node" : "Group" + } + ], + "node" : "Group" + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 32, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 340", + "text" : "$Revision: 1.7 $" + } + ], + "node" : "Group" + }, + { + "form" : { + "h" : 358, + "type" : "Rect", + "w" : 478, + "x" : 1, + "y" : 1 + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 1 + } + } + ], + "layout" : { + "scalingMode" : "meet", + "svgSize" : { + "height" : "100.0%", + "width" : "100.0%" + }, + "viewBox" : { + "h" : 360, + "type" : "Rect", + "w" : 480, + "x" : 0, + "y" : 0 + }, + "xAligningMode" : "mid", + "yAligningMode" : "mid" + }, + "node" : "Canvas" +} \ No newline at end of file diff --git a/MacawTests/w3cSVGTests/text-intro-04-t-manual.svg b/MacawTests/w3cSVGTests/text-intro-04-t-manual.svg new file mode 100644 index 00000000..565808ba --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-04-t-manual.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + +

+ Test basic aspect of internationalized text. +

+

+ Various text strings in various languages appear. The main + purpose of the test is to verify that the correct characters + appear and that they appear in the correct order and orientation. +

+

+ A future version of this test + might include all necessary glyphs as an SVG font. +

+ + +

+ Run the test. No interaction required. +

+
+ +

+ Correct rendering requires that each character is rendered. It is not required that a given character + be rendered with any particular font; just that it is rendered. + It may be rendered with the 'missing glyph' if no + glyphs are found in the fonts listed in the content, or in any fallback font that is available. +

+
+ + $RCSfile: text-intro-04-t.svg,v $ + + + + + + + + + Test horizontal text. + + Polish: Mogę jeść szkło, i mi nie szkodzi. + Russian: Я могу есть стекло, это мне не вредит. + Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + Yiddish: איך קען עסן גלאָז און עס טוט מיר נישט װײ. + Chinese:我能吞下玻璃而不伤身体。 + Japanese: 私はガラスを食べられます。それは私を傷つけません。 + + + + $Revision: 1.7 $ + + + + + diff --git a/MacawTests/w3cSVGTests/text-intro-09-b-manual.reference b/MacawTests/w3cSVGTests/text-intro-09-b-manual.reference new file mode 100644 index 00000000..4d50f2cf --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-09-b-manual.reference @@ -0,0 +1,183 @@ +{ + "contents" : [ + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 40", + "text" : "unicode-bidi=\"bidi-override\" direction=\"ltr\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "lro", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGHebrew, 'Ezra SIL SR', serif", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 80", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 140", + "text" : "unicode-bidi=\"bidi-override\" direction=\"rtl\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "rlo", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGHebrew, 'Ezra SIL SR', serif", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 180", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 255 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 17, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 240", + "text" : "unicode-bidi=\"normal\" direction=\"rtl\"." + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "direction" : "rle", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGHebrew, 'Ezra SIL SR', serif", + "size" : 18, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 280", + "text" : "Text \"אני יכול לאכול זכוכית וזה לא מזיק לי\" is in Hebrew" + } + ], + "node" : "Group" + } + ], + "node" : "Group" + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 32, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 340", + "text" : "$Revision: 1.7 $" + } + ], + "node" : "Group" + }, + { + "form" : { + "h" : 358, + "type" : "Rect", + "w" : 478, + "x" : 1, + "y" : 1 + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 1 + } + } + ], + "layout" : { + "scalingMode" : "meet", + "svgSize" : { + "height" : "100.0%", + "width" : "100.0%" + }, + "viewBox" : { + "h" : 360, + "type" : "Rect", + "w" : 480, + "x" : 0, + "y" : 0 + }, + "xAligningMode" : "mid", + "yAligningMode" : "mid" + }, + "node" : "Canvas" +} \ No newline at end of file diff --git a/MacawTests/w3cSVGTests/text-intro-09-b-manual.svg b/MacawTests/w3cSVGTests/text-intro-09-b-manual.svg new file mode 100644 index 00000000..1a39e383 --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-09-b-manual.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + +

+ Test various aspects of internationalized text, including + left-to-right, right-to-left, and the + following properties: 'writing-mode', + 'direction' and 'unicode-bidi'. +

+

+ Various text strings in various languages appear. Test of bidi algorithms and support of 'unicode-bidi' and + 'direction' properties. Uses Webfonts. +

+

+ This test uses Webfonts; both SVG and WOFF fonts are provided. +

+ + +

+ Run the test. No interaction required. Make sure scripting is enabled. +

+
+ +

+ The test is passed if the correct characters + appear and they appear in the correct order and orientation. + Ensure that the three lines with Hebrew are ordered + correctly, as shown in the reference image. +

+
+ + $RCSfile: text-intro-09-b.svg,v $ + + + + + + + + + + + + + + + unicode-bidi="bidi-override" direction="ltr". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + unicode-bidi="bidi-override" direction="rtl". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + unicode-bidi="normal" direction="rtl". + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + + + $Revision: 1.7 $ + + + + + diff --git a/MacawTests/w3cSVGTests/text-intro-11-t-manual.reference b/MacawTests/w3cSVGTests/text-intro-11-t-manual.reference new file mode 100644 index 00000000..c219ccec --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-11-t-manual.reference @@ -0,0 +1,419 @@ +{ + "contents" : [ + { + "contents" : [ + { + "contents" : [ + { + "fill" : { + "type" : "Color", + "val" : 0 + }, + "form" : { + "segments" : [ + { + "data" : [ + 120, + 10 + ], + "type" : "M" + }, + { + "data" : [ + 120, + 280 + ], + "type" : "L" + } + ], + "type" : "Path" + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 12303291 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "fill" : { + "type" : "Color", + "val" : 0 + }, + "form" : { + "segments" : [ + { + "data" : [ + 240, + 10 + ], + "type" : "M" + }, + { + "data" : [ + 240, + 280 + ], + "type" : "L" + } + ], + "type" : "Path" + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 12303291 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "fill" : { + "type" : "Color", + "val" : 0 + }, + "form" : { + "segments" : [ + { + "data" : [ + 360, + 10 + ], + "type" : "M" + }, + { + "data" : [ + 360, + 280 + ], + "type" : "L" + } + ], + "type" : "Path" + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 12303291 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "fill" : { + "type" : "Color", + "val" : 0 + }, + "form" : { + "segments" : [ + { + "data" : [ + 10, + 120 + ], + "type" : "M" + }, + { + "data" : [ + 470, + 120 + ], + "type" : "L" + } + ], + "type" : "Path" + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 12303291 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "fill" : { + "type" : "Color", + "val" : 0 + }, + "form" : { + "segments" : [ + { + "data" : [ + 10, + 240 + ], + "type" : "M" + }, + { + "data" : [ + 470, + 240 + ], + "type" : "L" + } + ], + "type" : "Path" + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 12303291 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "align" : "mid", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 7798784 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 240, 120", + "text" : "آلات" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 360, 120", + "text" : "آلات" + }, + { + "align" : "max", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 153 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 120, 120", + "text" : "آلات" + }, + { + "align" : "mid", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 7798784 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 240, 240", + "text" : "ثلاثة" + }, + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 360, 240", + "text" : "ثلاثة" + }, + { + "align" : "max", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 153 + }, + "font" : { + "name" : "Andalus,Diwani Letter,serif", + "size" : 60, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 120, 240", + "text" : "ثلاثة" + } + ], + "node" : "Group" + } + ], + "node" : "Group" + }, + { + "contents" : [ + { + "align" : "min", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 0 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 32, + "weight" : "normal" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 10, 340", + "text" : "$Revision: 1.2 $" + } + ], + "node" : "Group" + }, + { + "form" : { + "h" : 358, + "type" : "Rect", + "w" : 478, + "x" : 1, + "y" : 1 + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "contents" : [ + { + "fill" : { + "type" : "Color", + "val" : 16711680 + }, + "form" : { + "h" : 20, + "type" : "Rect", + "w" : 478, + "x" : 1, + "y" : 1 + }, + "node" : "Shape", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 1 + } + }, + { + "align" : "mid", + "baseline" : "bottom", + "fill" : { + "type" : "Color", + "val" : 16777215 + }, + "font" : { + "name" : "SVGFreeSansASCII,sans-serif", + "size" : 20, + "weight" : "bold" + }, + "node" : "Text", + "place" : "1, 0, 0, 1, 240, 18", + "stroke" : { + "cap" : "butt", + "dashes" : [ + + ], + "fill" : { + "type" : "Color", + "val" : 0 + }, + "join" : "miter", + "width" : 0.5 + }, + "text" : "DRAFT" + } + ], + "node" : "Group" + } + ], + "layout" : { + "scalingMode" : "meet", + "svgSize" : { + "height" : "100.0%", + "width" : "100.0%" + }, + "viewBox" : { + "h" : 360, + "type" : "Rect", + "w" : 480, + "x" : 0, + "y" : 0 + }, + "xAligningMode" : "mid", + "yAligningMode" : "mid" + }, + "node" : "Canvas" +} \ No newline at end of file diff --git a/MacawTests/w3cSVGTests/text-intro-11-t-manual.svg b/MacawTests/w3cSVGTests/text-intro-11-t-manual.svg new file mode 100644 index 00000000..d754b7e3 --- /dev/null +++ b/MacawTests/w3cSVGTests/text-intro-11-t-manual.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + +

+ This test ensures that mandatory ligatures in Arabic are displayed. + Three values for text-anchor are also tested; + middle, + start and + end. + This test uses platform fonts for rendering. +

+

+ There are two subtests. The first + requires an isolate lam-alef ligature and the second requires + a right-joining lam-alef ligature. +

+

+ The first subtest has the word for 'tools', آلات + 0622: آ ARABIC LETTER ALEF WITH MADDA ABOVE + 0644: ل ARABIC LETTER LAM + 0627: ا ARABIC LETTER ALEF + 062A: ت ARABIC LETTER TEH +

+

+ The second subtest has the word for 'three', ثلاثة + 062B: ث ARABIC LETTER THEH + 0644: ل ARABIC LETTER LAM + 0627: ا ARABIC LETTER ALEF + 062B: ث ARABIC LETTER THEH + 0629: ة ARABIC LETTER TEH MARBUTA +

+ + +

+ Run the test. No interaction required. +

+
+ +

+ The test is passed if the blue glyphs آ and ث touch the first vertical + line. The second vertical line falls in middle of the brown glyphs + inbetween آلا and ت and inbetween ثلا and ثة. The black glyphs ت and ة + touch the last vertical line. +

+
+ + $RCSfile: text-intro-11-t.svg,v $ + + + + + + + + + + + + + + + آلات + آلات + آلات + ثلاثة + ثلاثة + ثلاثة + + + + $Revision: 1.2 $ + + + + + + DRAFT + + From 1cf1c7c02fe24dacdf4eda4af656a7592cc3afb0 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Fri, 14 Jun 2019 17:25:35 +0700 Subject: [PATCH 6/7] #391 update w3c svg test suite --- MacawTests/w3c-test-suite.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/MacawTests/w3c-test-suite.md b/MacawTests/w3c-test-suite.md index 55f40ea9..c97329a5 100644 --- a/MacawTests/w3c-test-suite.md +++ b/MacawTests/w3c-test-suite.md @@ -10,12 +10,12 @@ There are [521 SVG tests](https://github.com/web-platform-tests/wpt/tree/master/ * [switch/object](https://www.w3.org/TR/SVG11/backward.html) (7) The rest 306 tests can be split into following categories: -* 38.6% passed (118) +* 40.2% passed (123) * 14.1% filters (43) [#390](https://github.com/exyte/Macaw/issues/390) * 8.5% images (26) [wpt issue](https://github.com/web-platform-tests/wpt/issues/11178) * 2.6% markers (8) [#392](https://github.com/exyte/Macaw/issues/392) -* 20.6% text (63) [#391](https://github.com/exyte/Macaw/issues/391) -* 15.7% blocked by issues (48) +* 19.0% text (58) [#391](https://github.com/exyte/Macaw/issues/391) +* 14.1% blocked by issues (43) Status of each test: @@ -289,23 +289,23 @@ Status of each test: |[text-bidi-01-t-manual](w3cSVGTests/text-bidi-01-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-deco-01-b-manual](w3cSVGTests/text-deco-01-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-01-t-manual](w3cSVGTests/text-fonts-01-t-manual.svg) | ✅ | -|[text-fonts-02-t-manual](w3cSVGTests/text-fonts-02-t-manual.svg) | ✅ | +|[text-fonts-02-t-manual](w3cSVGTests/text-fonts-02-t-manual.svg) | ✅ | |[text-fonts-03-t-manual](w3cSVGTests/text-fonts-03-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-04-t-manual](w3cSVGTests/text-fonts-04-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-05-f-manual](w3cSVGTests/text-fonts-05-f-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-202-t-manual](w3cSVGTests/text-fonts-202-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-203-t-manual](w3cSVGTests/text-fonts-203-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-fonts-204-t-manual](w3cSVGTests/text-fonts-204-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | -|[text-intro-01-t-manual](w3cSVGTests/text-intro-01-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | -|[text-intro-02-b-manual](w3cSVGTests/text-intro-02-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | +|[text-intro-01-t-manual](w3cSVGTests/text-intro-01-t-manual.svg) | ✅ | +|[text-intro-02-b-manual](w3cSVGTests/text-intro-02-b-manual.svg) | ✅ | |[text-intro-03-b-manual](w3cSVGTests/text-intro-03-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | -|[text-intro-04-t-manual](w3cSVGTests/text-intro-04-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | +|[text-intro-04-t-manual](w3cSVGTests/text-intro-04-t-manual.svg) | ✅ | |[text-intro-05-t-manual](w3cSVGTests/text-intro-05-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-intro-06-t-manual](w3cSVGTests/text-intro-06-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-intro-07-t-manual](w3cSVGTests/text-intro-07-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | -|[text-intro-09-b-manual](w3cSVGTests/text-intro-09-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | +|[text-intro-09-b-manual](w3cSVGTests/text-intro-09-b-manual.svg) | ✅ | |[text-intro-10-f-manual](w3cSVGTests/text-intro-10-f-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | -|[text-intro-11-t-manual](w3cSVGTests/text-intro-11-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | +|[text-intro-11-t-manual](w3cSVGTests/text-intro-11-t-manual.svg) | ✅ | |[text-intro-12-t-manual](w3cSVGTests/text-intro-12-t-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-path-01-b-manual](w3cSVGTests/text-path-01-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | |[text-path-02-b-manual](w3cSVGTests/text-path-02-b-manual.svg) | [#391](https://github.com/exyte/Macaw/issues/391) | From 940d60cf14058e217f530eee495ccdf5e6a817f1 Mon Sep 17 00:00:00 2001 From: Daniil Manin Date: Fri, 14 Jun 2019 17:43:17 +0700 Subject: [PATCH 7/7] fix some insets --- Source/model/draw/Align.swift | 6 +++--- Source/model/scene/Text.swift | 6 +++--- Source/render/TextRenderer.swift | 6 +++--- Source/svg/SVGParser.swift | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Source/model/draw/Align.swift b/Source/model/draw/Align.swift index 662eaf58..5798cf79 100644 --- a/Source/model/draw/Align.swift +++ b/Source/model/draw/Align.swift @@ -11,7 +11,7 @@ open class Align { open func align(size: Double) -> Double { return align(outer: size, inner: 0) } - + open func reverse() -> Align { return .max } @@ -22,7 +22,7 @@ private class MidAlign: Align { override func align(outer: Double, inner: Double) -> Double { return (outer - inner) / 2 } - + override func reverse() -> Align { return .mid } @@ -33,7 +33,7 @@ private class MaxAlign: Align { override func align(outer: Double, inner: Double) -> Double { return outer - inner } - + override func reverse() -> Align { return .min } diff --git a/Source/model/scene/Text.swift b/Source/model/scene/Text.swift index 7f2d3ac0..1063878b 100644 --- a/Source/model/scene/Text.swift +++ b/Source/model/scene/Text.swift @@ -47,7 +47,7 @@ open class Text: Node { get { return kerningVar.value } set(val) { kerningVar.value = val } } - + public let directionVar: Variable open var direction: Direction { get { return directionVar.value } @@ -62,13 +62,13 @@ open class Text: Node { self.baselineVar = Variable(baseline) self.kerningVar = Variable(kerning) self.directionVar = Variable(direction) - + if direction == .rle || direction == .rlo { self.alignVar = Variable(align.reverse()) } else { self.alignVar = Variable(align) } - + super.init( place: place, opaque: opaque, diff --git a/Source/render/TextRenderer.swift b/Source/render/TextRenderer.swift index 583780c5..db0222c4 100644 --- a/Source/render/TextRenderer.swift +++ b/Source/render/TextRenderer.swift @@ -69,9 +69,9 @@ class TextRenderer: NodeRenderer { if text.kerning != 0.0 { attributes[NSAttributedString.Key.kern] = NSNumber(value: text.kerning) } - + attributes[NSAttributedString.Key.writingDirection] = text.direction.attributedStringValue - + if attributes.count > 1 { MGraphicsPushContext(context) message.draw(in: getBounds(font), withAttributes: attributes) @@ -143,7 +143,7 @@ class TextRenderer: NodeRenderer { if let stroke = text.stroke { textAttributes[NSAttributedString.Key.strokeWidth] = NSNumber(value: stroke.width) } - + let textSize = NSString(string: text.text).size(withAttributes: textAttributes) return CGRect(x: calculateAlignmentOffset(text, font: font), y: calculateBaselineOffset(text, font: font), diff --git a/Source/svg/SVGParser.swift b/Source/svg/SVGParser.swift index dadb0809..f22bbb43 100644 --- a/Source/svg/SVGParser.swift +++ b/Source/svg/SVGParser.swift @@ -1021,7 +1021,7 @@ open class SVGParser { size: getFontSize(attributes) ?? fontSize ?? 12, weight: getFontWeight(attributes) ?? fontWeight ?? "normal") } - + private func getDirection(_ element: SWXMLHash.XMLElement) -> Direction { let direction = element.allAttributes["direction"]?.text let unicodebidi = element.allAttributes["unicode-bidi"]?.text