Support box position in Document Data (#2139)
Fixes #2131
diff --git a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
index 4ce09ce..cb73ebb 100644
--- a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
+++ b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TextKeyframeAnimation.java
@@ -1,7 +1,5 @@
package com.airbnb.lottie.animation.keyframe;
-import androidx.annotation.Nullable;
-
import com.airbnb.lottie.model.DocumentData;
import com.airbnb.lottie.value.Keyframe;
import com.airbnb.lottie.value.LottieFrameInfo;
@@ -39,7 +37,7 @@
DocumentData baseDocumentData = frameInfo.getInterpolatedKeyframeProgress() == 1f ? frameInfo.getEndValue() : frameInfo.getStartValue();
documentData.set(text, baseDocumentData.fontName, baseDocumentData.size, baseDocumentData.justification, baseDocumentData.tracking,
baseDocumentData.lineHeight, baseDocumentData.baselineShift, baseDocumentData.color, baseDocumentData.strokeColor,
- baseDocumentData.strokeWidth, baseDocumentData.strokeOverFill);
+ baseDocumentData.strokeWidth, baseDocumentData.strokeOverFill, baseDocumentData.boxPosition);
return documentData;
}
});
diff --git a/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java b/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
index e948d07..718f851 100644
--- a/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
+++ b/lottie/src/main/java/com/airbnb/lottie/model/DocumentData.java
@@ -2,7 +2,10 @@
import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+import android.graphics.PointF;
+
import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
@RestrictTo(LIBRARY)
@@ -25,12 +28,13 @@
@ColorInt public int strokeColor;
public float strokeWidth;
public boolean strokeOverFill;
+ @Nullable public PointF boxPosition;
public DocumentData(String text, String fontName, float size, Justification justification, int tracking,
float lineHeight, float baselineShift, @ColorInt int color, @ColorInt int strokeColor,
- float strokeWidth, boolean strokeOverFill) {
- set(text, fontName, size, justification, tracking, lineHeight, baselineShift, color, strokeColor, strokeWidth, strokeOverFill);
+ float strokeWidth, boolean strokeOverFill, PointF boxPosition) {
+ set(text, fontName, size, justification, tracking, lineHeight, baselineShift, color, strokeColor, strokeWidth, strokeOverFill, boxPosition);
}
public DocumentData() {
@@ -38,7 +42,7 @@
public void set(String text, String fontName, float size, Justification justification, int tracking,
float lineHeight, float baselineShift, @ColorInt int color, @ColorInt int strokeColor,
- float strokeWidth, boolean strokeOverFill) {
+ float strokeWidth, boolean strokeOverFill, PointF positionOffset) {
this.text = text;
this.fontName = fontName;
this.size = size;
@@ -50,6 +54,7 @@
this.strokeColor = strokeColor;
this.strokeWidth = strokeWidth;
this.strokeOverFill = strokeOverFill;
+ this.boxPosition = positionOffset;
}
@Override public int hashCode() {
diff --git a/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java b/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
index 0de25a3..42f2395 100644
--- a/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
+++ b/lottie/src/main/java/com/airbnb/lottie/model/layer/TextLayer.java
@@ -20,7 +20,6 @@
import com.airbnb.lottie.animation.keyframe.TextKeyframeAnimation;
import com.airbnb.lottie.animation.keyframe.ValueCallbackKeyframeAnimation;
import com.airbnb.lottie.model.DocumentData;
-import com.airbnb.lottie.model.DocumentData.Justification;
import com.airbnb.lottie.model.Font;
import com.airbnb.lottie.model.FontCharacter;
import com.airbnb.lottie.model.animatable.AnimatableTextProperties;
@@ -193,12 +192,15 @@
canvas.save();
// Apply horizontal justification
- applyJustification(documentData.justification, canvas, textLineWidth);
+ applyJustification(documentData, canvas, textLineWidth);
// Center text vertically
float multilineTranslateY = (textLineCount - 1) * lineHeight / 2;
float translateY = l * lineHeight - multilineTranslateY;
canvas.translate(0, translateY);
+ if (documentData.boxPosition != null) {
+ canvas.translate(documentData.boxPosition.x, documentData.boxPosition.y);
+ }
// Draw each line
drawGlyphTextLine(textLine, documentData, parentMatrix, font, canvas, parentScale, fontScale);
@@ -277,7 +279,7 @@
canvas.save();
// Apply horizontal justification
- applyJustification(documentData.justification, canvas, textLineWidth);
+ applyJustification(documentData, canvas, textLineWidth);
// Center text vertically
float multilineTranslateY = (textLineCount - 1) * lineHeight / 2;
@@ -341,16 +343,22 @@
return textLineWidth;
}
- private void applyJustification(Justification justification, Canvas canvas, float textLineWidth) {
- switch (justification) {
+ private void applyJustification(DocumentData documentData, Canvas canvas, float textLineWidth) {
+ float lineStart = 0f;
+ float lineTop = 0f;
+ if (documentData.boxPosition != null) {
+ lineStart = documentData.boxPosition.x;
+ lineTop = documentData.boxPosition.y;
+ }
+ switch (documentData.justification) {
case LEFT_ALIGN:
- // Do nothing. Default is left aligned.
+ canvas.translate(-lineStart, -lineTop);
break;
case RIGHT_ALIGN:
- canvas.translate(-textLineWidth, 0);
+ canvas.translate(-lineStart - textLineWidth, -lineTop);
break;
case CENTER:
- canvas.translate(-textLineWidth / 2, 0);
+ canvas.translate(-lineStart - textLineWidth / 2, -lineTop);
break;
}
}
diff --git a/lottie/src/main/java/com/airbnb/lottie/parser/AnimatableValueParser.java b/lottie/src/main/java/com/airbnb/lottie/parser/AnimatableValueParser.java
index 99ff81d..f4b9eaa 100644
--- a/lottie/src/main/java/com/airbnb/lottie/parser/AnimatableValueParser.java
+++ b/lottie/src/main/java/com/airbnb/lottie/parser/AnimatableValueParser.java
@@ -55,7 +55,7 @@
static AnimatableTextFrame parseDocumentData(
JsonReader reader, LottieComposition composition) throws IOException {
- return new AnimatableTextFrame(parse(reader, composition, DocumentDataParser.INSTANCE));
+ return new AnimatableTextFrame(parse(reader, Utils.dpScale(), composition, DocumentDataParser.INSTANCE));
}
static AnimatableColorValue parseColor(
diff --git a/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java b/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
index dfbffbd..bce4aef 100644
--- a/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
+++ b/lottie/src/main/java/com/airbnb/lottie/parser/DocumentDataParser.java
@@ -1,6 +1,8 @@
package com.airbnb.lottie.parser;
+import android.graphics.PointF;
+
import com.airbnb.lottie.model.DocumentData;
import com.airbnb.lottie.model.DocumentData.Justification;
import com.airbnb.lottie.parser.moshi.JsonReader;
@@ -20,7 +22,8 @@
"fc", // 7
"sc", // 8
"sw", // 9
- "of" // 10
+ "of", // 10
+ "ps" // 11
);
private DocumentDataParser() {
@@ -39,6 +42,7 @@
int strokeColor = 0;
float strokeWidth = 0f;
boolean strokeOverFill = true;
+ PointF boxPosition = null;
reader.beginObject();
while (reader.hasNext()) {
@@ -81,6 +85,11 @@
case 10:
strokeOverFill = reader.nextBoolean();
break;
+ case 11:
+ reader.beginArray();
+ boxPosition = new PointF((float) reader.nextDouble() * scale, (float) reader.nextDouble() * scale);
+ reader.endArray();
+ break;
default:
reader.skipName();
reader.skipValue();
@@ -89,6 +98,6 @@
reader.endObject();
return new DocumentData(text, fontName, size, justification, tracking, lineHeight,
- baselineShift, fillColor, strokeColor, strokeWidth, strokeOverFill);
+ baselineShift, fillColor, strokeColor, strokeWidth, strokeOverFill, boxPosition);
}
}
diff --git a/snapshot-tests/src/main/assets/Tests/TextWithPsCenter.json b/snapshot-tests/src/main/assets/Tests/TextWithPsCenter.json
new file mode 100644
index 0000000..284d5ba
--- /dev/null
+++ b/snapshot-tests/src/main/assets/Tests/TextWithPsCenter.json
@@ -0,0 +1,2039 @@
+{
+ "v": "5.9.2",
+ "fr": 24,
+ "ip": 0,
+ "op": 41,
+ "w": 1080,
+ "h": 1080,
+ "nm": "CenterAlignedNoScale",
+ "ddd": 0,
+ "assets": [],
+ "fonts": {
+ "list": [
+ {
+ "fName": "MaisonNeue-Book",
+ "fFamily": "Maison Neue",
+ "fStyle": "Book",
+ "ascent": 72.9995727539062
+ }
+ ]
+ },
+ "layers": [
+ {
+ "ddd": 0,
+ "ind": 1,
+ "ty": 5,
+ "nm": "CENTER ALIGNED",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 540,
+ 540,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "t": {
+ "d": {
+ "k": [
+ {
+ "s": {
+ "sz": [
+ 1080,
+ 100
+ ],
+ "ps": [
+ -540,
+ 0
+ ],
+ "s": 118,
+ "f": "MaisonNeue-Book",
+ "t": "CENTER ALIGNED",
+ "ca": 0,
+ "j": 2,
+ "tr": 100,
+ "lh": 27.5,
+ "ls": 0,
+ "fc": [
+ 0.379,
+ 0.379,
+ 0.379
+ ]
+ },
+ "t": 0
+ }
+ ]
+ },
+ "p": {},
+ "m": {
+ "g": 1,
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 2
+ }
+ },
+ "a": []
+ },
+ "ip": 0,
+ "op": 180,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 2,
+ "ty": 4,
+ "nm": "BackgroundLayer",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 892.749,
+ 380.408,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 0,
+ "k": [
+ 1920,
+ 1920
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 0.996078431373,
+ 0.83137254902,
+ 0.749019607843,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 1
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 6
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 7
+ },
+ "sk": {
+ "a": 0,
+ "k": 0,
+ "ix": 4
+ },
+ "sa": {
+ "a": 0,
+ "k": 0,
+ "ix": 5
+ },
+ "nm": "Transform"
+ }
+ ],
+ "nm": "Rectangle 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 180,
+ "st": 0,
+ "bm": 0
+ }
+ ],
+ "markers": [],
+ "chars": [
+ {
+ "ch": "C",
+ "size": 118,
+ "style": "Book",
+ "w": 64.5,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -18.027,
+ 0
+ ],
+ [
+ -1.309,
+ 16.415
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 10.876,
+ 0
+ ],
+ [
+ 0,
+ 18.027
+ ],
+ [
+ -13.193,
+ 0
+ ],
+ [
+ -2.014,
+ -11.783
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 14.502,
+ 0
+ ],
+ [
+ 0,
+ -22.055
+ ]
+ ],
+ "o": [
+ [
+ 15.61,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -1.309,
+ 12.891
+ ],
+ [
+ -13.293,
+ 0
+ ],
+ [
+ 0,
+ -17.825
+ ],
+ [
+ 10.272,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.014,
+ -15.005
+ ],
+ [
+ -17.825,
+ 0
+ ],
+ [
+ 0,
+ 22.357
+ ]
+ ],
+ "v": [
+ [
+ 34.241,
+ 1.511
+ ],
+ [
+ 61.432,
+ -24.976
+ ],
+ [
+ 52.872,
+ -26.083
+ ],
+ [
+ 34.241,
+ -6.345
+ ],
+ [
+ 12.891,
+ -35.248
+ ],
+ [
+ 34.241,
+ -64.151
+ ],
+ [
+ 52.972,
+ -46.024
+ ],
+ [
+ 61.23,
+ -47.433
+ ],
+ [
+ 34.241,
+ -72.006
+ ],
+ [
+ 4.532,
+ -35.248
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "C",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "C",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "E",
+ "size": 118,
+ "style": "Book",
+ "w": 56.1,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 50.958,
+ 0
+ ],
+ [
+ 50.958,
+ -7.855
+ ],
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -32.629
+ ],
+ [
+ 48.138,
+ -32.629
+ ],
+ [
+ 48.138,
+ -40.082
+ ],
+ [
+ 16.919,
+ -40.082
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 50.958,
+ -62.64
+ ],
+ [
+ 50.958,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "E",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "E",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "N",
+ "size": 118,
+ "style": "Book",
+ "w": 67.2,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -57.504
+ ],
+ [
+ 17.12,
+ -57.504
+ ],
+ [
+ 49.146,
+ 0
+ ],
+ [
+ 59.015,
+ 0
+ ],
+ [
+ 59.015,
+ -70.496
+ ],
+ [
+ 50.656,
+ -70.496
+ ],
+ [
+ 50.656,
+ -12.991
+ ],
+ [
+ 50.455,
+ -12.991
+ ],
+ [
+ 18.43,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "N",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "N",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "T",
+ "size": 118,
+ "style": "Book",
+ "w": 58.9,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 25.479,
+ 0
+ ],
+ [
+ 33.838,
+ 0
+ ],
+ [
+ 33.838,
+ -62.64
+ ],
+ [
+ 55.792,
+ -62.64
+ ],
+ [
+ 55.792,
+ -70.496
+ ],
+ [
+ 3.525,
+ -70.496
+ ],
+ [
+ 3.525,
+ -62.64
+ ],
+ [
+ 25.479,
+ -62.64
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "T",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "T",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "R",
+ "size": 118,
+ "style": "Book",
+ "w": 60.9,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 11.179
+ ],
+ [
+ 14.703,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 11.078,
+ -1.813
+ ],
+ [
+ 0,
+ -12.991
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 40.182,
+ -29.205
+ ],
+ [
+ 57.806,
+ -49.649
+ ],
+ [
+ 34.341,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ],
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -28.601
+ ],
+ [
+ 31.018,
+ -28.601
+ ],
+ [
+ 45.923,
+ 0
+ ],
+ [
+ 55.692,
+ 0
+ ],
+ [
+ 40.182,
+ -29.004
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "R",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -8.56
+ ],
+ [
+ 10.373,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 10.474,
+ 0
+ ],
+ [
+ 0,
+ 8.661
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 16.919,
+ -36.456
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 33.636,
+ -62.64
+ ],
+ [
+ 49.448,
+ -49.649
+ ],
+ [
+ 33.636,
+ -36.456
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "R",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "R",
+ "np": 5,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": " ",
+ "size": 118,
+ "style": "Book",
+ "w": 27,
+ "data": {},
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "A",
+ "size": 118,
+ "style": "Book",
+ "w": 61.3,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 50.656,
+ 0
+ ],
+ [
+ 59.216,
+ 0
+ ],
+ [
+ 33.939,
+ -70.496
+ ],
+ [
+ 25.882,
+ -70.496
+ ],
+ [
+ 0.504,
+ 0
+ ],
+ [
+ 9.064,
+ 0
+ ],
+ [
+ 13.998,
+ -14.2
+ ],
+ [
+ 45.721,
+ -14.2
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "A",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 16.617,
+ -21.451
+ ],
+ [
+ 29.81,
+ -59.116
+ ],
+ [
+ 30.011,
+ -59.116
+ ],
+ [
+ 43.204,
+ -21.451
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "A",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "A",
+ "np": 5,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "L",
+ "size": 118,
+ "style": "Book",
+ "w": 51.9,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 48.743,
+ 0
+ ],
+ [
+ 48.743,
+ -7.855
+ ],
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "L",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "L",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "I",
+ "size": 118,
+ "style": "Book",
+ "w": 25.4,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "I",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "I",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "G",
+ "size": 118,
+ "style": "Book",
+ "w": 65.3,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -18.027,
+ 0
+ ],
+ [
+ 0,
+ 17.825
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 12.085,
+ 0
+ ],
+ [
+ 0,
+ 17.825
+ ],
+ [
+ -13.193,
+ 0
+ ],
+ [
+ -2.014,
+ -11.078
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 14.099,
+ 0
+ ],
+ [
+ 0,
+ -22.357
+ ]
+ ],
+ "o": [
+ [
+ 16.516,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.302,
+ 12.79
+ ],
+ [
+ -13.193,
+ 0
+ ],
+ [
+ 0,
+ -17.825
+ ],
+ [
+ 9.97,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.115,
+ -14.099
+ ],
+ [
+ -18.027,
+ 0
+ ],
+ [
+ 0,
+ 22.357
+ ]
+ ],
+ "v": [
+ [
+ 34.241,
+ 1.511
+ ],
+ [
+ 61.23,
+ -27.695
+ ],
+ [
+ 61.23,
+ -34.845
+ ],
+ [
+ 35.147,
+ -34.845
+ ],
+ [
+ 35.147,
+ -26.99
+ ],
+ [
+ 53.073,
+ -26.99
+ ],
+ [
+ 34.241,
+ -6.345
+ ],
+ [
+ 12.891,
+ -35.248
+ ],
+ [
+ 34.241,
+ -64.151
+ ],
+ [
+ 52.771,
+ -47.232
+ ],
+ [
+ 61.029,
+ -48.743
+ ],
+ [
+ 34.241,
+ -72.006
+ ],
+ [
+ 4.532,
+ -35.248
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "G",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "G",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "D",
+ "size": 118,
+ "style": "Book",
+ "w": 65.1,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 24.875
+ ],
+ [
+ 17.825,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 18.43,
+ 0
+ ],
+ [
+ 0,
+ -22.256
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 30.011,
+ 0
+ ],
+ [
+ 61.029,
+ -35.349
+ ],
+ [
+ 30.615,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "D",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -18.027
+ ],
+ [
+ 14.301,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 13.696,
+ 0
+ ],
+ [
+ 0,
+ 19.94
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 30.112,
+ -62.64
+ ],
+ [
+ 52.67,
+ -35.349
+ ],
+ [
+ 29.507,
+ -7.855
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "D",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "D",
+ "np": 5,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/snapshot-tests/src/main/assets/Tests/TextWithPsLeft.json b/snapshot-tests/src/main/assets/Tests/TextWithPsLeft.json
new file mode 100644
index 0000000..23f2a0b
--- /dev/null
+++ b/snapshot-tests/src/main/assets/Tests/TextWithPsLeft.json
@@ -0,0 +1,1626 @@
+{
+ "v": "5.9.3",
+ "fr": 60,
+ "ip": 0,
+ "op": 100,
+ "w": 375,
+ "h": 625,
+ "nm": "[TEST2]",
+ "ddd": 0,
+ "assets":[],
+ "fonts": {
+ "list": [
+ {
+ "fName": "MaisonNeue-Book",
+ "fFamily": "Maison Neue",
+ "fStyle": "Book",
+ "ascent": 72.9995727539062
+ }
+ ]
+ },
+ "layers": [
+ {
+ "ddd": 0,
+ "ind": 22,
+ "ty": 5,
+ "nm": "test",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "s": true,
+ "x": {
+ "a": 0,
+ "k": 0.0,
+ "ix": 3
+ },
+ "y": {
+ "a": 0,
+ "k": 0.0,
+ "ix": 4
+ }
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ -106.775,
+ -150.686,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "t": {
+ "d": {
+ "k": [
+ {
+ "s": {
+ "sz": [
+ 255,
+ 45
+ ],
+ "ps": [
+ -100.0,
+ 200.0
+ ],
+ "s": 36,
+ "f": "MaisonNeue-Book",
+ "t": "LEFT ALIGNED",
+ "ca": 0,
+ "j": 0,
+ "tr": 0,
+ "lh": 43.2000007629395,
+ "ls": 0,
+ "fc": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 0
+ }
+ ]
+ },
+ "p": {},
+ "m": {
+ "g": 1,
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 2
+ }
+ },
+ "a": []
+ },
+ "ip": 0,
+ "op": 100,
+ "st": 0,
+ "ct": 1,
+ "bm": 0
+ }
+ ],
+ "markers": [],
+ "chars": [
+ {
+ "ch": "L",
+ "size": 118,
+ "style": "Book",
+ "w": 51.9,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 48.743,
+ 0
+ ],
+ [
+ 48.743,
+ -7.855
+ ],
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "L",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "L",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "E",
+ "size": 118,
+ "style": "Book",
+ "w": 56.1,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 50.958,
+ 0
+ ],
+ [
+ 50.958,
+ -7.855
+ ],
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -32.629
+ ],
+ [
+ 48.138,
+ -32.629
+ ],
+ [
+ 48.138,
+ -40.082
+ ],
+ [
+ 16.919,
+ -40.082
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 50.958,
+ -62.64
+ ],
+ [
+ 50.958,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "E",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "E",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "F",
+ "size": 118,
+ "style": "Book",
+ "w": 55.2,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -30.011
+ ],
+ [
+ 48.239,
+ -30.011
+ ],
+ [
+ 48.239,
+ -37.463
+ ],
+ [
+ 16.919,
+ -37.463
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 51.059,
+ -62.64
+ ],
+ [
+ 51.059,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "F",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "F",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "T",
+ "size": 118,
+ "style": "Book",
+ "w": 58.9,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 25.479,
+ 0
+ ],
+ [
+ 33.838,
+ 0
+ ],
+ [
+ 33.838,
+ -62.64
+ ],
+ [
+ 55.792,
+ -62.64
+ ],
+ [
+ 55.792,
+ -70.496
+ ],
+ [
+ 3.525,
+ -70.496
+ ],
+ [
+ 3.525,
+ -62.64
+ ],
+ [
+ 25.479,
+ -62.64
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "T",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "T",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": " ",
+ "size": 118,
+ "style": "Book",
+ "w": 27,
+ "data": {},
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "A",
+ "size": 118,
+ "style": "Book",
+ "w": 61.3,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 50.656,
+ 0
+ ],
+ [
+ 59.216,
+ 0
+ ],
+ [
+ 33.939,
+ -70.496
+ ],
+ [
+ 25.882,
+ -70.496
+ ],
+ [
+ 0.504,
+ 0
+ ],
+ [
+ 9.064,
+ 0
+ ],
+ [
+ 13.998,
+ -14.2
+ ],
+ [
+ 45.721,
+ -14.2
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "A",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 16.617,
+ -21.451
+ ],
+ [
+ 29.81,
+ -59.116
+ ],
+ [
+ 30.011,
+ -59.116
+ ],
+ [
+ 43.204,
+ -21.451
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "A",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "A",
+ "np": 5,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "I",
+ "size": 118,
+ "style": "Book",
+ "w": 25.4,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "I",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "I",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "G",
+ "size": 118,
+ "style": "Book",
+ "w": 65.3,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -18.027,
+ 0
+ ],
+ [
+ 0,
+ 17.825
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 12.085,
+ 0
+ ],
+ [
+ 0,
+ 17.825
+ ],
+ [
+ -13.193,
+ 0
+ ],
+ [
+ -2.014,
+ -11.078
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 14.099,
+ 0
+ ],
+ [
+ 0,
+ -22.357
+ ]
+ ],
+ "o": [
+ [
+ 16.516,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.302,
+ 12.79
+ ],
+ [
+ -13.193,
+ 0
+ ],
+ [
+ 0,
+ -17.825
+ ],
+ [
+ 9.97,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.115,
+ -14.099
+ ],
+ [
+ -18.027,
+ 0
+ ],
+ [
+ 0,
+ 22.357
+ ]
+ ],
+ "v": [
+ [
+ 34.241,
+ 1.511
+ ],
+ [
+ 61.23,
+ -27.695
+ ],
+ [
+ 61.23,
+ -34.845
+ ],
+ [
+ 35.147,
+ -34.845
+ ],
+ [
+ 35.147,
+ -26.99
+ ],
+ [
+ 53.073,
+ -26.99
+ ],
+ [
+ 34.241,
+ -6.345
+ ],
+ [
+ 12.891,
+ -35.248
+ ],
+ [
+ 34.241,
+ -64.151
+ ],
+ [
+ 52.771,
+ -47.232
+ ],
+ [
+ 61.029,
+ -48.743
+ ],
+ [
+ 34.241,
+ -72.006
+ ],
+ [
+ 4.532,
+ -35.248
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "G",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "G",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "N",
+ "size": 118,
+ "style": "Book",
+ "w": 67.2,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 16.919,
+ 0
+ ],
+ [
+ 16.919,
+ -57.504
+ ],
+ [
+ 17.12,
+ -57.504
+ ],
+ [
+ 49.146,
+ 0
+ ],
+ [
+ 59.015,
+ 0
+ ],
+ [
+ 59.015,
+ -70.496
+ ],
+ [
+ 50.656,
+ -70.496
+ ],
+ [
+ 50.656,
+ -12.991
+ ],
+ [
+ 50.455,
+ -12.991
+ ],
+ [
+ 18.43,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "N",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "N",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "D",
+ "size": 118,
+ "style": "Book",
+ "w": 65.1,
+ "data": {
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 24.875
+ ],
+ [
+ 17.825,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 18.43,
+ 0
+ ],
+ [
+ 0,
+ -22.256
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.661,
+ 0
+ ],
+ [
+ 30.011,
+ 0
+ ],
+ [
+ 61.029,
+ -35.349
+ ],
+ [
+ 30.615,
+ -70.496
+ ],
+ [
+ 8.661,
+ -70.496
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "D",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -18.027
+ ],
+ [
+ 14.301,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 13.696,
+ 0
+ ],
+ [
+ 0,
+ 19.94
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 16.919,
+ -7.855
+ ],
+ [
+ 16.919,
+ -62.64
+ ],
+ [
+ 30.112,
+ -62.64
+ ],
+ [
+ 52.67,
+ -35.349
+ ],
+ [
+ 29.507,
+ -7.855
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "D",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ }
+ ],
+ "nm": "D",
+ "np": 5,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ]
+ },
+ "fFamily": "Maison Neue"
+ },
+ {
+ "ch": "\r",
+ "size": 118,
+ "style": "Book",
+ "w": 0,
+ "fFamily": "Maison Neue"
+ }
+ ]
+}
\ No newline at end of file