]> source.dussan.org Git - poi.git/commitdiff
Support for continued NameRecords, see bugzilla 50244
authorYegor Kozlov <yegor@apache.org>
Tue, 14 Dec 2010 18:17:59 +0000 (18:17 +0000)
committerYegor Kozlov <yegor@apache.org>
Tue, 14 Dec 2010 18:17:59 +0000 (18:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1049202 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/record/NameRecord.java
src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java
src/testcases/org/apache/poi/hssf/record/TestNameRecord.java

index 5eb09cae6a68e305b0e6c1fce3cc866a8f618e5a..589ce752cb0d36fd0a9a5c6565ee53a339e516d5 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta1" date="2010-??-??">
+           <action dev="poi-developers" type="add">50244 - Support for continued NameRecords</action>
            <action dev="POI-DEVELOPERS" type="fix">50416 - Correct shifting of the first or last row in a sheet by multiple rows</action>
            <action dev="POI-DEVELOPERS" type="fix">50440 - Support evaluating formulas with newlines in them, which XSSF may have (but HSSF may not)</action>
            <action dev="POI-DEVELOPERS" type="add">Added inline string support to XSSF EventModel</action>
index 25049fdade1a73426aae3487910829fbcf23f0f1..904133ce64986febbb680e80ccb363f041e06f84 100644 (file)
 
 package org.apache.poi.hssf.record;
 
+import org.apache.poi.hssf.record.cont.ContinuableRecord;
+import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
 import org.apache.poi.ss.formula.ptg.Area3DPtg;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.formula.ptg.Ref3DPtg;
 import org.apache.poi.ss.formula.Formula;
-import org.apache.poi.util.HexDump;
-import org.apache.poi.util.LittleEndianInput;
-import org.apache.poi.util.LittleEndianOutput;
-import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.*;
 
 /**
  * Title:        DEFINEDNAME Record (0x0018) <p/>
@@ -35,7 +34,7 @@ import org.apache.poi.util.StringUtil;
  * @author Glen Stampoultzis (glens at apache.org)
  * @author Petr Udalau - added method setFunction(boolean)
  */
-public final class NameRecord extends StandardRecord {
+public final class NameRecord extends ContinuableRecord {
     public final static short sid = 0x0018;
        /**Included for completeness sake, not implemented */
        public final static byte  BUILTIN_CONSOLIDATE_AREA      = 1;
@@ -342,8 +341,12 @@ public final class NameRecord extends StandardRecord {
                return field_17_status_bar_text;
        }
 
-
-       public void serialize(LittleEndianOutput out) {
+    /**
+     * NameRecord can span into
+     *
+     * @param out a data output stream
+     */
+       public void serialize(ContinuableRecordOutput out) {
 
                int field_7_length_custom_menu = field_14_custom_menu_text.length();
                int field_8_length_description_text = field_15_description_text.length();
@@ -430,7 +433,13 @@ public final class NameRecord extends StandardRecord {
         * @param ris the RecordInputstream to read the record from
         */
        public NameRecord(RecordInputStream ris) {
-               LittleEndianInput in = ris;
+        // YK: Formula data can span into continue records, for example,
+        // when containing a large array of strings. See Bugzilla 50244
+
+        // read all remaining bytes and wrap into a LittleEndianInput
+        byte[] remainder = ris.readAllContinuedRemainder();
+        LittleEndianInput in = new LittleEndianByteArrayInputStream(remainder);
+
                field_1_option_flag                 = in.readShort();
                field_2_keyboard_shortcut           = in.readByte();
                int field_3_length_name_text        = in.readUByte();
index 0f85139a3d2642b6fef85b77d78501d6f14666ae..d26c85dff8dbaf6cff87e8a4fabd780daebe3368 100644 (file)
@@ -204,10 +204,22 @@ public final class ContinuableRecordOutput implements LittleEndianOutput {
                writeContinueIfRequired(b.length);
                _ulrOutput.write(b);
        }
+
        public void write(byte[] b, int offset, int len) {
-               writeContinueIfRequired(len);
-               _ulrOutput.write(b, offset, len);
+
+        int i=0;
+        while(true) {
+            int nWritableChars = Math.min(len - i, _ulrOutput.getAvailableSpace() / 1);
+            for ( ; nWritableChars > 0; nWritableChars--) {
+                _ulrOutput.writeByte(b[offset + i++]);
+            }
+            if (i >= len) {
+                break;
+            }
+            writeContinue();
+        }
        }
+
        public void writeByte(int v) {
                writeContinueIfRequired(1);
                _ulrOutput.writeByte(v);
index 8840960a5a4fc93510de233000de6d56eb1e9ed9..c68dbd340e6cf9175f27e58508abfc5764c92a89 100644 (file)
@@ -19,6 +19,9 @@ package org.apache.poi.hssf.record;
 
 import org.apache.poi.hssf.usermodel.HSSFName;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.formula.ptg.ArrayPtg;
+import org.apache.poi.ss.formula.ptg.Ptg;
+import org.apache.poi.util.HexDump;
 import org.apache.poi.util.HexRead;
 
 import junit.framework.AssertionFailedError;
@@ -81,4 +84,610 @@ public final class TestNameRecord extends TestCase {
                name.setRefersToFormula("5*6");
                assertEquals("5*6", name.getRefersToFormula());
        }
+
+    /**
+     *  A NameRecord followed by a ContinueRecord. See Bugzilla 50244
+     */
+    public void test50244(){
+        String record_0x0018 =
+                "                                          18 00 " +
+                "21 1E 00 00 00 11 08 00 00 00 03 00 00 00 00 00 " +
+                "00 77 44 61 74 61 47 72 75 70 70 65 53 65 72 69 " +
+                "65 2E 60 00 B7 02 0C 00 57 03 00 B7 02 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 30 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 30 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 30 31 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 30 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 30 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 30 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 30 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "30 33 02 09 00 00 31 2E 54 32 30 2E 30 31 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 31 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 31 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 31 34 02 09 00 00 31 2E 54 32 30 2E 30 31 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 31 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 31 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 31 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 35 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 30 32 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 32 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 32 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 32 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "32 37 02 09 00 00 31 2E 54 32 30 2E 30 32 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 33 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 33 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 33 37 02 09 00 00 31 2E 54 32 30 2E 30 33 38 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 33 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 33 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 33 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 33 39 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 30 34 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 34 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 30 02 09 00 00 31 2E 54 32 30 2E 30 35 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 36 31 02 09 00 00 31 2E 54 32 30 2E 30 36 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 32 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 30 36 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 36 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 33 02 09 00 00 31 2E 54 32 30 2E 30 37 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 37 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 37 35 02 09 00 00 31 2E 54 32 30 2E 30 37 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 36 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 38 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 38 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 38 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 38 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 37 02 09 00 00 31 2E 54 32 30 2E 30 39 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 39 38 02 09 00 00 31 2E 54 32 30 2E 30 39 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 39 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 39 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 39 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 31 31 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 30 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 30 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 31 02 09 00 00 31 2E 54 32 30 2E 31 31 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 32 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 32 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 32 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 32 32 02 09 00 00 31 2E 54 32 30 2E 31 32 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 33 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 33 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 33 02 09 00 00 31 2E 54 32 30 2E 31 33 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 31 33 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 33 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "33 34 02 09 00 00 31 2E 54 32 30 2E 31 33 35 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 35 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 35 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 35 02 09 00 00 31 2E 54 32 30 2E 31 34 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 34 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 34 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 34 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 37 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 31 34 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 35 37 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "35 38 02 09 00 00 31 2E 54 32 30 2E 31 35 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 35 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 35 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 35 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 35 39 02 09 00 00 31 2E 54 32 30 2E 31 36 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 36 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 37 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 37 30 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
+                "30 02 09 00 00 31 2E 54 32 30 2E 31 37 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 37 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 37 31 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 39 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 39 02 09 00 00 31 2E 54 36 30 2E 30 30 39 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 30 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 30 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 30 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 31 02 09 00 00 31 2E 54 36 30 2E 30 31 31 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 31 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 32 31 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 32 31 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 32 31 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
+                "32 02 09 00 00 31 2E 54 36 30 2E 30 32 32 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 32 32 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 32 33 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 32 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 33 02 09 00 00 31 2E 54 36 30 2E 30 33 33 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 33 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 33 34 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 33 34 02 09 00 00 31 2E 54 36 30 2E 30 33 34 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 33 35 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 35 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 35 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 34 35 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
+                "35 02 09 00 00 31 2E 54 36 30 2E 30 34 35 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 34 36 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 34 36 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 34 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "34 37 02 09 00 00 31 2E 54 36 30 2E 30 34 37 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 37 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 35 37 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 35 37 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 35 37 02 09 00 00 31 2E 54 36 30 2E 30 35 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 35 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 35 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 35 39 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 35 39 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
+                "39 02 09 00 00 31 2E 54 36 30 2E 30 36 30 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 36 30 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 36 30 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 35 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "35 30 02 09 00 00 31 2E 54 36 30 2E 30 35 30 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 39 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 34 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 34 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 34 38 02 09 00 00 31 2E 54 36 30 2E 30 34 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 34 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 38 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 33 38 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
+                "37 02 09 00 00 31 2E 54 36 30 2E 30 33 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 33 37 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 33 36 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 33 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "33 36 02 09 00 00 31 2E 54 36 30 2E 30 32 36 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 36 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 32 36 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 32 35 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 32 35 02 09 00 00 31 2E 54 36 30 2E 30 32 35 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 32 34 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 32 34 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 32 34 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 31 34 02 09 00 00 31 2E 54 36 30 2E 30 31 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 31 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 31 33 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 31 33 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 31 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "31 32 02 09 00 00 31 2E 54 36 30 2E 30 31 32 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 32 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 30 32 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 30 32 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 30 32 02 09 00 00 31 2E 54 36 30 2E 30 30 31 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 30 31 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 30 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 37 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 37 32 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 36 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 36 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 36 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 36 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "36 31 02 09 00 00 31 2E 54 32 30 2E 31 36 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 35 30 02 09 00 00 31 2E 54 32 30 2E 31 35 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 35 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 34 39 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 34 39 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 39 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 31 34 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 34 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 38 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "33 38 02 09 00 00 31 2E 54 32 30 2E 31 33 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 33 36 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 33 36 02 09 00 00 31 2E 54 32 30 2E 31 33 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 35 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 31 32 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 32 34 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 32 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 32 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 34 02 09 00 00 31 2E 54 32 30 2E 31 31 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 31 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 31 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 31 33 02 09 00 00 31 2E 54 32 30 2E 31 31 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 31 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 31 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 32 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 30 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 30 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 30 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 30 30 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "30 30 02 09 00 00 31 2E 54 32 30 2E 31 30 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 39 02 09 00 00 31 2E 54 32 30 2E 30 38 39 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 39 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 38 02 09 00 00 31 2E 54 32 30 2E 30 37 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 30 37 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 37 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 37 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 37 02 09 00 00 31 2E 54 32 30 2E 30 37 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 36 36 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 36 36 02 09 00 00 31 2E 54 32 30 2E 30 36 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 35 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 34 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "34 02 09 00 00 31 2E 54 32 30 2E 30 36 34 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 35 34 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 34 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 33 02 09 00 00 31 2E 54 32 30 2E 30 35 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 32 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 32 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 35 32 02 09 00 00 31 2E 54 32 30 2E 30 34 32 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 32 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 34 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 34 31 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 34 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 30 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 34 30 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 30 02 09 00 00 31 2E 54 32 30 2E 30 33 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 32 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 32 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 32 38 02 09 00 00 31 2E 54 32 30 2E 30 32 38 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 31 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 31 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 31 38 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 30 31 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 31 37 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 31 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 31 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "31 36 02 09 00 00 31 2E 54 32 30 2E 30 30 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 30 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 30 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 30 35 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 30 35 02 09 00 00 31 2E 54 32 30 2E 30 30 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 30 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 30 34 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 30 34 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 30 37 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
+                "37 02 09 00 00 31 2E 54 32 30 2E 30 30 37 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 30 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 30 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 30 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "30 39 02 09 00 00 31 2E 54 32 30 2E 30 30 39 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 30 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 31 39 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 31 39 02 09 00 00 31 2E 54 32 30 2E 30 32 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 32 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 32 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 31 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 33 31 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 33 31 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 33 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 32 02 09 00 00 31 2E 54 32 30 2E 30 33 32 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 33 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 33 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 34 33 02 09 00 00 31 2E 54 32 30 2E 30 34 33 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 33 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 34 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 34 34 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 34 34 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 30 34 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 34 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "35 35 02 09 00 00 31 2E 54 32 30 2E 30 35 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 35 36 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 35 36 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 35 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 35 37 02 09 00 00 31 2E 54 32 30 2E 30 35 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 37 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 37 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 36 38 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
+                "38 02 09 00 00 31 2E 54 32 30 2E 30 36 38 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 36 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 36 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 36 39 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 39 02 09 00 00 31 2E 54 32 30 2E 30 37 39 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 39 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 38 30 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 38 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 30 02 09 00 00 31 2E 54 32 30 2E 30 38 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 39 31 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 39 31 02 09 00 00 31 2E 54 32 30 2E 30 39 " +
+                "31 02 09 00 00 31 2E 54 32 30 2E 30 39 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 39 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 39 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 39 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 33 02 09 00 00 31 2E 54 32 30 2E 30 39 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 30 33 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 30 33 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 30 33 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 30 34 02 09 00 00 31 2E 54 32 30 2E 31 30 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 30 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 30 35 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 35 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 35 02 09 00 00 31 2E 54 32 30 2E 31 31 " +
+                "35 02 09 00 00 31 2E 54 32 30 2E 31 31 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 36 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 36 02 09 00 00 31 2E 54 32 30 2E 31 31 37 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 37 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 31 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 32 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 32 37 02 09 00 00 31 2E 54 32 30 2E 31 32 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 32 38 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 32 38 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 32 38 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 39 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 31 32 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 33 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 33 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 33 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "34 30 02 09 00 00 31 2E 54 32 30 2E 31 34 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 34 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 34 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 31 02 09 00 00 31 2E 54 32 30 2E 31 35 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 35 31 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 35 31 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 35 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 35 32 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 31 35 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 33 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 36 33 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "36 33 02 09 00 00 31 2E 54 32 30 2E 31 36 33 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 36 35 02 09 00 00 31 2E 54 32 30 2E 31 36 35 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 35 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 30 33 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 30 33 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 30 33 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 30 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 30 34 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 30 35 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 35 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 35 02 09 00 00 31 2E 54 36 30 2E 30 31 35 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 31 35 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 35 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 36 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 36 02 09 00 00 31 2E 54 36 30 2E 30 31 36 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 37 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 31 37 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 31 37 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 32 37 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
+                "37 02 09 00 00 31 2E 54 36 30 2E 30 32 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 32 38 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 32 38 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 32 38 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 39 02 09 00 00 31 2E 54 36 30 2E 30 32 39 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 39 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 33 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 33 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 33 39 02 09 00 00 31 2E 54 36 30 2E 30 34 30 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 34 30 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 34 30 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 34 31 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 34 31 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
+                "31 02 09 00 00 31 2E 54 36 30 2E 30 35 31 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 35 31 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 35 31 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 35 32 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "35 32 02 09 00 00 31 2E 54 36 30 2E 30 35 32 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 35 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 35 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 35 33 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 35 36 02 09 00 00 31 2E 54 36 30 2E 30 35 36 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 35 36 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 35 35 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 35 35 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 35 35 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
+                "34 02 09 00 00 31 2E 54 36 30 2E 30 35 34 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 35 34 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 34 34 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 34 34 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "34 34 02 09 00 00 31 2E 54 36 30 2E 30 34 33 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 34 33 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 34 33 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 34 32 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 34 32 02 09 00 00 31 2E 54 36 30 2E 30 34 32 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 33 32 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 33 32 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 33 32 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 33 31 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
+                "31 02 09 00 00 31 2E 54 36 30 2E 30 33 31 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 33 30 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 33 30 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 33 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "32 30 02 09 00 00 31 2E 54 36 30 2E 30 32 30 02 " +
+                "09 00 00 31 2E 54 36 30 2E 30 32 30 02 09 00 00 " +
+                "31 2E 54 36 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
+                "36 30 2E 30 31 39 02 09 00 00 31 2E 54 36 30 2E " +
+                "30 31 39 02 09 00 00 31 2E 54 36 30 2E 30 31 38 " +
+                "02 09 00 00 31 2E 54 36 30 2E 30 31 38 02 09 00 " +
+                "00 31 2E 54 36 30 2E 30 31 38 02 09 00 00 31 2E " +
+                "54 36 30 2E 30 30 38 02 09 00 00 31 2E 54 36 30 " +
+                "2E 30 30 38 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
+                "38 02 09 00 00 31 2E 54 36 30 2E 30 30 37 02 09 " +
+                "00 00 31 2E 54 36 30 2E 30 30 37 02 09 00 00 31 " +
+                "2E 54 36 30 2E 30 30 37 02 09 00 00 31 2E 54 36 " +
+                "30 2E 30 30 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
+                "30 36 02 09 00 00 31 2E 54 36 30 2E 30 30 36 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 36 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 36 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 36 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 36 37 02 09 00 00 31 2E 54 32 30 2E 31 36 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 36 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 36 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 36 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 36 36 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 31 35 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 35 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 35 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 35 35 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "35 35 02 09 00 00 31 2E 54 32 30 2E 31 35 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 35 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 35 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 34 34                                       ";
+
+        String record_0x03C =
+                "         3C 00 62 05 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
+                "33 02 09 00 00 31 2E 54 32 30 2E 31 34 33 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 34 33 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 34 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 34 32 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "34 32 02 09 00 00 31 2E 54 32 30 2E 31 33 32 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 33 32 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 33 32 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 33 31 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 33 31 02 09 00 00 31 2E 54 32 30 2E 31 33 31 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 33 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 33 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 33 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 32 30 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
+                "30 02 09 00 00 31 2E 54 32 30 2E 31 32 30 02 09 " +
+                "00 00 31 2E 54 32 30 2E 31 31 39 02 09 00 00 31 " +
+                "2E 54 32 30 2E 31 31 39 02 09 00 00 31 2E 54 32 " +
+                "30 2E 31 31 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
+                "31 38 02 09 00 00 31 2E 54 32 30 2E 31 31 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 31 31 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 31 30 38 02 09 00 00 31 2E 54 " +
+                "32 30 2E 31 30 38 02 09 00 00 31 2E 54 32 30 2E " +
+                "31 30 38 02 09 00 00 31 2E 54 32 30 2E 31 30 37 " +
+                "02 09 00 00 31 2E 54 32 30 2E 31 30 37 02 09 00 " +
+                "00 31 2E 54 32 30 2E 31 30 37 02 09 00 00 31 2E " +
+                "54 32 30 2E 31 30 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 31 30 36 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 39 36 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 39 36 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 39 36 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 39 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "39 35 02 09 00 00 31 2E 54 32 30 2E 30 39 35 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 39 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 39 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 39 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 38 34 02 09 00 00 31 2E 54 32 30 2E 30 38 34 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 38 34 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 38 33 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 38 33 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 38 33 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 38 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 38 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 37 32 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 37 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "37 32 02 09 00 00 31 2E 54 32 30 2E 30 37 31 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 37 31 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 37 31 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 37 30 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 37 30 02 09 00 00 31 2E 54 32 30 2E 30 37 30 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 36 30 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 36 30 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 36 30 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 35 39 02 09 00 00 31 2E 54 32 30 2E 30 35 " +
+                "39 02 09 00 00 31 2E 54 32 30 2E 30 35 39 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 35 38 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 35 38 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 35 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "34 38 02 09 00 00 31 2E 54 32 30 2E 30 34 38 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 34 38 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 34 37 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 34 37 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 34 37 02 09 00 00 31 2E 54 32 30 2E 30 34 36 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 34 36 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 34 36 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 33 36 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 33 36 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
+                "36 02 09 00 00 31 2E 54 32 30 2E 30 33 35 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 33 35 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 33 35 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 33 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "33 34 02 09 00 00 31 2E 54 32 30 2E 30 33 34 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 32 34 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 32 34 02 09 00 00 31 2E 54 " +
+                "32 30 2E 30 32 34 02 09 00 00 31 2E 54 32 30 2E " +
+                "30 32 33 02 09 00 00 31 2E 54 32 30 2E 30 32 33 " +
+                "02 09 00 00 31 2E 54 32 30 2E 30 32 33 02 09 00 " +
+                "00 31 2E 54 32 30 2E 30 32 32 02 09 00 00 31 2E " +
+                "54 32 30 2E 30 32 32 02 09 00 00 31 2E 54 32 30 " +
+                "2E 30 32 32 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
+                "32 02 09 00 00 31 2E 54 32 30 2E 30 31 32 02 09 " +
+                "00 00 31 2E 54 32 30 2E 30 31 32 02 09 00 00 31 " +
+                "2E 54 32 30 2E 30 31 31 02 09 00 00 31 2E 54 32 " +
+                "30 2E 30 31 31 02 09 00 00 31 2E 54 32 30 2E 30 " +
+                "31 31 02 09 00 00 31 2E 54 32 30 2E 30 31 30 02 " +
+                "09 00 00 31 2E 54 32 30 2E 30 31 30 02 09 00 00 " +
+                "31 2E 54 32 30 2E 30 31 30                     ";
+
+        byte[] data1 = HexRead.readFromString(record_0x0018 + record_0x03C);
+        RecordInputStream in1 = TestcaseRecordInputStream.create(data1);
+        NameRecord nr1 = new NameRecord(in1);
+        System.out.println(nr1);
+        assert_bug50244(nr1);
+
+
+        byte[] data2 = nr1.serialize();
+
+        assertEquals(data1.length, data2.length);
+        RecordInputStream in2 = TestcaseRecordInputStream.create(data2);
+        NameRecord nr2 = new NameRecord(in2);
+        assert_bug50244(nr2);
+    }
+
+    private void assert_bug50244(NameRecord nr){
+        assertEquals("wDataGruppeSerie.", nr.getNameText());
+        Ptg[] ptg = nr.getNameDefinition();
+        assertEquals(1, ptg.length);
+        ArrayPtg arr = (ArrayPtg)ptg[0];
+        assertEquals(696, arr.getRowCount());
+        assertEquals(1, arr.getColumnCount());
+        Object[][] vals = arr.getTokenArrayValues();
+        assertEquals("1.T20.001", vals[0][0]);
+        assertEquals("1.T20.010", vals[vals.length - 1][0]);
+    }
 }