You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2011/03/01 19:12:46 UTC

svn commit: r1075955 - in /poi/trunk: src/java/org/apache/poi/util/ src/scratchpad/src/org/apache/poi/hdgf/ src/scratchpad/src/org/apache/poi/hmef/ src/scratchpad/testcases/org/apache/poi/hmef/ src/testcases/org/apache/poi/ test-data/hmef/ test-data/hm...

Author: nick
Date: Tue Mar  1 18:12:44 2011
New Revision: 1075955

URL: http://svn.apache.org/viewvc?rev=1075955&view=rev
Log:
Start on unit tests for HMEF. Quite a bit is still stubbed out, and it shows that the LZW isn't quite right yet (so tests disabled)

Added:
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java
    poi/trunk/test-data/hmef/quick-contents/
    poi/trunk/test-data/hmef/quick-contents/message.rtf
    poi/trunk/test-data/hmef/quick-contents/quick.doc   (with props)
    poi/trunk/test-data/hmef/quick-contents/quick.html
    poi/trunk/test-data/hmef/quick-contents/quick.pdf   (with props)
    poi/trunk/test-data/hmef/quick-contents/quick.txt
    poi/trunk/test-data/hmef/quick-contents/quick.xml
    poi/trunk/test-data/hmef/quick-winmail.dat   (with props)
Modified:
    poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/Attribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/CompressedRTF.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/HMEFMessage.java
    poi/trunk/src/testcases/org/apache/poi/POIDataSamples.java

