--- src/java/org/apache/poi/hssf/record/NameRecord.java (revision 1041511)
+++ src/java/org/apache/poi/hssf/record/NameRecord.java (working copy)
@@ -17,14 +17,13 @@
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)
@@ -35,7 +34,7 @@
* @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,9 +341,13 @@
return field_17_status_bar_text;
}
+ /**
+ * NameRecord can span into
+ *
+ * @param out a data output stream
+ */
+ public void serialize(ContinuableRecordOutput out) {
- public void serialize(LittleEndianOutput out) {
-
int field_7_length_custom_menu = field_14_custom_menu_text.length();
int field_8_length_description_text = field_15_description_text.length();
int field_9_length_help_topic_text = field_16_help_topic_text.length();
@@ -430,7 +433,13 @@
* @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();
--- src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java (revision 1041511)
+++ src/java/org/apache/poi/hssf/record/cont/ContinuableRecordOutput.java (working copy)
@@ -204,10 +204,22 @@
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);
--- src/documentation/content/xdocs/status.xml (revision 1041511)
+++ src/documentation/content/xdocs/status.xml (working copy)
@@ -34,6 +34,7 @@
+ 50244 - Support for continued NameRecords
50315 - Avoid crashing Excel when sorting XSSFSheet autofilter
50076 - Allow access from XSSFReader to sheet comments and headers/footers
50076 - Refactor XSSFEventBasedExcelExtractor to make it easier for you to have control over outputting the cell contents
--- src/testcases/org/apache/poi/hssf/record/TestNameRecord.java (revision 1041511)
+++ src/testcases/org/apache/poi/hssf/record/TestNameRecord.java (working copy)
@@ -19,6 +19,9 @@
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,609 @@
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);
+ 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]);
+ }
}