aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/text
diff options
context:
space:
mode:
authorManuel Mall <manuel@apache.org>2006-12-22 09:16:18 +0000
committerManuel Mall <manuel@apache.org>2006-12-22 09:16:18 +0000
commitc78f7767b3686e851ede4c41d6747fcecc539e83 (patch)
treeb5b0de4af7b90930883ee8055f0681a65b1df7c4 /src/java/org/apache/fop/text
parent3c0a84fd754d2a0b981ea1f0d06ae3046d36da4d (diff)
downloadxmlgraphics-fop-c78f7767b3686e851ede4c41d6747fcecc539e83.tar.gz
xmlgraphics-fop-c78f7767b3686e851ede4c41d6747fcecc539e83.zip
Added (limited) support for Unicode UAX#14 compliant line breaking. Thanks to Joerg Pietschman who supplied the core code for the Unicode line breaking algorithm
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@489585 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/text')
-rw-r--r--src/java/org/apache/fop/text/linebreak/LineBreakStatus.java160
-rw-r--r--src/java/org/apache/fop/text/linebreak/LineBreakUtils.java669
2 files changed, 829 insertions, 0 deletions
diff --git a/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java b/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java
new file mode 100644
index 000000000..29583a9d0
--- /dev/null
+++ b/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.text.linebreak;
+
+/**
+ * This class is meant for supporting the Unicode line breaking algorithm.
+ * See <a href="http://unicode.org/reports/tr14/">UTR 14</a>.
+ *
+ */
+public class LineBreakStatus {
+
+ /** Constant indicating a Direct Break */
+ public static final byte DIRECT_BREAK = LineBreakUtils.DIRECT_BREAK;
+ /** Constant indicating an Indirect Break */
+ public static final byte INDIRECT_BREAK = LineBreakUtils.INDIRECT_BREAK;
+ /** Constant indicating a Combining Indirect Break */
+ public static final byte COMBINING_INDIRECT_BREAK = LineBreakUtils.COMBINING_INDIRECT_BREAK;
+ /** Constant indicating a Combining Prohibited Break */
+ public static final byte COMBINING_PROHIBITED_BREAK = LineBreakUtils.COMBINING_PROHIBITED_BREAK;
+ /** Constant indicating a Prohibited Break */
+ public static final byte PROHIBITED_BREAK = LineBreakUtils.PROHIBITED_BREAK;
+ /** Constant indicating a Explicit Break */
+ public static final byte EXPLICIT_BREAK = LineBreakUtils.EXPLICIT_BREAK;
+
+ private byte leftClass;
+ private boolean hadSpace;
+
+ /**
+ * Resets the class to the same state as if new LineBreakStatus() had just been called.
+ */
+ public LineBreakStatus() {
+ reset();
+ }
+
+
+ /**
+ * Reset the status.
+ * This method will reset the status to the initial state. It is meant
+ * for recycling objects.
+ */
+ public void reset() {
+ leftClass = -1;
+ hadSpace = false;
+ }
+
+ /**
+ * Check whether a line break may happen.
+ * The function returns the line breaking status of the point before the given character.
+ * The algorithm is the table driven algorithm described in the Unicode
+ * <a href="http://unicode.org/reports/tr14/#PairBasedImplementation">technical report #14</a>.
+ * The pair table is taken from @see LineBreakUtils
+ *
+ * TODO: Better handling for AI, SA, CB and other line break classes.
+ *
+ * @param c The character.
+ * @return the break action to be taken
+ */
+ public byte nextChar(char c) {
+ byte currentClass = LineBreakUtils.getLineBreakProperty(c);
+ if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_AI
+ || leftClass == LineBreakUtils.LINE_BREAK_PROPERTY_XX) {
+ currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_AL;
+ } else if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_NL) {
+ currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_BK;
+ }
+ if (leftClass == -1) {
+ if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_LF) {
+ leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_BK;
+ } else {
+ leftClass = currentClass;
+ if (leftClass == LineBreakUtils.LINE_BREAK_PROPERTY_CM) {
+ leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_ID;
+ }
+ }
+ // LB 2a
+ return PROHIBITED_BREAK;
+ } else if (!(leftClass != LineBreakUtils.LINE_BREAK_PROPERTY_BK
+ && (leftClass != LineBreakUtils.LINE_BREAK_PROPERTY_CR
+ || currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_LF)
+ )) {
+ reset();
+ if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_LF) {
+ leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_BK;
+ }
+ return EXPLICIT_BREAK;
+ } else if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_BK
+ || currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_LF) {
+ leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_BK;
+ return PROHIBITED_BREAK;
+ } else if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_CR) {
+ leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_CR;
+ return PROHIBITED_BREAK;
+ } else if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_SP) {
+ hadSpace = true;
+ return PROHIBITED_BREAK;
+ } else {
+ boolean savedHadSpace = hadSpace;
+ hadSpace = false;
+ switch (LineBreakUtils.getLineBreakPairProperty(leftClass, currentClass)) {
+ case LineBreakUtils.PROHIBITED_BREAK :
+ leftClass = currentClass;
+ return PROHIBITED_BREAK;
+ case LineBreakUtils.DIRECT_BREAK :
+ leftClass = currentClass;
+ return DIRECT_BREAK;
+ case LineBreakUtils.INDIRECT_BREAK :
+ leftClass = currentClass;
+ if (savedHadSpace) {
+ return INDIRECT_BREAK;
+ } else {
+ return PROHIBITED_BREAK;
+ }
+ case LineBreakUtils.COMBINING_INDIRECT_BREAK :
+ if (savedHadSpace) {
+ leftClass = currentClass;
+ return COMBINING_INDIRECT_BREAK;
+ } else {
+ return PROHIBITED_BREAK;
+ }
+ case LineBreakUtils.COMBINING_PROHIBITED_BREAK :
+ if (savedHadSpace) {
+ leftClass = currentClass;
+ }
+ return COMBINING_PROHIBITED_BREAK;
+ default :
+ throw new RuntimeException("duh");
+ }
+
+ }
+ }
+
+ /**
+ * for debugging only
+ */
+ /*
+ public static void main(String args[]) {
+ LineBreakStatus lbs = new LineBreakStatus();
+ lbs.nextChar('\n');
+ lbs.nextChar('\n');
+ lbs.nextChar('x');
+ }
+ */
+}
diff --git a/src/java/org/apache/fop/text/linebreak/LineBreakUtils.java b/src/java/org/apache/fop/text/linebreak/LineBreakUtils.java
new file mode 100644
index 000000000..285b8a5e6
--- /dev/null
+++ b/src/java/org/apache/fop/text/linebreak/LineBreakUtils.java
@@ -0,0 +1,669 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.commons.text.linebreak;
+
+/*
+ * This is a generated file, DO NOT CHANGE!
+ */
+
+class LineBreakUtils {
+
+ public static final byte DIRECT_BREAK = 0;
+ public static final byte INDIRECT_BREAK = 1;
+ public static final byte COMBINING_INDIRECT_BREAK = 2;
+ public static final byte COMBINING_PROHIBITED_BREAK = 3;
+ public static final byte PROHIBITED_BREAK = 4;
+ public static final byte EXPLICIT_BREAK = 5;
+
+ private static final byte PAIR_TABLE[][] = {
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,0,0,0,0,1,1,1,0,0,1,0,0,0,4,4,0,4},
+ {0,0,4,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,0,0,0,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,0,0,0,0,1,0,0,0,4,4,0,4},
+ {0,1,1,1,1,0,0,4,2,0,4,1,1,1,1,1,1,4,1,1,1,0,0,1,1,1,1,1,1,0,0,0,4,4,0,4},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,4,1,0,1,1,1,0,0,0,4,4,0,4},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,0,0,0,0,1,1,0,0,0,1,0,0,0,4,4,0,4},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,0,0,0,0,1,0,0,0,4,4,0,4},
+ {0,1,1,1,1,0,0,4,2,0,4,1,1,1,1,1,1,4,1,1,1,0,0,1,1,1,1,1,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,1,1,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,1,0,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,1,0,0,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,0,0,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,0,0,0,0,1,0,0,0,0,1,0,0,0,4,4,0,4},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,1,0,0,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,1,1,1,0,1,4,1,0,1,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,1,0,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,1,1,0,0,1,0,0,1,0,1,0,0,0,4,4,0,4},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,0,0,0,0,1,0,0,0,4,4,0,4},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,1,4,0,0,0,0,0,1,1,1,1,1,1,0,0,0,4,4,0,4},
+ {0,4,4,4,4,0,0,4,3,0,4,4,4,4,4,4,4,4,4,4,4,0,0,4,4,4,4,4,4,0,0,0,4,4,0,4},
+ {0,1,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,1,1,0,0,1,0,0,0,4,4,0,4},
+ {0,1,0,1,0,0,0,4,2,0,4,1,1,1,1,1,0,4,1,1,1,0,0,1,1,1,0,0,1,0,0,0,4,4,0,4},
+ {0,1,1,1,1,0,0,4,2,0,4,1,1,1,1,1,1,4,1,1,1,0,0,1,1,4,1,1,1,0,0,0,4,4,0,4},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,1,0,0,0,4,2,0,4,1,0,0,1,0,0,4,0,0,0,0,0,1,1,0,0,0,1,0,0,0,4,4,0,4},
+ {0,1,1,1,1,0,0,4,2,0,4,1,1,1,1,1,1,4,1,1,1,0,0,1,1,1,1,1,1,0,0,0,4,4,0,4},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}};
+
+ private static byte lineBreakProperties[][] = new byte[512][];
+
+ private static void init_0() {
+ lineBreakProperties[0] = new byte[] { 9,9,9,9,9,9,9,9,9,4,22,6,6,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,32,11,29,2,28,27,2,29,26,8,2,28,18,15,18,33,25,25,25,25,25,25,25,25,25,25,18,18,2,2,2,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,28,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,4,8,2,9};
+ lineBreakProperties[1] = new byte[] { 9,9,9,9,9,23,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,12,1,27,28,28,28,2,1,1,2,1,29,2,4,2,2,27,28,1,1,5,2,1,1,1,1,1,29,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2};
+ lineBreakProperties[2] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[5] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,5,1,1,1,5,1,2,2,1,2,2,2,2,2,2,2,1,1,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[6] = new byte[] { 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,12,9,9,9,9,9,9,9,9,9,9,9,9,12,12,12,12,12,12,12,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,2,2,0,0,0,0,2,2,2,2,18,0};
+ lineBreakProperties[7] = new byte[] { 0,0,0,0,2,2,2,2,2,2,2,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[9] = new byte[] { 2,2,2,9,9,9,9,0,9,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[10] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[11] = new byte[] { 2,2,2,2,2,2,2,2,0,18,4,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4,9,2,9,9,2,9,9,11,9,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[12] = new byte[] { 2,2,2,2,0,0,0,0,0,0,0,27,11,18,2,2,9,9,9,9,9,9,0,0,0,0,0,11,0,0,11,11,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,25,25,25,25,25,25,25,25,25,25,11,25,25,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[13] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,2,9,9,9,9,9,9,9,2,9,9,9,9,9,9,9,2,2,9,9,2,9,9,9,9,2,2,25,25,25,25,25,25,25,25,25,25,2,2,2,2,2,2};
+ lineBreakProperties[14] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[15] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,9,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,2,2,2,2,18,11,2,0,0,0,0,0};
+ lineBreakProperties[16] = new byte[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[18] = new byte[] { 0,9,9,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,9,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,2,9,9,9,9,0,0,0,2,2,2,2,2,2,2,2,2,2,9,9,4,4,25,25,25,25,25,25,25,25,25,25,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2};
+ lineBreakProperties[19] = new byte[] { 0,9,9,9,0,2,2,2,2,2,2,2,2,0,0,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,0,0,0,2,2,2,2,0,0,9,2,9,9,9,9,9,9,9,0,0,9,9,0,0,9,9,9,2,0,0,0,0,0,0,0,0,9,0,0,0,0,2,2,0,2,2,2,9,9,0,0,25,25,25,25,25,25,25,25,25,25,2,2,28,28,2,2,2,2,2,2,2,0,0,0,0,0};
+ lineBreakProperties[20] = new byte[] { 0,9,9,9,0,2,2,2,2,2,2,0,0,0,0,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,0,2,2,0,2,2,0,0,9,0,9,9,9,9,9,0,0,0,0,9,9,0,0,9,9,9,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,2,0,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,9,9,2,2,2,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[21] = new byte[] { 0,9,9,9,0,2,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,0,9,2,9,9,9,9,9,9,9,9,0,9,9,9,0,9,9,9,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,9,9,0,0,25,25,25,25,25,25,25,25,25,25,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[22] = new byte[] { 0,9,9,9,0,2,2,2,2,2,2,2,2,0,0,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,0,9,2,9,9,9,9,9,9,0,0,0,9,9,0,0,9,9,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,2,2,0,2,2,2,0,0,0,0,25,25,25,25,25,25,25,25,25,25,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[23] = new byte[] { 0,0,9,2,0,2,2,2,2,2,2,0,0,0,2,2,2,0,2,2,2,2,0,0,0,2,2,0,2,0,2,2,0,0,0,2,2,0,0,0,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,9,9,9,9,9,0,0,0,9,9,9,0,9,9,9,9,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,2,2,2,2,2,2,2,2,2,28,2,0,0,0,0,0};
+ lineBreakProperties[24] = new byte[] { 0,9,9,9,0,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,0,0,0,9,9,9,9,9,9,9,0,9,9,9,0,9,9,9,9,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[25] = new byte[] { 0,0,9,9,0,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,0,9,2,9,9,9,9,9,9,9,0,9,9,9,0,9,9,9,9,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,2,0,2,2,9,9,0,0,25,25,25,25,25,25,25,25,25,25,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[26] = new byte[] { 0,0,9,9,0,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,9,9,9,9,9,9,0,0,9,9,9,0,9,9,9,9,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,2,2,0,0,0,0,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[27] = new byte[] { 0,0,9,9,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,0,2,0,0,2,2,2,2,2,2,2,0,0,0,9,0,0,0,0,9,9,9,9,9,9,0,9,0,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,2,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[28] = new byte[] { 0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,0,0,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,2,25,25,25,25,25,25,25,25,25,25,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[29] = new byte[] { 0,30,30,0,30,0,0,30,30,0,30,0,0,30,0,0,0,0,0,0,30,30,30,30,0,30,30,30,30,30,30,30,0,30,30,30,0,30,0,30,0,0,30,30,0,30,30,30,30,30,30,30,30,30,30,30,30,30,0,30,30,30,0,0,30,30,30,30,30,0,30,0,30,30,30,30,30,30,0,0,25,25,25,25,25,25,25,25,25,25,0,0,30,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[30] = new byte[] { 2,5,5,5,5,2,5,5,12,5,5,4,12,11,11,11,11,11,12,2,11,2,2,2,9,9,2,2,2,2,2,2,25,25,25,25,25,25,25,25,25,25,2,2,2,2,2,2,2,2,2,2,4,9,2,9,2,9,26,8,26,8,9,9,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4};
+ lineBreakProperties[31] = new byte[] { 9,9,9,9,9,4,9,9,2,2,2,2,0,0,0,0,9,9,9,9,9,9,9,9,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,4,4,2,2,2,2,2,2,9,2,2,2,2,2,2,0,0,2,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[32] = new byte[] { 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,30,30,30,30,30,0,30,30,0,30,30,30,30,30,30,30,0,0,0,30,30,30,30,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,4,4,2,2,2,2,30,30,30,30,30,30,30,30,30,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[33] = new byte[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0};
+ lineBreakProperties[34] = new byte[] { 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,0,19,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21};
+ lineBreakProperties[35] = new byte[] { 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,0,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0};
+ lineBreakProperties[36] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,0,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[37] = new byte[] { 2,2,2,2,2,2,2,2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,0,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[38] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,9,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0};
+ lineBreakProperties[39] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[40] = new byte[] { 0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[44] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[45] = new byte[] { 4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[46] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,9,9,9,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,4,4,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[47] = new byte[] { 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,4,4,24,30,4,2,4,28,30,30,0,0,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0};
+ lineBreakProperties[48] = new byte[] { 2,2,4,4,4,4,5,2,4,4,2,9,9,9,12,0,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0};
+ lineBreakProperties[49] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[50] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,2,0,0,0,11,11,25,25,25,25,25,25,25,25,25,25,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,30,30,30,30,30,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[51] = new byte[] { 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,0,0,0,0,30,30,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[52] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,0,0,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[54] = new byte[] { 9,9,9,9,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,2,2,0,0,0,0,25,25,25,25,25,25,25,25,25,25,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,2,2,2,2,2,2,2,2,2,0,0,0};
+ lineBreakProperties[59] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9};
+ lineBreakProperties[61] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0};
+ lineBreakProperties[62] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,2,0,2,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0};
+ lineBreakProperties[63] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,0,2,2,2,2,2,2,2,2,2,0};
+ lineBreakProperties[64] = new byte[] { 4,4,4,4,4,4,4,12,4,4,4,36,9,9,9,9,4,12,4,4,3,1,1,2,29,29,26,29,29,29,26,29,1,1,2,2,17,17,17,4,6,6,9,9,9,9,9,12,27,27,27,27,27,27,27,27,2,29,29,1,24,24,2,2,2,2,2,2,18,26,8,24,24,24,2,2,2,2,2,2,2,2,2,2,2,2,4,2,4,4,4,4,2,4,4,4,34,2,2,2,0,0,0,0,0,0,9,9,9,9,9,9,2,2,0,0,1,2,2,2,2,2,2,2,2,26,8,1};
+ lineBreakProperties[65] = new byte[] { 2,1,1,1,1,2,2,2,2,2,2,2,2,26,8,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,28,28,28,28,28,28,28,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[66] = new byte[] { 2,2,2,27,2,1,2,2,2,27,2,2,2,2,2,2,2,2,2,1,2,2,28,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,2,1,1,2,2,2,2,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2};
+ lineBreakProperties[67] = new byte[] { 2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[68] = new byte[] { 1,2,1,1,2,2,2,1,1,2,2,1,2,2,2,1,2,1,28,28,2,1,2,2,2,2,1,2,2,1,1,1,1,2,2,1,2,1,2,1,1,1,1,1,1,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,1,1,1,1,2,2,1,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[69] = new byte[] { 2,2,1,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[70] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[71] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[72] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
+ lineBreakProperties[73] = new byte[] { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2};
+ lineBreakProperties[74] = new byte[] { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[75] = new byte[] { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,1,1,2,2,1,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[76] = new byte[] { 2,2,2,2,2,1,1,2,2,1,2,2,2,2,1,1,2,2,2,2,1,1,1,1,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,2,1,1,1,1,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ };
+
+ private static void init_1() {
+ lineBreakProperties[77] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[78] = new byte[] { 0,2,2,2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,0,2,2,2,2,0,0,0,2,0,2,2,2,29,29,29,29,0,0,2,11,11,2,2,2,2,26,8,26,8,26,8,26,8,26,8,26,8,26,8,1,1,1,1,1,1,1,1,1,1};
+ lineBreakProperties[79] = new byte[] { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,26,8,2,2,2,2,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,26,8,26,8,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[83] = new byte[] { 2,2,2,26,8,26,8,26,8,26,8,26,8,26,8,26,8,26,8,26,8,26,8,26,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,26,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,2,2};
+ lineBreakProperties[86] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[88] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0};
+ lineBreakProperties[89] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,2,4,4};
+ lineBreakProperties[90] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[91] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[92] = new byte[] { 29,29,29,29,29,29,29,29,29,29,29,29,29,29,4,4,4,4,4,4,4,4,2,4,0,0,0,0,29,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[93] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[94] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[95] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0};
+ lineBreakProperties[96] = new byte[] { 16,8,8,16,16,24,16,16,26,8,26,8,26,8,26,8,26,8,16,16,26,8,26,8,26,8,26,8,24,26,8,8,16,16,16,16,16,16,16,16,16,16,9,9,9,9,9,9,16,16,16,16,16,16,16,16,16,16,16,24,24,16,16,16,0,24,16,24,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[97] = new byte[] { 16,16,16,24,16,24,16,24,16,16,16,16,16,16,24,16,16,16,16,16,16,24,24,0,0,9,9,24,24,24,24,16,24,24,16,24,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,16,16,16,16,16,24,16,16,16,16,16,16,24,24,16,16,16,16,24,24,24,24,16};
+ lineBreakProperties[98] = new byte[] { 0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[99] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24};
+ lineBreakProperties[100] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[101] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0};
+ lineBreakProperties[155] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[319] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[320] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[329] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[334] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[336] = new byte[] { 2,2,9,2,2,2,9,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,11,11,0,0,0,0,0,0,0,0};
+ lineBreakProperties[344] = new byte[] { 13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};
+ lineBreakProperties[345] = new byte[] { 14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14};
+ lineBreakProperties[346] = new byte[] { 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};
+ lineBreakProperties[347] = new byte[] { 14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14};
+ lineBreakProperties[348] = new byte[] { 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};
+ lineBreakProperties[349] = new byte[] { 14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14};
+ lineBreakProperties[350] = new byte[] { 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};
+ lineBreakProperties[431] = new byte[] { 14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[432] = new byte[] { 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31};
+ lineBreakProperties[448] = new byte[] { 35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35};
+ lineBreakProperties[500] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};
+ lineBreakProperties[501] = new byte[] { 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+ lineBreakProperties[502] = new byte[] { 2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,2,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,2,0,2,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[503] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[506] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[507] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,27,2,0,0};
+ lineBreakProperties[508] = new byte[] { 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,18,8,8,18,18,11,11,26,8,17,0,0,0,0,0,0,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,26,8,26,8,26,8,26,8,26,8,26,8,26,8,26,8,16,16,26,8,16,16,16,16,16,16,16,8,16,8,0,24,24,11,11,16,26,8,26,8,26,8,16,16,16,16,16,16,16,16,0,16,28,27,16,0,0,0,0,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[509] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,34};
+ lineBreakProperties[510] = new byte[] { 0,11,16,16,28,27,16,16,26,8,16,16,8,16,8,16,16,16,16,16,16,16,16,16,16,16,24,24,16,16,16,11,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,26,16,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,26,16,8,16,26,8,8,26,8,8,24,2,24,24,24,24,24,24,24,24,24,24,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
+ lineBreakProperties[511] = new byte[] { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,24,24,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,0,0,0,27,28,16,16,16,28,28,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,9,9,9,7,1,0,0};
+ };
+
+ static {
+ init_0();
+ init_1();
+ lineBreakProperties[3]=lineBreakProperties[2];
+ lineBreakProperties[4]=lineBreakProperties[2];
+ lineBreakProperties[8]=lineBreakProperties[2];
+ lineBreakProperties[17]=lineBreakProperties[16];
+ lineBreakProperties[41]=lineBreakProperties[2];
+ lineBreakProperties[42]=lineBreakProperties[2];
+ lineBreakProperties[43]=lineBreakProperties[2];
+ lineBreakProperties[53]=lineBreakProperties[16];
+ lineBreakProperties[55]=lineBreakProperties[16];
+ lineBreakProperties[56]=lineBreakProperties[16];
+ lineBreakProperties[57]=lineBreakProperties[16];
+ lineBreakProperties[58]=lineBreakProperties[2];
+ lineBreakProperties[60]=lineBreakProperties[2];
+ lineBreakProperties[80]=lineBreakProperties[2];
+ lineBreakProperties[81]=lineBreakProperties[2];
+ lineBreakProperties[82]=lineBreakProperties[2];
+ lineBreakProperties[84]=lineBreakProperties[2];
+ lineBreakProperties[85]=lineBreakProperties[2];
+ lineBreakProperties[87]=lineBreakProperties[16];
+ lineBreakProperties[102]=lineBreakProperties[94];
+ lineBreakProperties[103]=lineBreakProperties[94];
+ lineBreakProperties[104]=lineBreakProperties[94];
+ lineBreakProperties[105]=lineBreakProperties[94];
+ lineBreakProperties[106]=lineBreakProperties[94];
+ lineBreakProperties[107]=lineBreakProperties[94];
+ lineBreakProperties[108]=lineBreakProperties[94];
+ lineBreakProperties[109]=lineBreakProperties[94];
+ lineBreakProperties[110]=lineBreakProperties[94];
+ lineBreakProperties[111]=lineBreakProperties[94];
+ lineBreakProperties[112]=lineBreakProperties[94];
+ lineBreakProperties[113]=lineBreakProperties[94];
+ lineBreakProperties[114]=lineBreakProperties[94];
+ lineBreakProperties[115]=lineBreakProperties[94];
+ lineBreakProperties[116]=lineBreakProperties[94];
+ lineBreakProperties[117]=lineBreakProperties[94];
+ lineBreakProperties[118]=lineBreakProperties[94];
+ lineBreakProperties[119]=lineBreakProperties[94];
+ lineBreakProperties[120]=lineBreakProperties[94];
+ lineBreakProperties[121]=lineBreakProperties[94];
+ lineBreakProperties[122]=lineBreakProperties[94];
+ lineBreakProperties[123]=lineBreakProperties[94];
+ lineBreakProperties[124]=lineBreakProperties[94];
+ lineBreakProperties[125]=lineBreakProperties[94];
+ lineBreakProperties[126]=lineBreakProperties[94];
+ lineBreakProperties[127]=lineBreakProperties[94];
+ lineBreakProperties[128]=lineBreakProperties[94];
+ lineBreakProperties[129]=lineBreakProperties[94];
+ lineBreakProperties[130]=lineBreakProperties[94];
+ lineBreakProperties[131]=lineBreakProperties[94];
+ lineBreakProperties[132]=lineBreakProperties[94];
+ lineBreakProperties[133]=lineBreakProperties[94];
+ lineBreakProperties[134]=lineBreakProperties[94];
+ lineBreakProperties[135]=lineBreakProperties[94];
+ lineBreakProperties[136]=lineBreakProperties[94];
+ lineBreakProperties[137]=lineBreakProperties[94];
+ lineBreakProperties[138]=lineBreakProperties[94];
+ lineBreakProperties[139]=lineBreakProperties[94];
+ lineBreakProperties[140]=lineBreakProperties[94];
+ lineBreakProperties[141]=lineBreakProperties[94];
+ lineBreakProperties[142]=lineBreakProperties[94];
+ lineBreakProperties[143]=lineBreakProperties[94];
+ lineBreakProperties[144]=lineBreakProperties[94];
+ lineBreakProperties[145]=lineBreakProperties[94];
+ lineBreakProperties[146]=lineBreakProperties[94];
+ lineBreakProperties[147]=lineBreakProperties[94];
+ lineBreakProperties[148]=lineBreakProperties[94];
+ lineBreakProperties[149]=lineBreakProperties[94];
+ lineBreakProperties[150]=lineBreakProperties[94];
+ lineBreakProperties[151]=lineBreakProperties[94];
+ lineBreakProperties[152]=lineBreakProperties[94];
+ lineBreakProperties[153]=lineBreakProperties[94];
+ lineBreakProperties[154]=lineBreakProperties[94];
+ lineBreakProperties[156]=lineBreakProperties[94];
+ lineBreakProperties[157]=lineBreakProperties[94];
+ lineBreakProperties[158]=lineBreakProperties[94];
+ lineBreakProperties[159]=lineBreakProperties[94];
+ lineBreakProperties[160]=lineBreakProperties[94];
+ lineBreakProperties[161]=lineBreakProperties[94];
+ lineBreakProperties[162]=lineBreakProperties[94];
+ lineBreakProperties[163]=lineBreakProperties[94];
+ lineBreakProperties[164]=lineBreakProperties[94];
+ lineBreakProperties[165]=lineBreakProperties[94];
+ lineBreakProperties[166]=lineBreakProperties[94];
+ lineBreakProperties[167]=lineBreakProperties[94];
+ lineBreakProperties[168]=lineBreakProperties[94];
+ lineBreakProperties[169]=lineBreakProperties[94];
+ lineBreakProperties[170]=lineBreakProperties[94];
+ lineBreakProperties[171]=lineBreakProperties[94];
+ lineBreakProperties[172]=lineBreakProperties[94];
+ lineBreakProperties[173]=lineBreakProperties[94];
+ lineBreakProperties[174]=lineBreakProperties[94];
+ lineBreakProperties[175]=lineBreakProperties[94];
+ lineBreakProperties[176]=lineBreakProperties[94];
+ lineBreakProperties[177]=lineBreakProperties[94];
+ lineBreakProperties[178]=lineBreakProperties[94];
+ lineBreakProperties[179]=lineBreakProperties[94];
+ lineBreakProperties[180]=lineBreakProperties[94];
+ lineBreakProperties[181]=lineBreakProperties[94];
+ lineBreakProperties[182]=lineBreakProperties[94];
+ lineBreakProperties[183]=lineBreakProperties[94];
+ lineBreakProperties[184]=lineBreakProperties[94];
+ lineBreakProperties[185]=lineBreakProperties[94];
+ lineBreakProperties[186]=lineBreakProperties[94];
+ lineBreakProperties[187]=lineBreakProperties[94];
+ lineBreakProperties[188]=lineBreakProperties[94];
+ lineBreakProperties[189]=lineBreakProperties[94];
+ lineBreakProperties[190]=lineBreakProperties[94];
+ lineBreakProperties[191]=lineBreakProperties[94];
+ lineBreakProperties[192]=lineBreakProperties[94];
+ lineBreakProperties[193]=lineBreakProperties[94];
+ lineBreakProperties[194]=lineBreakProperties[94];
+ lineBreakProperties[195]=lineBreakProperties[94];
+ lineBreakProperties[196]=lineBreakProperties[94];
+ lineBreakProperties[197]=lineBreakProperties[94];
+ lineBreakProperties[198]=lineBreakProperties[94];
+ lineBreakProperties[199]=lineBreakProperties[94];
+ lineBreakProperties[200]=lineBreakProperties[94];
+ lineBreakProperties[201]=lineBreakProperties[94];
+ lineBreakProperties[202]=lineBreakProperties[94];
+ lineBreakProperties[203]=lineBreakProperties[94];
+ lineBreakProperties[204]=lineBreakProperties[94];
+ lineBreakProperties[205]=lineBreakProperties[94];
+ lineBreakProperties[206]=lineBreakProperties[94];
+ lineBreakProperties[207]=lineBreakProperties[94];
+ lineBreakProperties[208]=lineBreakProperties[94];
+ lineBreakProperties[209]=lineBreakProperties[94];
+ lineBreakProperties[210]=lineBreakProperties[94];
+ lineBreakProperties[211]=lineBreakProperties[94];
+ lineBreakProperties[212]=lineBreakProperties[94];
+ lineBreakProperties[213]=lineBreakProperties[94];
+ lineBreakProperties[214]=lineBreakProperties[94];
+ lineBreakProperties[215]=lineBreakProperties[94];
+ lineBreakProperties[216]=lineBreakProperties[94];
+ lineBreakProperties[217]=lineBreakProperties[94];
+ lineBreakProperties[218]=lineBreakProperties[94];
+ lineBreakProperties[219]=lineBreakProperties[94];
+ lineBreakProperties[220]=lineBreakProperties[94];
+ lineBreakProperties[221]=lineBreakProperties[94];
+ lineBreakProperties[222]=lineBreakProperties[94];
+ lineBreakProperties[223]=lineBreakProperties[94];
+ lineBreakProperties[224]=lineBreakProperties[94];
+ lineBreakProperties[225]=lineBreakProperties[94];
+ lineBreakProperties[226]=lineBreakProperties[94];
+ lineBreakProperties[227]=lineBreakProperties[94];
+ lineBreakProperties[228]=lineBreakProperties[94];
+ lineBreakProperties[229]=lineBreakProperties[94];
+ lineBreakProperties[230]=lineBreakProperties[94];
+ lineBreakProperties[231]=lineBreakProperties[94];
+ lineBreakProperties[232]=lineBreakProperties[94];
+ lineBreakProperties[233]=lineBreakProperties[94];
+ lineBreakProperties[234]=lineBreakProperties[94];
+ lineBreakProperties[235]=lineBreakProperties[94];
+ lineBreakProperties[236]=lineBreakProperties[94];
+ lineBreakProperties[237]=lineBreakProperties[94];
+ lineBreakProperties[238]=lineBreakProperties[94];
+ lineBreakProperties[239]=lineBreakProperties[94];
+ lineBreakProperties[240]=lineBreakProperties[94];
+ lineBreakProperties[241]=lineBreakProperties[94];
+ lineBreakProperties[242]=lineBreakProperties[94];
+ lineBreakProperties[243]=lineBreakProperties[94];
+ lineBreakProperties[244]=lineBreakProperties[94];
+ lineBreakProperties[245]=lineBreakProperties[94];
+ lineBreakProperties[246]=lineBreakProperties[94];
+ lineBreakProperties[247]=lineBreakProperties[94];
+ lineBreakProperties[248]=lineBreakProperties[94];
+ lineBreakProperties[249]=lineBreakProperties[94];
+ lineBreakProperties[250]=lineBreakProperties[94];
+ lineBreakProperties[251]=lineBreakProperties[94];
+ lineBreakProperties[252]=lineBreakProperties[94];
+ lineBreakProperties[253]=lineBreakProperties[94];
+ lineBreakProperties[254]=lineBreakProperties[94];
+ lineBreakProperties[255]=lineBreakProperties[94];
+ lineBreakProperties[256]=lineBreakProperties[94];
+ lineBreakProperties[257]=lineBreakProperties[94];
+ lineBreakProperties[258]=lineBreakProperties[94];
+ lineBreakProperties[259]=lineBreakProperties[94];
+ lineBreakProperties[260]=lineBreakProperties[94];
+ lineBreakProperties[261]=lineBreakProperties[94];
+ lineBreakProperties[262]=lineBreakProperties[94];
+ lineBreakProperties[263]=lineBreakProperties[94];
+ lineBreakProperties[264]=lineBreakProperties[94];
+ lineBreakProperties[265]=lineBreakProperties[94];
+ lineBreakProperties[266]=lineBreakProperties[94];
+ lineBreakProperties[267]=lineBreakProperties[94];
+ lineBreakProperties[268]=lineBreakProperties[94];
+ lineBreakProperties[269]=lineBreakProperties[94];
+ lineBreakProperties[270]=lineBreakProperties[94];
+ lineBreakProperties[271]=lineBreakProperties[94];
+ lineBreakProperties[272]=lineBreakProperties[94];
+ lineBreakProperties[273]=lineBreakProperties[94];
+ lineBreakProperties[274]=lineBreakProperties[94];
+ lineBreakProperties[275]=lineBreakProperties[94];
+ lineBreakProperties[276]=lineBreakProperties[94];
+ lineBreakProperties[277]=lineBreakProperties[94];
+ lineBreakProperties[278]=lineBreakProperties[94];
+ lineBreakProperties[279]=lineBreakProperties[94];
+ lineBreakProperties[280]=lineBreakProperties[94];
+ lineBreakProperties[281]=lineBreakProperties[94];
+ lineBreakProperties[282]=lineBreakProperties[94];
+ lineBreakProperties[283]=lineBreakProperties[94];
+ lineBreakProperties[284]=lineBreakProperties[94];
+ lineBreakProperties[285]=lineBreakProperties[94];
+ lineBreakProperties[286]=lineBreakProperties[94];
+ lineBreakProperties[287]=lineBreakProperties[94];
+ lineBreakProperties[288]=lineBreakProperties[94];
+ lineBreakProperties[289]=lineBreakProperties[94];
+ lineBreakProperties[290]=lineBreakProperties[94];
+ lineBreakProperties[291]=lineBreakProperties[94];
+ lineBreakProperties[292]=lineBreakProperties[94];
+ lineBreakProperties[293]=lineBreakProperties[94];
+ lineBreakProperties[294]=lineBreakProperties[94];
+ lineBreakProperties[295]=lineBreakProperties[94];
+ lineBreakProperties[296]=lineBreakProperties[94];
+ lineBreakProperties[297]=lineBreakProperties[94];
+ lineBreakProperties[298]=lineBreakProperties[94];
+ lineBreakProperties[299]=lineBreakProperties[94];
+ lineBreakProperties[300]=lineBreakProperties[94];
+ lineBreakProperties[301]=lineBreakProperties[94];
+ lineBreakProperties[302]=lineBreakProperties[94];
+ lineBreakProperties[303]=lineBreakProperties[94];
+ lineBreakProperties[304]=lineBreakProperties[94];
+ lineBreakProperties[305]=lineBreakProperties[94];
+ lineBreakProperties[306]=lineBreakProperties[94];
+ lineBreakProperties[307]=lineBreakProperties[94];
+ lineBreakProperties[308]=lineBreakProperties[94];
+ lineBreakProperties[309]=lineBreakProperties[94];
+ lineBreakProperties[310]=lineBreakProperties[94];
+ lineBreakProperties[311]=lineBreakProperties[94];
+ lineBreakProperties[312]=lineBreakProperties[94];
+ lineBreakProperties[313]=lineBreakProperties[94];
+ lineBreakProperties[314]=lineBreakProperties[94];
+ lineBreakProperties[315]=lineBreakProperties[94];
+ lineBreakProperties[316]=lineBreakProperties[94];
+ lineBreakProperties[317]=lineBreakProperties[94];
+ lineBreakProperties[318]=lineBreakProperties[94];
+ lineBreakProperties[321]=lineBreakProperties[94];
+ lineBreakProperties[322]=lineBreakProperties[94];
+ lineBreakProperties[323]=lineBreakProperties[94];
+ lineBreakProperties[324]=lineBreakProperties[94];
+ lineBreakProperties[325]=lineBreakProperties[94];
+ lineBreakProperties[326]=lineBreakProperties[94];
+ lineBreakProperties[327]=lineBreakProperties[94];
+ lineBreakProperties[328]=lineBreakProperties[94];
+ lineBreakProperties[330]=lineBreakProperties[16];
+ lineBreakProperties[331]=lineBreakProperties[16];
+ lineBreakProperties[332]=lineBreakProperties[16];
+ lineBreakProperties[333]=lineBreakProperties[16];
+ lineBreakProperties[335]=lineBreakProperties[16];
+ lineBreakProperties[337]=lineBreakProperties[16];
+ lineBreakProperties[338]=lineBreakProperties[16];
+ lineBreakProperties[339]=lineBreakProperties[16];
+ lineBreakProperties[340]=lineBreakProperties[16];
+ lineBreakProperties[341]=lineBreakProperties[16];
+ lineBreakProperties[342]=lineBreakProperties[16];
+ lineBreakProperties[343]=lineBreakProperties[16];
+ lineBreakProperties[351]=lineBreakProperties[344];
+ lineBreakProperties[352]=lineBreakProperties[345];
+ lineBreakProperties[353]=lineBreakProperties[346];
+ lineBreakProperties[354]=lineBreakProperties[347];
+ lineBreakProperties[355]=lineBreakProperties[348];
+ lineBreakProperties[356]=lineBreakProperties[349];
+ lineBreakProperties[357]=lineBreakProperties[350];
+ lineBreakProperties[358]=lineBreakProperties[344];
+ lineBreakProperties[359]=lineBreakProperties[345];
+ lineBreakProperties[360]=lineBreakProperties[346];
+ lineBreakProperties[361]=lineBreakProperties[347];
+ lineBreakProperties[362]=lineBreakProperties[348];
+ lineBreakProperties[363]=lineBreakProperties[349];
+ lineBreakProperties[364]=lineBreakProperties[350];
+ lineBreakProperties[365]=lineBreakProperties[344];
+ lineBreakProperties[366]=lineBreakProperties[345];
+ lineBreakProperties[367]=lineBreakProperties[346];
+ lineBreakProperties[368]=lineBreakProperties[347];
+ lineBreakProperties[369]=lineBreakProperties[348];
+ lineBreakProperties[370]=lineBreakProperties[349];
+ lineBreakProperties[371]=lineBreakProperties[350];
+ lineBreakProperties[372]=lineBreakProperties[344];
+ lineBreakProperties[373]=lineBreakProperties[345];
+ lineBreakProperties[374]=lineBreakProperties[346];
+ lineBreakProperties[375]=lineBreakProperties[347];
+ lineBreakProperties[376]=lineBreakProperties[348];
+ lineBreakProperties[377]=lineBreakProperties[349];
+ lineBreakProperties[378]=lineBreakProperties[350];
+ lineBreakProperties[379]=lineBreakProperties[344];
+ lineBreakProperties[380]=lineBreakProperties[345];
+ lineBreakProperties[381]=lineBreakProperties[346];
+ lineBreakProperties[382]=lineBreakProperties[347];
+ lineBreakProperties[383]=lineBreakProperties[348];
+ lineBreakProperties[384]=lineBreakProperties[349];
+ lineBreakProperties[385]=lineBreakProperties[350];
+ lineBreakProperties[386]=lineBreakProperties[344];
+ lineBreakProperties[387]=lineBreakProperties[345];
+ lineBreakProperties[388]=lineBreakProperties[346];
+ lineBreakProperties[389]=lineBreakProperties[347];
+ lineBreakProperties[390]=lineBreakProperties[348];
+ lineBreakProperties[391]=lineBreakProperties[349];
+ lineBreakProperties[392]=lineBreakProperties[350];
+ lineBreakProperties[393]=lineBreakProperties[344];
+ lineBreakProperties[394]=lineBreakProperties[345];
+ lineBreakProperties[395]=lineBreakProperties[346];
+ lineBreakProperties[396]=lineBreakProperties[347];
+ lineBreakProperties[397]=lineBreakProperties[348];
+ lineBreakProperties[398]=lineBreakProperties[349];
+ lineBreakProperties[399]=lineBreakProperties[350];
+ lineBreakProperties[400]=lineBreakProperties[344];
+ lineBreakProperties[401]=lineBreakProperties[345];
+ lineBreakProperties[402]=lineBreakProperties[346];
+ lineBreakProperties[403]=lineBreakProperties[347];
+ lineBreakProperties[404]=lineBreakProperties[348];
+ lineBreakProperties[405]=lineBreakProperties[349];
+ lineBreakProperties[406]=lineBreakProperties[350];
+ lineBreakProperties[407]=lineBreakProperties[344];
+ lineBreakProperties[408]=lineBreakProperties[345];
+ lineBreakProperties[409]=lineBreakProperties[346];
+ lineBreakProperties[410]=lineBreakProperties[347];
+ lineBreakProperties[411]=lineBreakProperties[348];
+ lineBreakProperties[412]=lineBreakProperties[349];
+ lineBreakProperties[413]=lineBreakProperties[350];
+ lineBreakProperties[414]=lineBreakProperties[344];
+ lineBreakProperties[415]=lineBreakProperties[345];
+ lineBreakProperties[416]=lineBreakProperties[346];
+ lineBreakProperties[417]=lineBreakProperties[347];
+ lineBreakProperties[418]=lineBreakProperties[348];
+ lineBreakProperties[419]=lineBreakProperties[349];
+ lineBreakProperties[420]=lineBreakProperties[350];
+ lineBreakProperties[421]=lineBreakProperties[344];
+ lineBreakProperties[422]=lineBreakProperties[345];
+ lineBreakProperties[423]=lineBreakProperties[346];
+ lineBreakProperties[424]=lineBreakProperties[347];
+ lineBreakProperties[425]=lineBreakProperties[348];
+ lineBreakProperties[426]=lineBreakProperties[349];
+ lineBreakProperties[427]=lineBreakProperties[350];
+ lineBreakProperties[428]=lineBreakProperties[344];
+ lineBreakProperties[429]=lineBreakProperties[345];
+ lineBreakProperties[430]=lineBreakProperties[346];
+ lineBreakProperties[433]=lineBreakProperties[432];
+ lineBreakProperties[434]=lineBreakProperties[432];
+ lineBreakProperties[435]=lineBreakProperties[432];
+ lineBreakProperties[436]=lineBreakProperties[432];
+ lineBreakProperties[437]=lineBreakProperties[432];
+ lineBreakProperties[438]=lineBreakProperties[432];
+ lineBreakProperties[439]=lineBreakProperties[432];
+ lineBreakProperties[440]=lineBreakProperties[432];
+ lineBreakProperties[441]=lineBreakProperties[432];
+ lineBreakProperties[442]=lineBreakProperties[432];
+ lineBreakProperties[443]=lineBreakProperties[432];
+ lineBreakProperties[444]=lineBreakProperties[432];
+ lineBreakProperties[445]=lineBreakProperties[432];
+ lineBreakProperties[446]=lineBreakProperties[432];
+ lineBreakProperties[447]=lineBreakProperties[432];
+ lineBreakProperties[449]=lineBreakProperties[448];
+ lineBreakProperties[450]=lineBreakProperties[448];
+ lineBreakProperties[451]=lineBreakProperties[448];
+ lineBreakProperties[452]=lineBreakProperties[448];
+ lineBreakProperties[453]=lineBreakProperties[448];
+ lineBreakProperties[454]=lineBreakProperties[448];
+ lineBreakProperties[455]=lineBreakProperties[448];
+ lineBreakProperties[456]=lineBreakProperties[448];
+ lineBreakProperties[457]=lineBreakProperties[448];
+ lineBreakProperties[458]=lineBreakProperties[448];
+ lineBreakProperties[459]=lineBreakProperties[448];
+ lineBreakProperties[460]=lineBreakProperties[448];
+ lineBreakProperties[461]=lineBreakProperties[448];
+ lineBreakProperties[462]=lineBreakProperties[448];
+ lineBreakProperties[463]=lineBreakProperties[448];
+ lineBreakProperties[464]=lineBreakProperties[448];
+ lineBreakProperties[465]=lineBreakProperties[448];
+ lineBreakProperties[466]=lineBreakProperties[448];
+ lineBreakProperties[467]=lineBreakProperties[448];
+ lineBreakProperties[468]=lineBreakProperties[448];
+ lineBreakProperties[469]=lineBreakProperties[448];
+ lineBreakProperties[470]=lineBreakProperties[448];
+ lineBreakProperties[471]=lineBreakProperties[448];
+ lineBreakProperties[472]=lineBreakProperties[448];
+ lineBreakProperties[473]=lineBreakProperties[448];
+ lineBreakProperties[474]=lineBreakProperties[448];
+ lineBreakProperties[475]=lineBreakProperties[448];
+ lineBreakProperties[476]=lineBreakProperties[448];
+ lineBreakProperties[477]=lineBreakProperties[448];
+ lineBreakProperties[478]=lineBreakProperties[448];
+ lineBreakProperties[479]=lineBreakProperties[448];
+ lineBreakProperties[480]=lineBreakProperties[448];
+ lineBreakProperties[481]=lineBreakProperties[448];
+ lineBreakProperties[482]=lineBreakProperties[448];
+ lineBreakProperties[483]=lineBreakProperties[448];
+ lineBreakProperties[484]=lineBreakProperties[448];
+ lineBreakProperties[485]=lineBreakProperties[448];
+ lineBreakProperties[486]=lineBreakProperties[448];
+ lineBreakProperties[487]=lineBreakProperties[448];
+ lineBreakProperties[488]=lineBreakProperties[448];
+ lineBreakProperties[489]=lineBreakProperties[448];
+ lineBreakProperties[490]=lineBreakProperties[448];
+ lineBreakProperties[491]=lineBreakProperties[448];
+ lineBreakProperties[492]=lineBreakProperties[448];
+ lineBreakProperties[493]=lineBreakProperties[448];
+ lineBreakProperties[494]=lineBreakProperties[448];
+ lineBreakProperties[495]=lineBreakProperties[448];
+ lineBreakProperties[496]=lineBreakProperties[448];
+ lineBreakProperties[497]=lineBreakProperties[448];
+ lineBreakProperties[498]=lineBreakProperties[94];
+ lineBreakProperties[499]=lineBreakProperties[94];
+ lineBreakProperties[504]=lineBreakProperties[2];
+ lineBreakProperties[505]=lineBreakProperties[2];
+ };
+
+ public static final byte LINE_BREAK_PROPERTY_AI=1;
+ public static final byte LINE_BREAK_PROPERTY_AL=2;
+ public static final byte LINE_BREAK_PROPERTY_B2=3;
+ public static final byte LINE_BREAK_PROPERTY_BA=4;
+ public static final byte LINE_BREAK_PROPERTY_BB=5;
+ public static final byte LINE_BREAK_PROPERTY_BK=6;
+ public static final byte LINE_BREAK_PROPERTY_CB=7;
+ public static final byte LINE_BREAK_PROPERTY_CL=8;
+ public static final byte LINE_BREAK_PROPERTY_CM=9;
+ public static final byte LINE_BREAK_PROPERTY_CR=10;
+ public static final byte LINE_BREAK_PROPERTY_EX=11;
+ public static final byte LINE_BREAK_PROPERTY_GL=12;
+ public static final byte LINE_BREAK_PROPERTY_H2=13;
+ public static final byte LINE_BREAK_PROPERTY_H3=14;
+ public static final byte LINE_BREAK_PROPERTY_HY=15;
+ public static final byte LINE_BREAK_PROPERTY_ID=16;
+ public static final byte LINE_BREAK_PROPERTY_IN=17;
+ public static final byte LINE_BREAK_PROPERTY_IS=18;
+ public static final byte LINE_BREAK_PROPERTY_JL=19;
+ public static final byte LINE_BREAK_PROPERTY_JT=20;
+ public static final byte LINE_BREAK_PROPERTY_JV=21;
+ public static final byte LINE_BREAK_PROPERTY_LF=22;
+ public static final byte LINE_BREAK_PROPERTY_NL=23;
+ public static final byte LINE_BREAK_PROPERTY_NS=24;
+ public static final byte LINE_BREAK_PROPERTY_NU=25;
+ public static final byte LINE_BREAK_PROPERTY_OP=26;
+ public static final byte LINE_BREAK_PROPERTY_PO=27;
+ public static final byte LINE_BREAK_PROPERTY_PR=28;
+ public static final byte LINE_BREAK_PROPERTY_QU=29;
+ public static final byte LINE_BREAK_PROPERTY_SA=30;
+ public static final byte LINE_BREAK_PROPERTY_SG=31;
+ public static final byte LINE_BREAK_PROPERTY_SP=32;
+ public static final byte LINE_BREAK_PROPERTY_SY=33;
+ public static final byte LINE_BREAK_PROPERTY_WJ=34;
+ public static final byte LINE_BREAK_PROPERTY_XX=35;
+ public static final byte LINE_BREAK_PROPERTY_ZW=36;
+
+ private static String lineBreakPropertyShortNames[] = {"AI","AL","B2","BA","BB","BK","CB","CL","CM","CR","EX",
+ "GL","H2","H3","HY","ID","IN","IS","JL","JT","JV","LF","NL","NS","NU","OP","PO","PR","QU","SA","SG","SP",
+ "SY","WJ","XX","ZW"};
+
+ private static String lineBreakPropertyLongNames[] = {"Ambiguous","Alphabetic","Break_Both","Break_After","Break_Before",
+ "Mandatory_Break","Contingent_Break","Close_Punctuation","Combining_Mark","Carriage_Return","Exclamation",
+ "Glue","H2","H3","Hyphen","Ideographic","Inseparable","Infix_Numeric","JL","JT","JV","Line_Feed","Next_Line",
+ "Nonstarter","Numeric","Open_Punctuation","Postfix_Numeric","Prefix_Numeric","Quotation","Complex_Context",
+ "Surrogate","Space","Break_Symbols","Word_Joiner","Unknown","ZWSpace"};
+
+ public static String getLineBreakPropertyShortName(byte i) {
+ if (i>0 && i<=lineBreakPropertyShortNames.length) {
+ return lineBreakPropertyShortNames[i-1];
+ } else {
+ return null;
+ }
+ }
+
+ public static String getLineBreakPropertyLongName(byte i) {
+ if (i>0 && i<=lineBreakPropertyLongNames.length) {
+ return lineBreakPropertyLongNames[i-1];
+ } else {
+ return null;
+ }
+ }
+
+ public static byte getLineBreakProperty(char c) {
+ return lineBreakProperties[c/128][c%128];
+ }
+
+ public static byte getLineBreakPairProperty(int lineBreakPropertyBefore,int lineBreakPropertyAfter) {
+ return PAIR_TABLE[lineBreakPropertyBefore-1][lineBreakPropertyAfter-1];
+ }
+
+};