Modified: poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java Tue Mar  1 18:12:44 2011
@@ -35,10 +35,16 @@ public abstract class LZWDecompresser {
    /**
     * Does the mask bit mean it's compressed or uncompressed?
     */
-   private boolean maskMeansCompressed;
+   private final boolean maskMeansCompressed;
+   /**
+    * How much to append to the code length in the stream
+    *  to get the real code length? Normally 2 or 3
+    */
+   private final int codeLengthIncrease;
    
-   protected LZWDecompresser(boolean maskMeansCompressed) {
+   protected LZWDecompresser(boolean maskMeansCompressed, int codeLengthIncrease) {
       this.maskMeansCompressed = maskMeansCompressed;
+      this.codeLengthIncrease = codeLengthIncrease;
    }
    
    /**
@@ -135,7 +141,7 @@ public abstract class LZWDecompresser {
                //  what position of the code to start at
                // (The position is the first 12 bits, the
                //  length is the last 4 bits)
-               len = (dataIPt2 & 15) + 3;
+               len = (dataIPt2 & 15) + codeLengthIncrease;
                pntr = (dataIPt2 & 240)*16 + dataIPt1;
 
                // Adjust the pointer as needed

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java Tue Mar  1 18:12:44 2011
@@ -38,7 +38,7 @@ import org.apache.poi.util.LZWDecompress
 public class HDGFLZW extends LZWDecompresser {
    public HDGFLZW() {
       // We're the wrong way round!
-      super(false);
+      super(false, 3);
    }
 
    /**

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/Attribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/Attribute.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/Attribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/Attribute.java Tue Mar  1 18:12:44 2011
@@ -254,4 +254,9 @@ public final class Attribute {
    public byte[] getData() {
       return data;
    }
+   
+   public String toString() {
+      return "Attachment " + getId().toString() + ", type=" + type + 
+             ", data length=" + data.length; 
+   }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/CompressedRTF.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/CompressedRTF.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/CompressedRTF.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/CompressedRTF.java Tue Mar  1 18:12:44 2011
@@ -54,7 +54,7 @@ public final class CompressedRTF extends
       "{\\colortbl\\red0\\green0\\blue0\n\r\\par \\pard\\plain\\f0\\fs20\\b\\i\\u\\tab\\tx";
    
    public CompressedRTF() {
-      super(true);
+      super(true, 2);
    }
 
    public void decompress(InputStream src, OutputStream res) throws IOException {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/HMEFMessage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/HMEFMessage.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/HMEFMessage.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/HMEFMessage.java Tue Mar  1 18:12:44 2011
@@ -22,6 +22,8 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.poi.hmef.Attribute.AttributeID;
+import org.apache.poi.hsmf.datatypes.MAPIProperty;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -103,4 +105,55 @@ public final class HMEFMessage {
       // Handle the next one down
       process(inp, level);
    }
+   
+   /**
+    * Returns all HMEF/TNEF attributes of the message. 
+    * Note - In a typical message, most of the interesting properties
+    *  are stored as {@link MAPIAttribute}s - see {@link #getMessageMAPIAttributes()} 
+    */
+   public List<Attribute> getMessageAttributes() {
+      return messageAttributes;
+   }
+   
+   /**
+    * Returns all MAPI attributes of the message.
+    * Note - A small number of HMEF/TNEF specific attributes normally
+    *  apply to most messages, see {@link #getMessageAttributes()}
+    */
+   public List<MAPIAttribute> getMessageMAPIAttributes() {
+      return mapiAttributes;
+   }
+   
+   /**
+    * Returns all the Attachments of the message.
+    */
+   public List<Attachment> getAttachments() {
+      return attachments;
+   }
+   
+   /**
+    * Return the message attribute with the given ID,
+    *  or null if there isn't one. 
+    */
+   public Attribute getMessageAttribute(AttributeID id) {
+      for(Attribute attr : messageAttributes) {
+         if(attr.getId() == id) {
+            return attr;
+         }
+      }
+      return null;
+   }
+   
+   /**
+    * Return the message MAPI Attribute with the given ID,
+    *  or null if there isn't one. 
+    */
+   public MAPIAttribute getMessageMAPIAttribute(MAPIProperty id) {
+      for(MAPIAttribute attr : mapiAttributes) {
+         if(attr.getProperty() == id) {
+            return attr;
+         }
+      }
+      return null;
+   }
 }

Added: poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java?rev=1075955&view=auto
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java (added)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java Tue Mar  1 18:12:44 2011
@@ -0,0 +1,155 @@
+/* ====================================================================
+   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.
+==================================================================== */
+
+package org.apache.poi.hmef;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hmef.Attribute.AttributeID;
+import org.apache.poi.hsmf.datatypes.MAPIProperty;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.StringUtil;
+
+public final class TestCompressedRTF extends TestCase {
+    private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
+
+    private static final String block1 = "{\\rtf1\\adeflang102";
+    private static final String block2 = block1 + "5\\ansi\\ansicpg1252";
+    
+    /**
+     * Check that things are as we expected. If this fails,
+     *  then decoding has no hope...  
+     */
+    public void testQuickBasics() throws Exception {
+       HMEFMessage msg = new HMEFMessage(
+             _samples.openResourceAsStream("quick-winmail.dat")
+       );
+       
+       MAPIAttribute rtfAttr = msg.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
+       assertNotNull(rtfAttr);
+       assertTrue(rtfAttr instanceof MAPIRtfAttribute);
+       
+       // Check the start of the compressed version
+       assertEquals(5907, rtfAttr.getData().length);
+       
+       // First 16 bytes is header stuff
+       // Check it has the length + compressed marker
+       assertEquals(5907-4, LittleEndian.getShort(rtfAttr.getData()));
+       assertEquals(
+             "LZFu", 
+             StringUtil.getFromCompressedUnicode(rtfAttr.getData(), 8, 4)
+       );
+             
+       
+       // Now Look at the code
+       assertEquals((byte)0x07, rtfAttr.getData()[16+0]);  // Flag: cccUUUUU
+       assertEquals((byte)0x00, rtfAttr.getData()[16+1]);  //  c1a: offset 0 / 0x000
+       assertEquals((byte)0x06, rtfAttr.getData()[16+2]);  //  c1b: length 6+2  -> {\rtf1\a
+       assertEquals((byte)0x01, rtfAttr.getData()[16+3]);  //  c2a: offset 16 / 0x010
+       assertEquals((byte)0x01, rtfAttr.getData()[16+4]);  //  c2b: length 1+2  ->  def
+       assertEquals((byte)0x0b, rtfAttr.getData()[16+5]);  //  c3a: offset 182 / 0xb6
+       assertEquals((byte)0x60, rtfAttr.getData()[16+6]);  //  c3b: length 0+2  -> la 
+       assertEquals((byte)0x6e, rtfAttr.getData()[16+7]);  // n
+       assertEquals((byte)0x67, rtfAttr.getData()[16+8]);  // g
+       assertEquals((byte)0x31, rtfAttr.getData()[16+9]);  // 1
+       assertEquals((byte)0x30, rtfAttr.getData()[16+10]); // 0
+       assertEquals((byte)0x32, rtfAttr.getData()[16+11]); // 2
+       
+       assertEquals((byte)0x66, rtfAttr.getData()[16+12]); // Flag:  UccUUccU
+       assertEquals((byte)0x35, rtfAttr.getData()[16+13]); // 5 
+       assertEquals((byte)0x00, rtfAttr.getData()[16+14]); //  c2a: offset 6 / 0x006
+       assertEquals((byte)0x64, rtfAttr.getData()[16+15]); //  c2b: length 4+2  -> \ansi\a
+       assertEquals((byte)0x00, rtfAttr.getData()[16+16]); //  c3a: offset 7 / 0x007
+       assertEquals((byte)0x72, rtfAttr.getData()[16+17]); //  c3b: length 2+2  -> nsi
+       assertEquals((byte)0x63, rtfAttr.getData()[16+18]); // c 
+       assertEquals((byte)0x70, rtfAttr.getData()[16+19]); // p
+       assertEquals((byte)0x0d, rtfAttr.getData()[16+20]); //  c6a: offset 221 / 0x0dd
+       assertEquals((byte)0xd0, rtfAttr.getData()[16+21]); //  c6b: length 0+2  -> g1
+       assertEquals((byte)0x0e, rtfAttr.getData()[16+22]); //  c7a: offset 224 / 0x0e0
+       assertEquals((byte)0x00, rtfAttr.getData()[16+23]); //  c7b: length 0+2  -> 25
+       assertEquals((byte)0x32, rtfAttr.getData()[16+24]); // 2
+    }
+
+    /**
+     * Check that we can decode the first 8 codes
+     * (1 flag byte + 8 codes)  
+     */
+    public void DISABLEDtestFirstBlock() throws Exception {
+       HMEFMessage msg = new HMEFMessage(
+             _samples.openResourceAsStream("quick-winmail.dat")
+       );
+       
+       MAPIAttribute rtfAttr = msg.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
+       assertNotNull(rtfAttr);
+
+       // Truncate to header + flag + data for flag
+       byte[] data = new byte[16+12];
+       System.arraycopy(rtfAttr.getData(), 0, data, 0, data.length);
+       
+       // Decompress it
+       CompressedRTF comp = new CompressedRTF();
+       byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
+       String decompStr = new String(decomp, "ASCII");
+       
+       // Test
+System.err.println(decompStr);       
+       assertEquals(block1.length(), decomp.length);
+       assertEquals(block1, decompStr);
+    }
+
+    /**
+     * Check that we can decode the first 16 codes
+     * (flag + 8 codes, flag + 8 codes)  
+     */
+    public void DISABLEDtestFirstTwoBlocks() throws Exception {
+       HMEFMessage msg = new HMEFMessage(
+             _samples.openResourceAsStream("quick-winmail.dat")
+       );
+
+       MAPIAttribute rtfAttr = msg.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
+       assertNotNull(rtfAttr);
+
+       // Truncate to header + flag + data for flag + flag + data
+       byte[] data = new byte[16+12+13];
+       System.arraycopy(rtfAttr.getData(), 0, data, 0, data.length);
+       
+       // Decompress it
+       CompressedRTF comp = new CompressedRTF();
+       byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
+       String decompStr = new String(decomp, "ASCII");
+       
+       // Test
+System.err.println(decompStr);       
+       assertEquals(block2.length(), decomp.length);
+       assertEquals(block2, decompStr);
+    }
+
+    /**
+     * Check that we can correctly decode the whole file
+     * @throws Exception
+     */
+    public void testFull() throws Exception {
+       HMEFMessage msg = new HMEFMessage(
+             _samples.openResourceAsStream("quick-winmail.dat")
+       );
+       
+       // TODO
+    }
+}

Added: poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java?rev=1075955&view=auto
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java (added)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java Tue Mar  1 18:12:44 2011
@@ -0,0 +1,103 @@
+/* ====================================================================
+   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.
+==================================================================== */
+
+package org.apache.poi.hmef;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.POIDataSamples;
+
+public final class TestHMEFMessage extends TestCase {
+    private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
+
+	public void testOpen() throws Exception {
+		HMEFMessage msg = new HMEFMessage(
+                _samples.openResourceAsStream("quick-winmail.dat")
+		);
+
+		assertNotNull(msg);
+	}
+
+	public void testCounts() throws Exception {
+      HMEFMessage msg = new HMEFMessage(
+            _samples.openResourceAsStream("quick-winmail.dat")
+      );
+      
+      // Should have 4 attributes on the message
+      assertEquals(4, msg.getMessageAttributes().size());
+      
+      // And should have 54 MAPI attributes on it
+      assertEquals(54, msg.getMessageMAPIAttributes().size());
+      
+      
+      // Should have 5 attachments
+      assertEquals(5, msg.getAttachments().size());
+      
+      // Each attachment should have 6 normal attributes, and 
+      //  20 or so MAPI ones
+      for(Attachment attach : msg.getAttachments()) {
+         int attrCount = attach.getAttributes().size();
+         int mapiAttrCount = attach.getMAPIAttributes().size();
+         
+         assertEquals(6, attrCount);
+         // TODO
+//         assertTrue("Should be 3-4 attributes, found " + mapiAttrCount, mapiAttrCount >= 20);
+//         assertTrue("Should be 3-4 attributes, found " + mapiAttrCount, mapiAttrCount <= 25);
+      }
+      
+      
+      // TODO
+	}
+	
+	public void testBasicMessageAttributes() throws Exception {
+      HMEFMessage msg = new HMEFMessage(
+            _samples.openResourceAsStream("quick-winmail.dat")
+      );
+      
+      // Should have version, codepage, class and MAPI
+      assertEquals(4, msg.getMessageAttributes().size());
+      assertNotNull(msg.getMessageAttribute(Attribute.ID_TNEFVERSION));
+      assertNotNull(msg.getMessageAttribute(Attribute.ID_OEMCODEPAGE));
+      assertNotNull(msg.getMessageAttribute(Attribute.ID_MESSAGECLASS));
+      assertNotNull(msg.getMessageAttribute(Attribute.ID_MAPIPROPERTIES));
+      
+      // Check the order
+      assertEquals(Attribute.ID_TNEFVERSION, msg.getMessageAttributes().get(0).getId());
+      assertEquals(Attribute.ID_OEMCODEPAGE, msg.getMessageAttributes().get(1).getId());
+      assertEquals(Attribute.ID_MESSAGECLASS, msg.getMessageAttributes().get(2).getId());
+      assertEquals(Attribute.ID_MAPIPROPERTIES, msg.getMessageAttributes().get(3).getId());
+      
+      // Check some that aren't there
+      assertNull(msg.getMessageAttribute(Attribute.ID_AIDOWNER));
+      assertNull(msg.getMessageAttribute(Attribute.ID_ATTACHDATA));
+      
+      // Now check the details of one or two
+      // TODO
+	}
+   
+   public void testBasicMessageMAPIAttributes() throws Exception {
+      // TODO
+   }
+   
+   public void testBasicAttachments() throws Exception {
+      // TODO
+   }
+   
+   public void testMessageAttributeDetails() throws Exception {
+      // TODO
+   }
+}

Modified: poi/trunk/src/testcases/org/apache/poi/POIDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/POIDataSamples.java?rev=1075955&r1=1075954&r2=1075955&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/POIDataSamples.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/POIDataSamples.java Tue Mar  1 18:12:44 2011
@@ -35,6 +35,7 @@ public final class POIDataSamples {
     private static POIDataSamples _instOpenxml4j;
     private static POIDataSamples _instPOIFS;
     private static POIDataSamples _instDDF;
+    private static POIDataSamples _instHMEF;
     private static POIDataSamples _instHPSF;
     private static POIDataSamples _instHPBF;
     private static POIDataSamples _instHSMF;
@@ -99,6 +100,11 @@ public final class POIDataSamples {
         return _instHPBF;
     }
 
+    public static POIDataSamples getHMEFInstance(){
+        if(_instHMEF == null) _instHMEF = new POIDataSamples("hmef");
+        return _instHMEF;
+    }
+
     public static POIDataSamples getHSMFInstance(){
         if(_instHSMF == null) _instHSMF = new POIDataSamples("hsmf");
         return _instHSMF;

Added: poi/trunk/test-data/hmef/quick-contents/message.rtf
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/message.rtf?rev=1075955&view=auto
==============================================================================
--- poi/trunk/test-data/hmef/quick-contents/message.rtf (added)
+++ poi/trunk/test-data/hmef/quick-contents/message.rtf Tue Mar  1 18:12:44 2011
@@ -0,0 +1,6 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang2057\deflangfe2057\themelang2057\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f31506\fbidi \fswiss\fcharset0\fprq2{\*\pan
 ose 020f0502020204030204}Calibri;}{\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f411\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f412\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f414\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f415\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f418\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f419\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f31508\fbidi \froman\fcharset238\fprq2 Times N
 ew Roman CE;}{\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);
 }{\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31551\
 fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f31569\fbidi \fswiss\fcharse
 t204\fprq2 Calibri Cyr;}{\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\g
 reen128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue255;\red128\green0\blue128;}{\*\defchp \f31506\fs22\lang2057\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext0 \sqformat \spriority0 \styrsid6847920 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\
 rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \ssemihidden \sunhideused \styrsid8740586 Hyperlink;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf18 \sbasedon10 \ssemihidden \sunhideused \styrsid8740586 FollowedHyperlink;}{\*\cs17 \additive \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\cf0 \sbasedon10 \ssemihidden \spriority0 \spersonal \scompose \styrsid8740586 EmailStyle17;}}{\*\revtbl {Unknown;}}{\*\rsidtbl \rsid6847920\rsid8740586}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves1\track
 formatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin150\dgvorigin0\dghshow1\dgvshow1\jexpand\viewkind5\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pn
 seclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\cf0\insrsid8740586\charrsid8740586 These are five files.
+\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 
+\par 
+\par }{\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033\insrsid8740586 {{\objattph  {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033\insrsid8740586 {{\objattph  {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033\ins
 rsid8740586 {{\objattph  {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 
+\par Five files from }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf6\insrsid8740586\charrsid8740586 Hell}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 !}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586   (Well Outlook actually)}{\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033\insrsid8740586 {{\objattph  {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8740586 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033\insrsid8740586 {{\objattph  {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fc
 s1 \af31507 \ltrch\fcs0 \cf0\insrsid8740586\charrsid8740586 
+\par }{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqf
 ormat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \
 lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdsemihidden0 \lsdunhid
 eused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful 
 List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Acce
 nt 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent
  3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\ls
 dsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemih
 idden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdu
 nhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0
  \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000700a60dc669ccb01feffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file

Added: poi/trunk/test-data/hmef/quick-contents/quick.doc
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/quick.doc?rev=1075955&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/hmef/quick-contents/quick.doc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: poi/trunk/test-data/hmef/quick-contents/quick.html
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/quick.html?rev=1075955&view=auto
==============================================================================
--- poi/trunk/test-data/hmef/quick-contents/quick.html (added)
+++ poi/trunk/test-data/hmef/quick-contents/quick.html Tue Mar  1 18:12:44 2011
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+   <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+   <title>The quick brown fox jumps over the lazy dog</title>
+   <meta name="author" content="Nevin Nollop">
+   <meta name="keywords" content="Pangram, fox, dog">
+   <meta name="description" content="Gym class featuring a brown fox and lazy dog">
+</head>
+
+<body lang=EN-US>
+
+The quick brown fox jumps over the lazy dog
+
+</body>
+
+</html>

Added: poi/trunk/test-data/hmef/quick-contents/quick.pdf
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/quick.pdf?rev=1075955&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/hmef/quick-contents/quick.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: poi/trunk/test-data/hmef/quick-contents/quick.txt
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/quick.txt?rev=1075955&view=auto
==============================================================================
--- poi/trunk/test-data/hmef/quick-contents/quick.txt (added)
+++ poi/trunk/test-data/hmef/quick-contents/quick.txt Tue Mar  1 18:12:44 2011
@@ -0,0 +1,7 @@
+The quick brown fox jumps over the lazy dog
+
+Le renard brun rapide saute par-dessus le chien paresseux
+
+Der schnelle braune Fuchs springt über den faulen Hund
+
+براون وكس السريع يقفز فوق الكلب كسالي
\ No newline at end of file

Added: poi/trunk/test-data/hmef/quick-contents/quick.xml
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-contents/quick.xml?rev=1075955&view=auto
==============================================================================
--- poi/trunk/test-data/hmef/quick-contents/quick.xml (added)
+++ poi/trunk/test-data/hmef/quick-contents/quick.xml Tue Mar  1 18:12:44 2011
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<document>
+   <text>The quick brown fox jumps over the lazy dog</text>
+</document>
\ No newline at end of file

Added: poi/trunk/test-data/hmef/quick-winmail.dat
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hmef/quick-winmail.dat?rev=1075955&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/hmef/quick-winmail.dat
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org