]> source.dussan.org Git - poi.git/commitdiff
Merged revisions 612484-612511,612513-612519,612521-613394,613397-613399,613402-61421...
authorNick Burch <nick@apache.org>
Sat, 29 Mar 2008 17:19:09 +0000 (17:19 +0000)
committerNick Burch <nick@apache.org>
Sat, 29 Mar 2008 17:19:09 +0000 (17:19 +0000)
https://svn.apache.org/repos/asf/poi/trunk

........
  r639918 | josh | 2008-03-21 23:47:51 +0000 (Fri, 21 Mar 2008) | 1 line

  sort to int conversion sign extension fix
........
  r640711 | josh | 2008-03-25 06:18:33 +0000 (Tue, 25 Mar 2008) | 1 line

  Added class javadoc.  Patch 30311 from Dmtriy.
........
  r641157 | josh | 2008-03-26 05:29:08 +0000 (Wed, 26 Mar 2008) | 1 line

  more javadoc + clean-up from Dmitriy (bug 30311 att 21711)
........
  r641185 | josh | 2008-03-26 07:32:28 +0000 (Wed, 26 Mar 2008) | 1 line

  patch 44675 - made POI capable of recognising var-args functions.  Some related fixes.
........
  r641796 | nick | 2008-03-27 12:48:55 +0000 (Thu, 27 Mar 2008) | 1 line

  Patch from Raghu from bug #44652 - Improved handling of Pictures in Word Documents
........
  r641799 | nick | 2008-03-27 12:54:32 +0000 (Thu, 27 Mar 2008) | 1 line

  Fix typo, and point hwpf people at the new microsoft docs
........
  r641934 | nick | 2008-03-27 18:24:39 +0000 (Thu, 27 Mar 2008) | 1 line

  Add failing (but disabled) test from bug #44691
........
  r641964 | josh | 2008-03-27 20:03:29 +0000 (Thu, 27 Mar 2008) | 1 line

  fixes for ExternalNameRecord serialisation bug #44691
........
  r641967 | josh | 2008-03-27 20:15:13 +0000 (Thu, 27 Mar 2008) | 1 line

  annotated previous changelist(641964) with wrong buzilla number.  Previous changes were for bug #44695.
........
  r641996 | josh | 2008-03-27 21:54:21 +0000 (Thu, 27 Mar 2008) | 1 line

  (real) fix for  bug #44691. Modified Pmt.java to allow for 3 arguments.  Added TestPmt junit.
........
  r642231 | nick | 2008-03-28 13:35:37 +0000 (Fri, 28 Mar 2008) | 1 line

  Add test to show that bug #44693 is incorrect
........

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@642560 13f79535-47bb-0310-9956-ffa450edef68

41 files changed:
build.xml
src/documentation/content/xdocs/changes.xml
src/documentation/content/xdocs/hwpf/docoverview.xml
src/documentation/content/xdocs/hwpf/index.xml
src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/model/FormulaParser.java
src/java/org/apache/poi/hssf/record/ExternalNameRecord.java
src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java
src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java
src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
src/java/org/apache/poi/hssf/record/formula/function/FunctionDataBuilder.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadata.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataReader.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataRegistry.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormatting.java
src/java/org/apache/poi/hssf/usermodel/HSSFRow.java
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
src/resources/fontmetrics/font_metrics.properties [deleted file]
src/resources/main/font_metrics.properties [new file with mode: 0644]
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata-asGenerated.txt [new file with mode: 0644]
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata.txt [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Pmt.java
src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java
src/scratchpad/src/org/apache/poi/hwpf/model/PicturesTable.java
src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/AllIndividualFunctionEvaluationTests.java
src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hwpf/data/Bug44603.doc [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestPictures.java
src/testcases/org/apache/poi/hssf/data/44693.xls [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java
src/testcases/org/apache/poi/hssf/record/AllRecordTests.java
src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/record/formula/AllFormulaTests.java
src/testcases/org/apache/poi/hssf/record/formula/function/AllFormulaFunctionTests.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/record/formula/function/ExcelFileFormatDocFunctionExtractor.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/record/formula/function/TestFunctionMetadataRegistry.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/record/formula/function/TestParseMissingBuiltInFuncs.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/record/formula/function/TestReadMissingBuiltInFuncs.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

index 9dbe0c69a453512751f8fca8991f8c932a35c8a2..75801a469819b5b20322f94b4c86868ed509c253 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -70,7 +70,7 @@ under the License.
   <property name="forrest.home" value="${env.FORREST_HOME}"/>
 
   <!-- Main: -->
-  <property name="main.resource1.dir" value="src/resources/fontmetrics"/>
+  <property name="main.resource1.dir" value="src/resources/main"/>
   <property name="main.src" location="src/java"/>
   <property name="main.src.test" location="src/testcases"/>
   <property name="main.documentation" value="src/documentation"/>
index b1504a7023deb2a4af84ce2a49abbb19903efda8..1aca38e38529f47951d2566669c91efaff3e9da3 100644 (file)
@@ -36,6 +36,7 @@
 
                <!-- Don't forget to update status.xml too! -->
         <release version="3.1-beta1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">44652 / 44603 - Improved handling of Pictures in Word Documents</action>
            <action dev="POI-DEVELOPERS" type="fix">44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits</action>
            <action dev="POI-DEVELOPERS" type="fix">44627 - Improve the thread safety of POILogFactory</action>
            <action dev="POI-DEVELOPERS" type="add">30311 - Initial support for Conditional Formatting</action>
index 0e9a0bb0f423234fc2e6dab815a2a6349be7d44f..ac3afc50aaba95aa6eb310d137403f950c808bc3 100644 (file)
@@ -33,8 +33,9 @@
 
    <p>The purpose of this document is to give a brief high level overview of the
       HWPF document format. This document does not go into in-depth technical
-      detail and is only meant as a supplement to the Microsoft Word 97 Binary
-      File Format freely available at <link href="http://wotsit.org">Wotsit.org</link>.</p>
+      detail and is only meant as a supplement to the Microsoft Word 97-2007 
+      Binary File Format freely available from 
+      <link href="http://www.microsoft.com/interop/docs/officebinaryformats.mspx">Microsoft</link>.</p>
    <p>The OLE file format is not discussed in this document. It is assumed that
       the reader has a working knowledge of the POIFS API. </p>
 
index f5e8afb2da50054abb74107b7d86b702702b489c..c7f58122e3b3068e7c173ed1fa1d4dd5f1db7d25 100644 (file)
@@ -87,7 +87,7 @@
      <li>anything else that seems reasonable</li>
     </ul>
 
-    <p>When you start start coding, you will not yet have write access to the
+    <p>When you start coding, you will not yet have write access to the
      CVS repository. Please submit your patches to <link
       href="http://issues.apache.org/">Bugzilla</link> and nag <link
       href="mailto:klute@apache.org">Rainer Klute</link> until he commits
index d29d57ff8d29c60ffd4fe37f0bcc528229407610..6b55026c7864f4e118addf26d6b28c1b2f9e5726 100644 (file)
@@ -33,6 +33,7 @@
        <!-- Don't forget to update changes.xml too! -->
     <changes>
         <release version="3.1-beta1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">44652 / 44603 - Improved handling of Pictures in Word Documents</action>
            <action dev="POI-DEVELOPERS" type="fix">44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits</action>
            <action dev="POI-DEVELOPERS" type="fix">44627 - Improve the thread safety of POILogFactory</action>
            <action dev="POI-DEVELOPERS" type="add">30311 - Initial support for Conditional Formatting</action>
index 07bb51483c0c304e0007cdc5bc357c609db53670..e6eb296702d245ebb47b4dc88915553660b42a93 100644 (file)
@@ -25,6 +25,8 @@ import java.util.regex.Pattern;
 
 //import PTG's .. since we need everything, import *
 import org.apache.poi.hssf.record.formula.*;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
 
 
 
@@ -369,7 +371,23 @@ public final class FormulaParser {
      */
     private AbstractFunctionPtg getFunction(String name, int numArgs, List argumentPointers) {
 
-        AbstractFunctionPtg retval = new FuncVarPtg(name, (byte)numArgs);
+        boolean isVarArgs;
+        int funcIx;
+        FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByName(name.toUpperCase());
+        if(fm == null) {
+            // must be external function
+            isVarArgs = true;
+            funcIx = FunctionMetadataRegistry.FUNCTION_INDEX_EXTERNAL;
+        } else {
+            isVarArgs = !fm.hasFixedArgsLength();
+            funcIx = fm.getIndex();
+        }
+        AbstractFunctionPtg retval;
+        if(isVarArgs) {
+            retval = new FuncVarPtg(name, (byte)numArgs);
+        } else {
+            retval = new FuncPtg(funcIx, (byte)numArgs);
+        }
         if (!name.equals(AbstractFunctionPtg.FUNCTION_NAME_IF)) {
             // early return for everything else besides IF()
             return retval;
@@ -969,6 +987,10 @@ end;
                     // tAttrSpace comes *before* the operand it applies to, which may be consistent
                     // with how the formula text appears but is against the RPN ordering assumed here 
                 }
+                if (attrPtg.isSemiVolatile()) {
+                    // similar to tAttrSpace - RPN is violated
+                    continue;
+                }
             }
 
             final OperationPtg o = (OperationPtg) ptg;
@@ -979,7 +1001,7 @@ end;
                 if(stack.isEmpty()) {
                    String msg = "Too few arguments suppled to operation token ("
                         + o.getClass().getName() + "). Expected (" + nOperands
-                        + ") operands but got (" + (nOperands - j + 1) + ")";
+                        + ") operands but got (" + (nOperands - j - 1) + ")";
                     throw new IllegalStateException(msg);
                 }
                 operands[j] = (String) stack.pop();
index 771603c859e856478112c96067f857e91869006d..99890f805bdc2d7a7958a53e3e742b7d2d24bf84 100755 (executable)
@@ -17,7 +17,6 @@
 
 package org.apache.poi.hssf.record;
 
-import java.util.List;
 import java.util.Stack;
 
 import org.apache.poi.hssf.record.formula.Ptg;
@@ -27,153 +26,160 @@ import org.apache.poi.util.StringUtil;
 /**
  * EXTERNALNAME<p/>
  * 
- * @author josh micich
+ * @author Josh Micich
  */
 public final class ExternalNameRecord extends Record {
 
-    public final static short sid = 0x23; // as per BIFF8. (some old versions used 0x223)
+       public final static short sid = 0x23; // as per BIFF8. (some old versions used 0x223)
 
+       private static final int OPT_BUILTIN_NAME          = 0x0001;
+       private static final int OPT_AUTOMATIC_LINK        = 0x0002;
+       private static final int OPT_PICTURE_LINK          = 0x0004;
+       private static final int OPT_STD_DOCUMENT_NAME     = 0x0008;
+       private static final int OPT_OLE_LINK              = 0x0010;
+//     private static final int OPT_CLIP_FORMAT_MASK      = 0x7FE0;
+       private static final int OPT_ICONIFIED_PICTURE_LINK= 0x8000;
 
-    private static final int OPT_BUILTIN_NAME           =   0x0001;
-    private static final int OPT_AUTOMATIC_LINK         =   0x0002;
-    private static final int OPT_PICTURE_LINK           =   0x0004;
-    private static final int OPT_STD_DOCUMENT_NAME      =   0x0008;
-    private static final int OPT_OLE_LINK               =   0x0010;
-//    private static final int OPT_CLIP_FORMAT_MASK       =   0x7FE0;
-    private static final int OPT_ICONIFIED_PICTURE_LINK =   0x8000;
 
+       private short  field_1_option_flag;
+       private short  field_2_index;
+       private short  field_3_not_used;
+       private String field_4_name;
+       private Ptg[]  field_5_name_definition; // TODO - junits for name definition field
 
-    private short             field_1_option_flag;
-    private short              field_2_index;
-    private short              field_3_not_used;
-    private String             field_4_name;
-    private Stack             field_5_name_definition;
-
-
-    public ExternalNameRecord(RecordInputStream in) {
-        super(in);
-    }
+       public ExternalNameRecord(RecordInputStream in) {
+               super(in);
+       }
 
        /**
         * Convenience Function to determine if the name is a built-in name
         */
        public boolean isBuiltInName() {
-           return (field_1_option_flag & OPT_BUILTIN_NAME) != 0;
-       }
-    /**
-     * For OLE and DDE, links can be either 'automatic' or 'manual'
-     */
-    public boolean isAutomaticLink() {
-        return (field_1_option_flag & OPT_AUTOMATIC_LINK) != 0;
-    }
-    /**
-     * only for OLE and DDE
-     */
-    public boolean isPicureLink() {
-        return (field_1_option_flag & OPT_PICTURE_LINK) != 0;
-    }
-    /**
-     * DDE links only. If <code>true</code>, this denotes the 'StdDocumentName'
-     */
-    public boolean isStdDocumentNameIdentifier() {
-        return (field_1_option_flag & OPT_STD_DOCUMENT_NAME) != 0;
-    }
-    public boolean isOLELink() {
-        return (field_1_option_flag & OPT_OLE_LINK) != 0;
-    }
-    public boolean isIconifiedPictureLink() {
-        return (field_1_option_flag & OPT_ICONIFIED_PICTURE_LINK) != 0;
-    }
-    /**
-     * @return the standard String representation of this name
-     */
-    public String getText() {
-       return field_4_name;
-    }
-
-
-    /**
-     * called by constructor, should throw runtime exception in the event of a
-     * record passed with a differing ID.
-     *
-     * @param id alleged id for this record
-     */
-    protected void validateSid(short id) {
-        if (id != sid) {
-            throw new RecordFormatException("NOT A valid ExternalName RECORD");
-        }
-    }
-
-    private int getDataSize(){
-        return 2 + 2 + field_4_name.length() + 2 + getNameDefinitionSize();
-    }
-
-    /**
-     * called by the class that is responsible for writing this sucker.
-     * Subclasses should implement this so that their data is passed back in a
-     * byte array.
-     *
-     * @param offset to begin writing at
-     * @param data byte array containing instance data
-     * @return number of bytes written
-     */
-    public int serialize( int offset, byte[] data ) {
-       // TODO - junit tests
-        int dataSize = getDataSize();
-
-        LittleEndian.putShort( data, 0 + offset, sid );
+               return (field_1_option_flag & OPT_BUILTIN_NAME) != 0;
+       }
+       /**
+        * For OLE and DDE, links can be either 'automatic' or 'manual'
+        */
+       public boolean isAutomaticLink() {
+               return (field_1_option_flag & OPT_AUTOMATIC_LINK) != 0;
+       }
+       /**
+        * only for OLE and DDE
+        */
+       public boolean isPicureLink() {
+               return (field_1_option_flag & OPT_PICTURE_LINK) != 0;
+       }
+       /**
+        * DDE links only. If <code>true</code>, this denotes the 'StdDocumentName'
+        */
+       public boolean isStdDocumentNameIdentifier() {
+               return (field_1_option_flag & OPT_STD_DOCUMENT_NAME) != 0;
+       }
+       public boolean isOLELink() {
+               return (field_1_option_flag & OPT_OLE_LINK) != 0;
+       }
+       public boolean isIconifiedPictureLink() {
+               return (field_1_option_flag & OPT_ICONIFIED_PICTURE_LINK) != 0;
+       }
+       /**
+        * @return the standard String representation of this name
+        */
+       public String getText() {
+               return field_4_name;
+       }
+
+
+       /**
+        * called by constructor, should throw runtime exception in the event of a
+        * record passed with a differing ID.
+        *
+        * @param id alleged id for this record
+        */
+       protected void validateSid(short id) {
+               if (id != sid) {
+                       throw new RecordFormatException("NOT A valid ExternalName RECORD");
+               }
+       }
+
+       private int getDataSize(){
+               return 3 * 2  // 3 short fields
+                       + 2 + field_4_name.length() // nameLen and name
+                       + 2 + getNameDefinitionSize(); // nameDefLen and nameDef
+       }
+
+       /**
+        * called by the class that is responsible for writing this sucker.
+        * Subclasses should implement this so that their data is passed back in a
+        * byte array.
+        *
+        * @param offset to begin writing at
+        * @param data byte array containing instance data
+        * @return number of bytes written
+        */
+       public int serialize( int offset, byte[] data ) {
+               int dataSize = getDataSize();
+
+               LittleEndian.putShort( data, 0 + offset, sid );
                LittleEndian.putShort( data, 2 + offset, (short) dataSize );
-        LittleEndian.putShort( data, 4 + offset, field_1_option_flag );
-        LittleEndian.putShort( data, 6 + offset, field_2_index );
-        LittleEndian.putShort( data, 8 + offset, field_3_not_used );
-        short nameLen = (short) field_4_name.length();
+               LittleEndian.putShort( data, 4 + offset, field_1_option_flag );
+               LittleEndian.putShort( data, 6 + offset, field_2_index );
+               LittleEndian.putShort( data, 8 + offset, field_3_not_used );
+               short nameLen = (short) field_4_name.length();
                LittleEndian.putShort( data, 10 + offset, nameLen );
-        StringUtil.putCompressedUnicode( field_4_name, data, 10 + offset );
-        short defLen = (short) getNameDefinitionSize();
-        LittleEndian.putShort( data, 12 + nameLen + offset, defLen );
-               Ptg.serializePtgStack(field_5_name_definition, data, 12 + nameLen + offset );
+               StringUtil.putCompressedUnicode( field_4_name, data, 12 + offset );
+               short defLen = (short) getNameDefinitionSize();
+               LittleEndian.putShort( data, 12 + nameLen + offset, defLen );
+               Ptg.serializePtgStack(toStack(field_5_name_definition), data, 14 + nameLen + offset );
                return dataSize + 4;
-    }
-
-    private int getNameDefinitionSize() {
-       int result = 0;
-        List list   = field_5_name_definition;
-
-        for (int k = 0; k < list.size(); k++)
-        {
-               Ptg ptg = ( Ptg ) list.get(k);
-        
-               result += ptg.getSize();
-        }
-        return result;
-    }
-
-
-    public int getRecordSize(){
-        return 6 + 2 + field_4_name.length() + 2 + getNameDefinitionSize();
-    }
-
-
-    protected void fillFields(RecordInputStream in) {
-        field_1_option_flag             = in.readShort();
-        field_2_index                   = in.readShort();
-        field_3_not_used                = in.readShort();
-        short nameLength = in.readShort();
-        field_4_name                    = in.readCompressedUnicode(nameLength);
-        short formulaLen = in.readShort();
-               field_5_name_definition         = Ptg.createParsedExpressionTokens(formulaLen, in);
-    }
-
-    public short getSid() {
-        return sid;
-    }
-
-    public String toString() {
-        StringBuffer sb = new StringBuffer();
-        sb.append(getClass().getName()).append(" [EXTERNALNAME ");
-        sb.append(" ").append(field_4_name);
-        sb.append(" ix=").append(field_2_index);
-        sb.append("]");
-        return sb.toString();
-    }
+       }
+
+       private int getNameDefinitionSize() {
+               int result = 0;
+               for (int i = 0; i < field_5_name_definition.length; i++) {
+                       result += field_5_name_definition[i].getSize();
+               }
+               return result;
+       }
+
+
+       public int getRecordSize(){
+               return 4 + getDataSize();
+       }
+
+
+       protected void fillFields(RecordInputStream in) {
+               field_1_option_flag = in.readShort();
+               field_2_index      = in.readShort();
+               field_3_not_used        = in.readShort();
+               short nameLength        = in.readShort();
+               field_4_name            = in.readCompressedUnicode(nameLength);
+               short formulaLen        = in.readShort();
+               field_5_name_definition = toPtgArray(Ptg.createParsedExpressionTokens(formulaLen, in));
+       }
+
+       private static Ptg[] toPtgArray(Stack s) {
+               Ptg[] result = new Ptg[s.size()];
+               s.toArray(result);
+               return result;
+       }
+       private static Stack toStack(Ptg[] ptgs) {
+               Stack result = new Stack();
+               for (int i = 0; i < ptgs.length; i++) {
+                       result.push(ptgs[i]);
+               }
+               return result;
+       }
+       public short getSid() {
+               return sid;
+       }
+
+       public String toString() {
+               StringBuffer sb = new StringBuffer();
+               sb.append(getClass().getName()).append(" [EXTERNALNAME ");
+               sb.append(" ").append(field_4_name);
+               sb.append(" ix=").append(field_2_index);
+               sb.append("]");
+               return sb.toString();
+       }
 }
index 78d1ecbd333ab1e3f187702f9355dd7792d7e07a..d6e81c7ea2b24c5b28ad45d38880aa11d4956c20 100644 (file)
@@ -35,54 +35,55 @@ import org.apache.poi.util.POILogger;
  * @author Dmitriy Kumshayev
  *
  */
-public class CFRecordsAggregate extends Record
+public final class CFRecordsAggregate extends Record
 {
-    public final static short sid = -2008;
-
-    private static POILogger  log = POILogFactory.getLogger(CFRecordsAggregate.class);
-    
-    private CFHeaderRecord header;
-
-    // List of CFRuleRecord objects
-       private List rules;
-       
-    public CFRecordsAggregate()
-    {
-        header = null;
-       rules  = new ArrayList(3);
-    }
-    
-    /**
-     * Create CFRecordsAggregate from a list of CF Records
-     * @param recs - list of {@link Record} objects
-     * @param offset - position of {@link CFHeaderRecord} object in the list of Record objects
-     * @return CFRecordsAggregate object
-     */
-    public static CFRecordsAggregate createCFAggregate(List recs, int offset)
-    {
-       CFRecordsAggregate      cfRecords  = new CFRecordsAggregate();
-        ArrayList              records = new ArrayList(4);
-        
-        int count = 0;
-        Record rec = ( Record ) recs.get(offset++);
-        
-        if (rec.getSid() == CFHeaderRecord.sid)
-        {
-            records.add(rec);
-            cfRecords.header = (CFHeaderRecord)rec;
-            
-            int nRules = cfRecords.header.getNumberOfConditionalFormats();
-            int rulesCount = 0;
-            while(  offset<recs.size() &&
-                       (rec = (Record)recs.get(offset++)).getSid() == CFRuleRecord.sid && 
-                       rec instanceof CFRuleRecord &&
-                       rulesCount++ < nRules
-                )
-            {
-                records.add(rec);
-                cfRecords.rules.add(rec);
-            }
-            
+       public final static short sid = -2008; // not a real BIFF record
+
+       private static POILogger  log = POILogFactory.getLogger(CFRecordsAggregate.class);
+
+       private CFHeaderRecord header;
+
+       // List of CFRuleRecord objects
+       private final List rules;
+
+       public CFRecordsAggregate()
+       {
+               header = null;
+               rules  = new ArrayList(3);
+       }
+
+       /**
+        * Create CFRecordsAggregate from a list of CF Records
+        * @param recs - list of {@link Record} objects
+        * @param offset - position of {@link CFHeaderRecord} object in the list of Record objects
+        * @return CFRecordsAggregate object
+        */
+       public static CFRecordsAggregate createCFAggregate(List recs, int pOffset)
+       {
+
+               int offset = pOffset;
+               CFRecordsAggregate      cfRecords  = new CFRecordsAggregate();
+               ArrayList               records = new ArrayList(4);
+
+               Record rec = ( Record ) recs.get(offset++);
+
+               if (rec.getSid() == CFHeaderRecord.sid)
+               {
+                       records.add(rec);
+                       cfRecords.header = (CFHeaderRecord)rec;
+
+                       int nRules = cfRecords.header.getNumberOfConditionalFormats();
+                       int rulesCount = 0;
+                       while(  offset<recs.size() &&
+                                       (rec = (Record)recs.get(offset++)).getSid() == CFRuleRecord.sid && 
+                                       rec instanceof CFRuleRecord &&
+                                       rulesCount++ < nRules
+                                )
+                       {
+                               records.add(rec);
+                               cfRecords.rules.add(rec);
+                       }
+
                        if (nRules != cfRecords.rules.size())
                        {
                                if (log.check(POILogger.DEBUG))
@@ -93,66 +94,66 @@ public class CFRecordsAggregate extends Record
                                cfRecords.header.setNumberOfConditionalFormats(nRules);
                        }
 
-        }
-        return cfRecords;
-    }
-    
-    /**
-     * Create a deep clone of the record
-     * @return
-     */
-    public CFRecordsAggregate cloneCFAggregate()
-    {
-       
-      ArrayList records = new ArrayList(this.rules.size()+1);
-      
-      records.add(this.header.clone());
-      
-      for (int i=0; i<this.rules.size();i++) 
-      {
-        Record rec = (Record)((Record)this.rules.get(i)).clone();
-        records.add(rec);
-      }
-      return createCFAggregate(records, 0);
-    }
-    
-    /** You never fill an aggregate */
+               }
+               return cfRecords;
+       }
+
+       /**
+        * Create a deep clone of the record
+        * @return
+        */
+       public CFRecordsAggregate cloneCFAggregate()
+       {
+
+         ArrayList records = new ArrayList(this.rules.size()+1);
+         
+         records.add(this.header.clone());
+         
+         for (int i=0; i<this.rules.size();i++) 
+         {
+               Record rec = (Record)((Record)this.rules.get(i)).clone();
+               records.add(rec);
+         }
+         return createCFAggregate(records, 0);
+       }
+
+       /** You never fill an aggregate */
        protected void fillFields(RecordInputStream in)
        {
        }
-       
+
        public short getSid()
        {
                return sid;
        }
-       
-    /**
-     * called by the class that is responsible for writing this sucker.
-     * Subclasses should implement this so that their data is passed back in a
-     * byte array.
-     *
-     * @param offset to begin writing at
-     * @param data byte array containing instance data
-     * @return number of bytes written
-     */
+
+       /**
+        * called by the class that is responsible for writing this sucker.
+        * Subclasses should implement this so that their data is passed back in a
+        * byte array.
+        *
+        * @param offset to begin writing at
+        * @param data byte array containing instance data
+        * @return number of bytes written
+        */
 
        public int serialize(int offset, byte[] data)
        {
-        int pos = offset;
+               int pos = offset;
                if( header != null && rules.size()>0 )
                {
                        header.setNumberOfConditionalFormats(rules.size());
 
-            pos += (( Record ) header).serialize(pos, data);
+                       pos += (( Record ) header).serialize(pos, data);
 
-               for(Iterator itr = rules.iterator(); itr.hasNext();)
-               {
-                   pos += (( Record ) itr.next()).serialize(pos, data);
-               }
+                       for(Iterator itr = rules.iterator(); itr.hasNext();)
+                       {
+                               pos += (( Record ) itr.next()).serialize(pos, data);
+                       }
                }
-        return pos - offset;
+               return pos - offset;
        }
-       
+
        protected void validateSid(short id)
        {
                // do nothing here
@@ -179,21 +180,21 @@ public class CFRecordsAggregate extends Record
         */
        public int getRecordSize() 
        {
-        int size = 0;
-        if( header != null)
-        {
-               size += header.getRecordSize();
-        }
-        if( rules != null)
-        {
-            for(Iterator irecs = rules.iterator(); irecs.hasNext(); )
-            {
-                size += (( Record ) irecs.next()).getRecordSize();
-            }
-        }
-        return size;
-    }
-       
+               int size = 0;
+               if( header != null)
+               {
+                       size += header.getRecordSize();
+               }
+               if( rules != null)
+               {
+                       for(Iterator irecs = rules.iterator(); irecs.hasNext(); )
+                       {
+                               size += (( Record ) irecs.next()).getRecordSize();
+                       }
+               }
+               return size;
+       }
+
        /**
         * String representation of CFRecordsAggregate
         */
@@ -206,19 +207,15 @@ public class CFRecordsAggregate extends Record
                {
                        buffer.append(header.toString());
                }
-               if( rules != null )
+               for(int i=0; i<rules.size(); i++)
                {
-                       for(int i=0; i<rules.size(); i++)
+                       CFRuleRecord cfRule = (CFRuleRecord)rules.get(i);
+                       if(cfRule!=null)
                        {
-                               CFRuleRecord cfRule = (CFRuleRecord)rules.get(i);
-                               if(cfRule!=null)
-                               {
-                                       buffer.append(cfRule.toString());
-                               }
+                               buffer.append(cfRule.toString());
                        }
                }
                buffer.append("[/CF]\n");
                return buffer.toString();
        }
-       
 }
index c7c57280d32e5851d4509e8b1cd7a9e00374f4e1..149ff2359f05bdd5bfe46df461bee405de600304 100644 (file)
@@ -17,8 +17,9 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.util.BinaryTree;
 import org.apache.poi.hssf.model.Workbook;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
 
 
 /**
@@ -29,7 +30,7 @@ import org.apache.poi.hssf.model.Workbook;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  */
 public abstract class AbstractFunctionPtg extends OperationPtg {
-
+    
     /**
      * The name of the IF function (i.e. "IF").  Extracted as a constant for clarity.
      */ 
@@ -37,8 +38,6 @@ public abstract class AbstractFunctionPtg extends OperationPtg {
     /** All external functions have function index 255 */
     private static final short FUNCTION_INDEX_EXTERNAL = 255;
     
-    private static BinaryTree map = produceHash(); 
-    protected static Object[][] functionData = produceFunctionData();
     protected byte returnClass;
     protected byte[] paramClass;
     
@@ -46,14 +45,11 @@ public abstract class AbstractFunctionPtg extends OperationPtg {
     protected short field_2_fnc_index;
  
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-        buffer
-        .append("<FunctionPtg>").append("\n")
-        .append("   field_1_num_args=").append(field_1_num_args).append("\n")
-        .append("      name         =").append(lookupName(field_2_fnc_index)).append("\n")
-        .append("   field_2_fnc_index=").append(field_2_fnc_index).append("\n")
-        .append("</FunctionPtg>");
-        return buffer.toString();
+        StringBuffer sb = new StringBuffer(64);
+        sb.append(getClass().getName()).append(" [");
+        sb.append(field_2_fnc_index).append(" ").append(field_1_num_args);
+        sb.append("]");
+        return sb.toString();
     }
    
     public int getType() {
@@ -117,11 +113,19 @@ public abstract class AbstractFunctionPtg extends OperationPtg {
      *  <code>false</code> if the name should be assumed to be an external function.
      */
     public static final boolean isInternalFunctionName(String name) {
-        return map.containsValue(name.toUpperCase());
+        short ix = FunctionMetadataRegistry.lookupIndexByName(name.toUpperCase());
+        return ix >= 0;
     }
     
     protected String lookupName(short index) {
-        return ((String)map.get(new Integer(index))); 
+        if(index == FunctionMetadataRegistry.FUNCTION_INDEX_EXTERNAL) {
+            return "#external#";
+        }
+        FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByIndex(index);
+        if(fm == null) {
+            throw new RuntimeException("bad function index (" + index + ")");
+        }
+        return fm.getName();
     }
     
     /**
@@ -131,729 +135,11 @@ public abstract class AbstractFunctionPtg extends OperationPtg {
      * @return the standard worksheet function index if found, otherwise <tt>FUNCTION_INDEX_EXTERNAL</tt>
      */
     protected static short lookupIndex(String name) {
-        Integer index = (Integer) map.getKeyForValue(name.toUpperCase());
-        if (index != null) return index.shortValue();
-        return FUNCTION_INDEX_EXTERNAL;
-    }
-    
-    /**
-     * Produces the function table hashmap
-     */
-    private static BinaryTree produceHash() {
-        BinaryTree dmap = new BinaryTree();
-
-        dmap.put(new Integer(0),"COUNT");
-        dmap.put(new Integer(1),FUNCTION_NAME_IF);
-        dmap.put(new Integer(2),"ISNA");
-        dmap.put(new Integer(3),"ISERROR");
-        dmap.put(new Integer(4),"SUM");
-        dmap.put(new Integer(5),"AVERAGE");
-        dmap.put(new Integer(6),"MIN");
-        dmap.put(new Integer(7),"MAX");
-        dmap.put(new Integer(8),"ROW");
-        dmap.put(new Integer(9),"COLUMN");
-        dmap.put(new Integer(10),"NA");
-        dmap.put(new Integer(11),"NPV");
-        dmap.put(new Integer(12),"STDEV");
-        dmap.put(new Integer(13),"DOLLAR");
-        dmap.put(new Integer(14),"FIXED");
-        dmap.put(new Integer(15),"SIN");
-        dmap.put(new Integer(16),"COS");
-        dmap.put(new Integer(17),"TAN");
-        dmap.put(new Integer(18),"ATAN");
-        dmap.put(new Integer(19),"PI");
-        dmap.put(new Integer(20),"SQRT");
-        dmap.put(new Integer(21),"EXP");
-        dmap.put(new Integer(22),"LN");
-        dmap.put(new Integer(23),"LOG10");
-        dmap.put(new Integer(24),"ABS");
-        dmap.put(new Integer(25),"INT");
-        dmap.put(new Integer(26),"SIGN");
-        dmap.put(new Integer(27),"ROUND");
-        dmap.put(new Integer(28),"LOOKUP");
-        dmap.put(new Integer(29),"INDEX");
-        dmap.put(new Integer(30),"REPT");
-        dmap.put(new Integer(31),"MID");
-        dmap.put(new Integer(32),"LEN");
-        dmap.put(new Integer(33),"VALUE");
-        dmap.put(new Integer(34),"TRUE");
-        dmap.put(new Integer(35),"FALSE");
-        dmap.put(new Integer(36),"AND");
-        dmap.put(new Integer(37),"OR");
-        dmap.put(new Integer(38),"NOT");
-        dmap.put(new Integer(39),"MOD");
-        dmap.put(new Integer(40),"DCOUNT");
-        dmap.put(new Integer(41),"DSUM");
-        dmap.put(new Integer(42),"DAVERAGE");
-        dmap.put(new Integer(43),"DMIN");
-        dmap.put(new Integer(44),"DMAX");
-        dmap.put(new Integer(45),"DSTDEV");
-        dmap.put(new Integer(46),"VAR");
-        dmap.put(new Integer(47),"DVAR");
-        dmap.put(new Integer(48),"TEXT");
-        dmap.put(new Integer(49),"LINEST");
-        dmap.put(new Integer(50),"TREND");
-        dmap.put(new Integer(51),"LOGEST");
-        dmap.put(new Integer(52),"GROWTH");
-        dmap.put(new Integer(53),"GOTO");
-        dmap.put(new Integer(54),"HALT");
-        dmap.put(new Integer(56),"PV");
-        dmap.put(new Integer(57),"FV");
-        dmap.put(new Integer(58),"NPER");
-        dmap.put(new Integer(59),"PMT");
-        dmap.put(new Integer(60),"RATE");
-        dmap.put(new Integer(61),"MIRR");
-        dmap.put(new Integer(62),"IRR");
-        dmap.put(new Integer(63),"RAND");
-        dmap.put(new Integer(64),"MATCH");
-        dmap.put(new Integer(65),"DATE");
-        dmap.put(new Integer(66),"TIME");
-        dmap.put(new Integer(67),"DAY");
-        dmap.put(new Integer(68),"MONTH");
-        dmap.put(new Integer(69),"YEAR");
-        dmap.put(new Integer(70),"WEEKDAY");
-        dmap.put(new Integer(71),"HOUR");
-        dmap.put(new Integer(72),"MINUTE");
-        dmap.put(new Integer(73),"SECOND");
-        dmap.put(new Integer(74),"NOW");
-        dmap.put(new Integer(75),"AREAS");
-        dmap.put(new Integer(76),"ROWS");
-        dmap.put(new Integer(77),"COLUMNS");
-        dmap.put(new Integer(78),"OFFSET");
-        dmap.put(new Integer(79),"ABSREF");
-        dmap.put(new Integer(80),"RELREF");
-        dmap.put(new Integer(81),"ARGUMENT");
-        dmap.put(new Integer(82),"SEARCH");
-        dmap.put(new Integer(83),"TRANSPOSE");
-        dmap.put(new Integer(84),"ERROR");
-        dmap.put(new Integer(85),"STEP");
-        dmap.put(new Integer(86),"TYPE");
-        dmap.put(new Integer(87),"ECHO");
-        dmap.put(new Integer(88),"SETNAME");
-        dmap.put(new Integer(89),"CALLER");
-        dmap.put(new Integer(90),"DEREF");
-        dmap.put(new Integer(91),"WINDOWS");
-        dmap.put(new Integer(92),"SERIES");
-        dmap.put(new Integer(93),"DOCUMENTS");
-        dmap.put(new Integer(94),"ACTIVECELL");
-        dmap.put(new Integer(95),"SELECTION");
-        dmap.put(new Integer(96),"RESULT");
-        dmap.put(new Integer(97),"ATAN2");
-        dmap.put(new Integer(98),"ASIN");
-        dmap.put(new Integer(99),"ACOS");
-        dmap.put(new Integer(100),"CHOOSE");
-        dmap.put(new Integer(101),"HLOOKUP");
-        dmap.put(new Integer(102),"VLOOKUP");
-        dmap.put(new Integer(103),"LINKS");
-        dmap.put(new Integer(104),"INPUT");
-        dmap.put(new Integer(105),"ISREF");
-        dmap.put(new Integer(106),"GETFORMULA");
-        dmap.put(new Integer(107),"GETNAME");
-        dmap.put(new Integer(108),"SETVALUE");
-        dmap.put(new Integer(109),"LOG");
-        dmap.put(new Integer(110),"EXEC");
-        dmap.put(new Integer(111),"CHAR");
-        dmap.put(new Integer(112),"LOWER");
-        dmap.put(new Integer(113),"UPPER");
-        dmap.put(new Integer(114),"PROPER");
-        dmap.put(new Integer(115),"LEFT");
-        dmap.put(new Integer(116),"RIGHT");
-        dmap.put(new Integer(117),"EXACT");
-        dmap.put(new Integer(118),"TRIM");
-        dmap.put(new Integer(119),"REPLACE");
-        dmap.put(new Integer(120),"SUBSTITUTE");
-        dmap.put(new Integer(121),"CODE");
-        dmap.put(new Integer(122),"NAMES");
-        dmap.put(new Integer(123),"DIRECTORY");
-        dmap.put(new Integer(124),"FIND");
-        dmap.put(new Integer(125),"CELL");
-        dmap.put(new Integer(126),"ISERR");
-        dmap.put(new Integer(127),"ISTEXT");
-        dmap.put(new Integer(128),"ISNUMBER");
-        dmap.put(new Integer(129),"ISBLANK");
-        dmap.put(new Integer(130),"T");
-        dmap.put(new Integer(131),"N");
-        dmap.put(new Integer(132),"FOPEN");
-        dmap.put(new Integer(133),"FCLOSE");
-        dmap.put(new Integer(134),"FSIZE");
-        dmap.put(new Integer(135),"FREADLN");
-        dmap.put(new Integer(136),"FREAD");
-        dmap.put(new Integer(137),"FWRITELN");
-        dmap.put(new Integer(138),"FWRITE");
-        dmap.put(new Integer(139),"FPOS");
-        dmap.put(new Integer(140),"DATEVALUE");
-        dmap.put(new Integer(141),"TIMEVALUE");
-        dmap.put(new Integer(142),"SLN");
-        dmap.put(new Integer(143),"SYD");
-        dmap.put(new Integer(144),"DDB");
-        dmap.put(new Integer(145),"GETDEF");
-        dmap.put(new Integer(146),"REFTEXT");
-        dmap.put(new Integer(147),"TEXTREF");
-        dmap.put(new Integer(148),"INDIRECT");
-        dmap.put(new Integer(149),"REGISTER");
-        dmap.put(new Integer(150),"CALL");
-        dmap.put(new Integer(151),"ADDBAR");
-        dmap.put(new Integer(152),"ADDMENU");
-        dmap.put(new Integer(153),"ADDCOMMAND");
-        dmap.put(new Integer(154),"ENABLECOMMAND");
-        dmap.put(new Integer(155),"CHECKCOMMAND");
-        dmap.put(new Integer(156),"RENAMECOMMAND");
-        dmap.put(new Integer(157),"SHOWBAR");
-        dmap.put(new Integer(158),"DELETEMENU");
-        dmap.put(new Integer(159),"DELETECOMMAND");
-        dmap.put(new Integer(160),"GETCHARTITEM");
-        dmap.put(new Integer(161),"DIALOGBOX");
-        dmap.put(new Integer(162),"CLEAN");
-        dmap.put(new Integer(163),"MDETERM");
-        dmap.put(new Integer(164),"MINVERSE");
-        dmap.put(new Integer(165),"MMULT");
-        dmap.put(new Integer(166),"FILES");
-        dmap.put(new Integer(167),"IPMT");
-        dmap.put(new Integer(168),"PPMT");
-        dmap.put(new Integer(169),"COUNTA");
-        dmap.put(new Integer(170),"CANCELKEY");
-        dmap.put(new Integer(175),"INITIATE");
-        dmap.put(new Integer(176),"REQUEST");
-        dmap.put(new Integer(177),"POKE");
-        dmap.put(new Integer(178),"EXECUTE");
-        dmap.put(new Integer(179),"TERMINATE");
-        dmap.put(new Integer(180),"RESTART");
-        dmap.put(new Integer(181),"HELP");
-        dmap.put(new Integer(182),"GETBAR");
-        dmap.put(new Integer(183),"PRODUCT");
-        dmap.put(new Integer(184),"FACT");
-        dmap.put(new Integer(185),"GETCELL");
-        dmap.put(new Integer(186),"GETWORKSPACE");
-        dmap.put(new Integer(187),"GETWINDOW");
-        dmap.put(new Integer(188),"GETDOCUMENT");
-        dmap.put(new Integer(189),"DPRODUCT");
-        dmap.put(new Integer(190),"ISNONTEXT");
-        dmap.put(new Integer(191),"GETNOTE");
-        dmap.put(new Integer(192),"NOTE");
-        dmap.put(new Integer(193),"STDEVP");
-        dmap.put(new Integer(194),"VARP");
-        dmap.put(new Integer(195),"DSTDEVP");
-        dmap.put(new Integer(196),"DVARP");
-        dmap.put(new Integer(197),"TRUNC");
-        dmap.put(new Integer(198),"ISLOGICAL");
-        dmap.put(new Integer(199),"DCOUNTA");
-        dmap.put(new Integer(200),"DELETEBAR");
-        dmap.put(new Integer(201),"UNREGISTER");
-        dmap.put(new Integer(204),"USDOLLAR");
-        dmap.put(new Integer(205),"FINDB");
-        dmap.put(new Integer(206),"SEARCHB");
-        dmap.put(new Integer(207),"REPLACEB");
-        dmap.put(new Integer(208),"LEFTB");
-        dmap.put(new Integer(209),"RIGHTB");
-        dmap.put(new Integer(210),"MIDB");
-        dmap.put(new Integer(211),"LENB");
-        dmap.put(new Integer(212),"ROUNDUP");
-        dmap.put(new Integer(213),"ROUNDDOWN");
-        dmap.put(new Integer(214),"ASC");
-        dmap.put(new Integer(215),"DBCS");
-        dmap.put(new Integer(216),"RANK");
-        dmap.put(new Integer(219),"ADDRESS");
-        dmap.put(new Integer(220),"DAYS360");
-        dmap.put(new Integer(221),"TODAY");
-        dmap.put(new Integer(222),"VDB");
-        dmap.put(new Integer(227),"MEDIAN");
-        dmap.put(new Integer(228),"SUMPRODUCT");
-        dmap.put(new Integer(229),"SINH");
-        dmap.put(new Integer(230),"COSH");
-        dmap.put(new Integer(231),"TANH");
-        dmap.put(new Integer(232),"ASINH");
-        dmap.put(new Integer(233),"ACOSH");
-        dmap.put(new Integer(234),"ATANH");
-        dmap.put(new Integer(235),"DGET");
-        dmap.put(new Integer(236),"CREATEOBJECT");
-        dmap.put(new Integer(237),"VOLATILE");
-        dmap.put(new Integer(238),"LASTERROR");
-        dmap.put(new Integer(239),"CUSTOMUNDO");
-        dmap.put(new Integer(240),"CUSTOMREPEAT");
-        dmap.put(new Integer(241),"FORMULACONVERT");
-        dmap.put(new Integer(242),"GETLINKINFO");
-        dmap.put(new Integer(243),"TEXTBOX");
-        dmap.put(new Integer(244),"INFO");
-        dmap.put(new Integer(245),"GROUP");
-        dmap.put(new Integer(246),"GETOBJECT");
-        dmap.put(new Integer(247),"DB");
-        dmap.put(new Integer(248),"PAUSE");
-        dmap.put(new Integer(250),"RESUME");
-        dmap.put(new Integer(252),"FREQUENCY");
-        dmap.put(new Integer(253),"ADDTOOLBAR");
-        dmap.put(new Integer(254),"DELETETOOLBAR");
-        dmap.put(new Integer(FUNCTION_INDEX_EXTERNAL),"externalflag");
-        dmap.put(new Integer(256),"RESETTOOLBAR");
-        dmap.put(new Integer(257),"EVALUATE");
-        dmap.put(new Integer(258),"GETTOOLBAR");
-        dmap.put(new Integer(259),"GETTOOL");
-        dmap.put(new Integer(260),"SPELLINGCHECK");
-        dmap.put(new Integer(261),"ERROR.TYPE");
-        dmap.put(new Integer(262),"APPTITLE");
-        dmap.put(new Integer(263),"WINDOWTITLE");
-        dmap.put(new Integer(264),"SAVETOOLBAR");
-        dmap.put(new Integer(265),"ENABLETOOL");
-        dmap.put(new Integer(266),"PRESSTOOL");
-        dmap.put(new Integer(267),"REGISTERID");
-        dmap.put(new Integer(268),"GETWORKBOOK");
-        dmap.put(new Integer(269),"AVEDEV");
-        dmap.put(new Integer(270),"BETADIST");
-        dmap.put(new Integer(271),"GAMMALN");
-        dmap.put(new Integer(272),"BETAINV");
-        dmap.put(new Integer(273),"BINOMDIST");
-        dmap.put(new Integer(274),"CHIDIST");
-        dmap.put(new Integer(275),"CHIINV");
-        dmap.put(new Integer(276),"COMBIN");
-        dmap.put(new Integer(277),"CONFIDENCE");
-        dmap.put(new Integer(278),"CRITBINOM");
-        dmap.put(new Integer(279),"EVEN");
-        dmap.put(new Integer(280),"EXPONDIST");
-        dmap.put(new Integer(281),"FDIST");
-        dmap.put(new Integer(282),"FINV");
-        dmap.put(new Integer(283),"FISHER");
-        dmap.put(new Integer(284),"FISHERINV");
-        dmap.put(new Integer(285),"FLOOR");
-        dmap.put(new Integer(286),"GAMMADIST");
-        dmap.put(new Integer(287),"GAMMAINV");
-        dmap.put(new Integer(288),"CEILING");
-        dmap.put(new Integer(289),"HYPGEOMDIST");
-        dmap.put(new Integer(290),"LOGNORMDIST");
-        dmap.put(new Integer(291),"LOGINV");
-        dmap.put(new Integer(292),"NEGBINOMDIST");
-        dmap.put(new Integer(293),"NORMDIST");
-        dmap.put(new Integer(294),"NORMSDIST");
-        dmap.put(new Integer(295),"NORMINV");
-        dmap.put(new Integer(296),"NORMSINV");
-        dmap.put(new Integer(297),"STANDARDIZE");
-        dmap.put(new Integer(298),"ODD");
-        dmap.put(new Integer(299),"PERMUT");
-        dmap.put(new Integer(300),"POISSON");
-        dmap.put(new Integer(301),"TDIST");
-        dmap.put(new Integer(302),"WEIBULL");
-        dmap.put(new Integer(303),"SUMXMY2");
-        dmap.put(new Integer(304),"SUMX2MY2");
-        dmap.put(new Integer(305),"SUMX2PY2");
-        dmap.put(new Integer(306),"CHITEST");
-        dmap.put(new Integer(307),"CORREL");
-        dmap.put(new Integer(308),"COVAR");
-        dmap.put(new Integer(309),"FORECAST");
-        dmap.put(new Integer(310),"FTEST");
-        dmap.put(new Integer(311),"INTERCEPT");
-        dmap.put(new Integer(312),"PEARSON");
-        dmap.put(new Integer(313),"RSQ");
-        dmap.put(new Integer(314),"STEYX");
-        dmap.put(new Integer(315),"SLOPE");
-        dmap.put(new Integer(316),"TTEST");
-        dmap.put(new Integer(317),"PROB");
-        dmap.put(new Integer(318),"DEVSQ");
-        dmap.put(new Integer(319),"GEOMEAN");
-        dmap.put(new Integer(320),"HARMEAN");
-        dmap.put(new Integer(321),"SUMSQ");
-        dmap.put(new Integer(322),"KURT");
-        dmap.put(new Integer(323),"SKEW");
-        dmap.put(new Integer(324),"ZTEST");
-        dmap.put(new Integer(325),"LARGE");
-        dmap.put(new Integer(326),"SMALL");
-        dmap.put(new Integer(327),"QUARTILE");
-        dmap.put(new Integer(328),"PERCENTILE");
-        dmap.put(new Integer(329),"PERCENTRANK");
-        dmap.put(new Integer(330),"MODE");
-        dmap.put(new Integer(331),"TRIMMEAN");
-        dmap.put(new Integer(332),"TINV");
-        dmap.put(new Integer(334),"MOVIECOMMAND");
-        dmap.put(new Integer(335),"GETMOVIE");
-        dmap.put(new Integer(336),"CONCATENATE");
-        dmap.put(new Integer(337),"POWER");
-        dmap.put(new Integer(338),"PIVOTADDDATA");
-        dmap.put(new Integer(339),"GETPIVOTTABLE");
-        dmap.put(new Integer(340),"GETPIVOTFIELD");
-        dmap.put(new Integer(341),"GETPIVOTITEM");
-        dmap.put(new Integer(342),"RADIANS");
-        dmap.put(new Integer(343),"DEGREES");
-        dmap.put(new Integer(344),"SUBTOTAL");
-        dmap.put(new Integer(345),"SUMIF");
-        dmap.put(new Integer(346),"COUNTIF");
-        dmap.put(new Integer(347),"COUNTBLANK");
-        dmap.put(new Integer(348),"SCENARIOGET");
-        dmap.put(new Integer(349),"OPTIONSLISTSGET");
-        dmap.put(new Integer(350),"ISPMT");
-        dmap.put(new Integer(351),"DATEDIF");
-        dmap.put(new Integer(352),"DATESTRING");
-        dmap.put(new Integer(353),"NUMBERSTRING");
-        dmap.put(new Integer(354),"ROMAN");
-        dmap.put(new Integer(355),"OPENDIALOG");
-        dmap.put(new Integer(356),"SAVEDIALOG");
-        dmap.put(new Integer(357),"VIEWGET");
-        dmap.put(new Integer(358),"GETPIVOTDATA");
-        dmap.put(new Integer(359),"HYPERLINK");
-        dmap.put(new Integer(360),"PHONETIC");
-        dmap.put(new Integer(361),"AVERAGEA");
-        dmap.put(new Integer(362),"MAXA");
-        dmap.put(new Integer(363),"MINA");
-        dmap.put(new Integer(364),"STDEVPA");
-        dmap.put(new Integer(365),"VARPA");
-        dmap.put(new Integer(366),"STDEVA");
-        dmap.put(new Integer(367),"VARA");
-
-        return dmap;
-    }
-    
-    private static Object[][]  produceFunctionData() {
-        Object [][] functionData = new Object[368][3];
-                                 //return Class                       // Param Class                               //Num Params 
-        functionData[0][0]=new Byte(Ptg.CLASS_VALUE);functionData[0][1]=new byte[] {Ptg.CLASS_REF};functionData[0][2]=new Integer(-1);
-        functionData[2][0]=new Byte(Ptg.CLASS_VALUE);functionData[2][1]=new byte[] {Ptg.CLASS_VALUE};functionData[2][2]=new Integer(1);
-        functionData[3][0]=new Byte(Ptg.CLASS_VALUE);functionData[3][1]=new byte[] {Ptg.CLASS_VALUE};functionData[3][2]=new Integer(1);
-        functionData[4][0]=new Byte(Ptg.CLASS_VALUE);functionData[4][1]=new byte[] {Ptg.CLASS_REF};functionData[4][2]=new Integer(-1);
-        functionData[5][0]=new Byte(Ptg.CLASS_VALUE);functionData[5][1]=new byte[] {Ptg.CLASS_REF};functionData[5][2]=new Integer(-1);
-        functionData[6][0]=new Byte(Ptg.CLASS_VALUE);functionData[6][1]=new byte[] {Ptg.CLASS_REF};functionData[6][2]=new Integer(-1);
-        functionData[7][0]=new Byte(Ptg.CLASS_VALUE);functionData[7][1]=new byte[] {Ptg.CLASS_REF};functionData[7][2]=new Integer(-1);
-        functionData[8][0]=new Byte(Ptg.CLASS_VALUE);functionData[8][1]=new byte[] {Ptg.CLASS_REF};functionData[8][2]=new Integer(-1);
-        functionData[9][0]=new Byte(Ptg.CLASS_VALUE);functionData[9][1]=new byte[] {Ptg.CLASS_REF};functionData[9][2]=new Integer(-1);
-        functionData[10][0]=new Byte(Ptg.CLASS_VALUE);functionData[10][1]=new byte[] {Ptg.CLASS_VALUE};functionData[10][2]=new Integer(0);
-        functionData[11][0]=new Byte(Ptg.CLASS_VALUE);functionData[11][1]=new byte[] {Ptg.CLASS_REF};functionData[11][2]=new Integer(-1);
-        functionData[12][0]=new Byte(Ptg.CLASS_VALUE);functionData[12][1]=new byte[] {Ptg.CLASS_REF};functionData[12][2]=new Integer(-1);
-        functionData[13][0]=new Byte(Ptg.CLASS_VALUE);functionData[13][1]=new byte[] {Ptg.CLASS_VALUE};functionData[13][2]=new Integer(-1);
-        functionData[14][0]=new Byte(Ptg.CLASS_VALUE);functionData[14][1]=new byte[] {Ptg.CLASS_VALUE};functionData[14][2]=new Integer(-1);
-        functionData[15][0]=new Byte(Ptg.CLASS_VALUE);functionData[15][1]=new byte[] {Ptg.CLASS_VALUE};functionData[15][2]=new Integer(1);
-        functionData[16][0]=new Byte(Ptg.CLASS_VALUE);functionData[16][1]=new byte[] {Ptg.CLASS_VALUE};functionData[16][2]=new Integer(1);
-        functionData[17][0]=new Byte(Ptg.CLASS_VALUE);functionData[17][1]=new byte[] {Ptg.CLASS_VALUE};functionData[17][2]=new Integer(1);
-        functionData[18][0]=new Byte(Ptg.CLASS_VALUE);functionData[18][1]=new byte[] {Ptg.CLASS_VALUE};functionData[18][2]=new Integer(1);
-        functionData[19][0]=new Byte(Ptg.CLASS_VALUE);functionData[19][1]=new byte[] {Ptg.CLASS_VALUE};functionData[19][2]=new Integer(0);
-        functionData[20][0]=new Byte(Ptg.CLASS_VALUE);functionData[20][1]=new byte[] {Ptg.CLASS_VALUE};functionData[20][2]=new Integer(1);
-        functionData[21][0]=new Byte(Ptg.CLASS_VALUE);functionData[21][1]=new byte[] {Ptg.CLASS_VALUE};functionData[21][2]=new Integer(1);
-        functionData[22][0]=new Byte(Ptg.CLASS_VALUE);functionData[22][1]=new byte[] {Ptg.CLASS_VALUE};functionData[22][2]=new Integer(1);
-        functionData[23][0]=new Byte(Ptg.CLASS_VALUE);functionData[23][1]=new byte[] {Ptg.CLASS_VALUE};functionData[23][2]=new Integer(1);
-        functionData[24][0]=new Byte(Ptg.CLASS_VALUE);functionData[24][1]=new byte[] {Ptg.CLASS_VALUE};functionData[24][2]=new Integer(1);
-        functionData[25][0]=new Byte(Ptg.CLASS_VALUE);functionData[25][1]=new byte[] {Ptg.CLASS_VALUE};functionData[25][2]=new Integer(1);
-        functionData[26][0]=new Byte(Ptg.CLASS_VALUE);functionData[26][1]=new byte[] {Ptg.CLASS_VALUE};functionData[26][2]=new Integer(1);
-        functionData[27][0]=new Byte(Ptg.CLASS_VALUE);functionData[27][1]=new byte[] {Ptg.CLASS_VALUE};functionData[27][2]=new Integer(2);
-        functionData[28][0]=new Byte(Ptg.CLASS_VALUE);functionData[28][1]=new byte[] {Ptg.CLASS_VALUE, Ptg.CLASS_REF};functionData[28][2]=new Integer(-1);
-        functionData[29][0]=new Byte(Ptg.CLASS_VALUE);functionData[29][1]=new byte[] {Ptg.CLASS_REF};functionData[29][2]=new Integer(-1);
-        functionData[30][0]=new Byte(Ptg.CLASS_VALUE);functionData[30][1]=new byte[] {Ptg.CLASS_VALUE};functionData[30][2]=new Integer(2);
-        functionData[31][0]=new Byte(Ptg.CLASS_VALUE);functionData[31][1]=new byte[] {Ptg.CLASS_VALUE};functionData[31][2]=new Integer(3);
-        functionData[32][0]=new Byte(Ptg.CLASS_VALUE);functionData[32][1]=new byte[] {Ptg.CLASS_VALUE};functionData[32][2]=new Integer(1);
-        functionData[33][0]=new Byte(Ptg.CLASS_VALUE);functionData[33][1]=new byte[] {Ptg.CLASS_VALUE};functionData[33][2]=new Integer(1);
-        functionData[34][0]=new Byte(Ptg.CLASS_VALUE);functionData[34][1]=new byte[] {Ptg.CLASS_VALUE};functionData[34][2]=new Integer(0);
-        functionData[35][0]=new Byte(Ptg.CLASS_VALUE);functionData[35][1]=new byte[] {Ptg.CLASS_VALUE};functionData[35][2]=new Integer(0);
-        functionData[36][0]=new Byte(Ptg.CLASS_VALUE);functionData[36][1]=new byte[] {Ptg.CLASS_REF};functionData[36][2]=new Integer(-1);
-        functionData[37][0]=new Byte(Ptg.CLASS_VALUE);functionData[37][1]=new byte[] {Ptg.CLASS_REF};functionData[37][2]=new Integer(-1);
-        functionData[38][0]=new Byte(Ptg.CLASS_VALUE);functionData[38][1]=new byte[] {Ptg.CLASS_VALUE};functionData[38][2]=new Integer(1);
-        functionData[39][0]=new Byte(Ptg.CLASS_VALUE);functionData[39][1]=new byte[] {Ptg.CLASS_VALUE};functionData[39][2]=new Integer(2);
-        functionData[40][0]=new Byte(Ptg.CLASS_VALUE);functionData[40][1]=new byte[] {Ptg.CLASS_REF};functionData[40][2]=new Integer(3);
-        functionData[41][0]=new Byte(Ptg.CLASS_VALUE);functionData[41][1]=new byte[] {Ptg.CLASS_REF};functionData[41][2]=new Integer(3);
-        functionData[42][0]=new Byte(Ptg.CLASS_VALUE);functionData[42][1]=new byte[] {Ptg.CLASS_REF};functionData[42][2]=new Integer(3);
-        functionData[43][0]=new Byte(Ptg.CLASS_VALUE);functionData[43][1]=new byte[] {Ptg.CLASS_REF};functionData[43][2]=new Integer(3);
-        functionData[44][0]=new Byte(Ptg.CLASS_VALUE);functionData[44][1]=new byte[] {Ptg.CLASS_REF};functionData[44][2]=new Integer(3);
-        functionData[45][0]=new Byte(Ptg.CLASS_VALUE);functionData[45][1]=new byte[] {Ptg.CLASS_REF};functionData[45][2]=new Integer(3);
-        functionData[46][0]=new Byte(Ptg.CLASS_VALUE);functionData[46][1]=new byte[] {Ptg.CLASS_REF};functionData[46][2]=new Integer(-1);
-        functionData[47][0]=new Byte(Ptg.CLASS_VALUE);functionData[47][1]=new byte[] {Ptg.CLASS_REF};functionData[47][2]=new Integer(3);
-        functionData[48][0]=new Byte(Ptg.CLASS_VALUE);functionData[48][1]=new byte[] {Ptg.CLASS_VALUE};functionData[48][2]=new Integer(2);
-        functionData[49][0]=new Byte(Ptg.CLASS_VALUE);functionData[49][1]=new byte[] {Ptg.CLASS_REF};functionData[49][2]=new Integer(-1);
-        functionData[50][0]=new Byte(Ptg.CLASS_VALUE);functionData[50][1]=new byte[] {Ptg.CLASS_REF};functionData[50][2]=new Integer(-1);
-        functionData[51][0]=new Byte(Ptg.CLASS_VALUE);functionData[51][1]=new byte[] {Ptg.CLASS_REF};functionData[51][2]=new Integer(-1);
-        functionData[52][0]=new Byte(Ptg.CLASS_VALUE);functionData[52][1]=new byte[] {Ptg.CLASS_REF};functionData[52][2]=new Integer(-1);
-        
-        
-        functionData[56][0]=new Byte(Ptg.CLASS_VALUE);functionData[56][1]=new byte[] {Ptg.CLASS_VALUE};functionData[56][2]=new Integer(-1);
-        functionData[57][0]=new Byte(Ptg.CLASS_VALUE);functionData[57][1]=new byte[] {Ptg.CLASS_VALUE};functionData[57][2]=new Integer(-1);
-        functionData[58][0]=new Byte(Ptg.CLASS_VALUE);functionData[58][1]=new byte[] {Ptg.CLASS_VALUE};functionData[58][2]=new Integer(-1);
-        functionData[59][0]=new Byte(Ptg.CLASS_VALUE);functionData[59][1]=new byte[] {Ptg.CLASS_VALUE};functionData[59][2]=new Integer(-1);
-        functionData[60][0]=new Byte(Ptg.CLASS_VALUE);functionData[60][1]=new byte[] {Ptg.CLASS_VALUE};functionData[60][2]=new Integer(-1);
-        functionData[61][0]=new Byte(Ptg.CLASS_VALUE);functionData[61][1]=new byte[] {Ptg.CLASS_VALUE};functionData[61][2]=new Integer(3);
-        functionData[62][0]=new Byte(Ptg.CLASS_VALUE);functionData[62][1]=new byte[] {Ptg.CLASS_REF};functionData[62][2]=new Integer(-1);
-        functionData[63][0]=new Byte(Ptg.CLASS_VALUE);functionData[63][1]=new byte[] {Ptg.CLASS_REF};functionData[63][2]=new Integer(1);
-        functionData[64][0]=new Byte(Ptg.CLASS_VALUE);functionData[64][1]=new byte[] {Ptg.CLASS_VALUE, Ptg.CLASS_REF};functionData[64][2]=new Integer(-1);
-        functionData[65][0]=new Byte(Ptg.CLASS_VALUE);functionData[65][1]=new byte[] {Ptg.CLASS_VALUE};functionData[65][2]=new Integer(3);
-        functionData[66][0]=new Byte(Ptg.CLASS_VALUE);functionData[66][1]=new byte[] {Ptg.CLASS_VALUE};functionData[66][2]=new Integer(3);
-        functionData[67][0]=new Byte(Ptg.CLASS_VALUE);functionData[67][1]=new byte[] {Ptg.CLASS_VALUE};functionData[67][2]=new Integer(1);
-        functionData[68][0]=new Byte(Ptg.CLASS_VALUE);functionData[68][1]=new byte[] {Ptg.CLASS_VALUE};functionData[68][2]=new Integer(1);
-        functionData[69][0]=new Byte(Ptg.CLASS_VALUE);functionData[69][1]=new byte[] {Ptg.CLASS_VALUE};functionData[69][2]=new Integer(1);
-        functionData[70][0]=new Byte(Ptg.CLASS_VALUE);functionData[70][1]=new byte[] {Ptg.CLASS_VALUE};functionData[70][2]=new Integer(-1);
-        functionData[71][0]=new Byte(Ptg.CLASS_VALUE);functionData[71][1]=new byte[] {Ptg.CLASS_VALUE};functionData[71][2]=new Integer(1);
-        functionData[72][0]=new Byte(Ptg.CLASS_VALUE);functionData[72][1]=new byte[] {Ptg.CLASS_VALUE};functionData[72][2]=new Integer(1);
-        functionData[73][0]=new Byte(Ptg.CLASS_VALUE);functionData[73][1]=new byte[] {Ptg.CLASS_VALUE};functionData[73][2]=new Integer(1);
-        functionData[74][0]=new Byte(Ptg.CLASS_VALUE);functionData[74][1]=new byte[] {Ptg.CLASS_REF};functionData[74][2]=new Integer(1);
-        functionData[75][0]=new Byte(Ptg.CLASS_VALUE);functionData[75][1]=new byte[] {Ptg.CLASS_REF};functionData[75][2]=new Integer(1);
-        functionData[76][0]=new Byte(Ptg.CLASS_VALUE);functionData[76][1]=new byte[] {Ptg.CLASS_REF};functionData[76][2]=new Integer(1);
-        functionData[77][0]=new Byte(Ptg.CLASS_VALUE);functionData[77][1]=new byte[] {Ptg.CLASS_REF};functionData[77][2]=new Integer(1);
-        functionData[78][0]=new Byte(Ptg.CLASS_VALUE);functionData[78][1]=new byte[] {Ptg.CLASS_VALUE};functionData[78][2]=new Integer(-1);
-        
-        
-        
-        functionData[82][0]=new Byte(Ptg.CLASS_VALUE);functionData[82][1]=new byte[] {Ptg.CLASS_VALUE};functionData[82][2]=new Integer(-1);
-        functionData[83][0]=new Byte(Ptg.CLASS_VALUE);functionData[83][1]=new byte[] {Ptg.CLASS_VALUE};functionData[83][2]=new Integer(1);
-        
-        
-        functionData[86][0]=new Byte(Ptg.CLASS_VALUE);functionData[86][1]=new byte[] {Ptg.CLASS_VALUE};functionData[86][2]=new Integer(1);
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        functionData[97][0]=new Byte(Ptg.CLASS_VALUE);functionData[97][1]=new byte[] {Ptg.CLASS_VALUE};functionData[97][2]=new Integer(2);
-        functionData[98][0]=new Byte(Ptg.CLASS_VALUE);functionData[98][1]=new byte[] {Ptg.CLASS_VALUE};functionData[98][2]=new Integer(1);
-        functionData[99][0]=new Byte(Ptg.CLASS_VALUE);functionData[99][1]=new byte[] {Ptg.CLASS_VALUE};functionData[99][2]=new Integer(1);
-        
-        functionData[101][0]=new Byte(Ptg.CLASS_VALUE);functionData[101][1]=new byte[] {Ptg.CLASS_REF};functionData[101][2]=new Integer(-1);
-        functionData[102][0]=new Byte(Ptg.CLASS_VALUE);functionData[102][1]=new byte[] {Ptg.CLASS_REF};functionData[102][2]=new Integer(-1);
-        
-        
-        functionData[105][0]=new Byte(Ptg.CLASS_VALUE);functionData[105][1]=new byte[] {Ptg.CLASS_REF};functionData[105][2]=new Integer(1);
-        
-        
-        
-        functionData[109][0]=new Byte(Ptg.CLASS_VALUE);functionData[109][1]=new byte[] {Ptg.CLASS_VALUE};functionData[109][2]=new Integer(-1);
-        
-        functionData[111][0]=new Byte(Ptg.CLASS_VALUE);functionData[111][1]=new byte[] {Ptg.CLASS_VALUE};functionData[111][2]=new Integer(1);
-        functionData[112][0]=new Byte(Ptg.CLASS_VALUE);functionData[112][1]=new byte[] {Ptg.CLASS_VALUE};functionData[112][2]=new Integer(1);
-        functionData[113][0]=new Byte(Ptg.CLASS_VALUE);functionData[113][1]=new byte[] {Ptg.CLASS_VALUE};functionData[113][2]=new Integer(1);
-        functionData[114][0]=new Byte(Ptg.CLASS_VALUE);functionData[114][1]=new byte[] {Ptg.CLASS_VALUE};functionData[114][2]=new Integer(1);
-        functionData[115][0]=new Byte(Ptg.CLASS_VALUE);functionData[115][1]=new byte[] {Ptg.CLASS_VALUE};functionData[115][2]=new Integer(-1);
-        functionData[116][0]=new Byte(Ptg.CLASS_VALUE);functionData[116][1]=new byte[] {Ptg.CLASS_VALUE};functionData[116][2]=new Integer(-1);
-        functionData[117][0]=new Byte(Ptg.CLASS_VALUE);functionData[117][1]=new byte[] {Ptg.CLASS_VALUE};functionData[117][2]=new Integer(2);
-        functionData[118][0]=new Byte(Ptg.CLASS_VALUE);functionData[118][1]=new byte[] {Ptg.CLASS_VALUE};functionData[118][2]=new Integer(1);
-        functionData[119][0]=new Byte(Ptg.CLASS_VALUE);functionData[119][1]=new byte[] {Ptg.CLASS_VALUE};functionData[119][2]=new Integer(4);
-        functionData[120][0]=new Byte(Ptg.CLASS_VALUE);functionData[120][1]=new byte[] {Ptg.CLASS_VALUE};functionData[120][2]=new Integer(-1);
-        functionData[121][0]=new Byte(Ptg.CLASS_VALUE);functionData[121][1]=new byte[] {Ptg.CLASS_VALUE};functionData[121][2]=new Integer(1);
-        
-        
-        functionData[124][0]=new Byte(Ptg.CLASS_VALUE);functionData[124][1]=new byte[] {Ptg.CLASS_VALUE};functionData[124][2]=new Integer(-1);
-        functionData[125][0]=new Byte(Ptg.CLASS_VALUE);functionData[125][1]=new byte[] {Ptg.CLASS_VALUE};functionData[125][2]=new Integer(-1);
-        functionData[126][0]=new Byte(Ptg.CLASS_VALUE);functionData[126][1]=new byte[] {Ptg.CLASS_VALUE};functionData[126][2]=new Integer(1);
-        functionData[127][0]=new Byte(Ptg.CLASS_VALUE);functionData[127][1]=new byte[] {Ptg.CLASS_VALUE};functionData[127][2]=new Integer(1);
-        functionData[128][0]=new Byte(Ptg.CLASS_VALUE);functionData[128][1]=new byte[] {Ptg.CLASS_VALUE};functionData[128][2]=new Integer(1);
-        functionData[129][0]=new Byte(Ptg.CLASS_VALUE);functionData[129][1]=new byte[] {Ptg.CLASS_VALUE};functionData[129][2]=new Integer(1);
-        functionData[130][0]=new Byte(Ptg.CLASS_VALUE);functionData[130][1]=new byte[] {Ptg.CLASS_REF};functionData[130][2]=new Integer(1);
-        functionData[131][0]=new Byte(Ptg.CLASS_VALUE);functionData[131][1]=new byte[] {Ptg.CLASS_REF};functionData[131][2]=new Integer(1);
-        
-        
-        
-        
-        
-        
-        
-        
-        functionData[140][0]=new Byte(Ptg.CLASS_VALUE);functionData[140][1]=new byte[] {Ptg.CLASS_VALUE};functionData[140][2]=new Integer(1);
-        functionData[141][0]=new Byte(Ptg.CLASS_VALUE);functionData[141][1]=new byte[] {Ptg.CLASS_VALUE};functionData[141][2]=new Integer(1);
-        functionData[142][0]=new Byte(Ptg.CLASS_VALUE);functionData[142][1]=new byte[] {Ptg.CLASS_VALUE};functionData[142][2]=new Integer(3);
-        
-        
-        
-        
-        
-        functionData[148][0]=new Byte(Ptg.CLASS_VALUE);functionData[148][1]=new byte[] {Ptg.CLASS_VALUE};functionData[148][2]=new Integer(-1);
-        
-        functionData[150][0]=new Byte(Ptg.CLASS_VALUE);functionData[150][1]=new byte[] {Ptg.CLASS_VALUE};functionData[150][2]=new Integer(-1);
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        functionData[162][0]=new Byte(Ptg.CLASS_VALUE);functionData[162][1]=new byte[] {Ptg.CLASS_VALUE};functionData[162][2]=new Integer(1);
-        functionData[163][0]=new Byte(Ptg.CLASS_VALUE);functionData[163][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[163][2]=new Integer(1);
-        functionData[164][0]=new Byte(Ptg.CLASS_VALUE);functionData[164][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[164][2]=new Integer(1);
-        functionData[165][0]=new Byte(Ptg.CLASS_VALUE);functionData[165][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[165][2]=new Integer(2);
-        functionData[166][0]=new Byte(Ptg.CLASS_VALUE);functionData[166][1]=new byte[] {Ptg.CLASS_VALUE};functionData[166][2]=new Integer(-1);
-        functionData[167][0]=new Byte(Ptg.CLASS_VALUE);functionData[167][1]=new byte[] {Ptg.CLASS_VALUE};functionData[167][2]=new Integer(-1);
-        functionData[168][0]=new Byte(Ptg.CLASS_VALUE);functionData[168][1]=new byte[] {Ptg.CLASS_REF};functionData[168][2]=new Integer(-1);
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        functionData[183][0]=new Byte(Ptg.CLASS_VALUE);functionData[183][1]=new byte[] {Ptg.CLASS_REF};functionData[183][2]=new Integer(-1);
-        functionData[184][0]=new Byte(Ptg.CLASS_VALUE);functionData[184][1]=new byte[] {Ptg.CLASS_VALUE};functionData[184][2]=new Integer(1);
-        
-        
-        
-        
-        functionData[189][0]=new Byte(Ptg.CLASS_VALUE);functionData[189][1]=new byte[] {Ptg.CLASS_REF};functionData[189][2]=new Integer(3);
-        functionData[190][0]=new Byte(Ptg.CLASS_VALUE);functionData[190][1]=new byte[] {Ptg.CLASS_VALUE};functionData[190][2]=new Integer(1);
-        
-        
-        functionData[193][0]=new Byte(Ptg.CLASS_VALUE);functionData[193][1]=new byte[] {Ptg.CLASS_REF};functionData[193][2]=new Integer(-1);
-        functionData[194][0]=new Byte(Ptg.CLASS_VALUE);functionData[194][1]=new byte[] {Ptg.CLASS_REF};functionData[194][2]=new Integer(-1);
-        functionData[195][0]=new Byte(Ptg.CLASS_VALUE);functionData[195][1]=new byte[] {Ptg.CLASS_REF};functionData[195][2]=new Integer(3);
-        functionData[196][0]=new Byte(Ptg.CLASS_VALUE);functionData[196][1]=new byte[] {Ptg.CLASS_REF};functionData[196][2]=new Integer(3);
-        functionData[197][0]=new Byte(Ptg.CLASS_VALUE);functionData[197][1]=new byte[] {Ptg.CLASS_VALUE};functionData[197][2]=new Integer(-1);
-        functionData[198][0]=new Byte(Ptg.CLASS_VALUE);functionData[198][1]=new byte[] {Ptg.CLASS_VALUE};functionData[198][2]=new Integer(1);
-        functionData[199][0]=new Byte(Ptg.CLASS_VALUE);functionData[199][1]=new byte[] {Ptg.CLASS_REF};functionData[199][2]=new Integer(3);
-        
-        
-        functionData[204][0]=new Byte(Ptg.CLASS_VALUE);functionData[204][1]=new byte[] {Ptg.CLASS_VALUE};functionData[204][2]=new Integer(-1);
-        functionData[205][0]=new Byte(Ptg.CLASS_VALUE);functionData[205][1]=new byte[] {Ptg.CLASS_VALUE};functionData[205][2]=new Integer(-1);
-        functionData[206][0]=new Byte(Ptg.CLASS_VALUE);functionData[206][1]=new byte[] {Ptg.CLASS_VALUE};functionData[206][2]=new Integer(-1);
-        functionData[207][0]=new Byte(Ptg.CLASS_VALUE);functionData[207][1]=new byte[] {Ptg.CLASS_VALUE};functionData[207][2]=new Integer(3);
-        functionData[208][0]=new Byte(Ptg.CLASS_VALUE);functionData[208][1]=new byte[] {Ptg.CLASS_VALUE};functionData[208][2]=new Integer(1);
-        functionData[209][0]=new Byte(Ptg.CLASS_VALUE);functionData[209][1]=new byte[] {Ptg.CLASS_VALUE};functionData[209][2]=new Integer(2);
-        functionData[210][0]=new Byte(Ptg.CLASS_VALUE);functionData[210][1]=new byte[] {Ptg.CLASS_VALUE};functionData[210][2]=new Integer(2);
-        functionData[211][0]=new Byte(Ptg.CLASS_VALUE);functionData[211][1]=new byte[] {Ptg.CLASS_VALUE};functionData[211][2]=new Integer(1);
-        functionData[212][0]=new Byte(Ptg.CLASS_VALUE);functionData[212][1]=new byte[] {Ptg.CLASS_VALUE};functionData[212][2]=new Integer(2);
-        functionData[213][0]=new Byte(Ptg.CLASS_VALUE);functionData[213][1]=new byte[] {Ptg.CLASS_REF};functionData[213][2]=new Integer(2);
-        functionData[214][0]=new Byte(Ptg.CLASS_VALUE);functionData[214][1]=new byte[] {Ptg.CLASS_VALUE};functionData[214][2]=new Integer(-1);
-        
-        
-        
-        
-        functionData[221][0]=new Byte(Ptg.CLASS_VALUE);functionData[221][1]=new byte[] {Ptg.CLASS_REF};functionData[221][2]=new Integer(1);
-        functionData[222][0]=new Byte(Ptg.CLASS_VALUE);functionData[222][1]=new byte[] {Ptg.CLASS_VALUE};functionData[222][2]=new Integer(-1);
-        functionData[227][0]=new Byte(Ptg.CLASS_VALUE);functionData[227][1]=new byte[] {Ptg.CLASS_REF};functionData[227][2]=new Integer(-1);
-        functionData[228][0]=new Byte(Ptg.CLASS_VALUE);functionData[228][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[228][2]=new Integer(-1);
-        functionData[229][0]=new Byte(Ptg.CLASS_VALUE);functionData[229][1]=new byte[] {Ptg.CLASS_VALUE};functionData[229][2]=new Integer(1);
-        functionData[230][0]=new Byte(Ptg.CLASS_VALUE);functionData[230][1]=new byte[] {Ptg.CLASS_VALUE};functionData[230][2]=new Integer(1);
-        functionData[231][0]=new Byte(Ptg.CLASS_VALUE);functionData[231][1]=new byte[] {Ptg.CLASS_VALUE};functionData[231][2]=new Integer(1);
-        functionData[232][0]=new Byte(Ptg.CLASS_VALUE);functionData[232][1]=new byte[] {Ptg.CLASS_VALUE};functionData[232][2]=new Integer(1);
-        functionData[233][0]=new Byte(Ptg.CLASS_VALUE);functionData[233][1]=new byte[] {Ptg.CLASS_VALUE};functionData[233][2]=new Integer(1);
-        functionData[234][0]=new Byte(Ptg.CLASS_VALUE);functionData[234][1]=new byte[] {Ptg.CLASS_VALUE};functionData[234][2]=new Integer(1);
-        functionData[235][0]=new Byte(Ptg.CLASS_VALUE);functionData[235][1]=new byte[] {Ptg.CLASS_REF};functionData[235][2]=new Integer(3);
-        
-        
-        
-        
-        
-        
-        
-        
-        functionData[244][0]=new Byte(Ptg.CLASS_VALUE);functionData[244][1]=new byte[] {Ptg.CLASS_VALUE};functionData[244][2]=new Integer(2);
-        
-        
-        
-        
-        
-        functionData[252][0]=new Byte(Ptg.CLASS_VALUE);functionData[252][1]=new byte[] {Ptg.CLASS_REF};functionData[252][2]=new Integer(2);
-        
-        
-        
-        
-        
-        
-        
-        functionData[261][0]=new Byte(Ptg.CLASS_VALUE);functionData[261][1]=new byte[] {Ptg.CLASS_VALUE};functionData[261][2]=new Integer(1);
-        
-        
-        
-        
-        
-        
-        
-        functionData[269][0]=new Byte(Ptg.CLASS_VALUE);functionData[269][1]=new byte[] {Ptg.CLASS_REF};functionData[269][2]=new Integer(-1);
-        functionData[270][0]=new Byte(Ptg.CLASS_VALUE);functionData[270][1]=new byte[] {Ptg.CLASS_VALUE};functionData[270][2]=new Integer(-1);
-        functionData[271][0]=new Byte(Ptg.CLASS_VALUE);functionData[271][1]=new byte[] {Ptg.CLASS_VALUE};functionData[271][2]=new Integer(1);
-        functionData[272][0]=new Byte(Ptg.CLASS_VALUE);functionData[272][1]=new byte[] {Ptg.CLASS_VALUE};functionData[272][2]=new Integer(-1);
-        functionData[273][0]=new Byte(Ptg.CLASS_VALUE);functionData[273][1]=new byte[] {Ptg.CLASS_VALUE};functionData[273][2]=new Integer(4);
-        functionData[274][0]=new Byte(Ptg.CLASS_VALUE);functionData[274][1]=new byte[] {Ptg.CLASS_VALUE};functionData[274][2]=new Integer(2);
-        functionData[275][0]=new Byte(Ptg.CLASS_VALUE);functionData[275][1]=new byte[] {Ptg.CLASS_VALUE};functionData[275][2]=new Integer(2);
-        functionData[276][0]=new Byte(Ptg.CLASS_VALUE);functionData[276][1]=new byte[] {Ptg.CLASS_VALUE};functionData[276][2]=new Integer(2);
-        functionData[277][0]=new Byte(Ptg.CLASS_VALUE);functionData[277][1]=new byte[] {Ptg.CLASS_VALUE};functionData[277][2]=new Integer(3);
-        functionData[278][0]=new Byte(Ptg.CLASS_VALUE);functionData[278][1]=new byte[] {Ptg.CLASS_VALUE};functionData[278][2]=new Integer(3);
-        functionData[279][0]=new Byte(Ptg.CLASS_VALUE);functionData[279][1]=new byte[] {Ptg.CLASS_VALUE};functionData[279][2]=new Integer(1);
-        functionData[280][0]=new Byte(Ptg.CLASS_VALUE);functionData[280][1]=new byte[] {Ptg.CLASS_VALUE};functionData[280][2]=new Integer(3);
-        functionData[281][0]=new Byte(Ptg.CLASS_VALUE);functionData[281][1]=new byte[] {Ptg.CLASS_VALUE};functionData[281][2]=new Integer(3);
-        functionData[282][0]=new Byte(Ptg.CLASS_VALUE);functionData[282][1]=new byte[] {Ptg.CLASS_VALUE};functionData[282][2]=new Integer(3);
-        functionData[283][0]=new Byte(Ptg.CLASS_VALUE);functionData[283][1]=new byte[] {Ptg.CLASS_VALUE};functionData[283][2]=new Integer(1);
-        functionData[284][0]=new Byte(Ptg.CLASS_VALUE);functionData[284][1]=new byte[] {Ptg.CLASS_VALUE};functionData[284][2]=new Integer(1);
-        functionData[285][0]=new Byte(Ptg.CLASS_VALUE);functionData[285][1]=new byte[] {Ptg.CLASS_VALUE};functionData[285][2]=new Integer(2);
-        functionData[286][0]=new Byte(Ptg.CLASS_VALUE);functionData[286][1]=new byte[] {Ptg.CLASS_VALUE};functionData[286][2]=new Integer(4);
-        functionData[287][0]=new Byte(Ptg.CLASS_VALUE);functionData[287][1]=new byte[] {Ptg.CLASS_VALUE};functionData[287][2]=new Integer(3);
-        functionData[288][0]=new Byte(Ptg.CLASS_VALUE);functionData[288][1]=new byte[] {Ptg.CLASS_VALUE};functionData[288][2]=new Integer(2);
-        functionData[289][0]=new Byte(Ptg.CLASS_VALUE);functionData[289][1]=new byte[] {Ptg.CLASS_VALUE};functionData[289][2]=new Integer(4);
-        functionData[290][0]=new Byte(Ptg.CLASS_VALUE);functionData[290][1]=new byte[] {Ptg.CLASS_VALUE};functionData[290][2]=new Integer(3);
-        functionData[291][0]=new Byte(Ptg.CLASS_VALUE);functionData[291][1]=new byte[] {Ptg.CLASS_VALUE};functionData[291][2]=new Integer(3);
-        functionData[292][0]=new Byte(Ptg.CLASS_VALUE);functionData[292][1]=new byte[] {Ptg.CLASS_VALUE};functionData[292][2]=new Integer(3);
-        functionData[293][0]=new Byte(Ptg.CLASS_VALUE);functionData[293][1]=new byte[] {Ptg.CLASS_VALUE};functionData[293][2]=new Integer(4);
-        functionData[294][0]=new Byte(Ptg.CLASS_VALUE);functionData[294][1]=new byte[] {Ptg.CLASS_VALUE};functionData[294][2]=new Integer(1);
-        functionData[295][0]=new Byte(Ptg.CLASS_VALUE);functionData[295][1]=new byte[] {Ptg.CLASS_VALUE};functionData[295][2]=new Integer(3);
-        functionData[296][0]=new Byte(Ptg.CLASS_VALUE);functionData[296][1]=new byte[] {Ptg.CLASS_VALUE};functionData[296][2]=new Integer(1);
-        functionData[297][0]=new Byte(Ptg.CLASS_VALUE);functionData[297][1]=new byte[] {Ptg.CLASS_VALUE};functionData[297][2]=new Integer(3);
-        functionData[298][0]=new Byte(Ptg.CLASS_VALUE);functionData[298][1]=new byte[] {Ptg.CLASS_VALUE};functionData[298][2]=new Integer(1);
-        functionData[299][0]=new Byte(Ptg.CLASS_VALUE);functionData[299][1]=new byte[] {Ptg.CLASS_VALUE};functionData[299][2]=new Integer(2);
-        functionData[300][0]=new Byte(Ptg.CLASS_VALUE);functionData[300][1]=new byte[] {Ptg.CLASS_VALUE};functionData[300][2]=new Integer(3);
-        functionData[301][0]=new Byte(Ptg.CLASS_VALUE);functionData[301][1]=new byte[] {Ptg.CLASS_VALUE};functionData[301][2]=new Integer(3);
-        functionData[302][0]=new Byte(Ptg.CLASS_VALUE);functionData[302][1]=new byte[] {Ptg.CLASS_VALUE};functionData[302][2]=new Integer(4);
-        functionData[303][0]=new Byte(Ptg.CLASS_VALUE);functionData[303][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[303][2]=new Integer(2);
-        functionData[304][0]=new Byte(Ptg.CLASS_VALUE);functionData[304][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[304][2]=new Integer(2);
-        functionData[305][0]=new Byte(Ptg.CLASS_VALUE);functionData[305][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[305][2]=new Integer(2);
-        functionData[306][0]=new Byte(Ptg.CLASS_VALUE);functionData[306][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[306][2]=new Integer(2);
-        functionData[307][0]=new Byte(Ptg.CLASS_VALUE);functionData[307][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[307][2]=new Integer(2);
-        functionData[308][0]=new Byte(Ptg.CLASS_VALUE);functionData[308][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[308][2]=new Integer(2);
-        functionData[309][0]=new Byte(Ptg.CLASS_VALUE);functionData[309][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[309][2]=new Integer(3);
-        functionData[310][0]=new Byte(Ptg.CLASS_VALUE);functionData[310][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[310][2]=new Integer(2);
-        functionData[311][0]=new Byte(Ptg.CLASS_VALUE);functionData[311][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[311][2]=new Integer(2);
-        functionData[312][0]=new Byte(Ptg.CLASS_VALUE);functionData[312][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[312][2]=new Integer(2);
-        functionData[313][0]=new Byte(Ptg.CLASS_VALUE);functionData[313][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[313][2]=new Integer(2);
-        functionData[314][0]=new Byte(Ptg.CLASS_VALUE);functionData[314][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[314][2]=new Integer(2);
-        functionData[315][0]=new Byte(Ptg.CLASS_VALUE);functionData[315][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[315][2]=new Integer(2);
-        functionData[316][0]=new Byte(Ptg.CLASS_VALUE);functionData[316][1]=new byte[] {Ptg.CLASS_VALUE};functionData[316][2]=new Integer(4);
-        functionData[317][0]=new Byte(Ptg.CLASS_VALUE);functionData[317][1]=new byte[] {Ptg.CLASS_VALUE};functionData[317][2]=new Integer(-1);
-        functionData[318][0]=new Byte(Ptg.CLASS_VALUE);functionData[318][1]=new byte[] {Ptg.CLASS_REF};functionData[318][2]=new Integer(-1);
-        functionData[319][0]=new Byte(Ptg.CLASS_VALUE);functionData[319][1]=new byte[] {Ptg.CLASS_REF};functionData[319][2]=new Integer(-1);
-        functionData[320][0]=new Byte(Ptg.CLASS_VALUE);functionData[320][1]=new byte[] {Ptg.CLASS_REF};functionData[320][2]=new Integer(-1);
-        functionData[321][0]=new Byte(Ptg.CLASS_VALUE);functionData[321][1]=new byte[] {Ptg.CLASS_REF};functionData[321][2]=new Integer(-1);
-        functionData[322][0]=new Byte(Ptg.CLASS_VALUE);functionData[322][1]=new byte[] {Ptg.CLASS_REF};functionData[322][2]=new Integer(-1);
-        functionData[323][0]=new Byte(Ptg.CLASS_VALUE);functionData[323][1]=new byte[] {Ptg.CLASS_REF};functionData[323][2]=new Integer(-1);
-        functionData[324][0]=new Byte(Ptg.CLASS_VALUE);functionData[324][1]=new byte[] {Ptg.CLASS_VALUE};functionData[324][2]=new Integer(-1);
-        functionData[325][0]=new Byte(Ptg.CLASS_VALUE);functionData[325][1]=new byte[] {Ptg.CLASS_VALUE};functionData[325][2]=new Integer(2);
-        functionData[326][0]=new Byte(Ptg.CLASS_VALUE);functionData[326][1]=new byte[] {Ptg.CLASS_VALUE};functionData[326][2]=new Integer(2);
-        functionData[327][0]=new Byte(Ptg.CLASS_VALUE);functionData[327][1]=new byte[] {Ptg.CLASS_VALUE};functionData[327][2]=new Integer(2);
-        functionData[328][0]=new Byte(Ptg.CLASS_VALUE);functionData[328][1]=new byte[] {Ptg.CLASS_VALUE};functionData[328][2]=new Integer(2);
-        functionData[329][0]=new Byte(Ptg.CLASS_VALUE);functionData[329][1]=new byte[] {Ptg.CLASS_VALUE};functionData[329][2]=new Integer(-1);
-        functionData[330][0]=new Byte(Ptg.CLASS_VALUE);functionData[330][1]=new byte[] {Ptg.CLASS_ARRAY};functionData[330][2]=new Integer(-1);
-        functionData[331][0]=new Byte(Ptg.CLASS_VALUE);functionData[331][1]=new byte[] {Ptg.CLASS_VALUE};functionData[331][2]=new Integer(2);
-        functionData[332][0]=new Byte(Ptg.CLASS_VALUE);functionData[332][1]=new byte[] {Ptg.CLASS_VALUE};functionData[332][2]=new Integer(2);
-        
-        
-        functionData[336][0]=new Byte(Ptg.CLASS_VALUE);functionData[336][1]=new byte[] {Ptg.CLASS_VALUE};functionData[336][2]=new Integer(-1);
-        functionData[337][0]=new Byte(Ptg.CLASS_VALUE);functionData[337][1]=new byte[] {Ptg.CLASS_VALUE};functionData[337][2]=new Integer(2);
-        
-        
-        
-        
-        functionData[342][0]=new Byte(Ptg.CLASS_VALUE);functionData[342][1]=new byte[] {Ptg.CLASS_VALUE};functionData[342][2]=new Integer(1);
-        functionData[343][0]=new Byte(Ptg.CLASS_VALUE);functionData[343][1]=new byte[] {Ptg.CLASS_VALUE};functionData[343][2]=new Integer(1);
-        functionData[344][0]=new Byte(Ptg.CLASS_VALUE);functionData[344][1]=new byte[] {Ptg.CLASS_REF};functionData[344][2]=new Integer(-1);
-        functionData[345][0]=new Byte(Ptg.CLASS_VALUE);functionData[345][1]=new byte[] {Ptg.CLASS_REF};functionData[345][2]=new Integer(-1);
-        functionData[346][0]=new Byte(Ptg.CLASS_VALUE);functionData[346][1]=new byte[] {Ptg.CLASS_VALUE};functionData[346][2]=new Integer(2);
-        functionData[347][0]=new Byte(Ptg.CLASS_VALUE);functionData[347][1]=new byte[] {Ptg.CLASS_REF};functionData[347][2]=new Integer(1);
-        
-        
-        functionData[350][0]=new Byte(Ptg.CLASS_VALUE);functionData[350][1]=new byte[] {Ptg.CLASS_VALUE};functionData[350][2]=new Integer(4);
-        
-        functionData[352][0]=new Byte(Ptg.CLASS_VALUE);functionData[352][1]=new byte[] {Ptg.CLASS_VALUE};functionData[352][2]=new Integer(1);
-        
-        functionData[354][0]=new Byte(Ptg.CLASS_VALUE);functionData[354][1]=new byte[] {Ptg.CLASS_VALUE};functionData[354][2]=new Integer(-1);
-        
-        
-        
-        functionData[358][0]=new Byte(Ptg.CLASS_VALUE);functionData[358][1]=new byte[] {Ptg.CLASS_VALUE};functionData[358][2]=new Integer(2);
-        functionData[359][0]=new Byte(Ptg.CLASS_VALUE);functionData[359][1]=new byte[] {Ptg.CLASS_VALUE};functionData[359][2]=new Integer(-1);
-        functionData[360][0]=new Byte(Ptg.CLASS_VALUE);functionData[360][1]=new byte[] {Ptg.CLASS_REF};functionData[360][2]=new Integer(1);
-        functionData[361][0]=new Byte(Ptg.CLASS_VALUE);functionData[361][1]=new byte[] {Ptg.CLASS_REF};functionData[361][2]=new Integer(-1);
-        functionData[362][0]=new Byte(Ptg.CLASS_VALUE);functionData[362][1]=new byte[] {Ptg.CLASS_REF};functionData[362][2]=new Integer(-1);
-        functionData[363][0]=new Byte(Ptg.CLASS_VALUE);functionData[363][1]=new byte[] {Ptg.CLASS_REF};functionData[363][2]=new Integer(-1);
-        functionData[364][0]=new Byte(Ptg.CLASS_VALUE);functionData[364][1]=new byte[] {Ptg.CLASS_REF};functionData[364][2]=new Integer(-1);
-        functionData[365][0]=new Byte(Ptg.CLASS_VALUE);functionData[365][1]=new byte[] {Ptg.CLASS_REF};functionData[365][2]=new Integer(-1);
-        functionData[366][0]=new Byte(Ptg.CLASS_VALUE);functionData[366][1]=new byte[] {Ptg.CLASS_REF};functionData[366][2]=new Integer(-1);
-        functionData[367][0]=new Byte(Ptg.CLASS_VALUE);functionData[367][1]=new byte[] {Ptg.CLASS_REF};functionData[367][2]=new Integer(-1);
-        
-        
-        return functionData;
+        short ix = FunctionMetadataRegistry.lookupIndexByName(name.toUpperCase());
+        if (ix < 0) {
+            return FUNCTION_INDEX_EXTERNAL;
+        }
+        return ix;
     }
 
     public byte getDefaultOperandClass() {
index 1123fc803af6eae2f14394b5a2bfc44bce2c7731..a94355a0f002e46de393b3d54f6b1306ccbd65b8 100644 (file)
    limitations under the License.
 ==================================================================== */
 
-
 package org.apache.poi.hssf.record.formula;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
 
 /**
  * @author aviks
  * @author Jason Height (jheight at chariot dot net dot au)
  * @author Danny Mui (dmui at apache dot org) (Leftover handling)
  */
-public class FuncPtg extends AbstractFunctionPtg{
+public final class FuncPtg extends AbstractFunctionPtg {
     
     public final static byte sid  = 0x21;
     public final static int  SIZE = 3;
@@ -50,34 +51,24 @@ public class FuncPtg extends AbstractFunctionPtg{
         //field_1_num_args = data[ offset + 0 ];
         field_2_fnc_index  = in.readShort();
         
-      /*  
-        if (data.length - offset > 2) { //save left overs if there are any
-                       leftOvers = new byte[2];
-               System.arraycopy(data, offset+1, leftOvers, 0, leftOvers.length);
+        FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByIndex(field_2_fnc_index);
+        if(fm == null) {
+            throw new RuntimeException("Invalid built-in function index (" + field_2_fnc_index + ")");
         }
-        */     
-        try {
-            numParams = ( (Integer)functionData[field_2_fnc_index][2]).intValue();
-        } catch (NullPointerException npe) {
-            numParams=0;
-        }   
-        
+        numParams = fm.getMinParams();
     }
     public FuncPtg(int functionIndex, int numberOfParameters) {
         field_2_fnc_index = (short) functionIndex;
         numParams = numberOfParameters;
+        paramClass = new byte[] { Ptg.CLASS_VALUE, }; // TODO
     }
     
-     public void writeBytes(byte[] array, int offset) {
+    public void writeBytes(byte[] array, int offset) {
         array[offset+0]= (byte) (sid + ptgClass);
-        //array[offset+1]=field_1_num_args;
         LittleEndian.putShort(array,offset+1,field_2_fnc_index);
-        /**if (leftOvers != null) {
-               System.arraycopy(leftOvers, 0, array, offset+2, leftOvers.length);
-        }**/
     }
     
-     public int getNumberOfOperands() {
+    public int getNumberOfOperands() {
         return numParams;
     }
 
@@ -94,13 +85,11 @@ public class FuncPtg extends AbstractFunctionPtg{
     }
     
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-        buffer
-        .append("<FunctionPtg>").append("\n")
-        .append("   numArgs(internal)=").append(this.numParams).append("\n")
-        .append("      name         =").append(lookupName(field_2_fnc_index)).append("\n")
-        .append("   field_2_fnc_index=").append(field_2_fnc_index).append("\n")
-        .append("</FunctionPtg>");
-        return buffer.toString();
+        StringBuffer sb = new StringBuffer(64);
+        sb.append(getClass().getName()).append(" [");
+        sb.append(lookupName(field_2_fnc_index));
+        sb.append(" nArgs=").append(numParams);
+        sb.append("]");
+        return sb.toString();
     }
 }
\ No newline at end of file
index 8501f9e79a0ba1719c61ad22ffae3690cba8d3f9..b4732c72873359cee6d9652bf864e8e3014b10fa 100644 (file)
 package org.apache.poi.hssf.record.formula;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
+import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
 
 /**
  *
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public class FuncVarPtg extends AbstractFunctionPtg{
+public final class FuncVarPtg extends AbstractFunctionPtg{
     
     public final static byte sid  = 0x22;
     private final static int  SIZE = 4;  
@@ -47,10 +49,12 @@ public class FuncVarPtg extends AbstractFunctionPtg{
     public FuncVarPtg(String pName, byte pNumOperands) {
         field_1_num_args = pNumOperands;
         field_2_fnc_index = lookupIndex(pName);
-        try{
-            returnClass = ( (Byte) functionData[field_2_fnc_index][0]).byteValue();
-            paramClass = (byte[]) functionData[field_2_fnc_index][1];
-        } catch (NullPointerException npe ) {
+        FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByIndex(field_2_fnc_index);
+        if(fm == null) {
+            // Happens only as a result of a call to FormulaParser.parse(), with a non-built-in function name
+            returnClass = Ptg.CLASS_VALUE;
+            paramClass = new byte[] {Ptg.CLASS_VALUE};
+        } else {
             returnClass = Ptg.CLASS_VALUE;
             paramClass = new byte[] {Ptg.CLASS_VALUE};
         }
@@ -79,15 +83,11 @@ public class FuncVarPtg extends AbstractFunctionPtg{
     }
     
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-        buffer
-        .append("<FunctionVarPtg>").append("\n")
-        .append("   field_1_num_args=").append(field_1_num_args).append("\n")
-        .append("      name         =").append(lookupName(field_2_fnc_index)).append("\n")
-        .append("   field_2_fnc_index=").append(field_2_fnc_index).append("\n")
-        .append("</FunctionPtg>");
-        return buffer.toString();
+        StringBuffer sb = new StringBuffer(64);
+        sb.append(getClass().getName()).append(" [");
+        sb.append(lookupName(field_2_fnc_index));
+        sb.append(" nArgs=").append(field_1_num_args);
+        sb.append("]");
+        return sb.toString();
     }
-
-    
 }
diff --git a/src/java/org/apache/poi/hssf/record/formula/function/FunctionDataBuilder.java b/src/java/org/apache/poi/hssf/record/formula/function/FunctionDataBuilder.java
new file mode 100644 (file)
index 0000000..b304ec3
--- /dev/null
@@ -0,0 +1,89 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Temporarily collects <tt>FunctionMetadata</tt> instances for creation of a 
+ * <tt>FunctionMetadataRegistry</tt>.
+ * 
+ * @author Josh Micich
+ */
+final class FunctionDataBuilder {
+       private int _maxFunctionIndex;
+       private final Map _functionDataByName;
+       private final Map _functionDataByIndex;
+       /** stores indexes of all functions with footnotes (i.e. whose definitions might change) */
+       private final Set _mutatingFunctionIndexes;
+
+       public FunctionDataBuilder(int sizeEstimate) {
+               _maxFunctionIndex = -1;
+               _functionDataByName = new HashMap(sizeEstimate * 3 / 2);
+               _functionDataByIndex = new HashMap(sizeEstimate * 3 / 2);
+               _mutatingFunctionIndexes = new HashSet();
+       }
+
+       public void add(int functionIndex, String functionName, int minParams, int maxParams, boolean hasFootnote) {
+               FunctionMetadata fm = new FunctionMetadata(functionIndex, functionName, minParams, maxParams);
+               
+               Integer indexKey = new Integer(functionIndex);
+               
+               
+               if(functionIndex > _maxFunctionIndex) {
+                       _maxFunctionIndex = functionIndex;
+               }
+               // allow function definitions to change only if both previous and the new items have footnotes
+               FunctionMetadata prevFM;
+               prevFM = (FunctionMetadata) _functionDataByName.get(functionName);
+               if(prevFM != null) {
+                       if(!hasFootnote || !_mutatingFunctionIndexes.contains(indexKey)) {
+                               throw new RuntimeException("Multiple entries for function name '" + functionName + "'");
+                       }
+                       _functionDataByIndex.remove(new Integer(prevFM.getIndex()));
+               }
+               prevFM = (FunctionMetadata) _functionDataByIndex.get(indexKey);
+               if(prevFM != null) {
+                       if(!hasFootnote || !_mutatingFunctionIndexes.contains(indexKey)) {
+                               throw new RuntimeException("Multiple entries for function index (" + functionIndex + ")");
+                       }
+                       _functionDataByName.remove(prevFM.getName());
+               }
+               if(hasFootnote) {
+                       _mutatingFunctionIndexes.add(indexKey);
+               }
+               _functionDataByIndex.put(indexKey, fm);
+               _functionDataByName.put(functionName, fm);
+       }
+
+       public FunctionMetadataRegistry build() {
+
+               FunctionMetadata[] jumbledArray =  new FunctionMetadata[_functionDataByName.size()];
+               _functionDataByName.values().toArray(jumbledArray);
+               FunctionMetadata[] fdIndexArray = new FunctionMetadata[_maxFunctionIndex+1];
+               for (int i = 0; i < jumbledArray.length; i++) {
+                       FunctionMetadata fd = jumbledArray[i];
+                       fdIndexArray[fd.getIndex()] = fd;
+               }
+               
+               return new FunctionMetadataRegistry(fdIndexArray, _functionDataByName);
+       }
+}
\ No newline at end of file
diff --git a/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadata.java b/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadata.java
new file mode 100644 (file)
index 0000000..9df2db9
--- /dev/null
@@ -0,0 +1,58 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+/**
+ * 
+ * @author Josh Micich
+ */
+public final class FunctionMetadata {
+
+       private final int _index;
+       private final String _name;
+       private final int _minParams;
+       private final int _maxParams;
+
+       /* package */ FunctionMetadata(int index, String name, int minParams, int maxParams) {
+               _index = index;
+               _name = name;
+               _minParams = minParams;
+               _maxParams = maxParams;
+       }
+       public int getIndex() {
+               return _index;
+       }
+       public String getName() {
+               return _name;
+       }
+       public int getMinParams() {
+               return _minParams;
+       }
+       public int getMaxParams() {
+               return _maxParams;
+       }
+       public boolean hasFixedArgsLength() {
+           return _minParams == _maxParams;
+       }
+       public String toString() {
+               StringBuffer sb = new StringBuffer(64);
+               sb.append(getClass().getName()).append(" [");
+               sb.append(_index).append(" ").append(_name);
+               sb.append("]");
+               return sb.toString();
+       }
+}
\ No newline at end of file
diff --git a/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataReader.java b/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataReader.java
new file mode 100644 (file)
index 0000000..bd50bf0
--- /dev/null
@@ -0,0 +1,129 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+/**
+ * Converts the text meta-data file into a <tt>FunctionMetadataRegistry</tt>
+ * 
+ * @author Josh Micich
+ */
+final class FunctionMetadataReader {
+
+       private static final String METADATA_FILE_NAME = "functionMetadata.txt";
+
+       private static final Pattern TAB_DELIM_PATTERN = Pattern.compile("\t");
+       
+       private static final String[] DIGIT_ENDING_FUNCTION_NAMES = {
+               // Digits at the end of a function might be due to a left-over footnote marker.
+               // except in these cases
+               "LOG10", "ATAN2", "DAYS360", "SUMXMY2", "SUMX2MY2", "SUMX2PY2",
+       };
+       private static final Set DIGIT_ENDING_FUNCTION_NAMES_SET = new HashSet(Arrays.asList(DIGIT_ENDING_FUNCTION_NAMES));
+
+       public static FunctionMetadataRegistry createRegistry() {
+               InputStream is = FunctionMetadataReader.class.getResourceAsStream(METADATA_FILE_NAME);
+               if(is == null) {
+                       throw new RuntimeException("resource '" + METADATA_FILE_NAME + "' not found");
+               }
+
+               BufferedReader br = new BufferedReader(new InputStreamReader(is));
+               FunctionDataBuilder fdb = new FunctionDataBuilder(400);
+
+               try {
+                       while (true) {
+                               String line = br.readLine();
+                               if (line == null) {
+                                       break;
+                               }
+                               if (line.length() < 1 || line.charAt(0) == '#') {
+                                       continue;
+                               }
+                               String trimLine = line.trim();
+                               if (trimLine.length() < 1) {
+                                       continue;
+                               }
+                               processLine(fdb, line);
+                       }
+                       br.close();
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+
+               return fdb.build();
+       }
+
+       private static void processLine(FunctionDataBuilder fdb, String line) {
+
+               String[] parts = TAB_DELIM_PATTERN.split(line, -2);
+               if(parts.length != 8) {
+                       throw new RuntimeException("Bad line format '" + line + "' - expected 8 data fields");
+               }
+               int functionIndex = parseInt(parts[0]);
+               String functionName = parts[1];
+               int minParams = parseInt(parts[2]);
+               int maxParams = parseInt(parts[3]);
+               // 4 returnClass
+               // 5 parameterClasses
+               // 6 isVolatile
+               boolean hasNote = parts[7].length() > 0;
+
+               validateFunctionName(functionName);
+               // TODO - make POI use returnClass, parameterClasses, isVolatile
+               fdb.add(functionIndex, functionName, minParams, maxParams, hasNote);
+       }
+
+       /**
+        * Makes sure that footnote digits from the original OOO document have not been accidentally 
+        * left behind
+        */
+       private static void validateFunctionName(String functionName) {
+               int len = functionName.length();
+               int ix = len - 1;
+               if (!Character.isDigit(functionName.charAt(ix))) {
+                       return;
+               }
+               while(ix >= 0) {
+                       if (!Character.isDigit(functionName.charAt(ix))) {
+                               break;
+                       }
+                       ix--;
+               }
+               if(DIGIT_ENDING_FUNCTION_NAMES_SET.contains(functionName)) {
+                       return;
+               }
+               throw new RuntimeException("Invalid function name '" + functionName 
+                               + "' (is footnote number incorrectly appended)");
+       }
+
+       private static int parseInt(String valStr) {
+               try {
+                       return Integer.parseInt(valStr);
+               } catch (NumberFormatException e) {
+                       throw new RuntimeException("Value '" + valStr + "' could not be parsed as an integer");
+               }
+       }
+}
diff --git a/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataRegistry.java b/src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataRegistry.java
new file mode 100644 (file)
index 0000000..0cc8de3
--- /dev/null
@@ -0,0 +1,82 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import java.util.Map;
+import java.util.Set;
+
+public final class FunctionMetadataRegistry {
+       /**
+        * The name of the IF function (i.e. "IF").  Extracted as a constant for clarity.
+        */ 
+       public static final String FUNCTION_NAME_IF = "IF";
+
+       public static final short FUNCTION_INDEX_EXTERNAL = 255;
+       private static FunctionMetadataRegistry _instance;
+
+       private final FunctionMetadata[] _functionDataByIndex;
+       private final Map _functionDataByName;
+
+       private static FunctionMetadataRegistry getInstance() {
+               if (_instance == null) {
+                       _instance = FunctionMetadataReader.createRegistry();
+//                     _instance = POIFunctionMetadataCreator.createInstance();
+               }
+               return _instance;
+       }
+
+       /* package */ FunctionMetadataRegistry(FunctionMetadata[] functionDataByIndex, Map functionDataByName) {
+               _functionDataByIndex = functionDataByIndex;
+               _functionDataByName = functionDataByName;
+       }
+
+       /* package */ Set getAllFunctionNames() {
+               return _functionDataByName.keySet();
+       }
+
+
+       public static FunctionMetadata getFunctionByIndex(int index) {
+               return getInstance().getFunctionByIndexInternal(index);
+       }
+
+       private FunctionMetadata getFunctionByIndexInternal(int index) {
+               return _functionDataByIndex[index];
+       }
+       /**
+        * Resolves a built-in function index. 
+        * @param name uppercase function name
+        * @return a negative value if the function name is not found.
+        * This typically occurs for external functions.
+        */
+       public static short lookupIndexByName(String name) {
+               FunctionMetadata fd = getInstance().getFunctionByNameInternal(name);
+               if (fd == null) {
+                       return -1;
+               }
+               return (short) fd.getIndex();
+       }
+
+       private FunctionMetadata getFunctionByNameInternal(String name) {
+               return (FunctionMetadata) _functionDataByName.get(name);
+       }
+
+
+       public static FunctionMetadata getFunctionByName(String name) {
+               return getInstance().getFunctionByNameInternal(name);
+       }
+}
index e5fbb1d3007df995b465e1d958ec847cd9736729..c7018a0e1a56e76b6252ab0f3dbb6a6a858b8ffd 100644 (file)
@@ -25,23 +25,88 @@ import org.apache.poi.hssf.record.aggregates.CFRecordsAggregate;
 import org.apache.poi.hssf.record.cf.CellRange;
 import org.apache.poi.hssf.util.Region;
 
-public class HSSFConditionalFormatting
+/**
+ * HSSFConditionalFormatting class encapsulates all settings of Conditional Formatting. 
+ * 
+ * The class can be used 
+ * 
+ * <UL>
+ * <LI>
+ * to make a copy HSSFConditionalFormatting settings.
+ * </LI>
+ *  
+ * 
+ * For example:
+ * <PRE>
+ * HSSFConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
+ * newSheet.addConditionalFormatting(cf);
+ * </PRE>
+ * 
+ *  <LI>
+ *  or to modify existing Conditional Formatting settings (formatting regions and/or rules).
+ *  </LI>
+ *  </UL>
+ * 
+ * Use {@link HSSFSheet#getConditionalFormattingAt(int)} to get access to an instance of this class. 
+ * <P>
+ * To create a new Conditional Formatting set use the following approach:
+ * 
+ * <PRE>
+ * // Create pattern with red background
+ * HSSFPatternFormatting patternFormatting = new HSSFPatternFormatting();
+ * patternFormatting.setFillBackgroundColor(HSSFColor.RED.index);
+ * 
+ * Region [] regions =
+ * {
+ *     // Define a region containing first column
+ *     new Region(1,(short)1,-1,(short)1)
+ * };
+ *     
+ * HSSFConditionalFormattingRule[] rules = 
+ * {
+ *     // Define a Conditional Formatting rule, which triggers formatting
+ *     // when cell's value is greater or equal than 100.0 and
+ *     // applies patternFormatting defined above.
+ *         
+ *     sheet.createConditionalFormattingRule(
+ *             HSSFConditionalFormattingRule.COMPARISON_OPERATOR_GE, 
+ *             "100.0", // 1st formula 
+ *             null,    // 2nd formula is not used for comparison operator GE
+ *             null,    // do not override Font Formatting
+ *             null,    // do not override Border Formatting
+ *             patternFormatting
+ *     )
+ * };
+ *     
+ * // Apply Conditional Formatting rules defined above to the regions  
+ * sheet.addConditionalFormatting(regions, rules);
+ * </PRE>
+ * 
+ * @author Dmitriy Kumshayev
+ */
+public final class HSSFConditionalFormatting
 {
-       HSSFSheet sheet;
-       CFRecordsAggregate cfAggregate;
-       
-       protected HSSFConditionalFormatting(HSSFSheet sheet)
-       {
-               this.sheet = sheet;
-               this.cfAggregate = new CFRecordsAggregate();
+       private final HSSFSheet sheet;
+       private final CFRecordsAggregate cfAggregate;
+
+       HSSFConditionalFormatting(HSSFSheet sheet) {
+               this(sheet, new CFRecordsAggregate());
        }
-       
-       protected HSSFConditionalFormatting(HSSFSheet sheet, CFRecordsAggregate cfAggregate)
+
+       HSSFConditionalFormatting(HSSFSheet sheet, CFRecordsAggregate cfAggregate)
        {
+               if(sheet == null) {
+                       throw new IllegalArgumentException("sheet must not be null");
+               }
+               if(cfAggregate == null) {
+                       throw new IllegalArgumentException("cfAggregate must not be null");
+               }
                this.sheet = sheet;
                this.cfAggregate = cfAggregate;
        }
-       
+       CFRecordsAggregate getCFRecordsAggregate() {
+               return cfAggregate;
+       }
 
        public void setFormattingRegions(Region[] regions)
        {
@@ -52,35 +117,65 @@ public class HSSFConditionalFormatting
                }
        }
 
+       /**
+        * @return array of <tt>Region</tt>s. never <code>null</code>
+        */
        public Region[] getFormattingRegions()
        {
                CFHeaderRecord cfh = cfAggregate.getHeader();
-               
+
                List cellRanges = cfh.getCellRanges();
-               
-               if (cellRanges != null)
-               {
-                       return toRegionArray(cellRanges);
-               }
-               return null;
+
+               return toRegionArray(cellRanges);
        }
-       
-       public void setConditionalFormat(int idx, HSSFConditionalFormattingRule cfRule)
+
+       /**
+        * set a Conditional Formatting rule at position idx. 
+        * Excel allows to create up to 3 Conditional Formatting rules.
+        * This method can be useful to modify existing  Conditional Formatting rules.
+        * 
+        * @param idx position of the rule. Should be between 0 and 2.
+        * @param cfRule - Conditional Formatting rule
+        */
+       public void setRule(int idx, HSSFConditionalFormattingRule cfRule)
        {
+           if (idx < 0 || idx > 2) {
+               throw new IllegalArgumentException("idx must be between 0 and 2 but was (" 
+                       + idx + ")");
+           }
                cfAggregate.getRules().set(idx, cfRule);
        }
 
-       public void addConditionalFormat(HSSFConditionalFormattingRule cfRule)
+       /**
+        * add a Conditional Formatting rule. 
+        * Excel allows to create up to 3 Conditional Formatting rules.
+        * @param cfRule - Conditional Formatting rule
+        */
+       public void addRule(HSSFConditionalFormattingRule cfRule)
        {
                cfAggregate.getRules().add(cfRule);
        }
-       
-       public HSSFConditionalFormattingRule getConditionalFormat(int idx)
+
+       /**
+        * get a Conditional Formatting rule at position idx. 
+        * @param idx
+        * @return a Conditional Formatting rule at position idx.
+        */
+       public HSSFConditionalFormattingRule getRule(int idx)
        {
                CFRuleRecord ruleRecord = (CFRuleRecord)cfAggregate.getRules().get(idx);
                return new HSSFConditionalFormattingRule(sheet.workbook, ruleRecord);
        }
-       
+
+       /**
+        * @return number of Conditional Formatting rules.
+        */
+       public int getNumbOfRules()
+       {
+               return cfAggregate.getRules().size();
+       }
+
+
        /**
         * Do all possible cell merges between cells of the list so that:<br>
         *      <li>if a cell range is completely inside of another cell range, it gets removed from the list 
@@ -91,11 +186,11 @@ public class HSSFConditionalFormatting
        private static List mergeCellRanges(List cellRangeList)
        {
                boolean merged = false;
-               
+
                do
                {
                        merged = false;
-                       
+
                        if( cellRangeList.size()>1 )
                        {
                                for( int i=0; i<cellRangeList.size(); i++)
@@ -104,7 +199,7 @@ public class HSSFConditionalFormatting
                                        for( int j=i+1; j<cellRangeList.size(); j++)
                                        {
                                                CellRange range2 = (CellRange)cellRangeList.get(j);
-                                               
+
                                                switch(range1.intersect(range2))
                                                {
                                                        case CellRange.NO_INTERSECTION: 
@@ -147,10 +242,10 @@ public class HSSFConditionalFormatting
                        }
                }
                while( merged );
-               
+
                return cellRangeList;
        }
-       
+
        /**
         * Convert a List of CellRange objects to an array of regions 
         *  
@@ -161,7 +256,7 @@ public class HSSFConditionalFormatting
        {
                int size = cellRanges.size();
                Region[] regions = new Region[size];
-               
+
                for (int i = 0; i != size; i++)
                {
                        CellRange cr = (CellRange) cellRanges.get(i);
@@ -170,7 +265,7 @@ public class HSSFConditionalFormatting
                }
                return regions;
        }
-       
+
        /**
         * Convert array of regions to a List of CellRange objects
         *  
@@ -192,10 +287,6 @@ public class HSSFConditionalFormatting
 
        public String toString()
        {
-               if(cfAggregate!=null)
-               {
-                       return cfAggregate.toString();
-               }
-               return null;
+               return cfAggregate.toString();
        }
 }
index 712dcc99c5e305c633728d52e43022d49dfb13ac..fb35afd9ae52abd37baef2afd183a2e4291481ed 100644 (file)
@@ -308,9 +308,9 @@ public class HSSFRow
      * @param cellnum  0 based column number
      * @return HSSFCell representing that column or null if undefined.
      */
-    public HSSFCell getCell(short cellnum)
-    {
-               return getCell((int)cellnum);
+    public HSSFCell getCell(short cellnum) {
+        int ushortCellNum = cellnum & 0x0000FFFF; // avoid sign extension
+        return getCell(ushortCellNum);
     }
     /**
      * Get the hssfcell representing a given column (logical cell)
index d553f7b0a628200794289ab4e27a3232be677076..0e8759f4fd03383da021cc6397b9e2035a4a5daa 100644 (file)
    limitations under the License.
 ==================================================================== */
 
-/*
- * HSSFSheet.java
- *
- * Created on September 30, 2001, 3:40 PM
- */
 package org.apache.poi.hssf.usermodel;
 
 import java.awt.font.FontRenderContext;
@@ -374,7 +369,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
     {
         return lastrow;
     }
-    
+
     /**
      * Creates a data validation object
      * @param obj_validation The Data validation object settings
@@ -610,25 +605,25 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
     }
 
     /**
-     * Whether a record must be inserted or not at generation to indicate that 
+     * Whether a record must be inserted or not at generation to indicate that
      * formula must be recalculated when workbook is opened.
      * @param value true if an uncalced record must be inserted or not at generation
      */
     public void setForceFormulaRecalculation(boolean value)
     {
-       sheet.setUncalced(value);
+        sheet.setUncalced(value);
     }
     /**
-     * Whether a record must be inserted or not at generation to indicate that 
+     * Whether a record must be inserted or not at generation to indicate that
      * formula must be recalculated when workbook is opened.
      * @return true if an uncalced record must be inserted or not at generation
      */
     public boolean getForceFormulaRecalculation()
     {
-       return sheet.getUncalced();
+        return sheet.getUncalced();
     }
 
-    
+
     /**
      * determines whether the output is vertically centered on the page.
      * @param value true to vertically center, false otherwise.
@@ -728,13 +723,13 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         return rows.values().iterator();
     }
     /**
-     * Alias for {@link #rowIterator()} to allow 
+     * Alias for {@link #rowIterator()} to allow
      *  foreach loops
      */
     public Iterator iterator() {
         return rowIterator();
     }
-    
+
 
     /**
      * used internally in the API to get the low level Sheet record represented by this
@@ -1015,45 +1010,45 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         getSheet().setMargin( margin, size );
     }
 
-       /**
-        * Answer whether protection is enabled or disabled
-        * @return true => protection enabled; false => protection disabled
-        */
-       public boolean getProtect() {
-               return getSheet().isProtected()[0];
-       }
-
-       /**
-        * @return hashed password
-        */
-       public short getPassword() {
-               return getSheet().getPassword().getPassword();
-       }
-
-       /**
-        * Answer whether object protection is enabled or disabled
-        * @return true => protection enabled; false => protection disabled
-        */
-       public boolean getObjectProtect() {
-               return getSheet().isProtected()[1];
-       }
-
-       /**
-        * Answer whether scenario protection is enabled or disabled
-        * @return true => protection enabled; false => protection disabled
-        */
-       public boolean getScenarioProtect() {
-               return getSheet().isProtected()[2];
-       }
-
-       /**
-        * Sets the protection on enabled or disabled
-        * @param protect true => protection enabled; false => protection disabled
+    /**
+     * Answer whether protection is enabled or disabled
+     * @return true => protection enabled; false => protection disabled
+     */
+    public boolean getProtect() {
+        return getSheet().isProtected()[0];
+    }
+
+    /**
+     * @return hashed password
+     */
+    public short getPassword() {
+        return getSheet().getPassword().getPassword();
+    }
+
+    /**
+     * Answer whether object protection is enabled or disabled
+     * @return true => protection enabled; false => protection disabled
+     */
+    public boolean getObjectProtect() {
+        return getSheet().isProtected()[1];
+    }
+
+    /**
+     * Answer whether scenario protection is enabled or disabled
+     * @return true => protection enabled; false => protection disabled
+     */
+    public boolean getScenarioProtect() {
+        return getSheet().isProtected()[2];
+    }
+
+    /**
+     * Sets the protection on enabled or disabled
+     * @param protect true => protection enabled; false => protection disabled
          * @deprecated use protectSheet(String, boolean, boolean)
-        */
-       public void setProtect(boolean protect) {
-               getSheet().getProtect().setProtect(protect);
-       }
+     */
+    public void setProtect(boolean protect) {
+        getSheet().getProtect().setProtect(protect);
+    }
 
         /**
          * Sets the protection enabled as well as the password
@@ -1083,29 +1078,29 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         sclRecord.setDenominator((short)denominator);
         getSheet().setSCLRecord(sclRecord);
     }
-    
+
     /**
-     * The top row in the visible view when the sheet is 
-     * first viewed after opening it in a viewer 
+     * The top row in the visible view when the sheet is
+     * first viewed after opening it in a viewer
      * @return short indicating the rownum (0 based) of the top row
      */
-    public short getTopRow() 
+    public short getTopRow()
     {
-       return sheet.getTopRow();
+        return sheet.getTopRow();
     }
-    
+
     /**
-     * The left col in the visible view when the sheet is 
-     * first viewed after opening it in a viewer 
+     * The left col in the visible view when the sheet is
+     * first viewed after opening it in a viewer
      * @return short indicating the rownum (0 based) of the top row
      */
-    public short getLeftCol() 
+    public short getLeftCol()
     {
-       return sheet.getLeftCol();
+        return sheet.getLeftCol();
     }
-    
+
     /**
-     * Sets desktop window pane display area, when the 
+     * Sets desktop window pane display area, when the
      * file is first opened in a viewer.
      * @param toprow the top row to show in desktop window pane
      * @param leftcol the left column to show in desktop window pane
@@ -1115,49 +1110,49 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         this.sheet.setLeftCol((short)leftcol);
         }
 
-       /**
-        * Shifts the merged regions left or right depending on mode
-        * <p>
-        * TODO: MODE , this is only row specific
-        * @param startRow
-        * @param endRow
-        * @param n
-        * @param isRow
-        */
-       protected void shiftMerged(int startRow, int endRow, int n, boolean isRow) {
-               List shiftedRegions = new ArrayList();
-               //move merged regions completely if they fall within the new region boundaries when they are shifted
-               for (int i = 0; i < this.getNumMergedRegions(); i++) {
-                        Region merged = this.getMergedRegionAt(i);
-
-                        boolean inStart = (merged.getRowFrom() >= startRow || merged.getRowTo() >= startRow);
-                        boolean inEnd =  (merged.getRowTo() <= endRow || merged.getRowFrom() <= endRow);
-
-                        //dont check if it's not within the shifted area
-                        if (! (inStart && inEnd)) continue;
-
-                        //only shift if the region outside the shifted rows is not merged too
-                        if (!merged.contains(startRow-1, (short)0) && !merged.contains(endRow+1, (short)0)){
-                                merged.setRowFrom(merged.getRowFrom()+n);
-                                merged.setRowTo(merged.getRowTo()+n);
-                                //have to remove/add it back
-                                shiftedRegions.add(merged);
-                                this.removeMergedRegion(i);
-                                i = i -1; // we have to back up now since we removed one
-
-                        }
+    /**
+     * Shifts the merged regions left or right depending on mode
+     * <p>
+     * TODO: MODE , this is only row specific
+     * @param startRow
+     * @param endRow
+     * @param n
+     * @param isRow
+     */
+    protected void shiftMerged(int startRow, int endRow, int n, boolean isRow) {
+        List shiftedRegions = new ArrayList();
+        //move merged regions completely if they fall within the new region boundaries when they are shifted
+        for (int i = 0; i < this.getNumMergedRegions(); i++) {
+             Region merged = this.getMergedRegionAt(i);
+
+             boolean inStart = (merged.getRowFrom() >= startRow || merged.getRowTo() >= startRow);
+             boolean inEnd =  (merged.getRowTo() <= endRow || merged.getRowFrom() <= endRow);
+
+             //dont check if it's not within the shifted area
+             if (! (inStart && inEnd)) continue;
+
+             //only shift if the region outside the shifted rows is not merged too
+             if (!merged.contains(startRow-1, (short)0) && !merged.contains(endRow+1, (short)0)){
+                 merged.setRowFrom(merged.getRowFrom()+n);
+                 merged.setRowTo(merged.getRowTo()+n);
+                 //have to remove/add it back
+                 shiftedRegions.add(merged);
+                 this.removeMergedRegion(i);
+                 i = i -1; // we have to back up now since we removed one
+
+             }
 
-               }
+        }
 
-               //readd so it doesn't get shifted again
-               Iterator iterator = shiftedRegions.iterator();
-               while (iterator.hasNext()) {
-                       Region region = (Region)iterator.next();
+        //readd so it doesn't get shifted again
+        Iterator iterator = shiftedRegions.iterator();
+        while (iterator.hasNext()) {
+            Region region = (Region)iterator.next();
 
-                       this.addMergedRegion(region);
-               }
+            this.addMergedRegion(region);
+        }
 
-       }
+    }
 
     /**
      * Shifts rows between startRow and endRow n number of rows.
@@ -1174,7 +1169,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @param n the number of rows to shift
      */
     public void shiftRows( int startRow, int endRow, int n ) {
-               shiftRows(startRow, endRow, n, false, false);
+        shiftRows(startRow, endRow, n, false, false);
     }
 
     /**
@@ -1211,7 +1206,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
 
         shiftMerged(startRow, endRow, n, true);
         sheet.shiftRowBreaks(startRow, endRow, n);
-                       
+
         for ( int rowNum = s; rowNum >= startRow && rowNum <= endRow && rowNum >= 0 && rowNum < 65536; rowNum += inc )
         {
             HSSFRow row = getRow( rowNum );
@@ -1224,23 +1219,23 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
 
 
 
-           // Removes the cells before over writting them.
+        // Removes the cells before over writting them.
             for ( short col = row2Replace.getFirstCellNum(); col <= row2Replace.getLastCellNum(); col++ )
             {
                 cell = row2Replace.getCell( col );
                 if ( cell != null )
                     row2Replace.removeCell( cell );
             }
-           if (row == null) continue; // Nothing to do for this row
-           else {
-               if (copyRowHeight) {
-                   row2Replace.setHeight(row.getHeight());
-               }
-
-               if (resetOriginalRowHeight) {
-                   row.setHeight((short)0xff);
-               }
-           }
+        if (row == null) continue; // Nothing to do for this row
+        else {
+        if (copyRowHeight) {
+            row2Replace.setHeight(row.getHeight());
+        }
+
+        if (resetOriginalRowHeight) {
+            row.setHeight((short)0xff);
+        }
+        }
             for ( short col = row.getFirstCellNum(); col <= row.getLastCellNum(); col++ )
             {
                 cell = row.getCell( col );
@@ -1262,55 +1257,55 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         }
         if ( endRow == lastrow || endRow + n > lastrow ) lastrow = Math.min( endRow + n, 65535 );
         if ( startRow == firstrow || startRow + n < firstrow ) firstrow = Math.max( startRow + n, 0 );
-        
+
         // Update any formulas on this sheet that point to
         //  rows which have been moved
         updateFormulasAfterShift(startRow, endRow, n);
     }
-    
+
     /**
      * Called by shiftRows to update formulas on this sheet
      *  to point to the new location of moved rows
      */
     private void updateFormulasAfterShift(int startRow, int endRow, int n) {
-       // Need to look at every cell on the sheet
-       // Not just those that were moved
+        // Need to look at every cell on the sheet
+        // Not just those that were moved
         Iterator ri = rowIterator();
         while(ri.hasNext()) {
-               HSSFRow r = (HSSFRow)ri.next();
-               Iterator ci = r.cellIterator();
-               while(ci.hasNext()) {
-                       HSSFCell c = (HSSFCell)ci.next();
-                       if(c.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
-                               // Since it's a formula cell, process the
-                               //  formula string, and look to see if
-                               //  it contains any references
-                               FormulaParser fp = new FormulaParser(c.getCellFormula(), workbook.getWorkbook());
-                               fp.parse();
-                               
-                               // Look for references, and update if needed
-                               Ptg[] ptgs = fp.getRPNPtg();
-                               boolean changed = false;
-                               for(int i=0; i<ptgs.length; i++) {
-                                       if(ptgs[i] instanceof ReferencePtg) {
-                                               ReferencePtg rptg = (ReferencePtg)ptgs[i];
-                                               if(startRow <= rptg.getRowAsInt() &&
-                                                               rptg.getRowAsInt() <= endRow) {
-                                                       // References a row that moved
-                                                       rptg.setRow(rptg.getRowAsInt() + n);
-                                                       changed = true;
-                                               }
-                                       }
-                               }
-                               // If any references were changed, then
-                               //  re-create the formula string
-                               if(changed) {
-                                       c.setCellFormula(
-                                                       fp.toFormulaString(ptgs)
-                                       );
-                               }
-                       }
-               }
+            HSSFRow r = (HSSFRow)ri.next();
+            Iterator ci = r.cellIterator();
+            while(ci.hasNext()) {
+                HSSFCell c = (HSSFCell)ci.next();
+                if(c.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
+                    // Since it's a formula cell, process the
+                    //  formula string, and look to see if
+                    //  it contains any references
+                    FormulaParser fp = new FormulaParser(c.getCellFormula(), workbook.getWorkbook());
+                    fp.parse();
+
+                    // Look for references, and update if needed
+                    Ptg[] ptgs = fp.getRPNPtg();
+                    boolean changed = false;
+                    for(int i=0; i<ptgs.length; i++) {
+                        if(ptgs[i] instanceof ReferencePtg) {
+                            ReferencePtg rptg = (ReferencePtg)ptgs[i];
+                            if(startRow <= rptg.getRowAsInt() &&
+                                    rptg.getRowAsInt() <= endRow) {
+                                // References a row that moved
+                                rptg.setRow(rptg.getRowAsInt() + n);
+                                changed = true;
+                            }
+                        }
+                    }
+                    // If any references were changed, then
+                    //  re-create the formula string
+                    if(changed) {
+                        c.setCellFormula(
+                                fp.toFormulaString(ptgs)
+                        );
+                    }
+                }
+            }
         }
     }
 
@@ -1363,7 +1358,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
     {
         getSheet().createSplitPane( xSplitPos, ySplitPos, topRow, leftmostColumn, activePane );
     }
-    
+
     /**
      * Returns the information regarding the currently configured pane (split or freeze).
      * @return null if no pane configured, or the pane information.
@@ -1385,7 +1380,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return whether gridlines are displayed
      */
     public boolean isDisplayGridlines() {
-       return sheet.isDisplayGridlines();
+    return sheet.isDisplayGridlines();
     }
 
     /**
@@ -1401,7 +1396,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return whether formulas are displayed
      */
     public boolean isDisplayFormulas() {
-       return sheet.isDisplayFormulas();
+        return sheet.isDisplayFormulas();
     }
 
     /**
@@ -1417,16 +1412,16 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return whether RowColHeadings are displayed
      */
     public boolean isDisplayRowColHeadings() {
-       return sheet.isDisplayRowColHeadings();
+        return sheet.isDisplayRowColHeadings();
     }
-    
+
     /**
      * Sets a page break at the indicated row
      * @param row FIXME: Document this!
      */
     public void setRowBreak(int row) {
-       validateRow(row);
-       sheet.setRowBreak(row, (short)0, (short)255);
+        validateRow(row);
+        sheet.setRowBreak(row, (short)0, (short)255);
     }
 
     /**
@@ -1435,35 +1430,35 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return FIXME: Document this!
      */
     public boolean isRowBroken(int row) {
-       return sheet.isRowBroken(row);
+        return sheet.isRowBroken(row);
     }
-    
+
     /**
      * Removes the page break at the indicated row
      * @param row
      */
     public void removeRowBreak(int row) {
-       sheet.removeRowBreak(row);
+        sheet.removeRowBreak(row);
     }
-    
+
     /**
      * Retrieves all the horizontal page breaks
      * @return all the horizontal page breaks, or null if there are no row page breaks
      */
     public int[] getRowBreaks(){
-       //we can probably cache this information, but this should be a sparsely used function
-       int count = sheet.getNumRowBreaks();
-       if (count > 0) {
-         int[] returnValue = new int[count];
-         Iterator iterator = sheet.getRowBreaks();
-         int i = 0;
-         while (iterator.hasNext()) {
-               PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
-               returnValue[i++] = (int)breakItem.main;
-         }
-         return returnValue;
-       }
-       return null;
+        //we can probably cache this information, but this should be a sparsely used function
+        int count = sheet.getNumRowBreaks();
+        if (count > 0) {
+          int[] returnValue = new int[count];
+          Iterator iterator = sheet.getRowBreaks();
+          int i = 0;
+          while (iterator.hasNext()) {
+            PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
+            returnValue[i++] = (int)breakItem.main;
+          }
+          return returnValue;
+        }
+        return null;
     }
 
     /**
@@ -1471,29 +1466,29 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return all the vertical page breaks, or null if there are no column page breaks
      */
     public short[] getColumnBreaks(){
-       //we can probably cache this information, but this should be a sparsely used function 
-       int count = sheet.getNumColumnBreaks();
-       if (count > 0) {
-         short[] returnValue = new short[count];
-         Iterator iterator = sheet.getColumnBreaks();
-         int i = 0;
-         while (iterator.hasNext()) {
-               PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
-               returnValue[i++] = breakItem.main;
-         }
-         return returnValue;
-       }
-       return null;
-    }
-    
-    
+        //we can probably cache this information, but this should be a sparsely used function
+        int count = sheet.getNumColumnBreaks();
+        if (count > 0) {
+          short[] returnValue = new short[count];
+          Iterator iterator = sheet.getColumnBreaks();
+          int i = 0;
+          while (iterator.hasNext()) {
+            PageBreakRecord.Break breakItem = (PageBreakRecord.Break)iterator.next();
+            returnValue[i++] = breakItem.main;
+          }
+          return returnValue;
+        }
+        return null;
+    }
+
+
     /**
      * Sets a page break at the indicated column
      * @param column
      */
     public void setColumnBreak(short column) {
-       validateColumn(column);
-       sheet.setColumnBreak(column, (short)0, (short)65535);
+        validateColumn(column);
+        sheet.setColumnBreak(column, (short)0, (short)65535);
     }
 
     /**
@@ -1502,33 +1497,33 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @return FIXME: Document this!
      */
     public boolean isColumnBroken(short column) {
-       return sheet.isColumnBroken(column);
+        return sheet.isColumnBroken(column);
     }
-    
+
     /**
      * Removes a page break at the indicated column
      * @param column
      */
     public void removeColumnBreak(short column) {
-       sheet.removeColumnBreak(column);
+        sheet.removeColumnBreak(column);
     }
-    
+
     /**
      * Runs a bounds check for row numbers
      * @param row
      */
     protected void validateRow(int row) {
-       if (row > 65535) throw new IllegalArgumentException("Maximum row number is 65535");
-       if (row < 0) throw new IllegalArgumentException("Minumum row number is 0");
+        if (row > 65535) throw new IllegalArgumentException("Maximum row number is 65535");
+        if (row < 0) throw new IllegalArgumentException("Minumum row number is 0");
     }
-    
+
     /**
      * Runs a bounds check for column numbers
      * @param column
      */
     protected void validateColumn(short column) {
-       if (column > 255) throw new IllegalArgumentException("Maximum column number is 255");
-       if (column < 0) throw new IllegalArgumentException("Minimum column number is 0");
+        if (column > 255) throw new IllegalArgumentException("Maximum column number is 255");
+        if (column < 0)    throw new IllegalArgumentException("Minimum column number is 0");
     }
 
     /**
@@ -1573,7 +1568,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
         agg.setPatriarch(patriarch);
         return patriarch;
     }
-    
+
     /**
      * Returns the top-level drawing patriach, if there is
      *  one.
@@ -1587,32 +1582,32 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      *  start from scratch!
      */
     public HSSFPatriarch getDrawingPatriarch() {
-       book.findDrawingGroup();
-       
-       // If there's now no drawing manager, then there's
-       //  no drawing escher records on the workbook
-       if(book.getDrawingManager() == null) {
-               return null;
-       }
-       
-       int found = sheet.aggregateDrawingRecords(
-                       book.getDrawingManager(), false
-       );
-       if(found == -1) {
-               // Workbook has drawing stuff, but this sheet doesn't
-               return null;
-       }
-       
-       // Grab our aggregate record, and wire it up
+        book.findDrawingGroup();
+
+        // If there's now no drawing manager, then there's
+        //  no drawing escher records on the workbook
+        if(book.getDrawingManager() == null) {
+            return null;
+        }
+
+        int found = sheet.aggregateDrawingRecords(
+                book.getDrawingManager(), false
+        );
+        if(found == -1) {
+            // Workbook has drawing stuff, but this sheet doesn't
+            return null;
+        }
+
+        // Grab our aggregate record, and wire it up
         EscherAggregate agg = (EscherAggregate) sheet.findFirstRecordBySid(EscherAggregate.sid);
         HSSFPatriarch patriarch = new HSSFPatriarch(this, agg);
         agg.setPatriarch(patriarch);
-        
+
         // Have it process the records into high level objects
         //  as best it can do (this step may eat anything
         //  that isn't supported, you were warned...)
         agg.convertRecordsToUserModel();
-        
+
         // Return what we could cope with
         return patriarch;
     }
@@ -1666,7 +1661,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
      * @param style the style to set
      */
     public void setDefaultColumnStyle(short column, CellStyle style) {
-       sheet.setColumn(column, new Short(((HSSFCellStyle) style).getIndex()), null, null, null, null);
+       sheet.setColumn(column, new Short(((HSSFCellStyle) style).getIndex()), null, null, null, null);
     }
 
     /**
@@ -1687,13 +1682,13 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
          * '0' looks to be a good choice.
          */
         char defaultChar = '0';
-       
+
         /**
          * This is the multiple that the font height is scaled by when determining the
          * boundary of rotated text.
          */
         double fontHeightMultiple = 2.0;
-       
+
         FontRenderContext frc = new FontRenderContext(null, true, true);
 
         HSSFWorkbook wb = new HSSFWorkbook(book);
@@ -1814,7 +1809,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
     /**
      * Copy text attributes from the supplied HSSFFont to Java2D AttributedString
      */
-    private void copyAttributes(HSSFFont font, AttributedString str, int startIdx, int endIdx){
+    private void copyAttributes(HSSFFont font, AttributedString str, int startIdx, int endIdx) {
         str.addAttribute(TextAttribute.FAMILY, font.getFontName(), startIdx, endIdx);
         str.addAttribute(TextAttribute.SIZE, new Float(font.getFontHeightInPoints()));
         if (font.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD) str.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, startIdx, endIdx);
@@ -1847,86 +1842,86 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
 
 
      /**
-      * A factory method allowing to create a conditional formatting rule 
-      * with a cell comparison operator and 
+      * A factory method allowing to create a conditional formatting rule
+      * with a cell comparison operator and
       * formatting rules such as font format, border format and pattern format
-      * 
+      *
       * @param comparisonOperation - one of the following values: <p>
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_EQUAL}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_EQUAL}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GT}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LT}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GE}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LE}</li>
-      * </p> 
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_EQUAL}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_EQUAL}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GT}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LT}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GE}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LE}</li>
+      * </p>
       * @param formula1 - formula for the valued, compared with the cell
-      * @param formula2 - second formula (only used with 
+      * @param formula2 - second formula (only used with
       * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}) and
-      * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN} operations)   
+      * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN} operations)
       * @param fontFmt - font formatting rules
       * @param bordFmt - border formatting rules
       * @param patternFmt - pattern formatting rules
       * @return
-      * 
+      *
       */
      public HSSFConditionalFormattingRule createConditionalFormattingRule(
-               byte comparisonOperation, 
-               String formula1, 
-               String formula2,
-               HSSFFontFormatting fontFmt,
-                       HSSFBorderFormatting bordFmt, 
-                       HSSFPatternFormatting patternFmt)
+             byte comparisonOperation,
+             String formula1,
+             String formula2,
+             HSSFFontFormatting fontFmt,
+             HSSFBorderFormatting bordFmt,
+             HSSFPatternFormatting patternFmt)
      {
-       HSSFConditionalFormattingRule cf = new HSSFConditionalFormattingRule(workbook);
-               cf.setFontFormatting(fontFmt);
-               cf.setBorderFormatting(bordFmt);
-               cf.setPatternFormatting(patternFmt);
-               cf.setCellComparisonCondition(comparisonOperation, formula1, formula2);
-       return cf;
+         HSSFConditionalFormattingRule cf = new HSSFConditionalFormattingRule(workbook);
+         cf.setFontFormatting(fontFmt);
+         cf.setBorderFormatting(bordFmt);
+         cf.setPatternFormatting(patternFmt);
+         cf.setCellComparisonCondition(comparisonOperation, formula1, formula2);
+         return cf;
      }
 
      /**
-      * A factory method allowing to create a conditional formatting rule with a formula 
+      * A factory method allowing to create a conditional formatting rule with a formula
       * and formatting rules such as font format, border format and pattern format. <br>
-      * 
-      * The formatting rules are applied by Excel when the value of the formula not equal to 0. 
-      * 
+      *
+      * The formatting rules are applied by Excel when the value of the formula not equal to 0.
+      *
       * @param comparisonOperation - one of the following values: <p>
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_EQUAL}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_EQUAL}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GT}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LT}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GE}</li> 
-      *                <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LE}</li>
-      * </p> 
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_EQUAL}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_EQUAL}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GT}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LT}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_GE}</li>
+      *         <li>{@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_LE}</li>
+      * </p>
       * @param formula1 - formula for the valued, compared with the cell
-      * @param formula2 - second formula (only used with 
+      * @param formula2 - second formula (only used with
       * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_BETWEEN}) and
-      * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN} operations)   
+      * {@link HSSFConditionalFormattingRule#COMPARISON_OPERATOR_NOT_BETWEEN} operations)
       * @param fontFmt - font formatting rules
       * @param bordFmt - border formatting rules
       * @param patternFmt - pattern formatting rules
       * @return
-      * 
+      *
       */
      public HSSFConditionalFormattingRule createConditionalFormattingRule(
-               String formula, 
-               HSSFFontFormatting fontFmt,
-                       HSSFBorderFormatting bordFmt, 
-                       HSSFPatternFormatting patternFmt)
+             String formula,
+             HSSFFontFormatting fontFmt,
+             HSSFBorderFormatting bordFmt,
+             HSSFPatternFormatting patternFmt)
      {
-       HSSFConditionalFormattingRule cf = new HSSFConditionalFormattingRule(workbook);
-               cf.setFontFormatting(fontFmt);
-               cf.setBorderFormatting(bordFmt);
-               cf.setPatternFormatting(patternFmt);
-               cf.setFormulaCondition(formula);
-       return cf;
+         HSSFConditionalFormattingRule cf = new HSSFConditionalFormattingRule(workbook);
+         cf.setFontFormatting(fontFmt);
+         cf.setBorderFormatting(bordFmt);
+         cf.setPatternFormatting(patternFmt);
+         cf.setFormulaCondition(formula);
+         return cf;
      }
-     
+
      /**
       * Adds a copy of HSSFConditionalFormatting object to the sheet
       * <p>This method could be used to copy HSSFConditionalFormatting object
@@ -1934,72 +1929,71 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
       * <pre>
       * HSSFConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
       * newSheet.addConditionalFormatting(cf);
-      * </pre>  
-      * 
+      * </pre>
+      *
       * @param cf HSSFConditionalFormatting object
       * @return index of the new Conditional Formatting object
       */
      public int addConditionalFormatting( HSSFConditionalFormatting cf )
      {
-       HSSFConditionalFormatting cfClone = new HSSFConditionalFormatting(this,cf.cfAggregate.cloneCFAggregate());
-       cfClone.sheet=this;
-       return sheet.addConditionalFormatting(cfClone.cfAggregate);
+         CFRecordsAggregate cfraClone = cf.getCFRecordsAggregate().cloneCFAggregate();
+
+         return sheet.addConditionalFormatting(cfraClone);
      }
 
      /**
       * Allows to add a new Conditional Formatting set to the sheet.
-      *  
-      * @param regions - list of rectangular regions to apply conditional formatting rules 
+      *
+      * @param regions - list of rectangular regions to apply conditional formatting rules
       * @param cfRules - set of up to three conditional formatting rules
-      * 
+      *
       * @return index of the newly created Conditional Formatting object
       */
-     
+
      public int addConditionalFormatting( Region [] regions, HSSFConditionalFormattingRule [] cfRules )
      {
-       HSSFConditionalFormatting cf = new HSSFConditionalFormatting(this);
-       cf.setFormattingRegions(regions);
-       if( cfRules != null )
-       {
-               for( int i=0; i!= cfRules.length; i++ )
-               {
-               cf.addConditionalFormat(cfRules[i]);
-               }
-       }
-       return sheet.addConditionalFormatting(cf.cfAggregate);
+         HSSFConditionalFormatting cf = new HSSFConditionalFormatting(this);
+         cf.setFormattingRegions(regions);
+         if( cfRules != null )
+         {
+             for( int i=0; i!= cfRules.length; i++ )
+             {
+                 cf.addRule(cfRules[i]);
+             }
+         }
+         return sheet.addConditionalFormatting(cf.getCFRecordsAggregate());
      }
-     
-       /**
-        * gets Conditional Formatting object at a particular index
-        * @param index of the Conditional Formatting object to fetch
-        * @return Conditional Formatting object
-        */
-     
-       public HSSFConditionalFormatting getConditionalFormattingAt(int index)
-       {
-               CFRecordsAggregate cf = sheet.getCFRecordsAggregateAt(index);
-               if( cf != null )
-               {
-                       return new HSSFConditionalFormatting(this,cf);
-               }
-               return null;
-       }
-
-       /**
-        * @return number of Conditional Formatting objects of the sheet
-        */
-       public int getNumConditionalFormattings()
-       {
-               return sheet.getNumConditionalFormattings();
-       }
-
-       /**
-        * removes a Conditional Formatting object by index
-        * @param index of a Conditional Formatting object to remove
-        */
-       public void removeConditionalFormatting(int index)
-       {
-               sheet.removeConditionalFormatting(index);
-       }
 
+    /**
+     * gets Conditional Formatting object at a particular index
+     * @param index of the Conditional Formatting object to fetch
+     * @return Conditional Formatting object
+     */
+
+    public HSSFConditionalFormatting getConditionalFormattingAt(int index)
+    {
+        CFRecordsAggregate cf = sheet.getCFRecordsAggregateAt(index);
+        if( cf != null )
+        {
+            return new HSSFConditionalFormatting(this,cf);
+        }
+        return null;
+    }
+
+    /**
+     * @return number of Conditional Formatting objects of the sheet
+     */
+    public int getNumConditionalFormattings()
+    {
+        return sheet.getNumConditionalFormattings();
+    }
+
+    /**
+     * removes a Conditional Formatting object by index
+     * @param index of a Conditional Formatting object to remove
+     */
+    public void removeConditionalFormatting(int index)
+    {
+        sheet.removeConditionalFormatting(index);
+    }
 }
diff --git a/src/resources/fontmetrics/font_metrics.properties b/src/resources/fontmetrics/font_metrics.properties
deleted file mode 100644 (file)
index e521b0c..0000000
+++ /dev/null
@@ -1,927 +0,0 @@
-# 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.
-
-#Font Metrics
-#Sun Sep 07 21:54:47 EST 2003
-font.Lucida\ Sans\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Medium\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Jokerman.height=16
-font.Harrington.height=13
-font.Curlz\ MT.height=14
-font.Garamond\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Wide\ Latin.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Colonna\ MT.widths=5, 6, 5, 6, 6, 4, 7, 6, 4, 4, 6, 4, 9, 6, 6, 6, 6, 5, 5, 5, 6, 6, 8, 6, 6, 5, 8, 6, 7, 8, 6, 6, 7, 8, 4, 4, 7, 6, 9, 9, 7, 7, 7, 8, 5, 7, 8, 7, 9, 7, 8, 6, 6, 4, 5, 5, 6, 5, 6, 5, 5, 6, 
-font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.height=12
-font.Beesknees\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Freestyle\ Script.height=13
-font.Palace\ Script\ MT.widths=4, 3, 3, 4, 3, 3, 4, 4, 3, 3, 4, 3, 6, 4, 3, 4, 3, 3, 3, 3, 4, 4, 5, 4, 4, 3, 8, 8, 6, 8, 5, 7, 6, 8, 6, 6, 8, 7, 8, 7, 5, 7, 6, 8, 6, 7, 5, 5, 6, 7, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
-font.Lucida\ Sans\ Demibold\ Roman.height=14
-font.Franklin\ Gothic\ Book\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Serif.widths=7, 7, 6, 7, 6, 4, 7, 7, 5, 5, 8, 5, 11, 7, 6, 6, 7, 6, 6, 5, 7, 6, 9, 6, 6, 6, 8, 9, 8, 9, 8, 8, 8, 10, 5, 5, 9, 7, 11, 9, 9, 8, 9, 8, 7, 7, 9, 7, 10, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bitstream\ Vera\ Sans\ Mono.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Matisse\ ITC.height=14
-font.Arial\ Special\ G2\ Bold\ Italic.height=14
-font.Lucida\ Fax\ Demibold.height=14
-font.Arial\ Special\ G1\ Bold\ Italic.height=14
-font.Tempus\ Sans\ ITC.height=14
-font.Impact.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Algerian.widths=9, 7, 7, 7, 7, 7, 8, 7, 4, 6, 8, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 8, 7, 7, 9, 7, 7, 7, 7, 7, 8, 7, 4, 6, 8, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gill\ Sans\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.OCR\ A\ Extended.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Cooper\ Black.widths=7, 7, 6, 8, 6, 5, 7, 8, 6, 6, 8, 6, 11, 8, 7, 8, 7, 6, 6, 6, 8, 7, 11, 7, 7, 6, 9, 8, 8, 9, 8, 8, 9, 9, 4, 7, 9, 7, 10, 9, 9, 8, 9, 9, 7, 8, 9, 9, 11, 9, 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Century\ Gothic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bauhaus\ 93.widths=7, 7, 7, 7, 7, 4, 7, 6, 4, 5, 6, 4, 9, 6, 7, 7, 7, 4, 5, 4, 6, 5, 9, 6, 6, 6, 7, 7, 9, 8, 6, 6, 7, 7, 4, 4, 7, 4, 9, 7, 9, 7, 9, 7, 5, 6, 7, 6, 9, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bernard\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Old\ English\ Text\ MT.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 3, 6, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 7, 6, 5, 4, 9, 10, 10, 10, 10, 10, 9, 10, 8, 8, 10, 9, 12, 11, 10, 10, 10, 9, 10, 9, 11, 9, 10, 8, 9, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Century\ Schoolbook.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Rounded\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Informal\ Roman.widths=5, 5, 4, 6, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 4, 5, 5, 5, 4, 4, 5, 5, 7, 5, 5, 6, 7, 7, 6, 7, 6, 6, 7, 7, 4, 6, 6, 6, 8, 7, 6, 6, 6, 6, 5, 7, 7, 7, 9, 7, 7, 7, 5, 4, 6, 6, 6, 7, 6, 6, 6, 6, 
-font.Lucida\ Sans\ Demibold.height=14
-font.Ravie.height=14
-font.Perpetua.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.MT\ Extra.height=13
-font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.height=14
-font.Book\ Antiqua\ Bold\ Italic.height=14
-font.Eras\ Medium\ ITC.height=12
-font.Rockwell\ Bold.height=14
-font.Snap\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialog.italic.widths=7, 7, 6, 7, 7, 4, 7, 7, 4, 3, 6, 4, 8, 7, 7, 7, 7, 4, 6, 4, 7, 6, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 3, 6, 8, 7, 9, 8, 9, 8, 9, 8, 8, 7, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Century\ Gothic\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Demi\ Italic.height=14
-font.Franklin\ Gothic\ Book.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Desdemona.height=12
-font.Franklin\ Gothic\ Demi\ Cond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Wingdings\ 3.height=13
-font.High\ Tower\ Text.height=13
-font.Edwardian\ Script\ ITC.widths=4, 4, 3, 4, 3, 2, 4, 4, 3, 3, 4, 3, 6, 5, 4, 4, 4, 4, 3, 3, 4, 4, 5, 4, 4, 4, 10, 10, 9, 9, 9, 8, 8, 10, 7, 7, 10, 9, 11, 10, 9, 9, 8, 10, 8, 7, 10, 8, 10, 11, 10, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Gigi.widths=6, 5, 5, 5, 6, 5, 6, 5, 5, 4, 6, 6, 9, 6, 4, 6, 5, 5, 4, 5, 6, 5, 8, 6, 6, 4, 10, 8, 7, 10, 5, 9, 7, 9, 6, 6, 9, 8, 11, 9, 6, 8, 8, 7, 6, 7, 8, 9, 13, 9, 9, 7, 5, 5, 6, 5, 6, 5, 5, 5, 5, 6, 
-font.Engravers\ MT.height=13
-font.Californian\ FB\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Calligraphy\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G1\ Italic.height=14
-font.Book\ Antiqua\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Heavy.widths=7, 7, 6, 7, 7, 5, 7, 7, 4, 4, 7, 4, 10, 7, 7, 7, 7, 5, 6, 5, 7, 6, 8, 7, 6, 6, 7, 7, 7, 8, 7, 6, 8, 8, 4, 5, 8, 6, 9, 8, 8, 7, 8, 8, 7, 6, 8, 7, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Typewriter\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ransom\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.High\ Tower\ Text\ Italic.height=14
-font.dialog.bold.height=14
-font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Trebuchet\ MS\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ Ultra\ Bold\ Condensed.widths=5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 5, 4, 4, 5, 5, 7, 6, 5, 4, 7, 6, 5, 6, 5, 5, 6, 7, 3, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 6, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Monotype\ Sorts\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Condensed.height=13
-font.Bell\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gill\ Sans\ Ultra\ Bold.height=13
-font.American\ Uncial.height=13
-font.Kino\ MT.widths=5, 5, 5, 5, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 4, 4, 5, 5, 7, 4, 5, 4, 6, 5, 6, 6, 5, 5, 6, 6, 4, 5, 5, 5, 8, 6, 7, 5, 7, 5, 5, 5, 6, 6, 7, 5, 6, 4, 7, 4, 5, 5, 5, 5, 5, 4, 5, 5, 
-font.Wingdings.height=12
-font.Mistral.widths=5, 4, 4, 5, 3, 3, 4, 5, 4, 4, 5, 4, 7, 6, 5, 4, 4, 4, 4, 4, 5, 4, 6, 5, 5, 4, 5, 6, 6, 6, 5, 5, 6, 6, 5, 4, 6, 4, 7, 6, 6, 5, 6, 6, 4, 4, 6, 5, 7, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 
-font.Bitstream\ Vera\ Sans\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Harrington.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Console.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 1.widths=5, 5, 5, 7, 7, 9, 7, 7, 3, 3, 4, 3, 10, 5, 7, 9, 9, 4, 6, 4, 9, 6, 6, 4, 4, 5, 8, 9, 6, 7, 9, 9, 7, 8, 4, 9, 5, 3, 10, 7, 9, 9, 9, 4, 6, 4, 9, 9, 9, 9, 9, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
-font.Lucida\ Fax\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Demi\ ITC.height=12
-font.Calisto\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Blackadder\ ITC.height=13
-font.Arial\ Narrow\ Special\ G2\ Italic.height=14
-font.Century\ Gothic.widths=7, 7, 6, 7, 6, 3, 7, 6, 2, 3, 6, 2, 10, 6, 6, 7, 7, 3, 4, 3, 6, 6, 8, 6, 6, 5, 7, 6, 8, 7, 5, 5, 8, 7, 3, 5, 6, 4, 9, 7, 8, 6, 8, 6, 5, 4, 6, 7, 9, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Ransom\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Monotype\ Sorts.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
-font.Vivaldi\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.height=14
-font.Lucida\ Handwriting\ Italic.height=14
-font.Castellar.widths=9, 8, 9, 10, 7, 7, 9, 10, 5, 6, 9, 7, 12, 10, 10, 7, 10, 9, 6, 8, 10, 9, 12, 10, 9, 8, 9, 8, 9, 10, 7, 7, 9, 10, 5, 6, 9, 7, 12, 10, 10, 7, 10, 9, 6, 8, 10, 9, 12, 10, 9, 8, 8, 5, 6, 6, 7, 6, 7, 6, 7, 7, 
-font.Forte.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Medium.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Abadi\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Regular.height=14
-font.Bradley\ Hand\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eurostile.height=10
-font.Perpetua\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Rockwell\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 2.height=13
-font.Calisto\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.serif.plain.height=14
-font.Lucida\ Bright\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bell\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tw\ Cen\ MT\ Condensed.widths=4, 4, 3, 4, 4, 3, 4, 4, 2, 2, 4, 2, 7, 4, 4, 4, 4, 3, 3, 3, 4, 4, 6, 4, 4, 3, 5, 5, 4, 5, 4, 4, 5, 5, 3, 4, 5, 4, 6, 5, 5, 4, 5, 5, 4, 4, 5, 5, 7, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
-font.dialog.bolditalic.height=14
-font.Palatino\ Linotype\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialoginput.italic.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Rockwell\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Demi.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Goudy\ Old\ Style\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Perpetua\ Titling\ MT\ Light.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Parchment.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Symbol.height=14
-font.Abadi\ MT\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 7, 5, 5, 5, 5, 6, 5, 6, 6, 5, 6, 6, 3, 4, 5, 5, 7, 6, 6, 6, 6, 5, 5, 5, 6, 5, 7, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Palatino\ Linotype\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Ref.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Vladimir\ Script.widths=5, 5, 4, 5, 4, 4, 5, 5, 4, 3, 5, 4, 6, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, 9, 9, 7, 8, 7, 7, 8, 9, 7, 8, 7, 7, 10, 8, 7, 7, 7, 8, 7, 7, 8, 8, 10, 7, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Franklin\ Gothic\ Demi\ Cond.widths=5, 5, 4, 5, 5, 3, 5, 5, 2, 2, 5, 2, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 5, 6, 5, 6, 5, 4, 6, 6, 3, 3, 5, 4, 8, 6, 6, 5, 6, 5, 5, 4, 6, 5, 7, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.OCR\ A\ Extended.height=11
-font.Arial\ Narrow\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Runic\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Wide\ Latin.widths=11, 11, 10, 11, 10, 8, 10, 12, 7, 7, 13, 7, 18, 12, 11, 11, 11, 10, 10, 7, 12, 12, 16, 13, 11, 10, 15, 15, 14, 16, 15, 14, 16, 17, 10, 11, 16, 14, 18, 15, 14, 15, 14, 16, 13, 13, 16, 14, 19, 15, 14, 13, 13, 10, 13, 12, 13, 12, 13, 11, 13, 13, 
-font.Arial\ Special\ G2\ Bold.height=14
-font.Lucida\ Console.height=11
-font.Lucida\ Sans\ Typewriter\ Regular.height=14
-font.Bookman\ Old\ Style\ Bold.height=14
-font.Copperplate\ Gothic\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Trebuchet\ MS\ Bold.height=14
-font.Garamond\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Serif\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Viner\ Hand\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Book.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 4, 6, 6, 8, 5, 5, 5, 6, 7, 7, 7, 6, 6, 7, 7, 4, 5, 7, 6, 9, 8, 7, 7, 7, 7, 7, 6, 7, 6, 9, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookman\ Old\ Style\ Bold\ Italic.height=14
-font.Ransom\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Pacmania.height=12
-font.Arial\ Narrow\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Fax\ Demibold\ Italic.height=14
-font.monospaced.italic.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Book\ Antiqua\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Demibold\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial.height=13
-font.Lucida\ Bright\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Mistral.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Ref.height=14
-font.Papyrus.height=17
-font.Lucida\ Sans\ Unicode.widths=7, 7, 6, 7, 6, 5, 7, 7, 4, 4, 7, 4, 9, 7, 7, 7, 7, 6, 6, 5, 7, 7, 9, 7, 7, 7, 8, 7, 8, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 9, 7, 9, 7, 6, 7, 8, 8, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Bold\ Italic.height=14
-font.Century\ Schoolbook\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Special\ G1.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Arial\ Narrow\ Special\ G1.widths=10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
-font.Marlett.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic\ Italic.height=14
-font.Century\ Gothic\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia\ Bold.height=14
-font.Lucida\ Sans\ Typewriter\ Bold.height=14
-font.MS\ Outlook.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Bold\ Italic.height=14
-font.Parchment.widths=3, 3, 3, 3, 3, 2, 3, 3, 2, 2, 3, 2, 4, 3, 3, 3, 3, 3, 3, 2, 3, 3, 4, 3, 3, 2, 10, 9, 8, 8, 8, 7, 11, 9, 7, 7, 9, 9, 10, 10, 10, 9, 9, 8, 8, 8, 9, 8, 10, 8, 8, 9, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 
-font.Palatino\ Linotype\ Bold\ Italic.height=14
-font.Verdana\ Bold\ Italic.height=14
-font.Juice\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Typewriter\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Bold.height=14
-font.Ransom.height=16
-font.Rockwell\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Californian\ FB\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Italic.height=14
-font.French\ Script\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Garamond\ Bold.height=14
-font.Lucida\ Calligraphy\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Narrow\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Light\ ITC.height=12
-font.Franklin\ Gothic\ Book\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Broadway.widths=8, 8, 7, 8, 7, 5, 7, 9, 5, 5, 8, 5, 13, 9, 7, 8, 8, 6, 6, 5, 9, 7, 10, 8, 7, 8, 9, 8, 8, 9, 8, 8, 9, 9, 5, 7, 8, 8, 10, 8, 9, 9, 9, 9, 7, 8, 9, 9, 11, 9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Californian\ FB\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Courier\ New\ Bold\ Italic.height=14
-font.Marlett.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Trebuchet\ MS.widths=5, 6, 5, 6, 6, 4, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 5, 4, 4, 6, 6, 9, 6, 5, 5, 7, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 7, 6, 7, 6, 5, 6, 7, 7, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Tw\ Cen\ MT\ Medium\ Italic.height=14
-font.Microsoft\ Sans\ Serif.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Brush\ Script\ MT\ Italic.height=14
-font.Baskerville\ Old\ Face.widths=5, 6, 5, 6, 6, 4, 5, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 5, 4, 6, 5, 7, 5, 5, 5, 8, 8, 8, 9, 7, 6, 9, 9, 5, 4, 8, 7, 10, 9, 9, 7, 9, 7, 6, 8, 9, 8, 12, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Edda.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Bold.height=14
-font.Rage\ Italic.widths=5, 4, 4, 6, 4, 3, 5, 5, 4, 3, 5, 4, 7, 6, 5, 6, 6, 5, 4, 4, 6, 5, 6, 5, 6, 4, 7, 8, 6, 8, 7, 6, 6, 8, 5, 6, 8, 7, 10, 8, 7, 7, 6, 8, 7, 6, 8, 7, 9, 7, 8, 7, 6, 4, 6, 6, 6, 5, 6, 5, 6, 6, 
-font.Franklin\ Gothic\ Medium\ Italic.height=14
-font.Century\ Schoolbook\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Braggadocio.widths=9, 9, 7, 9, 8, 6, 9, 9, 5, 5, 10, 5, 13, 9, 9, 9, 9, 8, 7, 6, 9, 8, 11, 8, 10, 9, 10, 12, 10, 11, 10, 10, 10, 12, 7, 8, 13, 10, 13, 10, 11, 11, 11, 12, 9, 11, 10, 11, 13, 10, 11, 12, 11, 7, 10, 11, 12, 11, 10, 11, 11, 11, 
-font.Wingdings\ 2.height=12
-font.Britannic\ Bold.height=11
-font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 5.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
-font.Playbill.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Bold\ Italic.height=14
-font.Georgia\ Ref.widths=7, 7, 6, 7, 6, 5, 7, 8, 5, 4, 7, 5, 11, 8, 6, 7, 6, 6, 6, 5, 8, 7, 9, 7, 7, 6, 9, 8, 7, 8, 8, 7, 8, 9, 5, 6, 8, 7, 10, 10, 8, 8, 8, 9, 7, 7, 9, 9, 11, 9, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia.widths=7, 7, 5, 7, 6, 5, 6, 8, 5, 4, 7, 5, 11, 8, 6, 7, 6, 5, 5, 5, 8, 7, 8, 7, 7, 5, 8, 8, 7, 8, 7, 7, 8, 9, 5, 6, 8, 7, 10, 8, 8, 7, 8, 8, 6, 7, 8, 8, 11, 8, 8, 7, 7, 6, 6, 6, 6, 6, 7, 6, 7, 7, 
-font.Arial\ Black\ Italic.height=14
-font.Franklin\ Gothic\ Medium\ Cond.widths=6, 6, 5, 6, 5, 4, 5, 6, 3, 3, 5, 3, 8, 6, 6, 6, 6, 4, 5, 4, 6, 5, 7, 5, 5, 4, 6, 6, 6, 7, 6, 5, 7, 6, 3, 4, 6, 5, 8, 7, 7, 6, 7, 6, 6, 5, 6, 6, 8, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Bauhaus\ 93.height=15
-font.Old\ English\ Text\ MT.height=11
-font.Verdana\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Augsburger\ Initials.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.monospaced.bold.height=14
-font.Bell\ MT.widths=5, 6, 5, 6, 5, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 5, 4, 6, 6, 8, 6, 6, 5, 8, 7, 7, 9, 8, 7, 8, 9, 5, 5, 8, 7, 10, 9, 8, 7, 8, 8, 6, 8, 9, 8, 11, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Rockwell\ Italic.height=14
-font.Lucida\ Sans\ Unicode.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Castellar.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Stencil.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Chiller.widths=4, 4, 4, 4, 4, 3, 4, 4, 3, 3, 4, 3, 6, 4, 4, 4, 4, 3, 4, 4, 4, 4, 5, 4, 5, 5, 6, 6, 6, 5, 5, 4, 5, 5, 4, 5, 6, 5, 7, 6, 6, 5, 6, 5, 4, 5, 5, 5, 7, 6, 5, 6, 6, 4, 5, 5, 5, 5, 5, 5, 6, 5, 
-font.Gill\ Sans\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.dialog.italic.height=14
-font.Perpetua\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.ProFont.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.dialog.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Trebuchet\ MS\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Bold.height=14
-font.Californian\ FB\ Bold.height=14
-font.Rockwell\ Condensed\ Bold.height=14
-font.Georgia\ Bold\ Italic.height=14
-font.Trebuchet\ MS\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G1\ Bold.height=14
-font.Harlow\ Solid\ Italic\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Poor\ Richard.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 3, 6, 4, 8, 6, 5, 6, 6, 4, 4, 4, 6, 6, 7, 5, 6, 4, 8, 7, 8, 8, 6, 6, 8, 8, 4, 5, 7, 6, 9, 8, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 8, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.serif.bolditalic.widths=5, 5, 4, 5, 4, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 5, 5, 4, 4, 3, 6, 4, 7, 5, 4, 4, 7, 7, 7, 7, 7, 7, 7, 8, 4, 5, 7, 6, 9, 7, 7, 6, 7, 7, 6, 6, 7, 7, 9, 7, 7, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Gill\ Sans\ Ultra\ Bold\ Condensed.height=13
-font.Verdana.widths=7, 7, 6, 7, 7, 5, 7, 7, 3, 4, 7, 3, 11, 7, 7, 7, 7, 5, 6, 5, 7, 7, 9, 7, 7, 6, 9, 8, 7, 9, 7, 7, 8, 8, 6, 6, 8, 6, 9, 8, 9, 8, 9, 8, 7, 6, 8, 8, 12, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gill\ Sans\ Ultra\ Bold\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.height=14
-font.Courier\ New\ Italic.height=14
-font.Goudy\ Old\ Style.widths=5, 6, 5, 6, 5, 4, 5, 6, 4, 4, 6, 4, 8, 7, 6, 6, 6, 4, 4, 4, 6, 5, 7, 5, 5, 4, 8, 7, 8, 8, 7, 6, 9, 9, 4, 4, 8, 6, 10, 8, 9, 6, 9, 8, 6, 7, 9, 8, 11, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.dialog.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Bold.height=14
-font.Bitstream\ Vera\ Sans\ Mono\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Trebuchet\ MS.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Modern\ No.\ 20.widths=6, 6, 5, 6, 5, 5, 5, 7, 4, 4, 6, 4, 9, 6, 5, 6, 6, 5, 4, 4, 6, 5, 8, 6, 6, 5, 8, 8, 6, 8, 8, 7, 8, 9, 5, 6, 8, 8, 10, 8, 7, 7, 7, 8, 6, 7, 8, 8, 11, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Kino\ MT.height=12
-font.Viner\ Hand\ ITC.widths=7, 6, 5, 6, 5, 5, 6, 7, 5, 5, 8, 5, 10, 8, 5, 6, 7, 5, 4, 6, 8, 7, 9, 6, 7, 6, 9, 9, 8, 9, 8, 7, 7, 9, 5, 6, 10, 8, 10, 9, 6, 8, 9, 8, 8, 7, 8, 8, 12, 7, 8, 8, 5, 4, 8, 6, 7, 5, 6, 6, 6, 6, 
-font.Forte.widths=7, 6, 5, 7, 5, 5, 7, 6, 4, 4, 6, 6, 9, 6, 6, 7, 6, 4, 5, 4, 6, 5, 8, 6, 6, 5, 8, 8, 7, 8, 7, 6, 7, 9, 7, 6, 8, 5, 12, 9, 7, 7, 8, 7, 6, 6, 7, 6, 9, 8, 8, 7, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 
-font.dialoginput.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Impact.height=14
-font.Showcard\ Gothic.widths=7, 8, 7, 10, 7, 6, 8, 9, 5, 6, 8, 6, 10, 9, 9, 8, 9, 8, 7, 7, 9, 7, 11, 8, 7, 7, 7, 8, 7, 10, 7, 6, 8, 9, 5, 6, 8, 6, 10, 9, 9, 8, 9, 8, 7, 7, 9, 7, 11, 8, 7, 7, 7, 5, 6, 6, 7, 6, 6, 6, 7, 7, 
-font.Felix\ Titling.widths=8, 7, 9, 9, 6, 6, 9, 8, 4, 4, 9, 6, 10, 9, 9, 6, 9, 9, 6, 7, 9, 8, 11, 8, 7, 8, 8, 7, 9, 9, 6, 6, 9, 8, 4, 4, 9, 6, 10, 9, 9, 6, 9, 9, 6, 7, 9, 8, 11, 8, 7, 8, 7, 4, 6, 7, 6, 7, 7, 6, 7, 7, 
-font.Arial\ Black.height=15
-font.Comic\ Sans\ MS\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Stencil.height=11
-font.Gill\ Sans\ MT\ Condensed.height=13
-font.Tw\ Cen\ MT\ Medium\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.French\ Script\ MT.widths=4, 4, 4, 4, 4, 3, 5, 5, 3, 3, 5, 3, 6, 4, 4, 4, 4, 3, 4, 3, 4, 4, 5, 4, 4, 4, 6, 8, 6, 8, 6, 7, 6, 9, 6, 6, 9, 7, 11, 10, 7, 6, 7, 8, 7, 6, 8, 8, 9, 7, 8, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Symbol.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Book\ Antiqua\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Felix\ Titling.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Bold\ Italic.height=14
-font.Arial\ Special\ G1\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.height=12
-font.Century\ Schoolbook\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Calisto\ MT.widths=4, 6, 4, 5, 4, 3, 5, 6, 3, 3, 5, 3, 9, 6, 6, 6, 5, 4, 4, 3, 6, 6, 8, 5, 5, 5, 8, 7, 8, 8, 6, 6, 9, 8, 3, 5, 8, 6, 10, 8, 9, 5, 9, 7, 6, 5, 8, 7, 11, 7, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.dialoginput.bolditalic.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Pristina.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G1\ Bold.height=14
-font.serif.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Kristen\ ITC.height=15
-font.Lucida\ Bright\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G2.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Palatino\ Linotype.height=14
-font.dialoginput.plain.height=14
-font.Times\ New\ Roman\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Kunstler\ Script.height=12
-font.Book\ Antiqua.widths=5, 6, 4, 6, 5, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 3, 6, 6, 8, 5, 6, 5, 8, 7, 7, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 8, 6, 8, 7, 6, 7, 8, 8, 10, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Times\ New\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Medium.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Mercurius\ Script\ MT\ Bold.height=12
-font.Tw\ Cen\ MT\ Condensed.height=12
-font.Monotype\ Sorts\ 2.widths=11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 
-font.sansserif.bold.height=14
-font.Elephant\ Italic.height=14
-font.dialoginput.italic.height=14
-font.Tahoma\ Bold.height=14
-font.Rockwell\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Italic.height=14
-font.serif.bold.widths=5, 6, 4, 6, 4, 4, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 6, 4, 4, 3, 6, 5, 7, 6, 5, 3, 7, 7, 7, 7, 7, 6, 8, 8, 4, 5, 8, 7, 9, 7, 8, 6, 9, 7, 6, 7, 7, 7, 10, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Baskerville\ Old\ Face.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Abadi\ MT\ Condensed.height=12
-font.Copperplate\ Gothic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Snap\ ITC.widths=7, 7, 7, 7, 7, 7, 8, 7, 6, 5, 8, 5, 9, 7, 7, 7, 7, 7, 7, 7, 8, 8, 11, 9, 8, 7, 10, 9, 9, 9, 9, 9, 10, 10, 6, 9, 9, 8, 12, 10, 9, 9, 9, 9, 9, 8, 9, 9, 12, 10, 10, 9, 9, 6, 9, 9, 10, 9, 9, 9, 10, 9, 
-font.Rockwell\ Extra\ Bold.widths=8, 8, 7, 8, 7, 5, 8, 8, 4, 4, 7, 4, 12, 8, 8, 8, 8, 5, 6, 5, 8, 7, 10, 7, 7, 7, 8, 9, 8, 9, 8, 7, 8, 9, 5, 4, 9, 7, 11, 9, 9, 8, 9, 9, 6, 8, 7, 8, 11, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bradley\ Hand\ ITC.height=13
-font.Imprint\ MT\ Shadow.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G2.height=16
-font.Arial\ Narrow\ Special\ G2.height=16
-font.Bitstream\ Vera\ Sans\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Elephant.widths=7, 7, 6, 7, 6, 5, 6, 7, 4, 4, 7, 4, 10, 8, 7, 7, 7, 6, 6, 5, 8, 6, 9, 6, 6, 6, 8, 10, 9, 10, 10, 9, 10, 11, 6, 8, 10, 9, 12, 10, 10, 9, 10, 10, 8, 9, 10, 8, 13, 9, 8, 9, 9, 6, 8, 8, 8, 8, 8, 7, 8, 8, 
-font.Eurostile\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gigi.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Imprint\ MT\ Shadow.height=13
-font.Monotype\ Corsiva.widths=5, 5, 4, 5, 4, 4, 6, 5, 3, 3, 5, 3, 7, 6, 5, 5, 5, 4, 4, 4, 6, 5, 8, 5, 5, 5, 7, 7, 6, 8, 7, 7, 7, 8, 5, 5, 8, 7, 9, 8, 7, 7, 7, 7, 6, 6, 8, 7, 10, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Matisse\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookman\ Old\ Style.widths=6, 6, 6, 6, 6, 5, 6, 7, 4, 4, 7, 4, 10, 7, 7, 7, 6, 5, 5, 5, 7, 6, 10, 6, 6, 6, 7, 8, 7, 8, 7, 7, 8, 8, 4, 7, 8, 7, 11, 8, 8, 7, 8, 8, 7, 8, 8, 8, 11, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Perpetua.height=13
-font.Franklin\ Gothic\ Book.height=13
-font.Gloucester\ MT\ Extra\ Condensed.widths=4, 5, 4, 5, 4, 3, 4, 5, 3, 3, 5, 3, 6, 5, 5, 5, 5, 4, 4, 3, 5, 4, 6, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 4, 5, 4, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Ransom\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Mono.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Garamond\ Italic.height=14
-font.Colonna\ MT.height=12
-font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Calisto\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Edda.widths=9, 10, 9, 10, 8, 9, 9, 10, 5, 5, 9, 8, 13, 9, 8, 10, 9, 9, 8, 8, 9, 9, 14, 9, 10, 9, 9, 9, 9, 10, 9, 9, 10, 10, 5, 6, 10, 8, 11, 10, 10, 9, 10, 9, 9, 9, 10, 9, 12, 9, 8, 9, 9, 5, 8, 8, 8, 8, 8, 7, 8, 8, 
-font.Palace\ Script\ MT.height=10
-font.Bitstream\ Vera\ Serif.height=13
-font.Onyx.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 5, 4, 4, 5, 5, 7, 5, 5, 4, 5, 5, 5, 5, 4, 4, 5, 5, 3, 4, 5, 4, 7, 6, 5, 5, 5, 6, 5, 5, 5, 5, 7, 5, 5, 5, 5, 3, 4, 4, 5, 5, 5, 4, 5, 5, 
-font.Playbill.widths=4, 4, 3, 4, 3, 3, 3, 4, 2, 2, 4, 2, 5, 4, 3, 4, 4, 3, 3, 3, 4, 4, 5, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 6, 5, 4, 4, 4, 5, 4, 4, 4, 4, 5, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Bookman\ Old\ Style\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Vladimir\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tempus\ Sans\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Algerian.height=14
-font.Arial\ Narrow\ Special\ G1\ Italic.height=14
-font.Cooper\ Black.height=13
-font.Chiller.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Italic.height=14
-font.Bitstream\ Vera\ Sans\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Informal\ Roman.height=13
-font.Kunstler\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.monospaced.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Script\ MT\ Bold.widths=5, 4, 4, 5, 4, 4, 5, 5, 2, 4, 5, 3, 7, 5, 4, 6, 5, 4, 4, 3, 5, 4, 7, 6, 5, 5, 7, 8, 6, 8, 5, 6, 6, 9, 6, 5, 8, 6, 10, 9, 6, 7, 6, 8, 6, 7, 8, 7, 10, 7, 8, 6, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Juice\ ITC.widths=5, 5, 4, 5, 4, 4, 4, 5, 3, 3, 4, 3, 6, 5, 4, 5, 5, 4, 4, 4, 5, 4, 6, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 5, 3, 4, 4, 4, 5, 5, 5, 4, 5, 4, 4, 4, 5, 5, 5, 5, 4, 4, 5, 3, 4, 4, 4, 4, 5, 4, 4, 5, 
-font.Calisto\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tahoma.widths=6, 6, 5, 6, 6, 4, 6, 6, 3, 4, 7, 3, 9, 6, 6, 6, 6, 5, 5, 4, 6, 6, 9, 6, 6, 5, 8, 7, 7, 8, 6, 6, 7, 8, 5, 5, 7, 6, 9, 7, 8, 7, 8, 7, 6, 7, 7, 7, 10, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookshelf\ Symbol\ 4.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
-font.Tw\ Cen\ MT\ Bold\ Italic.height=14
-font.High\ Tower\ Text\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Enviro.widths=5, 5, 6, 5, 6, 4, 6, 5, 3, 3, 5, 4, 9, 5, 5, 5, 6, 4, 5, 4, 6, 5, 7, 4, 5, 6, 7, 8, 7, 7, 8, 6, 7, 7, 3, 7, 8, 8, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 9, 6, 8, 7, 7, 3, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Edwardian\ Script\ ITC.height=13
-font.Gigi.height=15
-font.Abadi\ MT\ Condensed\ Light.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 6, 5, 5, 5, 5, 6, 5, 6, 5, 5, 5, 6, 3, 4, 5, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 5, 7, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Goudy\ Old\ Style\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Heavy.height=13
-font.Stop.widths=7, 6, 6, 7, 6, 6, 7, 6, 4, 5, 6, 5, 9, 7, 8, 6, 8, 6, 6, 6, 7, 7, 9, 7, 7, 6, 7, 6, 6, 7, 6, 6, 7, 6, 4, 5, 6, 5, 9, 7, 8, 6, 8, 6, 6, 6, 7, 7, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Andy\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Haettenschweiler.widths=5, 5, 5, 5, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 5, 5, 3, 5, 5, 4, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Maiandra\ GD.widths=5, 6, 5, 6, 5, 4, 5, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 4, 6, 6, 9, 5, 6, 5, 8, 7, 7, 8, 6, 6, 8, 9, 4, 5, 7, 5, 10, 8, 9, 6, 9, 7, 5, 7, 8, 7, 11, 7, 7, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Franklin\ Gothic\ Heavy\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.sansserif.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialoginput.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ransom\ Bold.height=14
-font.Britannic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Edwardian\ Script\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Trebuchet\ MS\ Italic.height=14
-font.Californian\ FB.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Baskerville\ Old\ Face.height=11
-font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.height=14
-font.Californian\ FB\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Book\ Antiqua\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bernard\ MT\ Condensed.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 4, 4, 6, 5, 7, 5, 5, 5, 6, 6, 5, 6, 5, 5, 6, 7, 4, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 6, 5, 6, 8, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Lucida\ Bright\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Mono\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Freestyle\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Schoolbook.widths=7, 7, 5, 7, 6, 4, 6, 7, 4, 4, 7, 4, 10, 7, 6, 7, 7, 5, 6, 5, 7, 6, 9, 6, 6, 6, 8, 8, 8, 9, 8, 8, 9, 9, 5, 7, 9, 8, 10, 9, 9, 8, 9, 8, 7, 8, 9, 8, 11, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Typewriter\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Mistral.height=11
-font.Bitstream\ Vera\ Sans\ Bold\ Oblique.height=14
-font.Arial\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia\ Ref.height=13
-font.Bitstream\ Vera\ Sans\ Mono\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Ransom.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 1.height=13
-font.Century\ Gothic\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic.height=14
-font.Wingdings\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT.widths=5, 6, 5, 6, 6, 3, 5, 6, 3, 3, 6, 3, 10, 6, 6, 6, 6, 4, 4, 4, 6, 5, 8, 6, 5, 5, 8, 7, 8, 8, 6, 6, 8, 8, 3, 3, 7, 6, 9, 8, 9, 7, 9, 7, 6, 7, 8, 7, 12, 8, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Ransom\ Bold\ Italic.height=14
-font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Monotype\ Sorts.height=10
-font.Book\ Antiqua.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Maiandra\ GD\ Demi\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Franklin\ Gothic\ Heavy\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Castellar.height=13
-font.sansserif.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.OpenSymbol.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gradl.widths=4, 4, 3, 4, 3, 2, 4, 4, 2, 2, 4, 2, 5, 4, 4, 4, 4, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 6, 4, 5, 4, 4, 4, 4, 4, 5, 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
-font.Arial\ Narrow\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Parade.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.ProFont.height=14
-font.Perpetua\ Bold.height=14
-font.Wingdings\ 3.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Calisto\ MT\ Italic.height=14
-font.Lucida\ Bright\ Regular.height=14
-font.Bell\ MT\ Italic.height=14
-font.Kristen\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Demi\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rage\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia\ Italic.height=14
-font.MS\ Outlook.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Goudy\ Old\ Style\ Italic.height=14
-font.Lucida\ Sans\ Typewriter\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Titling\ MT\ Light.height=14
-font.Footlight\ MT\ Light.widths=6, 6, 5, 6, 5, 4, 6, 7, 4, 4, 6, 4, 9, 7, 6, 6, 6, 5, 5, 4, 7, 6, 9, 6, 6, 5, 7, 6, 7, 8, 6, 5, 8, 8, 4, 4, 7, 6, 10, 8, 8, 6, 8, 6, 5, 6, 8, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Augsburger\ Initials.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Courier\ New\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.monospaced.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookman\ Old\ Style\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic\ Bold.height=14
-font.Vladimir\ Script.height=13
-font.Franklin\ Gothic\ Demi\ Cond.height=13
-font.Century\ Schoolbook\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Narrow\ Bold.height=14
-font.Times\ New\ Roman\ Special\ G1.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.OpenSymbol.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Wide\ Latin.height=11
-font.Showcard\ Gothic.height=14
-font.Californian\ FB.widths=4, 6, 5, 5, 5, 4, 6, 5, 3, 3, 6, 3, 7, 5, 5, 6, 5, 5, 4, 4, 5, 5, 8, 5, 5, 5, 7, 6, 7, 7, 7, 6, 7, 8, 4, 4, 7, 6, 10, 8, 7, 6, 7, 7, 5, 6, 8, 7, 11, 7, 6, 7, 5, 4, 5, 5, 6, 5, 5, 5, 5, 5, 
-font.Tw\ Cen\ MT\ Bold.height=14
-font.Bitstream\ Vera\ Sans.widths=7, 7, 6, 7, 7, 4, 7, 7, 3, 3, 7, 3, 11, 7, 7, 7, 7, 5, 6, 5, 7, 7, 9, 7, 7, 5, 9, 7, 7, 8, 6, 6, 8, 8, 3, 3, 7, 6, 9, 8, 8, 7, 8, 8, 7, 7, 8, 9, 11, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Palatino\ Linotype\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.sansserif.italic.widths=7, 7, 6, 7, 7, 4, 7, 7, 4, 3, 6, 4, 8, 7, 7, 7, 7, 4, 6, 4, 7, 6, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 3, 6, 8, 7, 9, 8, 9, 8, 9, 8, 8, 7, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Footlight\ MT\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Italic.height=14
-font.monospaced.italic.height=14
-font.Book\ Antiqua\ Italic.height=14
-font.Arial\ Narrow.widths=5, 5, 5, 5, 5, 3, 5, 5, 2, 2, 5, 2, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 6, 5, 5, 4, 6, 6, 6, 6, 5, 5, 6, 6, 2, 5, 6, 5, 7, 6, 6, 5, 6, 6, 5, 5, 6, 5, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Lucida\ Bright\ Demibold\ Italic.height=14
-font.Times\ New\ Roman.widths=5, 6, 4, 6, 4, 4, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 6, 4, 4, 3, 6, 5, 7, 6, 5, 3, 7, 7, 7, 7, 7, 6, 8, 8, 4, 5, 8, 7, 9, 7, 8, 6, 9, 7, 6, 7, 7, 7, 10, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Arial.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Handwriting\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Unicode.height=16
-font.Ravie.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.serif.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Andy\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Schoolbook\ Bold.height=14
-font.Times\ New\ Roman\ Special\ G2\ Italic.height=14
-font.Arial\ Special\ G1.height=16
-font.Arial\ Narrow\ Special\ G1.height=16
-font.Bookman\ Old\ Style\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G2.height=16
-font.Rockwell\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic\ Bold\ Italic.height=14
-font.sansserif.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tw\ Cen\ MT\ Medium.height=14
-font.Parchment.height=12
-font.Bitstream\ Vera\ Serif\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Informal\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ransom\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Showcard\ Gothic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.OCRB.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Jokerman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Colonna\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Light\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Copperplate\ Gothic\ Bold.widths=7, 7, 7, 7, 6, 6, 7, 7, 4, 5, 7, 6, 9, 7, 7, 7, 7, 7, 6, 4, 7, 7, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 9, 4, 6, 8, 7, 9, 9, 9, 8, 9, 8, 7, 6, 8, 7, 13, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Pepita\ MT.widths=5, 5, 4, 6, 4, 4, 6, 5, 3, 4, 5, 4, 7, 5, 4, 6, 5, 4, 4, 4, 5, 5, 8, 6, 5, 6, 10, 9, 8, 11, 6, 9, 10, 9, 5, 5, 11, 8, 12, 9, 9, 9, 12, 9, 9, 9, 10, 9, 12, 9, 9, 11, 5, 4, 6, 5, 7, 6, 5, 6, 6, 7, 
-font.Eras\ Bold\ ITC.widths=6, 7, 5, 7, 6, 4, 7, 7, 3, 3, 6, 3, 9, 7, 6, 7, 7, 4, 5, 4, 7, 6, 9, 6, 6, 5, 8, 7, 7, 8, 7, 6, 8, 8, 3, 5, 8, 6, 9, 8, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Franklin\ Gothic\ Demi.widths=5, 5, 5, 5, 5, 3, 6, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 3, 5, 4, 5, 5, 7, 5, 4, 4, 6, 7, 6, 6, 6, 6, 6, 6, 3, 4, 6, 5, 9, 6, 6, 6, 6, 7, 6, 5, 7, 6, 9, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Rockwell\ Extra\ Bold.height=13
-font.monospaced.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Centaur.widths=5, 6, 5, 6, 5, 4, 5, 6, 3, 3, 6, 3, 8, 6, 6, 6, 6, 4, 4, 4, 6, 5, 7, 5, 5, 5, 7, 6, 7, 8, 7, 6, 8, 9, 5, 5, 7, 7, 10, 9, 8, 6, 8, 8, 6, 8, 8, 8, 11, 8, 8, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Tw\ Cen\ MT\ Condensed\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Harlow\ Solid\ Italic\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Calligraphy\ Italic.height=14
-font.Palatino\ Linotype\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Courier\ New\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.dialoginput.bold.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Broadway.height=13
-font.Franklin\ Gothic\ Book\ Italic.height=14
-font.Marlett.height=10
-font.Trebuchet\ MS.height=13
-font.Arial\ Narrow\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Webdings.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Monotype\ Corsiva.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.High\ Tower\ Text.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gloucester\ MT\ Extra\ Condensed.height=13
-font.Rage\ Italic.height=14
-font.Abadi\ MT\ Condensed\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 3.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Braggadocio.height=10
-font.Microsoft\ Sans\ Serif.widths=7, 7, 6, 7, 7, 4, 7, 7, 3, 3, 6, 3, 9, 7, 7, 7, 7, 4, 6, 4, 7, 7, 9, 6, 6, 6, 8, 8, 8, 9, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 6, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Curlz\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Goudy\ Stout.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.sansserif.bolditalic.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 6, 8, 6, 6, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 6, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Bookshelf\ Symbol\ 5.height=13
-font.Edda.height=16
-font.Vivaldi\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookshelf\ Symbol\ 1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia.height=13
-font.Bell\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Franklin\ Gothic\ Medium\ Cond.height=13
-font.Bookman\ Old\ Style.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Augsburger\ Initials.height=12
-font.Beesknees\ ITC.widths=7, 7, 6, 7, 6, 6, 7, 7, 4, 4, 7, 5, 8, 7, 8, 6, 8, 7, 5, 5, 7, 7, 9, 7, 7, 7, 9, 8, 7, 8, 7, 7, 8, 8, 5, 5, 8, 6, 10, 8, 9, 7, 9, 8, 6, 6, 8, 9, 10, 9, 8, 8, 9, 5, 7, 6, 7, 6, 8, 6, 7, 8, 
-font.Perpetua\ Titling\ MT\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bell\ MT.height=12
-font.Arial\ Narrow\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Juice\ ITC.height=13
-font.Trebuchet\ MS\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Rounded\ MT\ Bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 5, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 7, 7, 6, 8, 8, 3, 6, 7, 6, 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Arial\ Special\ G2\ Italic.height=14
-font.Chiller.height=13
-font.Gill\ Sans\ MT\ Bold\ Italic.height=14
-font.Bookshelf\ Symbol\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Abadi\ MT\ Condensed\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Demibold\ Italic.height=14
-font.Ransom\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Goudy\ Stout.widths=14, 13, 11, 12, 13, 13, 13, 16, 11, 12, 16, 13, 18, 13, 13, 12, 11, 15, 11, 14, 14, 13, 18, 14, 14, 14, 14, 13, 11, 12, 13, 13, 13, 16, 11, 12, 16, 13, 18, 13, 13, 12, 11, 15, 11, 14, 14, 13, 18, 14, 14, 14, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
-font.Trebuchet\ MS\ Bold\ Italic.height=14
-font.Elephant\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Pacmania.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Broadway.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Pristina.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 2, 5, 2, 7, 5, 4, 5, 5, 4, 4, 3, 5, 5, 6, 5, 5, 4, 7, 8, 7, 8, 8, 7, 7, 9, 6, 6, 9, 6, 11, 8, 8, 7, 8, 8, 6, 7, 9, 8, 11, 8, 8, 6, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Courier\ New.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Abadi\ MT\ Condensed\ Extra\ Bold.widths=4, 5, 4, 5, 5, 3, 5, 5, 3, 3, 4, 3, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 4, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Copperplate\ Gothic\ Light.widths=7, 7, 8, 8, 7, 7, 8, 8, 4, 6, 7, 7, 8, 8, 9, 7, 9, 7, 7, 6, 8, 7, 10, 7, 6, 6, 8, 9, 9, 9, 8, 8, 9, 9, 4, 7, 8, 8, 10, 9, 10, 8, 10, 9, 8, 8, 9, 8, 12, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.dialog.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Poor\ Richard.height=13
-font.Franklin\ Gothic\ Medium.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 8, 6, 6, 7, 7, 4, 5, 7, 6, 9, 8, 7, 7, 7, 7, 7, 6, 7, 6, 10, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.serif.bolditalic.height=14
-font.Bookshelf\ Symbol\ 3.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Comic\ Sans\ MS\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Bright\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Runic\ MT\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 4, 3, 7, 5, 5, 5, 5, 5, 5, 3, 5, 5, 7, 5, 5, 4, 5, 6, 6, 6, 6, 4, 6, 6, 3, 5, 5, 6, 7, 6, 6, 6, 6, 5, 5, 5, 6, 5, 7, 5, 5, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 
-font.Perpetua\ Titling\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ Ultra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana.height=14
-font.Goudy\ Old\ Style.height=13
-font.monospaced.bolditalic.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Goudy\ Old\ Style.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Mono\ Oblique.height=14
-font.Modern\ No.\ 20.height=12
-font.Matura\ MT\ Script\ Capitals.widths=6, 6, 5, 6, 5, 5, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 6, 4, 6, 6, 9, 6, 6, 6, 14, 12, 10, 14, 9, 13, 9, 9, 9, 13, 13, 13, 16, 15, 13, 10, 12, 11, 10, 10, 12, 13, 15, 15, 12, 14, 8, 5, 6, 5, 7, 6, 6, 6, 6, 6, 
-font.Viner\ Hand\ ITC.height=17
-font.Forte.height=15
-font.Placard\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Medium.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Placard\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 6, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 5, 4, 3, 5, 5, 5, 5, 4, 4, 5, 5, 3, 3, 5, 4, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 6, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Jokerman.widths=7, 7, 6, 7, 7, 4, 7, 8, 4, 4, 7, 4, 9, 7, 7, 7, 7, 6, 5, 5, 7, 6, 8, 7, 7, 7, 9, 8, 8, 8, 7, 6, 9, 8, 4, 7, 8, 8, 10, 10, 9, 8, 9, 8, 7, 8, 9, 8, 12, 9, 8, 8, 8, 5, 7, 8, 8, 7, 7, 7, 7, 8, 
-font.Franklin\ Gothic\ Heavy.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Black.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Harrington.widths=6, 6, 6, 7, 6, 4, 6, 6, 4, 4, 6, 4, 8, 6, 7, 7, 6, 5, 6, 4, 7, 6, 8, 5, 7, 6, 8, 8, 7, 8, 8, 7, 8, 8, 4, 4, 7, 7, 9, 8, 8, 8, 8, 8, 7, 6, 8, 7, 10, 7, 7, 7, 7, 4, 6, 6, 7, 6, 6, 5, 6, 6, 
-font.Felix\ Titling.height=13
-font.Comic\ Sans\ MS\ Bold.height=14
-font.Papyrus.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Curlz\ MT.widths=5, 5, 5, 5, 5, 4, 5, 6, 3, 3, 5, 3, 8, 6, 6, 6, 6, 5, 4, 4, 6, 5, 8, 5, 5, 5, 7, 7, 6, 8, 6, 6, 7, 8, 4, 5, 7, 6, 9, 9, 8, 7, 8, 7, 6, 6, 8, 7, 10, 7, 8, 6, 6, 4, 5, 5, 6, 6, 6, 5, 5, 6, 
-font.Century\ Schoolbook\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.widths=3, 3, 2, 3, 3, 2, 3, 3, 1, 2, 3, 2, 4, 3, 3, 3, 3, 2, 2, 2, 3, 3, 4, 3, 3, 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 4, 3, 3, 3, 3, 3, 2, 3, 3, 3, 5, 3, 3, 2, 3, 2, 2, 2, 3, 2, 3, 2, 3, 3, 
-font.French\ Script\ MT.height=13
-font.Tw\ Cen\ MT\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Freestyle\ Script.widths=3, 3, 4, 4, 4, 5, 6, 6, 2, 3, 5, 4, 4, 4, 4, 3, 5, 3, 4, 4, 5, 4, 6, 3, 4, 3, 5, 4, 5, 6, 5, 5, 5, 6, 4, 5, 6, 4, 6, 6, 5, 5, 5, 6, 5, 6, 6, 6, 7, 5, 5, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 4, 
-font.Lucida\ Sans\ Demibold\ Roman.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookshelf\ Symbol\ 4.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Goudy\ Old\ Style\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Braggadocio.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gloucester\ MT\ Extra\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G2\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Fax\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Special\ G1\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Perpetua\ Titling\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Century\ Schoolbook\ Bold\ Italic.height=14
-font.Calisto\ MT.height=13
-font.Lucida\ Sans\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.dialoginput.bolditalic.height=14
-font.Poor\ Richard.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ravie.widths=9, 9, 8, 9, 8, 8, 9, 9, 6, 8, 9, 5, 13, 9, 8, 9, 9, 9, 8, 9, 9, 9, 12, 9, 10, 9, 10, 9, 8, 9, 10, 9, 9, 10, 6, 9, 11, 9, 14, 9, 9, 9, 9, 12, 9, 10, 10, 11, 14, 10, 10, 10, 8, 6, 9, 9, 11, 9, 9, 8, 8, 9, 
-font.Arial\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.MT\ Extra.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Eras\ Medium\ ITC.widths=6, 7, 6, 7, 6, 4, 7, 7, 3, 3, 6, 3, 10, 7, 7, 7, 7, 5, 5, 4, 7, 6, 9, 6, 6, 5, 8, 7, 7, 8, 7, 6, 8, 8, 3, 5, 7, 6, 10, 9, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Bright\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Bright\ Demibold.height=14
-font.Pepita\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Wingdings.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 5.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialoginput.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Book\ Antiqua.height=13
-font.Franklin\ Gothic\ Demi\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Comic\ Sans\ MS.widths=6, 6, 5, 6, 6, 5, 5, 6, 3, 4, 5, 3, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 6, 5, 7, 6, 6, 7, 6, 6, 7, 8, 5, 7, 6, 6, 9, 8, 8, 5, 9, 6, 7, 7, 7, 7, 10, 7, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Desdemona.widths=6, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 8, 6, 7, 6, 6, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 8, 6, 7, 6, 6, 6, 7, 6, 7, 6, 5, 6, 5, 3, 5, 6, 5, 5, 5, 5, 5, 6, 
-font.sansserif.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Wingdings\ 3.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.High\ Tower\ Text.widths=5, 7, 5, 6, 5, 5, 6, 7, 4, 4, 6, 4, 10, 7, 6, 7, 6, 5, 6, 4, 7, 6, 9, 6, 6, 6, 9, 7, 9, 9, 7, 6, 9, 8, 4, 5, 8, 7, 10, 9, 10, 7, 10, 7, 7, 8, 9, 9, 11, 8, 8, 9, 6, 4, 5, 5, 6, 5, 6, 6, 6, 6, 
-font.Monotype\ Sorts\ 2.height=13
-font.Bookman\ Old\ Style\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Engravers\ MT.widths=10, 10, 10, 11, 9, 9, 11, 11, 6, 8, 11, 9, 12, 11, 11, 9, 11, 11, 9, 10, 11, 10, 13, 11, 11, 9, 10, 10, 10, 11, 9, 9, 11, 11, 6, 8, 11, 9, 12, 11, 11, 9, 11, 11, 9, 10, 11, 10, 13, 11, 11, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Maiandra\ GD.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Eurostile.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.serif.bold.height=14
-font.High\ Tower\ Text\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.dialog.bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Book\ Antiqua\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Snap\ ITC.height=14
-font.Trebuchet\ MS\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Condensed.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 6, 5, 5, 6, 5, 5, 5, 6, 4, 3, 6, 5, 7, 6, 6, 5, 5, 5, 4, 5, 5, 6, 7, 6, 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
-font.Cooper\ Black.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ Ultra\ Bold.widths=7, 8, 6, 8, 7, 6, 8, 8, 4, 5, 8, 4, 12, 8, 7, 8, 8, 7, 6, 6, 8, 7, 10, 8, 7, 7, 10, 9, 8, 9, 7, 7, 9, 10, 4, 6, 9, 7, 11, 9, 9, 8, 9, 9, 7, 7, 9, 8, 12, 10, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
-font.Bitstream\ Vera\ Serif.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Oblique.height=14
-font.Elephant.height=13
-font.Eurostile\ Bold.height=14
-font.American\ Uncial.widths=8, 7, 7, 9, 8, 8, 8, 8, 4, 6, 7, 5, 13, 8, 8, 8, 8, 8, 6, 7, 8, 8, 12, 9, 8, 8, 8, 7, 7, 9, 8, 8, 8, 8, 4, 6, 7, 5, 13, 8, 8, 8, 8, 8, 6, 7, 8, 8, 12, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Arial\ Narrow\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Centaur.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Monotype\ Corsiva.height=12
-font.Bookman\ Old\ Style.height=13
-font.Wingdings.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Lucida\ Sans\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Mono.height=13
-font.Times\ New\ Roman.height=13
-font.Arial\ Narrow\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Matura\ MT\ Script\ Capitals.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Calisto\ MT\ Bold.height=14
-font.Bitstream\ Vera\ Sans\ Mono\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.serif.italic.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 4, 5, 4, 8, 6, 6, 6, 6, 5, 5, 4, 6, 5, 8, 5, 5, 5, 7, 7, 8, 8, 7, 7, 8, 8, 4, 5, 8, 7, 9, 8, 8, 7, 8, 7, 6, 7, 8, 7, 10, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Bauhaus\ 93.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialog.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Onyx.height=11
-font.Playbill.height=11
-font.Tahoma\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Handwriting\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tahoma.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.monospaced.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Calisto\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Kino\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.monospaced.plain.height=14
-font.Eurostile.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 5, 3, 9, 6, 6, 6, 6, 5, 6, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 8, 6, 6, 7, 8, 3, 6, 7, 6, 10, 8, 7, 7, 8, 7, 7, 6, 8, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Script\ MT\ Bold.height=13
-font.Tahoma.height=13
-font.Bookshelf\ Symbol\ 4.height=13
-font.dialog.bolditalic.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 6, 8, 6, 6, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 6, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Rockwell\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Maiandra\ GD\ Demi\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Enviro.height=13
-font.Abadi\ MT\ Condensed\ Light.height=12
-font.Centaur.height=12
-font.Tw\ Cen\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Garamond.widths=5, 6, 5, 5, 5, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 5, 3, 4, 3, 6, 5, 7, 5, 5, 5, 7, 7, 7, 8, 7, 6, 7, 8, 4, 4, 7, 6, 9, 7, 8, 6, 8, 7, 5, 6, 7, 6, 9, 6, 7, 7, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Bell\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Maiandra\ GD\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Stop.height=9
-font.Andy\ Bold.height=14
-font.Palatino\ Linotype.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Symbol.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Courier\ New\ Bold.height=14
-font.Haettenschweiler.height=12
-font.Maiandra\ GD.height=13
-font.Franklin\ Gothic\ Heavy\ Italic.height=14
-font.dialoginput.bold.height=14
-font.OCR\ A\ Extended.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Verdana\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.MT\ Extra.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Italic.height=14
-font.Script\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia\ Ref.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Sans\ Typewriter\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookman\ Old\ Style\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.sansserif.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Trebuchet\ MS\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Californian\ FB\ Italic.height=14
-font.Bernard\ MT\ Condensed.height=13
-font.Arial\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Comic\ Sans\ MS.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Parade.widths=6, 7, 6, 7, 6, 4, 6, 7, 4, 4, 6, 4, 9, 7, 6, 6, 7, 5, 5, 4, 7, 7, 9, 7, 8, 6, 8, 7, 7, 8, 7, 7, 8, 8, 4, 7, 7, 6, 10, 8, 8, 7, 7, 7, 7, 7, 8, 9, 11, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookman\ Old\ Style\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Jester\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Century\ Schoolbook.height=13
-font.Lucida\ Sans\ Typewriter\ Oblique.height=14
-font.Eurostile\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans\ Mono\ Bold.height=14
-font.Garamond\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Medium\ Cond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.dialoginput.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Ref.widths=8, 8, 6, 8, 8, 5, 8, 8, 4, 4, 8, 4, 12, 8, 8, 8, 8, 5, 7, 5, 8, 7, 8, 8, 7, 7, 8, 8, 9, 9, 7, 7, 9, 9, 6, 6, 8, 7, 10, 8, 10, 8, 10, 9, 8, 8, 9, 8, 12, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Papyrus.widths=6, 8, 6, 7, 7, 5, 6, 7, 4, 4, 6, 4, 10, 7, 7, 6, 7, 5, 5, 5, 7, 5, 6, 5, 6, 5, 11, 10, 11, 11, 11, 8, 11, 11, 4, 8, 10, 8, 11, 10, 13, 8, 12, 9, 11, 11, 11, 9, 12, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.OCRB.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Matisse\ ITC.widths=5, 5, 6, 5, 5, 5, 5, 5, 3, 5, 7, 5, 12, 8, 5, 5, 5, 5, 5, 5, 6, 9, 10, 5, 5, 5, 5, 5, 4, 5, 4, 5, 5, 5, 3, 5, 6, 5, 9, 7, 5, 6, 6, 6, 4, 6, 5, 5, 7, 7, 8, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Arial\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tempus\ Sans\ ITC.widths=5, 6, 5, 6, 6, 4, 6, 6, 4, 4, 6, 4, 10, 7, 7, 6, 6, 4, 4, 5, 7, 6, 8, 6, 6, 5, 9, 6, 7, 8, 6, 6, 8, 9, 4, 5, 8, 6, 10, 9, 9, 7, 9, 7, 5, 6, 8, 8, 11, 7, 7, 7, 8, 5, 7, 6, 7, 6, 6, 6, 6, 6, 
-font.Gill\ Sans\ MT.height=13
-font.Arial\ Narrow\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gill\ Sans\ MT\ Bold.height=14
-font.Century\ Gothic\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Onyx.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Modern\ No.\ 20.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Maiandra\ GD\ Demi\ Bold.height=14
-font.Garamond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Georgia\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Italic.height=14
-font.Bitstream\ Vera\ Sans\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.serif.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Special\ G1\ Italic.height=14
-font.Gradl.height=11
-font.Book\ Antiqua\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Calisto\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Palatino\ Linotype\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Goudy\ Stout.height=15
-font.Algerian.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Bold\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Stop.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Engravers\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Courier\ New\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ransom.widths=6, 7, 5, 7, 5, 4, 3, 5, 5, 3, 6, 3, 6, 6, 7, 6, 5, 4, 4, 3, 6, 4, 8, 16, 4, 9, 6, 6, 8, 8, 4, 11, 7, 8, 5, 6, 8, 7, 6, 9, 6, 3, 9, 5, 7, 8, 5, 5, 11, 8, 5, 9, 8, 4, 4, 5, 4, 4, 3, 8, 10, 7, 
-font.Gill\ Sans\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Pristina.height=13
-font.Old\ English\ Text\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Courier\ New.height=12
-font.Arial\ Narrow\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Verdana\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Eras\ Medium\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Garamond\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.MS\ Outlook.height=12
-font.serif.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Gradl.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Light\ ITC.widths=6, 7, 6, 7, 6, 4, 7, 7, 3, 3, 5, 3, 9, 7, 7, 7, 7, 4, 5, 4, 7, 6, 9, 5, 5, 5, 7, 7, 7, 8, 6, 6, 8, 8, 3, 5, 6, 6, 9, 8, 9, 6, 9, 6, 5, 6, 8, 7, 11, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Palace\ Script\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Footlight\ MT\ Light.height=10
-font.Courier\ New\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tw\ Cen\ MT\ Medium\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Brush\ Script\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Century\ Schoolbook\ Italic.height=14
-font.Times\ New\ Roman\ Special\ G1.height=16
-font.OpenSymbol.height=14
-font.Bitstream\ Vera\ Sans\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Placard\ Condensed.height=14
-font.Californian\ FB.height=13
-font.Bell\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Century\ Gothic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Wingdings\ 2.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Britannic\ Bold.widths=5, 5, 5, 5, 5, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 5, 5, 4, 5, 3, 6, 4, 7, 5, 5, 4, 5, 6, 6, 7, 5, 5, 6, 7, 3, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 5, 8, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.dialog.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bitstream\ Vera\ Sans.height=13
-font.Arial\ Narrow\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Palatino\ Linotype\ Bold.height=14
-font.Goudy\ Old\ Style\ Bold.height=14
-font.sansserif.italic.height=14
-font.Arial\ Black\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Perpetua\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Enviro.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Titling\ MT\ Bold.height=14
-font.Eras\ Demi\ ITC.widths=6, 6, 5, 6, 6, 3, 6, 6, 3, 3, 5, 3, 9, 6, 6, 6, 6, 4, 4, 4, 6, 5, 9, 6, 5, 5, 8, 7, 6, 8, 6, 6, 8, 8, 3, 5, 7, 5, 9, 8, 8, 6, 8, 6, 5, 6, 8, 7, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Arial\ Narrow.height=13
-font.Blackadder\ ITC.widths=5, 5, 4, 5, 4, 4, 5, 5, 3, 4, 5, 3, 6, 5, 4, 5, 5, 4, 4, 4, 6, 5, 6, 5, 5, 5, 9, 9, 9, 9, 9, 7, 9, 10, 6, 7, 11, 8, 13, 9, 9, 8, 11, 10, 8, 6, 11, 10, 12, 11, 9, 10, 5, 4, 4, 4, 5, 5, 5, 5, 5, 5, 
-font.Times\ New\ Roman\ Bold\ Italic.height=14
-font.monospaced.bold.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.monospaced.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Haettenschweiler.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.American\ Uncial.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookman\ Old\ Style\ Italic.height=14
-font.Calisto\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.sansserif.plain.height=14
-font.Comic\ Sans\ MS.height=14
-font.Bitstream\ Vera\ Serif\ Bold.height=14
-font.Arial\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tw\ Cen\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Rockwell\ Condensed\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Georgia\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bookshelf\ Symbol\ 2.widths=5, 5, 5, 7, 7, 9, 7, 7, 3, 3, 4, 3, 10, 5, 9, 9, 9, 9, 6, 4, 7, 9, 6, 4, 4, 5, 7, 9, 6, 7, 7, 9, 7, 8, 9, 9, 5, 7, 10, 7, 9, 9, 9, 4, 6, 8, 8, 9, 9, 9, 9, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
-font.serif.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Narrow\ Special\ G1\ Bold.height=14
-font.Arial\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.OCRB.height=15
-font.Lucida\ Fax\ Regular.height=14
-font.Copperplate\ Gothic\ Bold.height=12
-font.Maiandra\ GD\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Special\ G2\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Brush\ Script\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Book\ Antiqua\ Bold.height=14
-font.Pepita\ MT.height=12
-font.Eras\ Bold\ ITC.height=13
-font.Franklin\ Gothic\ Demi.height=13
-font.Courier\ New\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Tw\ Cen\ MT\ Condensed\ Bold.height=14
-font.Harlow\ Solid\ Italic\ Italic.height=14
-font.Century\ Schoolbook\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Courier\ New\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Times\ New\ Roman\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Palatino\ Linotype\ Italic.height=14
-font.Monotype\ Sorts.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Fax\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Franklin\ Gothic\ Medium\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Impact.widths=6, 6, 6, 6, 6, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 6, 4, 6, 6, 8, 4, 5, 5, 6, 7, 7, 7, 5, 5, 7, 7, 4, 4, 6, 5, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 5, 6, 6, 
-font.Arial\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Courier\ New.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Arial\ Narrow\ Special\ G2\ Bold.height=14
-font.Times\ New\ Roman\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Lucida\ Bright\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Webdings.height=10
-font.Arial\ Black.widths=8, 8, 8, 8, 8, 5, 8, 8, 4, 4, 8, 4, 11, 8, 8, 8, 8, 5, 7, 5, 8, 7, 10, 8, 7, 7, 9, 9, 9, 9, 8, 8, 9, 9, 5, 8, 9, 8, 10, 9, 9, 8, 9, 9, 8, 8, 9, 9, 11, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Lucida\ Console.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Elephant.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Stencil.widths=7, 8, 7, 7, 7, 7, 7, 9, 5, 6, 8, 6, 9, 8, 7, 7, 7, 8, 7, 7, 8, 7, 9, 7, 7, 6, 7, 8, 7, 7, 7, 7, 7, 9, 5, 6, 8, 6, 9, 8, 7, 7, 7, 8, 7, 7, 8, 7, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Gill\ Sans\ MT\ Condensed.widths=4, 5, 4, 5, 4, 3, 4, 5, 3, 3, 4, 3, 6, 5, 4, 5, 5, 4, 4, 3, 5, 4, 5, 4, 4, 4, 5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 4, 6, 5, 5, 5, 5, 5, 4, 4, 5, 4, 7, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Georgia.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Eras\ Demi\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bookshelf\ Symbol\ 3.height=14
-font.Microsoft\ Sans\ Serif.height=13
-font.Arial\ Italic.height=14
-font.Mercurius\ Script\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.sansserif.bolditalic.height=14
-font.serif.italic.height=14
-font.Vivaldi\ Italic.height=14
-font.Pacmania.widths=9, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Lucida\ Fax\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.ProFont.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.widths=5, 5, 3, 5, 4, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 5, 4, 4, 5, 5, 4, 5, 4, 4, 6, 6, 3, 4, 5, 4, 7, 6, 6, 5, 6, 5, 4, 4, 6, 6, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Arial.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Bell\ MT\ Bold.height=14
-font.Calisto\ MT\ Bold\ Italic.height=14
-font.Times\ New\ Roman\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Beesknees\ ITC.height=13
-font.Verdana\ Bold.height=14
-font.Kristen\ ITC.widths=7, 7, 7, 7, 7, 6, 6, 7, 4, 4, 7, 4, 9, 7, 7, 7, 7, 5, 6, 6, 7, 6, 9, 7, 5, 6, 10, 8, 9, 10, 8, 7, 9, 10, 5, 7, 9, 8, 12, 10, 10, 8, 10, 8, 7, 8, 10, 8, 11, 8, 8, 10, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Palatino\ Linotype.widths=5, 6, 5, 6, 5, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 3, 6, 5, 8, 5, 5, 5, 8, 7, 7, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 8, 7, 8, 7, 6, 8, 8, 8, 10, 7, 6, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.dialoginput.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Kunstler\ Script.widths=4, 4, 3, 4, 3, 3, 4, 5, 3, 3, 4, 3, 7, 5, 3, 5, 4, 3, 3, 3, 4, 4, 6, 4, 5, 4, 9, 10, 9, 10, 8, 8, 11, 9, 7, 6, 9, 9, 9, 9, 8, 8, 8, 10, 7, 8, 9, 8, 10, 8, 8, 8, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 
-font.Lucida\ Sans\ Typewriter\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Arial\ Rounded\ MT\ Bold.height=13
-font.Arial\ Black\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Mercurius\ Script\ MT\ Bold.widths=6, 6, 4, 6, 4, 4, 6, 5, 4, 4, 5, 4, 8, 5, 5, 6, 6, 4, 4, 4, 6, 5, 8, 6, 6, 5, 8, 8, 7, 8, 7, 7, 7, 9, 5, 7, 8, 7, 11, 9, 7, 8, 7, 8, 6, 8, 9, 7, 11, 8, 8, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Webdings.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Jester\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.sansserif.bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.Desdemona.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Ransom\ Italic.height=14
-font.Elephant\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Verdana\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Tahoma\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Palatino\ Linotype\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Times\ New\ Roman\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Garamond.height=12
-font.Gill\ Sans\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
-font.Bitstream\ Vera\ Sans\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Maiandra\ GD\ Italic.height=14
-font.Abadi\ MT\ Condensed\ Extra\ Bold.height=12
-font.Copperplate\ Gothic\ Light.height=12
-font.Lucida\ Bright\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Bradley\ Hand\ ITC.widths=6, 6, 5, 6, 5, 5, 7, 6, 4, 4, 7, 4, 10, 7, 5, 6, 7, 5, 5, 4, 7, 6, 8, 6, 7, 6, 8, 8, 7, 7, 7, 6, 8, 8, 4, 4, 8, 7, 10, 9, 8, 7, 8, 8, 8, 7, 8, 7, 11, 7, 8, 10, 6, 6, 7, 7, 7, 7, 7, 7, 6, 6, 
-font.dialog.plain.height=14
-font.Arial\ Special\ G2.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
-font.Franklin\ Gothic\ Medium.height=13
-font.Arial\ Narrow\ Special\ G2.widths=10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
-font.Lucida\ Bright\ Italic.height=14
-font.Runic\ MT\ Condensed.height=12
-font.Imprint\ MT\ Shadow.widths=5, 7, 5, 7, 5, 4, 6, 7, 4, 4, 6, 4, 10, 7, 6, 7, 7, 5, 5, 4, 7, 6, 9, 6, 6, 5, 8, 8, 8, 10, 8, 8, 9, 10, 5, 5, 9, 8, 10, 9, 9, 8, 9, 9, 7, 8, 9, 8, 11, 9, 8, 8, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
-font.monospaced.bolditalic.height=14
-font.Verdana\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua.widths=5, 6, 5, 6, 5, 3, 5, 6, 3, 3, 6, 3, 8, 6, 6, 6, 6, 4, 4, 3, 6, 5, 8, 6, 5, 5, 7, 6, 6, 7, 5, 5, 7, 8, 4, 4, 7, 5, 9, 7, 7, 5, 7, 7, 5, 6, 7, 6, 9, 7, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
-font.Matura\ MT\ Script\ Capitals.height=14
-font.Parade.height=12
-font.Jester\ Regular.height=14
-font.Blackadder\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Goudy\ Old\ Style\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-font.Perpetua\ Italic.height=14
-font.Arial\ Narrow\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
-
-font.Something.height=13
-font.Something.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-font.Something.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
diff --git a/src/resources/main/font_metrics.properties b/src/resources/main/font_metrics.properties
new file mode 100644 (file)
index 0000000..e521b0c
--- /dev/null
@@ -0,0 +1,927 @@
+# 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.
+
+#Font Metrics
+#Sun Sep 07 21:54:47 EST 2003
+font.Lucida\ Sans\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Medium\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Jokerman.height=16
+font.Harrington.height=13
+font.Curlz\ MT.height=14
+font.Garamond\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Wide\ Latin.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Colonna\ MT.widths=5, 6, 5, 6, 6, 4, 7, 6, 4, 4, 6, 4, 9, 6, 6, 6, 6, 5, 5, 5, 6, 6, 8, 6, 6, 5, 8, 6, 7, 8, 6, 6, 7, 8, 4, 4, 7, 6, 9, 9, 7, 7, 7, 8, 5, 7, 8, 7, 9, 7, 8, 6, 6, 4, 5, 5, 6, 5, 6, 5, 5, 6, 
+font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.height=12
+font.Beesknees\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Freestyle\ Script.height=13
+font.Palace\ Script\ MT.widths=4, 3, 3, 4, 3, 3, 4, 4, 3, 3, 4, 3, 6, 4, 3, 4, 3, 3, 3, 3, 4, 4, 5, 4, 4, 3, 8, 8, 6, 8, 5, 7, 6, 8, 6, 6, 8, 7, 8, 7, 5, 7, 6, 8, 6, 7, 5, 5, 6, 7, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+font.Lucida\ Sans\ Demibold\ Roman.height=14
+font.Franklin\ Gothic\ Book\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Serif.widths=7, 7, 6, 7, 6, 4, 7, 7, 5, 5, 8, 5, 11, 7, 6, 6, 7, 6, 6, 5, 7, 6, 9, 6, 6, 6, 8, 9, 8, 9, 8, 8, 8, 10, 5, 5, 9, 7, 11, 9, 9, 8, 9, 8, 7, 7, 9, 7, 10, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bitstream\ Vera\ Sans\ Mono.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Matisse\ ITC.height=14
+font.Arial\ Special\ G2\ Bold\ Italic.height=14
+font.Lucida\ Fax\ Demibold.height=14
+font.Arial\ Special\ G1\ Bold\ Italic.height=14
+font.Tempus\ Sans\ ITC.height=14
+font.Impact.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Algerian.widths=9, 7, 7, 7, 7, 7, 8, 7, 4, 6, 8, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 8, 7, 7, 9, 7, 7, 7, 7, 7, 8, 7, 4, 6, 8, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gill\ Sans\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.OCR\ A\ Extended.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Cooper\ Black.widths=7, 7, 6, 8, 6, 5, 7, 8, 6, 6, 8, 6, 11, 8, 7, 8, 7, 6, 6, 6, 8, 7, 11, 7, 7, 6, 9, 8, 8, 9, 8, 8, 9, 9, 4, 7, 9, 7, 10, 9, 9, 8, 9, 9, 7, 8, 9, 9, 11, 9, 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Century\ Gothic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bauhaus\ 93.widths=7, 7, 7, 7, 7, 4, 7, 6, 4, 5, 6, 4, 9, 6, 7, 7, 7, 4, 5, 4, 6, 5, 9, 6, 6, 6, 7, 7, 9, 8, 6, 6, 7, 7, 4, 4, 7, 4, 9, 7, 9, 7, 9, 7, 5, 6, 7, 6, 9, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bernard\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Old\ English\ Text\ MT.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 3, 6, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 7, 6, 5, 4, 9, 10, 10, 10, 10, 10, 9, 10, 8, 8, 10, 9, 12, 11, 10, 10, 10, 9, 10, 9, 11, 9, 10, 8, 9, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Century\ Schoolbook.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Rounded\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Informal\ Roman.widths=5, 5, 4, 6, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 4, 5, 5, 5, 4, 4, 5, 5, 7, 5, 5, 6, 7, 7, 6, 7, 6, 6, 7, 7, 4, 6, 6, 6, 8, 7, 6, 6, 6, 6, 5, 7, 7, 7, 9, 7, 7, 7, 5, 4, 6, 6, 6, 7, 6, 6, 6, 6, 
+font.Lucida\ Sans\ Demibold.height=14
+font.Ravie.height=14
+font.Perpetua.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.MT\ Extra.height=13
+font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.height=14
+font.Book\ Antiqua\ Bold\ Italic.height=14
+font.Eras\ Medium\ ITC.height=12
+font.Rockwell\ Bold.height=14
+font.Snap\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialog.italic.widths=7, 7, 6, 7, 7, 4, 7, 7, 4, 3, 6, 4, 8, 7, 7, 7, 7, 4, 6, 4, 7, 6, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 3, 6, 8, 7, 9, 8, 9, 8, 9, 8, 8, 7, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Century\ Gothic\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Demi\ Italic.height=14
+font.Franklin\ Gothic\ Book.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Desdemona.height=12
+font.Franklin\ Gothic\ Demi\ Cond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Wingdings\ 3.height=13
+font.High\ Tower\ Text.height=13
+font.Edwardian\ Script\ ITC.widths=4, 4, 3, 4, 3, 2, 4, 4, 3, 3, 4, 3, 6, 5, 4, 4, 4, 4, 3, 3, 4, 4, 5, 4, 4, 4, 10, 10, 9, 9, 9, 8, 8, 10, 7, 7, 10, 9, 11, 10, 9, 9, 8, 10, 8, 7, 10, 8, 10, 11, 10, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Gigi.widths=6, 5, 5, 5, 6, 5, 6, 5, 5, 4, 6, 6, 9, 6, 4, 6, 5, 5, 4, 5, 6, 5, 8, 6, 6, 4, 10, 8, 7, 10, 5, 9, 7, 9, 6, 6, 9, 8, 11, 9, 6, 8, 8, 7, 6, 7, 8, 9, 13, 9, 9, 7, 5, 5, 6, 5, 6, 5, 5, 5, 5, 6, 
+font.Engravers\ MT.height=13
+font.Californian\ FB\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Calligraphy\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G1\ Italic.height=14
+font.Book\ Antiqua\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Heavy.widths=7, 7, 6, 7, 7, 5, 7, 7, 4, 4, 7, 4, 10, 7, 7, 7, 7, 5, 6, 5, 7, 6, 8, 7, 6, 6, 7, 7, 7, 8, 7, 6, 8, 8, 4, 5, 8, 6, 9, 8, 8, 7, 8, 8, 7, 6, 8, 7, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Typewriter\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ransom\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.High\ Tower\ Text\ Italic.height=14
+font.dialog.bold.height=14
+font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Trebuchet\ MS\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ Ultra\ Bold\ Condensed.widths=5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 5, 4, 4, 5, 5, 7, 6, 5, 4, 7, 6, 5, 6, 5, 5, 6, 7, 3, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 6, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Monotype\ Sorts\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Condensed.height=13
+font.Bell\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gill\ Sans\ Ultra\ Bold.height=13
+font.American\ Uncial.height=13
+font.Kino\ MT.widths=5, 5, 5, 5, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 4, 4, 5, 5, 7, 4, 5, 4, 6, 5, 6, 6, 5, 5, 6, 6, 4, 5, 5, 5, 8, 6, 7, 5, 7, 5, 5, 5, 6, 6, 7, 5, 6, 4, 7, 4, 5, 5, 5, 5, 5, 4, 5, 5, 
+font.Wingdings.height=12
+font.Mistral.widths=5, 4, 4, 5, 3, 3, 4, 5, 4, 4, 5, 4, 7, 6, 5, 4, 4, 4, 4, 4, 5, 4, 6, 5, 5, 4, 5, 6, 6, 6, 5, 5, 6, 6, 5, 4, 6, 4, 7, 6, 6, 5, 6, 6, 4, 4, 6, 5, 7, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 
+font.Bitstream\ Vera\ Sans\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Harrington.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Console.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 1.widths=5, 5, 5, 7, 7, 9, 7, 7, 3, 3, 4, 3, 10, 5, 7, 9, 9, 4, 6, 4, 9, 6, 6, 4, 4, 5, 8, 9, 6, 7, 9, 9, 7, 8, 4, 9, 5, 3, 10, 7, 9, 9, 9, 4, 6, 4, 9, 9, 9, 9, 9, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+font.Lucida\ Fax\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Demi\ ITC.height=12
+font.Calisto\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Blackadder\ ITC.height=13
+font.Arial\ Narrow\ Special\ G2\ Italic.height=14
+font.Century\ Gothic.widths=7, 7, 6, 7, 6, 3, 7, 6, 2, 3, 6, 2, 10, 6, 6, 7, 7, 3, 4, 3, 6, 6, 8, 6, 6, 5, 7, 6, 8, 7, 5, 5, 8, 7, 3, 5, 6, 4, 9, 7, 8, 6, 8, 6, 5, 4, 6, 7, 9, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Ransom\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Monotype\ Sorts.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
+font.Vivaldi\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.height=14
+font.Lucida\ Handwriting\ Italic.height=14
+font.Castellar.widths=9, 8, 9, 10, 7, 7, 9, 10, 5, 6, 9, 7, 12, 10, 10, 7, 10, 9, 6, 8, 10, 9, 12, 10, 9, 8, 9, 8, 9, 10, 7, 7, 9, 10, 5, 6, 9, 7, 12, 10, 10, 7, 10, 9, 6, 8, 10, 9, 12, 10, 9, 8, 8, 5, 6, 6, 7, 6, 7, 6, 7, 7, 
+font.Forte.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Medium.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Abadi\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Regular.height=14
+font.Bradley\ Hand\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eurostile.height=10
+font.Perpetua\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Rockwell\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 2.height=13
+font.Calisto\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.serif.plain.height=14
+font.Lucida\ Bright\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bell\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tw\ Cen\ MT\ Condensed.widths=4, 4, 3, 4, 4, 3, 4, 4, 2, 2, 4, 2, 7, 4, 4, 4, 4, 3, 3, 3, 4, 4, 6, 4, 4, 3, 5, 5, 4, 5, 4, 4, 5, 5, 3, 4, 5, 4, 6, 5, 5, 4, 5, 5, 4, 4, 5, 5, 7, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+font.dialog.bolditalic.height=14
+font.Palatino\ Linotype\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialoginput.italic.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Rockwell\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Demi.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Goudy\ Old\ Style\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Perpetua\ Titling\ MT\ Light.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Parchment.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Symbol.height=14
+font.Abadi\ MT\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 7, 5, 5, 5, 5, 6, 5, 6, 6, 5, 6, 6, 3, 4, 5, 5, 7, 6, 6, 6, 6, 5, 5, 5, 6, 5, 7, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Palatino\ Linotype\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Ref.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Vladimir\ Script.widths=5, 5, 4, 5, 4, 4, 5, 5, 4, 3, 5, 4, 6, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, 9, 9, 7, 8, 7, 7, 8, 9, 7, 8, 7, 7, 10, 8, 7, 7, 7, 8, 7, 7, 8, 8, 10, 7, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Franklin\ Gothic\ Demi\ Cond.widths=5, 5, 4, 5, 5, 3, 5, 5, 2, 2, 5, 2, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 5, 6, 5, 6, 5, 4, 6, 6, 3, 3, 5, 4, 8, 6, 6, 5, 6, 5, 5, 4, 6, 5, 7, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.OCR\ A\ Extended.height=11
+font.Arial\ Narrow\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Runic\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Wide\ Latin.widths=11, 11, 10, 11, 10, 8, 10, 12, 7, 7, 13, 7, 18, 12, 11, 11, 11, 10, 10, 7, 12, 12, 16, 13, 11, 10, 15, 15, 14, 16, 15, 14, 16, 17, 10, 11, 16, 14, 18, 15, 14, 15, 14, 16, 13, 13, 16, 14, 19, 15, 14, 13, 13, 10, 13, 12, 13, 12, 13, 11, 13, 13, 
+font.Arial\ Special\ G2\ Bold.height=14
+font.Lucida\ Console.height=11
+font.Lucida\ Sans\ Typewriter\ Regular.height=14
+font.Bookman\ Old\ Style\ Bold.height=14
+font.Copperplate\ Gothic\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Trebuchet\ MS\ Bold.height=14
+font.Garamond\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Serif\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Viner\ Hand\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Book.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 4, 6, 6, 8, 5, 5, 5, 6, 7, 7, 7, 6, 6, 7, 7, 4, 5, 7, 6, 9, 8, 7, 7, 7, 7, 7, 6, 7, 6, 9, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookman\ Old\ Style\ Bold\ Italic.height=14
+font.Ransom\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Pacmania.height=12
+font.Arial\ Narrow\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Fax\ Demibold\ Italic.height=14
+font.monospaced.italic.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Book\ Antiqua\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Demibold\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial.height=13
+font.Lucida\ Bright\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Mistral.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Ref.height=14
+font.Papyrus.height=17
+font.Lucida\ Sans\ Unicode.widths=7, 7, 6, 7, 6, 5, 7, 7, 4, 4, 7, 4, 9, 7, 7, 7, 7, 6, 6, 5, 7, 7, 9, 7, 7, 7, 8, 7, 8, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 9, 7, 9, 7, 6, 7, 8, 8, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Bold\ Italic.height=14
+font.Century\ Schoolbook\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Special\ G1.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Arial\ Narrow\ Special\ G1.widths=10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
+font.Marlett.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic\ Italic.height=14
+font.Century\ Gothic\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia\ Bold.height=14
+font.Lucida\ Sans\ Typewriter\ Bold.height=14
+font.MS\ Outlook.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Bold\ Italic.height=14
+font.Parchment.widths=3, 3, 3, 3, 3, 2, 3, 3, 2, 2, 3, 2, 4, 3, 3, 3, 3, 3, 3, 2, 3, 3, 4, 3, 3, 2, 10, 9, 8, 8, 8, 7, 11, 9, 7, 7, 9, 9, 10, 10, 10, 9, 9, 8, 8, 8, 9, 8, 10, 8, 8, 9, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 
+font.Palatino\ Linotype\ Bold\ Italic.height=14
+font.Verdana\ Bold\ Italic.height=14
+font.Juice\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Typewriter\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Bold.height=14
+font.Ransom.height=16
+font.Rockwell\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Californian\ FB\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Italic.height=14
+font.French\ Script\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Garamond\ Bold.height=14
+font.Lucida\ Calligraphy\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Narrow\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Light\ ITC.height=12
+font.Franklin\ Gothic\ Book\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Broadway.widths=8, 8, 7, 8, 7, 5, 7, 9, 5, 5, 8, 5, 13, 9, 7, 8, 8, 6, 6, 5, 9, 7, 10, 8, 7, 8, 9, 8, 8, 9, 8, 8, 9, 9, 5, 7, 8, 8, 10, 8, 9, 9, 9, 9, 7, 8, 9, 9, 11, 9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Californian\ FB\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Courier\ New\ Bold\ Italic.height=14
+font.Marlett.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Trebuchet\ MS.widths=5, 6, 5, 6, 6, 4, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 5, 4, 4, 6, 6, 9, 6, 5, 5, 7, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 7, 6, 7, 6, 5, 6, 7, 7, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Tw\ Cen\ MT\ Medium\ Italic.height=14
+font.Microsoft\ Sans\ Serif.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Brush\ Script\ MT\ Italic.height=14
+font.Baskerville\ Old\ Face.widths=5, 6, 5, 6, 6, 4, 5, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 5, 4, 6, 5, 7, 5, 5, 5, 8, 8, 8, 9, 7, 6, 9, 9, 5, 4, 8, 7, 10, 9, 9, 7, 9, 7, 6, 8, 9, 8, 12, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Edda.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Bold.height=14
+font.Rage\ Italic.widths=5, 4, 4, 6, 4, 3, 5, 5, 4, 3, 5, 4, 7, 6, 5, 6, 6, 5, 4, 4, 6, 5, 6, 5, 6, 4, 7, 8, 6, 8, 7, 6, 6, 8, 5, 6, 8, 7, 10, 8, 7, 7, 6, 8, 7, 6, 8, 7, 9, 7, 8, 7, 6, 4, 6, 6, 6, 5, 6, 5, 6, 6, 
+font.Franklin\ Gothic\ Medium\ Italic.height=14
+font.Century\ Schoolbook\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Braggadocio.widths=9, 9, 7, 9, 8, 6, 9, 9, 5, 5, 10, 5, 13, 9, 9, 9, 9, 8, 7, 6, 9, 8, 11, 8, 10, 9, 10, 12, 10, 11, 10, 10, 10, 12, 7, 8, 13, 10, 13, 10, 11, 11, 11, 12, 9, 11, 10, 11, 13, 10, 11, 12, 11, 7, 10, 11, 12, 11, 10, 11, 11, 11, 
+font.Wingdings\ 2.height=12
+font.Britannic\ Bold.height=11
+font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 5.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
+font.Playbill.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Bold\ Italic.height=14
+font.Georgia\ Ref.widths=7, 7, 6, 7, 6, 5, 7, 8, 5, 4, 7, 5, 11, 8, 6, 7, 6, 6, 6, 5, 8, 7, 9, 7, 7, 6, 9, 8, 7, 8, 8, 7, 8, 9, 5, 6, 8, 7, 10, 10, 8, 8, 8, 9, 7, 7, 9, 9, 11, 9, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia.widths=7, 7, 5, 7, 6, 5, 6, 8, 5, 4, 7, 5, 11, 8, 6, 7, 6, 5, 5, 5, 8, 7, 8, 7, 7, 5, 8, 8, 7, 8, 7, 7, 8, 9, 5, 6, 8, 7, 10, 8, 8, 7, 8, 8, 6, 7, 8, 8, 11, 8, 8, 7, 7, 6, 6, 6, 6, 6, 7, 6, 7, 7, 
+font.Arial\ Black\ Italic.height=14
+font.Franklin\ Gothic\ Medium\ Cond.widths=6, 6, 5, 6, 5, 4, 5, 6, 3, 3, 5, 3, 8, 6, 6, 6, 6, 4, 5, 4, 6, 5, 7, 5, 5, 4, 6, 6, 6, 7, 6, 5, 7, 6, 3, 4, 6, 5, 8, 7, 7, 6, 7, 6, 6, 5, 6, 6, 8, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Bauhaus\ 93.height=15
+font.Old\ English\ Text\ MT.height=11
+font.Verdana\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Augsburger\ Initials.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.monospaced.bold.height=14
+font.Bell\ MT.widths=5, 6, 5, 6, 5, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 5, 4, 6, 6, 8, 6, 6, 5, 8, 7, 7, 9, 8, 7, 8, 9, 5, 5, 8, 7, 10, 9, 8, 7, 8, 8, 6, 8, 9, 8, 11, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Rockwell\ Italic.height=14
+font.Lucida\ Sans\ Unicode.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Castellar.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Stencil.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Chiller.widths=4, 4, 4, 4, 4, 3, 4, 4, 3, 3, 4, 3, 6, 4, 4, 4, 4, 3, 4, 4, 4, 4, 5, 4, 5, 5, 6, 6, 6, 5, 5, 4, 5, 5, 4, 5, 6, 5, 7, 6, 6, 5, 6, 5, 4, 5, 5, 5, 7, 6, 5, 6, 6, 4, 5, 5, 5, 5, 5, 5, 6, 5, 
+font.Gill\ Sans\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.dialog.italic.height=14
+font.Perpetua\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.ProFont.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.dialog.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Trebuchet\ MS\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Bold.height=14
+font.Californian\ FB\ Bold.height=14
+font.Rockwell\ Condensed\ Bold.height=14
+font.Georgia\ Bold\ Italic.height=14
+font.Trebuchet\ MS\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G1\ Bold.height=14
+font.Harlow\ Solid\ Italic\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Poor\ Richard.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 3, 6, 4, 8, 6, 5, 6, 6, 4, 4, 4, 6, 6, 7, 5, 6, 4, 8, 7, 8, 8, 6, 6, 8, 8, 4, 5, 7, 6, 9, 8, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 8, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.serif.bolditalic.widths=5, 5, 4, 5, 4, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 5, 5, 4, 4, 3, 6, 4, 7, 5, 4, 4, 7, 7, 7, 7, 7, 7, 7, 8, 4, 5, 7, 6, 9, 7, 7, 6, 7, 7, 6, 6, 7, 7, 9, 7, 7, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Gill\ Sans\ Ultra\ Bold\ Condensed.height=13
+font.Verdana.widths=7, 7, 6, 7, 7, 5, 7, 7, 3, 4, 7, 3, 11, 7, 7, 7, 7, 5, 6, 5, 7, 7, 9, 7, 7, 6, 9, 8, 7, 9, 7, 7, 8, 8, 6, 6, 8, 6, 9, 8, 9, 8, 9, 8, 7, 6, 8, 8, 12, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gill\ Sans\ Ultra\ Bold\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Bold\ Italic.height=14
+font.Courier\ New\ Italic.height=14
+font.Goudy\ Old\ Style.widths=5, 6, 5, 6, 5, 4, 5, 6, 4, 4, 6, 4, 8, 7, 6, 6, 6, 4, 4, 4, 6, 5, 7, 5, 5, 4, 8, 7, 8, 8, 7, 6, 9, 9, 4, 4, 8, 6, 10, 8, 9, 6, 9, 8, 6, 7, 9, 8, 11, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.dialog.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Bold.height=14
+font.Bitstream\ Vera\ Sans\ Mono\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Trebuchet\ MS.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Modern\ No.\ 20.widths=6, 6, 5, 6, 5, 5, 5, 7, 4, 4, 6, 4, 9, 6, 5, 6, 6, 5, 4, 4, 6, 5, 8, 6, 6, 5, 8, 8, 6, 8, 8, 7, 8, 9, 5, 6, 8, 8, 10, 8, 7, 7, 7, 8, 6, 7, 8, 8, 11, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Kino\ MT.height=12
+font.Viner\ Hand\ ITC.widths=7, 6, 5, 6, 5, 5, 6, 7, 5, 5, 8, 5, 10, 8, 5, 6, 7, 5, 4, 6, 8, 7, 9, 6, 7, 6, 9, 9, 8, 9, 8, 7, 7, 9, 5, 6, 10, 8, 10, 9, 6, 8, 9, 8, 8, 7, 8, 8, 12, 7, 8, 8, 5, 4, 8, 6, 7, 5, 6, 6, 6, 6, 
+font.Forte.widths=7, 6, 5, 7, 5, 5, 7, 6, 4, 4, 6, 6, 9, 6, 6, 7, 6, 4, 5, 4, 6, 5, 8, 6, 6, 5, 8, 8, 7, 8, 7, 6, 7, 9, 7, 6, 8, 5, 12, 9, 7, 7, 8, 7, 6, 6, 7, 6, 9, 8, 8, 7, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 
+font.dialoginput.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Impact.height=14
+font.Showcard\ Gothic.widths=7, 8, 7, 10, 7, 6, 8, 9, 5, 6, 8, 6, 10, 9, 9, 8, 9, 8, 7, 7, 9, 7, 11, 8, 7, 7, 7, 8, 7, 10, 7, 6, 8, 9, 5, 6, 8, 6, 10, 9, 9, 8, 9, 8, 7, 7, 9, 7, 11, 8, 7, 7, 7, 5, 6, 6, 7, 6, 6, 6, 7, 7, 
+font.Felix\ Titling.widths=8, 7, 9, 9, 6, 6, 9, 8, 4, 4, 9, 6, 10, 9, 9, 6, 9, 9, 6, 7, 9, 8, 11, 8, 7, 8, 8, 7, 9, 9, 6, 6, 9, 8, 4, 4, 9, 6, 10, 9, 9, 6, 9, 9, 6, 7, 9, 8, 11, 8, 7, 8, 7, 4, 6, 7, 6, 7, 7, 6, 7, 7, 
+font.Arial\ Black.height=15
+font.Comic\ Sans\ MS\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Stencil.height=11
+font.Gill\ Sans\ MT\ Condensed.height=13
+font.Tw\ Cen\ MT\ Medium\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.French\ Script\ MT.widths=4, 4, 4, 4, 4, 3, 5, 5, 3, 3, 5, 3, 6, 4, 4, 4, 4, 3, 4, 3, 4, 4, 5, 4, 4, 4, 6, 8, 6, 8, 6, 7, 6, 9, 6, 6, 9, 7, 11, 10, 7, 6, 7, 8, 7, 6, 8, 8, 9, 7, 8, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Symbol.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Book\ Antiqua\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Felix\ Titling.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Bold\ Italic.height=14
+font.Arial\ Special\ G1\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.height=12
+font.Century\ Schoolbook\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Calisto\ MT.widths=4, 6, 4, 5, 4, 3, 5, 6, 3, 3, 5, 3, 9, 6, 6, 6, 5, 4, 4, 3, 6, 6, 8, 5, 5, 5, 8, 7, 8, 8, 6, 6, 9, 8, 3, 5, 8, 6, 10, 8, 9, 5, 9, 7, 6, 5, 8, 7, 11, 7, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.dialoginput.bolditalic.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Pristina.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G1\ Bold.height=14
+font.serif.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Kristen\ ITC.height=15
+font.Lucida\ Bright\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G2.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Palatino\ Linotype.height=14
+font.dialoginput.plain.height=14
+font.Times\ New\ Roman\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Kunstler\ Script.height=12
+font.Book\ Antiqua.widths=5, 6, 4, 6, 5, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 3, 6, 6, 8, 5, 6, 5, 8, 7, 7, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 8, 6, 8, 7, 6, 7, 8, 8, 10, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Times\ New\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Medium.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Mercurius\ Script\ MT\ Bold.height=12
+font.Tw\ Cen\ MT\ Condensed.height=12
+font.Monotype\ Sorts\ 2.widths=11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 
+font.sansserif.bold.height=14
+font.Elephant\ Italic.height=14
+font.dialoginput.italic.height=14
+font.Tahoma\ Bold.height=14
+font.Rockwell\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Italic.height=14
+font.serif.bold.widths=5, 6, 4, 6, 4, 4, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 6, 4, 4, 3, 6, 5, 7, 6, 5, 3, 7, 7, 7, 7, 7, 6, 8, 8, 4, 5, 8, 7, 9, 7, 8, 6, 9, 7, 6, 7, 7, 7, 10, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Baskerville\ Old\ Face.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Abadi\ MT\ Condensed.height=12
+font.Copperplate\ Gothic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Snap\ ITC.widths=7, 7, 7, 7, 7, 7, 8, 7, 6, 5, 8, 5, 9, 7, 7, 7, 7, 7, 7, 7, 8, 8, 11, 9, 8, 7, 10, 9, 9, 9, 9, 9, 10, 10, 6, 9, 9, 8, 12, 10, 9, 9, 9, 9, 9, 8, 9, 9, 12, 10, 10, 9, 9, 6, 9, 9, 10, 9, 9, 9, 10, 9, 
+font.Rockwell\ Extra\ Bold.widths=8, 8, 7, 8, 7, 5, 8, 8, 4, 4, 7, 4, 12, 8, 8, 8, 8, 5, 6, 5, 8, 7, 10, 7, 7, 7, 8, 9, 8, 9, 8, 7, 8, 9, 5, 4, 9, 7, 11, 9, 9, 8, 9, 9, 6, 8, 7, 8, 11, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bradley\ Hand\ ITC.height=13
+font.Imprint\ MT\ Shadow.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G2.height=16
+font.Arial\ Narrow\ Special\ G2.height=16
+font.Bitstream\ Vera\ Sans\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Elephant.widths=7, 7, 6, 7, 6, 5, 6, 7, 4, 4, 7, 4, 10, 8, 7, 7, 7, 6, 6, 5, 8, 6, 9, 6, 6, 6, 8, 10, 9, 10, 10, 9, 10, 11, 6, 8, 10, 9, 12, 10, 10, 9, 10, 10, 8, 9, 10, 8, 13, 9, 8, 9, 9, 6, 8, 8, 8, 8, 8, 7, 8, 8, 
+font.Eurostile\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gigi.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Imprint\ MT\ Shadow.height=13
+font.Monotype\ Corsiva.widths=5, 5, 4, 5, 4, 4, 6, 5, 3, 3, 5, 3, 7, 6, 5, 5, 5, 4, 4, 4, 6, 5, 8, 5, 5, 5, 7, 7, 6, 8, 7, 7, 7, 8, 5, 5, 8, 7, 9, 8, 7, 7, 7, 7, 6, 6, 8, 7, 10, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Matisse\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookman\ Old\ Style.widths=6, 6, 6, 6, 6, 5, 6, 7, 4, 4, 7, 4, 10, 7, 7, 7, 6, 5, 5, 5, 7, 6, 10, 6, 6, 6, 7, 8, 7, 8, 7, 7, 8, 8, 4, 7, 8, 7, 11, 8, 8, 7, 8, 8, 7, 8, 8, 8, 11, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Perpetua.height=13
+font.Franklin\ Gothic\ Book.height=13
+font.Gloucester\ MT\ Extra\ Condensed.widths=4, 5, 4, 5, 4, 3, 4, 5, 3, 3, 5, 3, 6, 5, 5, 5, 5, 4, 4, 3, 5, 4, 6, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 4, 5, 4, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Ransom\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Mono.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Garamond\ Italic.height=14
+font.Colonna\ MT.height=12
+font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Calisto\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Edda.widths=9, 10, 9, 10, 8, 9, 9, 10, 5, 5, 9, 8, 13, 9, 8, 10, 9, 9, 8, 8, 9, 9, 14, 9, 10, 9, 9, 9, 9, 10, 9, 9, 10, 10, 5, 6, 10, 8, 11, 10, 10, 9, 10, 9, 9, 9, 10, 9, 12, 9, 8, 9, 9, 5, 8, 8, 8, 8, 8, 7, 8, 8, 
+font.Palace\ Script\ MT.height=10
+font.Bitstream\ Vera\ Serif.height=13
+font.Onyx.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 5, 4, 4, 5, 5, 7, 5, 5, 4, 5, 5, 5, 5, 4, 4, 5, 5, 3, 4, 5, 4, 7, 6, 5, 5, 5, 6, 5, 5, 5, 5, 7, 5, 5, 5, 5, 3, 4, 4, 5, 5, 5, 4, 5, 5, 
+font.Playbill.widths=4, 4, 3, 4, 3, 3, 3, 4, 2, 2, 4, 2, 5, 4, 3, 4, 4, 3, 3, 3, 4, 4, 5, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 6, 5, 4, 4, 4, 5, 4, 4, 4, 4, 5, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Bookman\ Old\ Style\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Vladimir\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tempus\ Sans\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Algerian.height=14
+font.Arial\ Narrow\ Special\ G1\ Italic.height=14
+font.Cooper\ Black.height=13
+font.Chiller.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Italic.height=14
+font.Bitstream\ Vera\ Sans\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Informal\ Roman.height=13
+font.Kunstler\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.monospaced.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Script\ MT\ Bold.widths=5, 4, 4, 5, 4, 4, 5, 5, 2, 4, 5, 3, 7, 5, 4, 6, 5, 4, 4, 3, 5, 4, 7, 6, 5, 5, 7, 8, 6, 8, 5, 6, 6, 9, 6, 5, 8, 6, 10, 9, 6, 7, 6, 8, 6, 7, 8, 7, 10, 7, 8, 6, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Juice\ ITC.widths=5, 5, 4, 5, 4, 4, 4, 5, 3, 3, 4, 3, 6, 5, 4, 5, 5, 4, 4, 4, 5, 4, 6, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 5, 3, 4, 4, 4, 5, 5, 5, 4, 5, 4, 4, 4, 5, 5, 5, 5, 4, 4, 5, 3, 4, 4, 4, 4, 5, 4, 4, 5, 
+font.Calisto\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tahoma.widths=6, 6, 5, 6, 6, 4, 6, 6, 3, 4, 7, 3, 9, 6, 6, 6, 6, 5, 5, 4, 6, 6, 9, 6, 6, 5, 8, 7, 7, 8, 6, 6, 7, 8, 5, 5, 7, 6, 9, 7, 8, 7, 8, 7, 6, 7, 7, 7, 10, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookshelf\ Symbol\ 4.widths=9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
+font.Tw\ Cen\ MT\ Bold\ Italic.height=14
+font.High\ Tower\ Text\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Enviro.widths=5, 5, 6, 5, 6, 4, 6, 5, 3, 3, 5, 4, 9, 5, 5, 5, 6, 4, 5, 4, 6, 5, 7, 4, 5, 6, 7, 8, 7, 7, 8, 6, 7, 7, 3, 7, 8, 8, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 9, 6, 8, 7, 7, 3, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Edwardian\ Script\ ITC.height=13
+font.Gigi.height=15
+font.Abadi\ MT\ Condensed\ Light.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 6, 5, 5, 5, 5, 6, 5, 6, 5, 5, 5, 6, 3, 4, 5, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 5, 7, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Goudy\ Old\ Style\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Heavy.height=13
+font.Stop.widths=7, 6, 6, 7, 6, 6, 7, 6, 4, 5, 6, 5, 9, 7, 8, 6, 8, 6, 6, 6, 7, 7, 9, 7, 7, 6, 7, 6, 6, 7, 6, 6, 7, 6, 4, 5, 6, 5, 9, 7, 8, 6, 8, 6, 6, 6, 7, 7, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Andy\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Haettenschweiler.widths=5, 5, 5, 5, 5, 4, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 4, 4, 5, 5, 3, 5, 5, 4, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Maiandra\ GD.widths=5, 6, 5, 6, 5, 4, 5, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 4, 6, 6, 9, 5, 6, 5, 8, 7, 7, 8, 6, 6, 8, 9, 4, 5, 7, 5, 10, 8, 9, 6, 9, 7, 5, 7, 8, 7, 11, 7, 7, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Franklin\ Gothic\ Heavy\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.sansserif.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialoginput.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ransom\ Bold.height=14
+font.Britannic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Edwardian\ Script\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Trebuchet\ MS\ Italic.height=14
+font.Californian\ FB.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Baskerville\ Old\ Face.height=11
+font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.height=14
+font.Californian\ FB\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Book\ Antiqua\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bernard\ MT\ Condensed.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 4, 4, 6, 5, 7, 5, 5, 5, 6, 6, 5, 6, 5, 5, 6, 7, 4, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 6, 5, 6, 8, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Lucida\ Bright\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Mono\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Freestyle\ Script.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Schoolbook.widths=7, 7, 5, 7, 6, 4, 6, 7, 4, 4, 7, 4, 10, 7, 6, 7, 7, 5, 6, 5, 7, 6, 9, 6, 6, 6, 8, 8, 8, 9, 8, 8, 9, 9, 5, 7, 9, 8, 10, 9, 9, 8, 9, 8, 7, 8, 9, 8, 11, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Typewriter\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Mistral.height=11
+font.Bitstream\ Vera\ Sans\ Bold\ Oblique.height=14
+font.Arial\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia\ Ref.height=13
+font.Bitstream\ Vera\ Sans\ Mono\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Ransom.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 1.height=13
+font.Century\ Gothic\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic.height=14
+font.Wingdings\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT.widths=5, 6, 5, 6, 6, 3, 5, 6, 3, 3, 6, 3, 10, 6, 6, 6, 6, 4, 4, 4, 6, 5, 8, 6, 5, 5, 8, 7, 8, 8, 6, 6, 8, 8, 3, 3, 7, 6, 9, 8, 9, 7, 9, 7, 6, 7, 8, 7, 12, 8, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Ransom\ Bold\ Italic.height=14
+font.Times\ New\ Roman\ Special\ G1\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Monotype\ Sorts.height=10
+font.Book\ Antiqua.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Maiandra\ GD\ Demi\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Franklin\ Gothic\ Heavy\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Castellar.height=13
+font.sansserif.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.OpenSymbol.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gradl.widths=4, 4, 3, 4, 3, 2, 4, 4, 2, 2, 4, 2, 5, 4, 4, 4, 4, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 6, 4, 5, 4, 4, 4, 4, 4, 5, 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
+font.Arial\ Narrow\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Parade.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.ProFont.height=14
+font.Perpetua\ Bold.height=14
+font.Wingdings\ 3.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Calisto\ MT\ Italic.height=14
+font.Lucida\ Bright\ Regular.height=14
+font.Bell\ MT\ Italic.height=14
+font.Kristen\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Demi\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rage\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia\ Italic.height=14
+font.MS\ Outlook.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Goudy\ Old\ Style\ Italic.height=14
+font.Lucida\ Sans\ Typewriter\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Titling\ MT\ Light.height=14
+font.Footlight\ MT\ Light.widths=6, 6, 5, 6, 5, 4, 6, 7, 4, 4, 6, 4, 9, 7, 6, 6, 6, 5, 5, 4, 7, 6, 9, 6, 6, 5, 7, 6, 7, 8, 6, 5, 8, 8, 4, 4, 7, 6, 10, 8, 8, 6, 8, 6, 5, 6, 8, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Augsburger\ Initials.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Courier\ New\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.monospaced.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookman\ Old\ Style\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic\ Bold.height=14
+font.Vladimir\ Script.height=13
+font.Franklin\ Gothic\ Demi\ Cond.height=13
+font.Century\ Schoolbook\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Narrow\ Bold.height=14
+font.Times\ New\ Roman\ Special\ G1.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.OpenSymbol.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Wide\ Latin.height=11
+font.Showcard\ Gothic.height=14
+font.Californian\ FB.widths=4, 6, 5, 5, 5, 4, 6, 5, 3, 3, 6, 3, 7, 5, 5, 6, 5, 5, 4, 4, 5, 5, 8, 5, 5, 5, 7, 6, 7, 7, 7, 6, 7, 8, 4, 4, 7, 6, 10, 8, 7, 6, 7, 7, 5, 6, 8, 7, 11, 7, 6, 7, 5, 4, 5, 5, 6, 5, 5, 5, 5, 5, 
+font.Tw\ Cen\ MT\ Bold.height=14
+font.Bitstream\ Vera\ Sans.widths=7, 7, 6, 7, 7, 4, 7, 7, 3, 3, 7, 3, 11, 7, 7, 7, 7, 5, 6, 5, 7, 7, 9, 7, 7, 5, 9, 7, 7, 8, 6, 6, 8, 8, 3, 3, 7, 6, 9, 8, 8, 7, 8, 8, 7, 7, 8, 9, 11, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Palatino\ Linotype\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.sansserif.italic.widths=7, 7, 6, 7, 7, 4, 7, 7, 4, 3, 6, 4, 8, 7, 7, 7, 7, 4, 6, 4, 7, 6, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 3, 6, 8, 7, 9, 8, 9, 8, 9, 8, 8, 7, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Footlight\ MT\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Italic.height=14
+font.monospaced.italic.height=14
+font.Book\ Antiqua\ Italic.height=14
+font.Arial\ Narrow.widths=5, 5, 5, 5, 5, 3, 5, 5, 2, 2, 5, 2, 7, 5, 5, 5, 5, 4, 5, 3, 5, 5, 6, 5, 5, 4, 6, 6, 6, 6, 5, 5, 6, 6, 2, 5, 6, 5, 7, 6, 6, 5, 6, 6, 5, 5, 6, 5, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Lucida\ Bright\ Demibold\ Italic.height=14
+font.Times\ New\ Roman.widths=5, 6, 4, 6, 4, 4, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 6, 4, 4, 3, 6, 5, 7, 6, 5, 3, 7, 7, 7, 7, 7, 6, 8, 8, 4, 5, 8, 7, 9, 7, 8, 6, 9, 7, 6, 7, 7, 7, 10, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Arial.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Handwriting\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Unicode.height=16
+font.Ravie.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.serif.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Andy\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Schoolbook\ Bold.height=14
+font.Times\ New\ Roman\ Special\ G2\ Italic.height=14
+font.Arial\ Special\ G1.height=16
+font.Arial\ Narrow\ Special\ G1.height=16
+font.Bookman\ Old\ Style\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G2.height=16
+font.Rockwell\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic\ Bold\ Italic.height=14
+font.sansserif.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tw\ Cen\ MT\ Medium.height=14
+font.Parchment.height=12
+font.Bitstream\ Vera\ Serif\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Informal\ Roman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ransom\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Showcard\ Gothic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.OCRB.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Jokerman.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Colonna\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Light\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Copperplate\ Gothic\ Bold.widths=7, 7, 7, 7, 6, 6, 7, 7, 4, 5, 7, 6, 9, 7, 7, 7, 7, 7, 6, 4, 7, 7, 9, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 9, 4, 6, 8, 7, 9, 9, 9, 8, 9, 8, 7, 6, 8, 7, 13, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Pepita\ MT.widths=5, 5, 4, 6, 4, 4, 6, 5, 3, 4, 5, 4, 7, 5, 4, 6, 5, 4, 4, 4, 5, 5, 8, 6, 5, 6, 10, 9, 8, 11, 6, 9, 10, 9, 5, 5, 11, 8, 12, 9, 9, 9, 12, 9, 9, 9, 10, 9, 12, 9, 9, 11, 5, 4, 6, 5, 7, 6, 5, 6, 6, 7, 
+font.Eras\ Bold\ ITC.widths=6, 7, 5, 7, 6, 4, 7, 7, 3, 3, 6, 3, 9, 7, 6, 7, 7, 4, 5, 4, 7, 6, 9, 6, 6, 5, 8, 7, 7, 8, 7, 6, 8, 8, 3, 5, 8, 6, 9, 8, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Franklin\ Gothic\ Demi.widths=5, 5, 5, 5, 5, 3, 6, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 3, 5, 4, 5, 5, 7, 5, 4, 4, 6, 7, 6, 6, 6, 6, 6, 6, 3, 4, 6, 5, 9, 6, 6, 6, 6, 7, 6, 5, 7, 6, 9, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Rockwell\ Extra\ Bold.height=13
+font.monospaced.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Centaur.widths=5, 6, 5, 6, 5, 4, 5, 6, 3, 3, 6, 3, 8, 6, 6, 6, 6, 4, 4, 4, 6, 5, 7, 5, 5, 5, 7, 6, 7, 8, 7, 6, 8, 9, 5, 5, 7, 7, 10, 9, 8, 6, 8, 8, 6, 8, 8, 8, 11, 8, 8, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Tw\ Cen\ MT\ Condensed\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Harlow\ Solid\ Italic\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Calligraphy\ Italic.height=14
+font.Palatino\ Linotype\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Courier\ New\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.dialoginput.bold.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Broadway.height=13
+font.Franklin\ Gothic\ Book\ Italic.height=14
+font.Marlett.height=10
+font.Trebuchet\ MS.height=13
+font.Arial\ Narrow\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Webdings.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Monotype\ Corsiva.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.High\ Tower\ Text.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gloucester\ MT\ Extra\ Condensed.height=13
+font.Rage\ Italic.height=14
+font.Abadi\ MT\ Condensed\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 3.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Braggadocio.height=10
+font.Microsoft\ Sans\ Serif.widths=7, 7, 6, 7, 7, 4, 7, 7, 3, 3, 6, 3, 9, 7, 7, 7, 7, 4, 6, 4, 7, 7, 9, 6, 6, 6, 8, 8, 8, 9, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 6, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Curlz\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Goudy\ Stout.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.sansserif.bolditalic.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 6, 8, 6, 6, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 6, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Bookshelf\ Symbol\ 5.height=13
+font.Edda.height=16
+font.Vivaldi\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookshelf\ Symbol\ 1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia.height=13
+font.Bell\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Franklin\ Gothic\ Medium\ Cond.height=13
+font.Bookman\ Old\ Style.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Augsburger\ Initials.height=12
+font.Beesknees\ ITC.widths=7, 7, 6, 7, 6, 6, 7, 7, 4, 4, 7, 5, 8, 7, 8, 6, 8, 7, 5, 5, 7, 7, 9, 7, 7, 7, 9, 8, 7, 8, 7, 7, 8, 8, 5, 5, 8, 6, 10, 8, 9, 7, 9, 8, 6, 6, 8, 9, 10, 9, 8, 8, 9, 5, 7, 6, 7, 6, 8, 6, 7, 8, 
+font.Perpetua\ Titling\ MT\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bell\ MT.height=12
+font.Arial\ Narrow\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Juice\ ITC.height=13
+font.Trebuchet\ MS\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Rounded\ MT\ Bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 5, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 7, 7, 6, 8, 8, 3, 6, 7, 6, 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Arial\ Special\ G2\ Italic.height=14
+font.Chiller.height=13
+font.Gill\ Sans\ MT\ Bold\ Italic.height=14
+font.Bookshelf\ Symbol\ 2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Abadi\ MT\ Condensed\ Light.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Demibold\ Italic.height=14
+font.Ransom\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Goudy\ Stout.widths=14, 13, 11, 12, 13, 13, 13, 16, 11, 12, 16, 13, 18, 13, 13, 12, 11, 15, 11, 14, 14, 13, 18, 14, 14, 14, 14, 13, 11, 12, 13, 13, 13, 16, 11, 12, 16, 13, 18, 13, 13, 12, 11, 15, 11, 14, 14, 13, 18, 14, 14, 14, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
+font.Trebuchet\ MS\ Bold\ Italic.height=14
+font.Elephant\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Pacmania.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Broadway.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Pristina.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 2, 5, 2, 7, 5, 4, 5, 5, 4, 4, 3, 5, 5, 6, 5, 5, 4, 7, 8, 7, 8, 8, 7, 7, 9, 6, 6, 9, 6, 11, 8, 8, 7, 8, 8, 6, 7, 9, 8, 11, 8, 8, 6, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Courier\ New.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Abadi\ MT\ Condensed\ Extra\ Bold.widths=4, 5, 4, 5, 5, 3, 5, 5, 3, 3, 4, 3, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 4, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Copperplate\ Gothic\ Light.widths=7, 7, 8, 8, 7, 7, 8, 8, 4, 6, 7, 7, 8, 8, 9, 7, 9, 7, 7, 6, 8, 7, 10, 7, 6, 6, 8, 9, 9, 9, 8, 8, 9, 9, 4, 7, 8, 8, 10, 9, 10, 8, 10, 9, 8, 8, 9, 8, 12, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.dialog.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Poor\ Richard.height=13
+font.Franklin\ Gothic\ Medium.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 8, 6, 6, 7, 7, 4, 5, 7, 6, 9, 8, 7, 7, 7, 7, 7, 6, 7, 6, 10, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.serif.bolditalic.height=14
+font.Bookshelf\ Symbol\ 3.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Comic\ Sans\ MS\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Bright\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Runic\ MT\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 4, 3, 7, 5, 5, 5, 5, 5, 5, 3, 5, 5, 7, 5, 5, 4, 5, 6, 6, 6, 6, 4, 6, 6, 3, 5, 5, 6, 7, 6, 6, 6, 6, 5, 5, 5, 6, 5, 7, 5, 5, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 
+font.Perpetua\ Titling\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ Ultra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana.height=14
+font.Goudy\ Old\ Style.height=13
+font.monospaced.bolditalic.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Goudy\ Old\ Style.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Mono\ Oblique.height=14
+font.Modern\ No.\ 20.height=12
+font.Matura\ MT\ Script\ Capitals.widths=6, 6, 5, 6, 5, 5, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 6, 4, 6, 6, 9, 6, 6, 6, 14, 12, 10, 14, 9, 13, 9, 9, 9, 13, 13, 13, 16, 15, 13, 10, 12, 11, 10, 10, 12, 13, 15, 15, 12, 14, 8, 5, 6, 5, 7, 6, 6, 6, 6, 6, 
+font.Viner\ Hand\ ITC.height=17
+font.Forte.height=15
+font.Placard\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Medium.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Placard\ Condensed.widths=5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 6, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 5, 4, 3, 5, 5, 5, 5, 4, 4, 5, 5, 3, 3, 5, 4, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 6, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Jokerman.widths=7, 7, 6, 7, 7, 4, 7, 8, 4, 4, 7, 4, 9, 7, 7, 7, 7, 6, 5, 5, 7, 6, 8, 7, 7, 7, 9, 8, 8, 8, 7, 6, 9, 8, 4, 7, 8, 8, 10, 10, 9, 8, 9, 8, 7, 8, 9, 8, 12, 9, 8, 8, 8, 5, 7, 8, 8, 7, 7, 7, 7, 8, 
+font.Franklin\ Gothic\ Heavy.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Black.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Harrington.widths=6, 6, 6, 7, 6, 4, 6, 6, 4, 4, 6, 4, 8, 6, 7, 7, 6, 5, 6, 4, 7, 6, 8, 5, 7, 6, 8, 8, 7, 8, 8, 7, 8, 8, 4, 4, 7, 7, 9, 8, 8, 8, 8, 8, 7, 6, 8, 7, 10, 7, 7, 7, 7, 4, 6, 6, 7, 6, 6, 5, 6, 6, 
+font.Felix\ Titling.height=13
+font.Comic\ Sans\ MS\ Bold.height=14
+font.Papyrus.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Curlz\ MT.widths=5, 5, 5, 5, 5, 4, 5, 6, 3, 3, 5, 3, 8, 6, 6, 6, 6, 5, 4, 4, 6, 5, 8, 5, 5, 5, 7, 7, 6, 8, 6, 6, 7, 8, 4, 5, 7, 6, 9, 9, 8, 7, 8, 7, 6, 6, 8, 7, 10, 7, 8, 6, 6, 4, 5, 5, 6, 6, 6, 5, 5, 6, 
+font.Century\ Schoolbook\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Ext\ Condensed\ Bold.widths=3, 3, 2, 3, 3, 2, 3, 3, 1, 2, 3, 2, 4, 3, 3, 3, 3, 2, 2, 2, 3, 3, 4, 3, 3, 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 4, 3, 3, 3, 3, 3, 2, 3, 3, 3, 5, 3, 3, 2, 3, 2, 2, 2, 3, 2, 3, 2, 3, 3, 
+font.French\ Script\ MT.height=13
+font.Tw\ Cen\ MT\ Condensed\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Freestyle\ Script.widths=3, 3, 4, 4, 4, 5, 6, 6, 2, 3, 5, 4, 4, 4, 4, 3, 5, 3, 4, 4, 5, 4, 6, 3, 4, 3, 5, 4, 5, 6, 5, 5, 5, 6, 4, 5, 6, 4, 6, 6, 5, 5, 5, 6, 5, 6, 6, 6, 7, 5, 5, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 4, 
+font.Lucida\ Sans\ Demibold\ Roman.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookshelf\ Symbol\ 4.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Goudy\ Old\ Style\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Braggadocio.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gloucester\ MT\ Extra\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G2\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Fax\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Special\ G1\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Perpetua\ Titling\ MT\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Century\ Schoolbook\ Bold\ Italic.height=14
+font.Calisto\ MT.height=13
+font.Lucida\ Sans\ Demibold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.dialoginput.bolditalic.height=14
+font.Poor\ Richard.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ravie.widths=9, 9, 8, 9, 8, 8, 9, 9, 6, 8, 9, 5, 13, 9, 8, 9, 9, 9, 8, 9, 9, 9, 12, 9, 10, 9, 10, 9, 8, 9, 10, 9, 9, 10, 6, 9, 11, 9, 14, 9, 9, 9, 9, 12, 9, 10, 10, 11, 14, 10, 10, 10, 8, 6, 9, 9, 11, 9, 9, 8, 8, 9, 
+font.Arial\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.MT\ Extra.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Bitstream\ Vera\ Sans\ Mono\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Eras\ Medium\ ITC.widths=6, 7, 6, 7, 6, 4, 7, 7, 3, 3, 6, 3, 10, 7, 7, 7, 7, 5, 5, 4, 7, 6, 9, 6, 6, 5, 8, 7, 7, 8, 7, 6, 8, 8, 3, 5, 7, 6, 10, 9, 9, 6, 9, 7, 6, 6, 8, 8, 11, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Bright\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Bright\ Demibold.height=14
+font.Pepita\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Wingdings.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 5.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialoginput.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Book\ Antiqua.height=13
+font.Franklin\ Gothic\ Demi\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Comic\ Sans\ MS.widths=6, 6, 5, 6, 6, 5, 5, 6, 3, 4, 5, 3, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 6, 5, 7, 6, 6, 7, 6, 6, 7, 8, 5, 7, 6, 6, 9, 8, 8, 5, 9, 6, 7, 7, 7, 7, 10, 7, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Desdemona.widths=6, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 8, 6, 7, 6, 6, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 3, 5, 6, 6, 8, 7, 8, 6, 7, 6, 6, 6, 7, 6, 7, 6, 5, 6, 5, 3, 5, 6, 5, 5, 5, 5, 5, 6, 
+font.sansserif.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Wingdings\ 3.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.High\ Tower\ Text.widths=5, 7, 5, 6, 5, 5, 6, 7, 4, 4, 6, 4, 10, 7, 6, 7, 6, 5, 6, 4, 7, 6, 9, 6, 6, 6, 9, 7, 9, 9, 7, 6, 9, 8, 4, 5, 8, 7, 10, 9, 10, 7, 10, 7, 7, 8, 9, 9, 11, 8, 8, 9, 6, 4, 5, 5, 6, 5, 6, 6, 6, 6, 
+font.Monotype\ Sorts\ 2.height=13
+font.Bookman\ Old\ Style\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Engravers\ MT.widths=10, 10, 10, 11, 9, 9, 11, 11, 6, 8, 11, 9, 12, 11, 11, 9, 11, 11, 9, 10, 11, 10, 13, 11, 11, 9, 10, 10, 10, 11, 9, 9, 11, 11, 6, 8, 11, 9, 12, 11, 11, 9, 11, 11, 9, 10, 11, 10, 13, 11, 11, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Maiandra\ GD.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G1\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Eurostile.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.serif.bold.height=14
+font.High\ Tower\ Text\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.dialog.bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Book\ Antiqua\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Snap\ ITC.height=14
+font.Trebuchet\ MS\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Condensed.widths=5, 5, 4, 5, 4, 3, 5, 5, 3, 3, 5, 3, 8, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 6, 5, 5, 6, 5, 5, 5, 6, 4, 3, 6, 5, 7, 6, 6, 5, 5, 5, 4, 5, 5, 6, 7, 6, 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+font.Cooper\ Black.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ Ultra\ Bold.widths=7, 8, 6, 8, 7, 6, 8, 8, 4, 5, 8, 4, 12, 8, 7, 8, 8, 7, 6, 6, 8, 7, 10, 8, 7, 7, 10, 9, 8, 9, 7, 7, 9, 10, 4, 6, 9, 7, 11, 9, 9, 8, 9, 9, 7, 7, 9, 8, 12, 10, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
+font.Bitstream\ Vera\ Serif.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Oblique.height=14
+font.Elephant.height=13
+font.Eurostile\ Bold.height=14
+font.American\ Uncial.widths=8, 7, 7, 9, 8, 8, 8, 8, 4, 6, 7, 5, 13, 8, 8, 8, 8, 8, 6, 7, 8, 8, 12, 9, 8, 8, 8, 7, 7, 9, 8, 8, 8, 8, 4, 6, 7, 5, 13, 8, 8, 8, 8, 8, 6, 7, 8, 8, 12, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Arial\ Narrow\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Centaur.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Monotype\ Corsiva.height=12
+font.Bookman\ Old\ Style.height=13
+font.Wingdings.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Lucida\ Sans\ Demibold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Condensed.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Mono.height=13
+font.Times\ New\ Roman.height=13
+font.Arial\ Narrow\ Special\ G2\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Matura\ MT\ Script\ Capitals.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Calisto\ MT\ Bold.height=14
+font.Bitstream\ Vera\ Sans\ Mono\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.serif.italic.widths=6, 6, 5, 6, 5, 4, 6, 6, 4, 4, 5, 4, 8, 6, 6, 6, 6, 5, 5, 4, 6, 5, 8, 5, 5, 5, 7, 7, 8, 8, 7, 7, 8, 8, 4, 5, 8, 7, 9, 8, 8, 7, 8, 7, 6, 7, 8, 7, 10, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Bauhaus\ 93.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialog.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Onyx.height=11
+font.Playbill.height=11
+font.Tahoma\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Handwriting\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tahoma.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.monospaced.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Calisto\ MT\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Kino\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.monospaced.plain.height=14
+font.Eurostile.widths=6, 6, 6, 6, 6, 4, 6, 6, 3, 3, 5, 3, 9, 6, 6, 6, 6, 5, 6, 4, 6, 5, 8, 5, 5, 5, 7, 7, 7, 8, 6, 6, 7, 8, 3, 6, 7, 6, 10, 8, 7, 7, 8, 7, 7, 6, 8, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Script\ MT\ Bold.height=13
+font.Tahoma.height=13
+font.Bookshelf\ Symbol\ 4.height=13
+font.dialog.bolditalic.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 6, 8, 6, 6, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 6, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Rockwell\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Maiandra\ GD\ Demi\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Enviro.height=13
+font.Abadi\ MT\ Condensed\ Light.height=12
+font.Centaur.height=12
+font.Tw\ Cen\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Garamond.widths=5, 6, 5, 5, 5, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 6, 5, 3, 4, 3, 6, 5, 7, 5, 5, 5, 7, 7, 7, 8, 7, 6, 7, 8, 4, 4, 7, 6, 9, 7, 8, 6, 8, 7, 5, 6, 7, 6, 9, 6, 7, 7, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Bell\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Maiandra\ GD\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Stop.height=9
+font.Andy\ Bold.height=14
+font.Palatino\ Linotype.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Symbol.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Courier\ New\ Bold.height=14
+font.Haettenschweiler.height=12
+font.Maiandra\ GD.height=13
+font.Franklin\ Gothic\ Heavy\ Italic.height=14
+font.dialoginput.bold.height=14
+font.OCR\ A\ Extended.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Verdana\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.MT\ Extra.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Italic.height=14
+font.Script\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia\ Ref.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Sans\ Typewriter\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookman\ Old\ Style\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.sansserif.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Trebuchet\ MS\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Californian\ FB\ Italic.height=14
+font.Bernard\ MT\ Condensed.height=13
+font.Arial\ Special\ G1\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Comic\ Sans\ MS.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Parade.widths=6, 7, 6, 7, 6, 4, 6, 7, 4, 4, 6, 4, 9, 7, 6, 6, 7, 5, 5, 4, 7, 7, 9, 7, 8, 6, 8, 7, 7, 8, 7, 7, 8, 8, 4, 7, 7, 6, 10, 8, 8, 7, 7, 7, 7, 7, 8, 9, 11, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookman\ Old\ Style\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Jester\ Regular.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Century\ Schoolbook.height=13
+font.Lucida\ Sans\ Typewriter\ Oblique.height=14
+font.Eurostile\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans\ Mono\ Bold.height=14
+font.Garamond\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Medium\ Cond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.dialoginput.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Ref.widths=8, 8, 6, 8, 8, 5, 8, 8, 4, 4, 8, 4, 12, 8, 8, 8, 8, 5, 7, 5, 8, 7, 8, 8, 7, 7, 8, 8, 9, 9, 7, 7, 9, 9, 6, 6, 8, 7, 10, 8, 10, 8, 10, 9, 8, 8, 9, 8, 12, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Papyrus.widths=6, 8, 6, 7, 7, 5, 6, 7, 4, 4, 6, 4, 10, 7, 7, 6, 7, 5, 5, 5, 7, 5, 6, 5, 6, 5, 11, 10, 11, 11, 11, 8, 11, 11, 4, 8, 10, 8, 11, 10, 13, 8, 12, 9, 11, 11, 11, 9, 12, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.OCRB.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Matisse\ ITC.widths=5, 5, 6, 5, 5, 5, 5, 5, 3, 5, 7, 5, 12, 8, 5, 5, 5, 5, 5, 5, 6, 9, 10, 5, 5, 5, 5, 5, 4, 5, 4, 5, 5, 5, 3, 5, 6, 5, 9, 7, 5, 6, 6, 6, 4, 6, 5, 5, 7, 7, 8, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Arial\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Special\ G2\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tempus\ Sans\ ITC.widths=5, 6, 5, 6, 6, 4, 6, 6, 4, 4, 6, 4, 10, 7, 7, 6, 6, 4, 4, 5, 7, 6, 8, 6, 6, 5, 9, 6, 7, 8, 6, 6, 8, 9, 4, 5, 8, 6, 10, 9, 9, 7, 9, 7, 5, 6, 8, 8, 11, 7, 7, 7, 8, 5, 7, 6, 7, 6, 6, 6, 6, 6, 
+font.Gill\ Sans\ MT.height=13
+font.Arial\ Narrow\ Special\ G1\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gill\ Sans\ MT\ Bold.height=14
+font.Century\ Gothic\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Onyx.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Modern\ No.\ 20.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Maiandra\ GD\ Demi\ Bold.height=14
+font.Garamond.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Georgia\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Italic.height=14
+font.Bitstream\ Vera\ Sans\ Bold\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.serif.plain.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Special\ G1\ Italic.height=14
+font.Gradl.height=11
+font.Book\ Antiqua\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Calisto\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Palatino\ Linotype\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Goudy\ Stout.height=15
+font.Algerian.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Bold\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Stop.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Engravers\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Courier\ New\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ransom.widths=6, 7, 5, 7, 5, 4, 3, 5, 5, 3, 6, 3, 6, 6, 7, 6, 5, 4, 4, 3, 6, 4, 8, 16, 4, 9, 6, 6, 8, 8, 4, 11, 7, 8, 5, 6, 8, 7, 6, 9, 6, 3, 9, 5, 7, 8, 5, 5, 11, 8, 5, 9, 8, 4, 4, 5, 4, 4, 3, 8, 10, 7, 
+font.Gill\ Sans\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Pristina.height=13
+font.Old\ English\ Text\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Courier\ New.height=12
+font.Arial\ Narrow\ Special\ G1.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Verdana\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Eras\ Medium\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Garamond\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.MS\ Outlook.height=12
+font.serif.bolditalic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Gradl.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Light\ ITC.widths=6, 7, 6, 7, 6, 4, 7, 7, 3, 3, 5, 3, 9, 7, 7, 7, 7, 4, 5, 4, 7, 6, 9, 5, 5, 5, 7, 7, 7, 8, 6, 6, 8, 8, 3, 5, 6, 6, 9, 8, 9, 6, 9, 6, 5, 6, 8, 7, 11, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Palace\ Script\ MT.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Footlight\ MT\ Light.height=10
+font.Courier\ New\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tw\ Cen\ MT\ Medium\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Brush\ Script\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Century\ Schoolbook\ Italic.height=14
+font.Times\ New\ Roman\ Special\ G1.height=16
+font.OpenSymbol.height=14
+font.Bitstream\ Vera\ Sans\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Placard\ Condensed.height=14
+font.Californian\ FB.height=13
+font.Bell\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Century\ Gothic\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Wingdings\ 2.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Britannic\ Bold.widths=5, 5, 5, 5, 5, 3, 5, 6, 3, 3, 5, 3, 8, 6, 5, 5, 5, 4, 5, 3, 6, 4, 7, 5, 5, 4, 5, 6, 6, 7, 5, 5, 6, 7, 3, 4, 6, 5, 7, 6, 6, 6, 6, 6, 5, 5, 6, 5, 8, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.dialog.italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bitstream\ Vera\ Sans.height=13
+font.Arial\ Narrow\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Palatino\ Linotype\ Bold.height=14
+font.Goudy\ Old\ Style\ Bold.height=14
+font.sansserif.italic.height=14
+font.Arial\ Black\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Perpetua\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Enviro.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Titling\ MT\ Bold.height=14
+font.Eras\ Demi\ ITC.widths=6, 6, 5, 6, 6, 3, 6, 6, 3, 3, 5, 3, 9, 6, 6, 6, 6, 4, 4, 4, 6, 5, 9, 6, 5, 5, 8, 7, 6, 8, 6, 6, 8, 8, 3, 5, 7, 5, 9, 8, 8, 6, 8, 6, 5, 6, 8, 7, 11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Arial\ Narrow.height=13
+font.Blackadder\ ITC.widths=5, 5, 4, 5, 4, 4, 5, 5, 3, 4, 5, 3, 6, 5, 4, 5, 5, 4, 4, 4, 6, 5, 6, 5, 5, 5, 9, 9, 9, 9, 9, 7, 9, 10, 6, 7, 11, 8, 13, 9, 9, 8, 11, 10, 8, 6, 11, 10, 12, 11, 9, 10, 5, 4, 4, 4, 5, 5, 5, 5, 5, 5, 
+font.Times\ New\ Roman\ Bold\ Italic.height=14
+font.monospaced.bold.widths=6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.monospaced.bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Lucida\ Sans\ Typewriter\ Bold\ Oblique.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Haettenschweiler.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.American\ Uncial.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookman\ Old\ Style\ Italic.height=14
+font.Calisto\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.sansserif.plain.height=14
+font.Comic\ Sans\ MS.height=14
+font.Bitstream\ Vera\ Serif\ Bold.height=14
+font.Arial\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tw\ Cen\ MT\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Rockwell\ Condensed\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Georgia\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bookshelf\ Symbol\ 2.widths=5, 5, 5, 7, 7, 9, 7, 7, 3, 3, 4, 3, 10, 5, 9, 9, 9, 9, 6, 4, 7, 9, 6, 4, 4, 5, 7, 9, 6, 7, 7, 9, 7, 8, 9, 9, 5, 7, 10, 7, 9, 9, 9, 4, 6, 8, 8, 9, 9, 9, 9, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
+font.serif.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Narrow\ Special\ G1\ Bold.height=14
+font.Arial\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.OCRB.height=15
+font.Lucida\ Fax\ Regular.height=14
+font.Copperplate\ Gothic\ Bold.height=12
+font.Maiandra\ GD\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Special\ G2\ Bold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Brush\ Script\ MT\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Book\ Antiqua\ Bold.height=14
+font.Pepita\ MT.height=12
+font.Eras\ Bold\ ITC.height=13
+font.Franklin\ Gothic\ Demi.height=13
+font.Courier\ New\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Tw\ Cen\ MT\ Condensed\ Bold.height=14
+font.Harlow\ Solid\ Italic\ Italic.height=14
+font.Century\ Schoolbook\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Courier\ New\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Times\ New\ Roman\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Palatino\ Linotype\ Italic.height=14
+font.Monotype\ Sorts.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Fax\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Franklin\ Gothic\ Medium\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Impact.widths=6, 6, 6, 6, 6, 4, 6, 6, 4, 4, 6, 4, 8, 6, 6, 6, 6, 5, 6, 4, 6, 6, 8, 4, 5, 5, 6, 7, 7, 7, 5, 5, 7, 7, 4, 4, 6, 5, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 5, 6, 6, 
+font.Arial\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Courier\ New.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Arial\ Narrow\ Special\ G2\ Bold.height=14
+font.Times\ New\ Roman\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Lucida\ Bright\ Demibold\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Webdings.height=10
+font.Arial\ Black.widths=8, 8, 8, 8, 8, 5, 8, 8, 4, 4, 8, 4, 11, 8, 8, 8, 8, 5, 7, 5, 8, 7, 10, 8, 7, 7, 9, 9, 9, 9, 8, 8, 9, 9, 5, 8, 9, 8, 10, 9, 9, 8, 9, 9, 8, 8, 9, 9, 11, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Lucida\ Console.widths=7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Elephant.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Stencil.widths=7, 8, 7, 7, 7, 7, 7, 9, 5, 6, 8, 6, 9, 8, 7, 7, 7, 8, 7, 7, 8, 7, 9, 7, 7, 6, 7, 8, 7, 7, 7, 7, 7, 9, 5, 6, 8, 6, 9, 8, 7, 7, 7, 8, 7, 7, 8, 7, 9, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Gill\ Sans\ MT\ Condensed.widths=4, 5, 4, 5, 4, 3, 4, 5, 3, 3, 4, 3, 6, 5, 4, 5, 5, 4, 4, 3, 5, 4, 5, 4, 4, 4, 5, 5, 4, 5, 5, 4, 5, 5, 3, 3, 5, 4, 6, 5, 5, 5, 5, 5, 4, 4, 5, 4, 7, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Georgia.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Eras\ Demi\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bookshelf\ Symbol\ 3.height=14
+font.Microsoft\ Sans\ Serif.height=13
+font.Arial\ Italic.height=14
+font.Mercurius\ Script\ MT\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.sansserif.bolditalic.height=14
+font.serif.italic.height=14
+font.Vivaldi\ Italic.height=14
+font.Pacmania.widths=9, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Lucida\ Fax\ Demibold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.ProFont.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tw\ Cen\ MT\ Condensed\ Extra\ Bold.widths=5, 5, 3, 5, 4, 3, 5, 5, 3, 3, 5, 3, 7, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 5, 4, 4, 5, 5, 4, 5, 4, 4, 6, 6, 3, 4, 5, 4, 7, 6, 6, 5, 6, 5, 4, 4, 6, 6, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Arial.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Bell\ MT\ Bold.height=14
+font.Calisto\ MT\ Bold\ Italic.height=14
+font.Times\ New\ Roman\ Special\ G1\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Beesknees\ ITC.height=13
+font.Verdana\ Bold.height=14
+font.Kristen\ ITC.widths=7, 7, 7, 7, 7, 6, 6, 7, 4, 4, 7, 4, 9, 7, 7, 7, 7, 5, 6, 6, 7, 6, 9, 7, 5, 6, 10, 8, 9, 10, 8, 7, 9, 10, 5, 7, 9, 8, 12, 10, 10, 8, 10, 8, 7, 8, 10, 8, 11, 8, 8, 10, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Palatino\ Linotype.widths=5, 6, 5, 6, 5, 4, 6, 6, 3, 3, 6, 3, 9, 6, 6, 6, 6, 4, 4, 3, 6, 5, 8, 5, 5, 5, 8, 7, 7, 8, 6, 6, 8, 8, 4, 4, 8, 6, 10, 8, 8, 7, 8, 7, 6, 8, 8, 8, 10, 7, 6, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.dialoginput.plain.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Kunstler\ Script.widths=4, 4, 3, 4, 3, 3, 4, 5, 3, 3, 4, 3, 7, 5, 3, 5, 4, 3, 3, 3, 4, 4, 6, 4, 5, 4, 9, 10, 9, 10, 8, 8, 11, 9, 7, 6, 9, 9, 9, 9, 8, 8, 8, 10, 7, 8, 9, 8, 10, 8, 8, 8, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 
+font.Lucida\ Sans\ Typewriter\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Arial\ Rounded\ MT\ Bold.height=13
+font.Arial\ Black\ Italic.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Mercurius\ Script\ MT\ Bold.widths=6, 6, 4, 6, 4, 4, 6, 5, 4, 4, 5, 4, 8, 5, 5, 6, 6, 4, 4, 4, 6, 5, 8, 6, 6, 5, 8, 8, 7, 8, 7, 7, 7, 9, 5, 7, 8, 7, 11, 9, 7, 8, 7, 8, 6, 8, 9, 7, 11, 8, 8, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Webdings.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Jester\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.sansserif.bold.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.Desdemona.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Ransom\ Italic.height=14
+font.Elephant\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Verdana\ Bold\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Tahoma\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Palatino\ Linotype\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Times\ New\ Roman\ Special\ G2\ Bold.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Garamond.height=12
+font.Gill\ Sans\ MT\ Italic.widths=7, 7, 7, 7, 7, 4, 7, 7, 4, 4, 5, 4, 10, 7, 7, 7, 7, 4, 5, 4, 7, 6, 8, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8, 4, 6, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 8, 10, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
+font.Bitstream\ Vera\ Sans\ Oblique.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Maiandra\ GD\ Italic.height=14
+font.Abadi\ MT\ Condensed\ Extra\ Bold.height=12
+font.Copperplate\ Gothic\ Light.height=12
+font.Lucida\ Bright\ Regular.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Bradley\ Hand\ ITC.widths=6, 6, 5, 6, 5, 5, 7, 6, 4, 4, 7, 4, 10, 7, 5, 6, 7, 5, 5, 4, 7, 6, 8, 6, 7, 6, 8, 8, 7, 7, 7, 6, 8, 8, 4, 4, 8, 7, 10, 9, 8, 7, 8, 8, 8, 7, 8, 7, 11, 7, 8, 10, 6, 6, 7, 7, 7, 7, 7, 7, 6, 6, 
+font.dialog.plain.height=14
+font.Arial\ Special\ G2.widths=8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
+font.Franklin\ Gothic\ Medium.height=13
+font.Arial\ Narrow\ Special\ G2.widths=10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
+font.Lucida\ Bright\ Italic.height=14
+font.Runic\ MT\ Condensed.height=12
+font.Imprint\ MT\ Shadow.widths=5, 7, 5, 7, 5, 4, 6, 7, 4, 4, 6, 4, 10, 7, 6, 7, 7, 5, 5, 4, 7, 6, 9, 6, 6, 5, 8, 8, 8, 10, 8, 8, 9, 10, 5, 5, 9, 8, 10, 9, 9, 8, 9, 9, 7, 8, 9, 8, 11, 9, 8, 8, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 
+font.monospaced.bolditalic.height=14
+font.Verdana\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua.widths=5, 6, 5, 6, 5, 3, 5, 6, 3, 3, 6, 3, 8, 6, 6, 6, 6, 4, 4, 3, 6, 5, 8, 6, 5, 5, 7, 6, 6, 7, 5, 5, 7, 8, 4, 4, 7, 5, 9, 7, 7, 5, 7, 7, 5, 6, 7, 6, 9, 7, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+font.Matura\ MT\ Script\ Capitals.height=14
+font.Parade.height=12
+font.Jester\ Regular.height=14
+font.Blackadder\ ITC.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Goudy\ Old\ Style\ Bold.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+font.Perpetua\ Italic.height=14
+font.Arial\ Narrow\ Special\ G2.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
+
+font.Something.height=13
+font.Something.characters=a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+font.Something.widths=6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
diff --git a/src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata-asGenerated.txt b/src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata-asGenerated.txt
new file mode 100644 (file)
index 0000000..60d2f1f
--- /dev/null
@@ -0,0 +1,283 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more\r
+# contributor license agreements.  See the NOTICE file distributed with\r
+# this work for additional information regarding copyright ownership.\r
+# The ASF licenses this file to You under the Apache License, Version 2.0\r
+# (the "License"); you may not use this file except in compliance with\r
+# the License.  You may obtain a copy of the License at\r
+# \r
+#     http://www.apache.org/licenses/LICENSE-2.0\r
+# \r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+# Created by (org.apache.poi.hssf.record.formula.function.ExcelFileFormatDocFunctionExtractor)\r
+# from source file 'excelfileformat.odt' (size=355750, crc=0x2FAEA65A)\r
+#\r
+#Columns: (index, name, minParams, maxParams, returnClass, paramClasses, isVolatile, hasFootnote )\r
+\r
+# Built-In Sheet Functions in BIFF2\r
+0      COUNT   0       30      V       R               \r
+1      IF      2       3       R       V R R           \r
+2      ISNA    1       1       V       V               \r
+3      ISERROR 1       1       V       V               \r
+4      SUM     0       30      V       R               \r
+5      AVERAGE 1       30      V       R               \r
+6      MIN     1       30      V       R               \r
+7      MAX     1       30      V       R               \r
+8      ROW     0       1       V       R               \r
+9      COLUMN  0       1       V       R               \r
+10     NA      0       0       V       \96               \r
+11     NPV     2       30      V       V R             \r
+12     STDEV   1       30      V       R               \r
+13     DOLLAR  1       2       V       V V             \r
+14     FIXED   2       2       V       V V             x\r
+15     SIN     1       1       V       V               \r
+16     COS     1       1       V       V               \r
+17     TAN     1       1       V       V               \r
+18     ARCTAN  1       1       V       V               \r
+19     PI      0       0       V       \96               \r
+20     SQRT    1       1       V       V               \r
+21     EXP     1       1       V       V               \r
+22     LN      1       1       V       V               \r
+23     LOG10   1       1       V       V               \r
+24     ABS     1       1       V       V               \r
+25     INT     1       1       V       V               \r
+26     SIGN    1       1       V       V               \r
+27     ROUND   2       2       V       V V             \r
+28     LOOKUP  2       3       V       V R R           \r
+29     INDEX   2       4       R       R V V V         \r
+30     REPT    2       2       V       V V             \r
+31     MID     3       3       V       V V V           \r
+32     LEN     1       1       V       V               \r
+33     VALUE   1       1       V       V               \r
+34     TRUE    0       0       V       \96               \r
+35     FALSE   0       0       V       \96               \r
+36     AND     1       30      V       R               \r
+37     OR      1       30      V       R               \r
+38     NOT     1       1       V       V               \r
+39     MOD     2       2       V       V V             \r
+40     DCOUNT  3       3       V       R R R           \r
+41     DSUM    3       3       V       R R R           \r
+42     DAVERAGE        3       3       V       R R R           \r
+43     DMIN    3       3       V       R R R           \r
+44     DMAX    3       3       V       R R R           \r
+45     DSTDEV  3       3       V       R R R           \r
+46     VAR     1       30      V       R               \r
+47     DVAR    3       3       V       R R R           \r
+48     TEXT    2       2       V       V V             \r
+49     LINEST  1       2       A       R R             x\r
+50     TREND   1       3       A       R R R           x\r
+51     LOGEST  1       2       A       R R             x\r
+52     GROWTH  1       3       A       R R R           x\r
+56     PV      3       5       V       V V V V V               \r
+# Built-In Sheet Functions in BIFF2\r
+57     FV      3       5       V       V V V V V               \r
+58     NPER    3       5       V       V V V V V               \r
+59     PMT     3       5       V       V V V V V               \r
+60     RATE    3       6       V       V V V V V V             \r
+61     MIRR    3       3       V       R V V           \r
+62     IRR     1       2       V       R V             \r
+63     RAND    0       0       V       \96       x       \r
+64     MATCH   2       3       V       V R R           \r
+65     DATE    3       3       V       V V V           \r
+66     TIME    3       3       V       V V V           \r
+67     DAY     1       1       V       V               \r
+68     MONTH   1       1       V       V               \r
+69     YEAR    1       1       V       V               \r
+70     WEEKDAY 1       1       V       V               x\r
+71     HOUR    1       1       V       V               \r
+72     MINUTE  1       1       V       V               \r
+73     SECOND  1       1       V       V               \r
+74     NOW     0       0       V       \96       x       \r
+75     AREAS   1       1       V       R               \r
+76     ROWS    1       1       V       R               \r
+77     COLUMNS 1       1       V       R               \r
+78     OFFSET  3       5       R       R V V V V       x       \r
+82     SEARCH  2       3       V       V V V           \r
+83     TRANSPOSE       1       1       A       A               \r
+86     TYPE    1       1       V       V               \r
+97     ATAN2   2       2       V       V V             \r
+98     ASIN    1       1       V       V               \r
+99     ACOS    1       1       V       V               \r
+100    CHOOSE  2       30      R       V R             \r
+101    HLOOKUP 3       3       V       V R R           x\r
+102    VLOOKUP 3       3       V       V R R           x\r
+105    ISREF   1       1       V       R               \r
+109    LOG     1       2       V       V V             \r
+111    CHAR    1       1       V       V               \r
+112    LOWER   1       1       V       V               \r
+113    UPPER   1       1       V       V               \r
+114    PROPER  1       1       V       V               \r
+115    LEFT    1       2       V       V V             \r
+116    RIGHT   1       2       V       V V             \r
+117    EXACT   2       2       V       V V             \r
+118    TRIM    1       1       V       V               \r
+119    REPLACE 4       4       V       V V V V         \r
+120    SUBSTITUTE      3       4       V       V V V V         \r
+121    CODE    1       1       V       V               \r
+124    FIND    2       3       V       V V V           \r
+125    CELL    1       2       V       V R     x       \r
+126    ISERR   1       1       V       V               \r
+127    ISTEXT  1       1       V       V               \r
+128    ISNUMBER        1       1       V       V               \r
+129    ISBLANK 1       1       V       V               \r
+130    T       1       1       V       R               \r
+131    N       1       1       V       R               \r
+140    DATEVALUE       1       1       V       V               \r
+141    TIMEVALUE       1       1       V       V               \r
+142    SLN     3       3       V       V V V           \r
+143    SYD     4       4       V       V V V V         \r
+144    DDB     4       5       V       V V V V V               \r
+148    INDIRECT        1       2       R       V V     x       \r
+162    CLEAN   1       1       V       V               \r
+163    MDETERM 1       1       V       A               \r
+164    MINVERSE        1       1       A       A               \r
+165    MMULT   2       2       A       A A             \r
+167    IPMT    4       6       V       V V V V V V             \r
+168    PPMT    4       6       V       V V V V V V             \r
+169    COUNTA  0       30      V       R               \r
+183    PRODUCT 0       30      V       R               \r
+184    FACT    1       1       V       V               \r
+191    DPRODUCT        3       3       V       R R R           \r
+192    ISNONTEXT       1       1       V       V               \r
+193    STDEVP  1       30      V       R               \r
+194    VARP    1       30      V       R               \r
+195    DSTDEVP 3       3       V       R R R           \r
+196    DVARP   3       3       V       R R R           \r
+197    TRUNC   1       1       V       V               x\r
+198    ISLOGICAL       1       1       V       V               \r
+199    DCOUNTA 3       3       V       R R R           \r
+# New Built-In Sheet Functions in BIFF3\r
+49     LINEST  1       4       A       R R V V         x\r
+50     TREND   1       4       A       R R R V         x\r
+51     LOGEST  1       4       A       R R V V         x\r
+52     GROWTH  1       4       A       R R R V         x\r
+197    TRUNC   1       2       V       V V             x\r
+204    YEN     1       2       V       V V             x\r
+205    FINDB   2       3       V       V V V           \r
+206    SEARCHB 2       3       V       V V V           \r
+207    REPLACEB        4       4       V       V V V V         \r
+208    LEFTB   1       2       V       V V             \r
+209    RIGHTB  1       2       V       V V             \r
+210    MIDB    3       3       V       V V V           \r
+211    LENB    1       1       V       V               \r
+212    ROUNDUP 2       2       V       V V             \r
+213    ROUNDDOWN       2       2       V       V V             \r
+214    ASC     1       1       V       V               \r
+215    JIS     1       1       V       V               x\r
+219    ADDRESS 2       5       V       V V V V V               \r
+220    DAYS360 2       2       V       V V             x\r
+221    TODAY   0       0       V       \96       x       \r
+222    VDB     5       7       V       V V V V V V V           \r
+227    MEDIAN  1       30      V       R \85             \r
+228    SUMPRODUCT      1       30      V       A \85             \r
+229    SINH    1       1       V       V               \r
+230    COSH    1       1       V       V               \r
+231    TANH    1       1       V       V               \r
+232    ASINH   1       1       V       V               \r
+233    ACOSH   1       1       V       V               \r
+234    ATANH   1       1       V       V               \r
+235    DGET    3       3       V       R R R           \r
+244    INFO    1       1       V       V               \r
+# New Built-In Sheet Functions in BIFF4\r
+14     FIXED   2       3       V       V V V           x\r
+216    RANK    2       3       V       V R V           \r
+247    DB      4       5       V       V V V V V               \r
+252    FREQUENCY       2       2       A       R R             \r
+261    ERROR.TYPE      1       1       V       V               \r
+269    AVEDEV  1       30      V       R \85             \r
+270    BETADIST        3       5       V       V V V V V               \r
+271    GAMMALN 1       1       V       V               \r
+272    BETAINV 3       5       V       V V V V V               \r
+273    BINOMDIST       4       4       V       V V V V         \r
+274    CHIDIST 2       2       V       V V             \r
+275    CHIINV  2       2       V       V V             \r
+276    COMBIN  2       2       V       V V             \r
+277    CONFIDENCE      3       3       V       V V V           \r
+278    CRITBINOM       3       3       V       V V V           \r
+279    EVEN    1       1       V       V               \r
+280    EXPONDIST       3       3       V       V V V           \r
+281    FDIST   3       3       V       V V V           \r
+282    FINV    3       3       V       V V V           \r
+283    FISHER  1       1       V       V               \r
+284    FISHERINV       1       1       V       V               \r
+285    FLOOR   2       2       V       V V             \r
+286    GAMMADIST       4       4       V       V V V V         \r
+287    GAMMAINV        3       3       V       V V V           \r
+288    CEILING 2       2       V       V V             \r
+289    HYPGEOMDIST     4       4       V       V V V V         \r
+290    LOGNORMDIST     3       3       V       V V V           \r
+291    LOGINV  3       3       V       V V V           \r
+292    NEGBINOMDIST    3       3       V       V V V           \r
+293    NORMDIST        4       4       V       V V V V         \r
+294    NORMSDIST       1       1       V       V               \r
+295    NORMINV 3       3       V       V V V           \r
+296    NORMSINV        1       1       V       V               \r
+297    STANDARDIZE     3       3       V       V V V           \r
+298    ODD     1       1       V       V               \r
+299    PERMUT  2       2       V       V V             \r
+300    POISSON 3       3       V       V V V           \r
+301    TDIST   3       3       V       V V V           \r
+302    WEIBULL 4       4       V       V V V V         \r
+303    SUMXMY2 2       2       V       A A             \r
+304    SUMX2MY2        2       2       V       A A             \r
+305    SUMX2PY2        2       2       V       A A             \r
+306    CHITEST 2       2       V       A A             \r
+307    CORREL  2       2       V       A A             \r
+308    COVAR   2       2       V       A A             \r
+309    FORECAST        3       3       V       V A A           \r
+310    FTEST   2       2       V       A A             \r
+311    INTERCEPT       2       2       V       A A             \r
+312    PEARSON 2       2       V       A A             \r
+313    RSQ     2       2       V       A A             \r
+314    STEYX   2       2       V       A A             \r
+315    SLOPE   2       2       V       A A             \r
+316    TTEST   4       4       V       A A V V         \r
+317    PROB    3       4       V       A A V V         \r
+318    DEVSQ   1       30      V       R \85             \r
+319    GEOMEAN 1       30      V       R \85             \r
+320    HARMEAN 1       30      V       R \85             \r
+321    SUMSQ   0       30      V       R \85             \r
+322    KURT    1       30      V       R \85             \r
+323    SKEW    1       30      V       R \85             \r
+324    ZTEST   2       3       V       R V V           \r
+325    LARGE   2       2       V       R V             \r
+326    SMALL   2       2       V       R V             \r
+327    QUARTILE        2       2       V       R V             \r
+328    PERCENTILE      2       2       V       R V             \r
+329    PERCENTRANK     2       3       V       R V V           \r
+330    MODE    1       30      V       A               \r
+331    TRIMMEAN        2       2       V       R V             \r
+332    TINV    2       2       V       V V             \r
+# New Built-In Sheet Functions in BIFF5\r
+70     WEEKDAY 1       2       V       V V             x\r
+101    HLOOKUP 3       4       V       V R R V         x\r
+102    VLOOKUP 3       4       V       V R R V         x\r
+220    DAYS360 2       3       V       V V V           x\r
+336    CONCATENATE     0       30      V       V               \r
+337    POWER   2       2       V       V V             \r
+342    RADIANS 1       1       V       V               \r
+343    DEGREES 1       1       V       V               \r
+344    SUBTOTAL        2       30      V       V R             \r
+345    SUMIF   2       3       V       R V R           \r
+346    COUNTIF 2       2       V       R V             \r
+347    COUNTBLANK      1       1       V       R               \r
+350    ISPMT   4       4       V       V V V V         \r
+351    DATEDIF 3       3       V       V V V           \r
+352    DATESTRING      1       1       V       V               \r
+353    NUMBERSTRING    2       2       V       V V             \r
+354    ROMAN   1       2       V       V V             \r
+# New Built-In Sheet Functions in BIFF8\r
+358    GETPIVOTDATA    2       30                              \r
+359    HYPERLINK       1       2       V       V V             \r
+360    PHONETIC        1       1       V       R               \r
+361    AVERAGEA        1       30      V       R \85             \r
+362    MAXA    1       30      V       R \85             \r
+363    MINA    1       30      V       R \85             \r
+364    STDEVPA 1       30      V       R \85             \r
+365    VARPA   1       30      V       R \85             \r
+366    STDEVA  1       30      V       R \85             \r
+367    VARA    1       30      V       R \85             \r
diff --git a/src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata.txt b/src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata.txt
new file mode 100644 (file)
index 0000000..237fbf0
--- /dev/null
@@ -0,0 +1,287 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more\r
+# contributor license agreements.  See the NOTICE file distributed with\r
+# this work for additional information regarding copyright ownership.\r
+# The ASF licenses this file to You under the Apache License, Version 2.0\r
+# (the "License"); you may not use this file except in compliance with\r
+# the License.  You may obtain a copy of the License at\r
+# \r
+#     http://www.apache.org/licenses/LICENSE-2.0\r
+# \r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+# Created by (org.apache.poi.hssf.record.formula.function.ExcelFileFormatDocFunctionExtractor)\r
+# from source file 'excelfileformat.odt' (size=355750, crc=0x2FAEA65A)\r
+#\r
+#Columns: (index, name, minParams, maxParams, returnClass, paramClasses, isVolatile, hasFootnote )\r
+#\r
+# + some manual edits !\r
+\r
+# Built-In Sheet Functions in BIFF2\r
+0      COUNT   0       30      V       R               \r
+1      IF      2       3       R       V R R           \r
+2      ISNA    1       1       V       V               \r
+3      ISERROR 1       1       V       V               \r
+4      SUM     0       30      V       R               \r
+5      AVERAGE 1       30      V       R               \r
+6      MIN     1       30      V       R               \r
+7      MAX     1       30      V       R               \r
+8      ROW     0       1       V       R               \r
+9      COLUMN  0       1       V       R               \r
+10     NA      0       0       V       \96               \r
+11     NPV     2       30      V       V R             \r
+12     STDEV   1       30      V       R               \r
+13     DOLLAR  1       2       V       V V             \r
+14     FIXED   2       2       V       V V             x\r
+15     SIN     1       1       V       V               \r
+16     COS     1       1       V       V               \r
+17     TAN     1       1       V       V               \r
+18     ATAN    1       1       V       V               \r
+19     PI      0       0       V       \96               \r
+20     SQRT    1       1       V       V               \r
+21     EXP     1       1       V       V               \r
+22     LN      1       1       V       V               \r
+23     LOG10   1       1       V       V               \r
+24     ABS     1       1       V       V               \r
+25     INT     1       1       V       V               \r
+26     SIGN    1       1       V       V               \r
+27     ROUND   2       2       V       V V             \r
+28     LOOKUP  2       3       V       V R R           \r
+29     INDEX   2       4       R       R V V V         \r
+30     REPT    2       2       V       V V             \r
+31     MID     3       3       V       V V V           \r
+32     LEN     1       1       V       V               \r
+33     VALUE   1       1       V       V               \r
+34     TRUE    0       0       V       \96               \r
+35     FALSE   0       0       V       \96               \r
+36     AND     1       30      V       R               \r
+37     OR      1       30      V       R               \r
+38     NOT     1       1       V       V               \r
+39     MOD     2       2       V       V V             \r
+40     DCOUNT  3       3       V       R R R           \r
+41     DSUM    3       3       V       R R R           \r
+42     DAVERAGE        3       3       V       R R R           \r
+43     DMIN    3       3       V       R R R           \r
+44     DMAX    3       3       V       R R R           \r
+45     DSTDEV  3       3       V       R R R           \r
+46     VAR     1       30      V       R               \r
+47     DVAR    3       3       V       R R R           \r
+48     TEXT    2       2       V       V V             \r
+49     LINEST  1       2       A       R R             x\r
+50     TREND   1       3       A       R R R           x\r
+51     LOGEST  1       2       A       R R             x\r
+52     GROWTH  1       3       A       R R R           x\r
+56     PV      3       5       V       V V V V V               \r
+# Built-In Sheet Functions in BIFF2\r
+57     FV      3       5       V       V V V V V               \r
+58     NPER    3       5       V       V V V V V               \r
+59     PMT     3       5       V       V V V V V               \r
+60     RATE    3       6       V       V V V V V V             \r
+61     MIRR    3       3       V       R V V           \r
+62     IRR     1       2       V       R V             \r
+63     RAND    0       0       V       \96       x       \r
+64     MATCH   2       3       V       V R R           \r
+65     DATE    3       3       V       V V V           \r
+66     TIME    3       3       V       V V V           \r
+67     DAY     1       1       V       V               \r
+68     MONTH   1       1       V       V               \r
+69     YEAR    1       1       V       V               \r
+70     WEEKDAY 1       1       V       V               x\r
+71     HOUR    1       1       V       V               \r
+72     MINUTE  1       1       V       V               \r
+73     SECOND  1       1       V       V               \r
+74     NOW     0       0       V       \96       x       \r
+75     AREAS   1       1       V       R               \r
+76     ROWS    1       1       V       R               \r
+77     COLUMNS 1       1       V       R               \r
+78     OFFSET  3       5       R       R V V V V       x       \r
+82     SEARCH  2       3       V       V V V           \r
+83     TRANSPOSE       1       1       A       A               \r
+86     TYPE    1       1       V       V               \r
+97     ATAN2   2       2       V       V V             \r
+98     ASIN    1       1       V       V               \r
+99     ACOS    1       1       V       V               \r
+100    CHOOSE  2       30      R       V R             \r
+101    HLOOKUP 3       3       V       V R R           x\r
+102    VLOOKUP 3       3       V       V R R           x\r
+105    ISREF   1       1       V       R               \r
+109    LOG     1       2       V       V V             \r
+111    CHAR    1       1       V       V               \r
+112    LOWER   1       1       V       V               \r
+113    UPPER   1       1       V       V               \r
+114    PROPER  1       1       V       V               \r
+115    LEFT    1       2       V       V V             \r
+116    RIGHT   1       2       V       V V             \r
+117    EXACT   2       2       V       V V             \r
+118    TRIM    1       1       V       V               \r
+119    REPLACE 4       4       V       V V V V         \r
+120    SUBSTITUTE      3       4       V       V V V V         \r
+121    CODE    1       1       V       V               \r
+124    FIND    2       3       V       V V V           \r
+125    CELL    1       2       V       V R     x       \r
+126    ISERR   1       1       V       V               \r
+127    ISTEXT  1       1       V       V               \r
+128    ISNUMBER        1       1       V       V               \r
+129    ISBLANK 1       1       V       V               \r
+130    T       1       1       V       R               \r
+131    N       1       1       V       R               \r
+140    DATEVALUE       1       1       V       V               \r
+141    TIMEVALUE       1       1       V       V               \r
+142    SLN     3       3       V       V V V           \r
+143    SYD     4       4       V       V V V V         \r
+144    DDB     4       5       V       V V V V V               \r
+148    INDIRECT        1       2       R       V V     x       \r
+162    CLEAN   1       1       V       V               \r
+163    MDETERM 1       1       V       A               \r
+164    MINVERSE        1       1       A       A               \r
+165    MMULT   2       2       A       A A             \r
+167    IPMT    4       6       V       V V V V V V             \r
+168    PPMT    4       6       V       V V V V V V             \r
+169    COUNTA  0       30      V       R               \r
+183    PRODUCT 0       30      V       R               \r
+184    FACT    1       1       V       V               \r
+190    ISNONTEXT       1       1       V       V               \r
+191    DPRODUCT        3       3       V       R R R           \r
+193    STDEVP  1       30      V       R               \r
+194    VARP    1       30      V       R               \r
+195    DSTDEVP 3       3       V       R R R           \r
+196    DVARP   3       3       V       R R R           \r
+197    TRUNC   1       1       V       V               x\r
+198    ISLOGICAL       1       1       V       V               \r
+199    DCOUNTA 3       3       V       R R R           \r
+# New Built-In Sheet Functions in BIFF3\r
+49     LINEST  1       4       A       R R V V         x\r
+50     TREND   1       4       A       R R R V         x\r
+51     LOGEST  1       4       A       R R V V         x\r
+52     GROWTH  1       4       A       R R R V         x\r
+197    TRUNC   1       2       V       V V             x\r
+204    YEN     1       2       V       V V             x\r
+205    FINDB   2       3       V       V V V           \r
+206    SEARCHB 2       3       V       V V V           \r
+207    REPLACEB        4       4       V       V V V V         \r
+208    LEFTB   1       2       V       V V             \r
+209    RIGHTB  1       2       V       V V             \r
+210    MIDB    3       3       V       V V V           \r
+211    LENB    1       1       V       V               \r
+212    ROUNDUP 2       2       V       V V             \r
+213    ROUNDDOWN       2       2       V       V V             \r
+214    ASC     1       1       V       V               \r
+215    JIS     1       1       V       V               x\r
+219    ADDRESS 2       5       V       V V V V V               \r
+220    DAYS360 2       2       V       V V             x\r
+221    TODAY   0       0       V       \96       x       \r
+222    VDB     5       7       V       V V V V V V V           \r
+227    MEDIAN  1       30      V       R \85             \r
+228    SUMPRODUCT      1       30      V       A \85             \r
+229    SINH    1       1       V       V               \r
+230    COSH    1       1       V       V               \r
+231    TANH    1       1       V       V               \r
+232    ASINH   1       1       V       V               \r
+233    ACOSH   1       1       V       V               \r
+234    ATANH   1       1       V       V               \r
+235    DGET    3       3       V       R R R           \r
+244    INFO    1       1       V       V               \r
+# New Built-In Sheet Functions in BIFF4\r
+14     FIXED   2       3       V       V V V           x\r
+204    USDOLLAR        1       1       V       V               x\r
+215    DBCS    1       1       V       V               x\r
+216    RANK    2       3       V       V R V           \r
+247    DB      4       5       V       V V V V V               \r
+252    FREQUENCY       2       2       A       R R             \r
+261    ERROR.TYPE      1       1       V       V               \r
+269    AVEDEV  1       30      V       R \85             \r
+270    BETADIST        3       5       V       V V V V V               \r
+271    GAMMALN 1       1       V       V               \r
+272    BETAINV 3       5       V       V V V V V               \r
+273    BINOMDIST       4       4       V       V V V V         \r
+274    CHIDIST 2       2       V       V V             \r
+275    CHIINV  2       2       V       V V             \r
+276    COMBIN  2       2       V       V V             \r
+277    CONFIDENCE      3       3       V       V V V           \r
+278    CRITBINOM       3       3       V       V V V           \r
+279    EVEN    1       1       V       V               \r
+280    EXPONDIST       3       3       V       V V V           \r
+281    FDIST   3       3       V       V V V           \r
+282    FINV    3       3       V       V V V           \r
+283    FISHER  1       1       V       V               \r
+284    FISHERINV       1       1       V       V               \r
+285    FLOOR   2       2       V       V V             \r
+286    GAMMADIST       4       4       V       V V V V         \r
+287    GAMMAINV        3       3       V       V V V           \r
+288    CEILING 2       2       V       V V             \r
+289    HYPGEOMDIST     4       4       V       V V V V         \r
+290    LOGNORMDIST     3       3       V       V V V           \r
+291    LOGINV  3       3       V       V V V           \r
+292    NEGBINOMDIST    3       3       V       V V V           \r
+293    NORMDIST        4       4       V       V V V V         \r
+294    NORMSDIST       1       1       V       V               \r
+295    NORMINV 3       3       V       V V V           \r
+296    NORMSINV        1       1       V       V               \r
+297    STANDARDIZE     3       3       V       V V V           \r
+298    ODD     1       1       V       V               \r
+299    PERMUT  2       2       V       V V             \r
+300    POISSON 3       3       V       V V V           \r
+301    TDIST   3       3       V       V V V           \r
+302    WEIBULL 4       4       V       V V V V         \r
+303    SUMXMY2 2       2       V       A A             \r
+304    SUMX2MY2        2       2       V       A A             \r
+305    SUMX2PY2        2       2       V       A A             \r
+306    CHITEST 2       2       V       A A             \r
+307    CORREL  2       2       V       A A             \r
+308    COVAR   2       2       V       A A             \r
+309    FORECAST        3       3       V       V A A           \r
+310    FTEST   2       2       V       A A             \r
+311    INTERCEPT       2       2       V       A A             \r
+312    PEARSON 2       2       V       A A             \r
+313    RSQ     2       2       V       A A             \r
+314    STEYX   2       2       V       A A             \r
+315    SLOPE   2       2       V       A A             \r
+316    TTEST   4       4       V       A A V V         \r
+317    PROB    3       4       V       A A V V         \r
+318    DEVSQ   1       30      V       R \85             \r
+319    GEOMEAN 1       30      V       R \85             \r
+320    HARMEAN 1       30      V       R \85             \r
+321    SUMSQ   0       30      V       R \85             \r
+322    KURT    1       30      V       R \85             \r
+323    SKEW    1       30      V       R \85             \r
+324    ZTEST   2       3       V       R V V           \r
+325    LARGE   2       2       V       R V             \r
+326    SMALL   2       2       V       R V             \r
+327    QUARTILE        2       2       V       R V             \r
+328    PERCENTILE      2       2       V       R V             \r
+329    PERCENTRANK     2       3       V       R V V           \r
+330    MODE    1       30      V       A               \r
+331    TRIMMEAN        2       2       V       R V             \r
+332    TINV    2       2       V       V V             \r
+# New Built-In Sheet Functions in BIFF5\r
+70     WEEKDAY 1       2       V       V V             x\r
+101    HLOOKUP 3       4       V       V R R V         x\r
+102    VLOOKUP 3       4       V       V R R V         x\r
+220    DAYS360 2       3       V       V V V           x\r
+336    CONCATENATE     0       30      V       V               \r
+337    POWER   2       2       V       V V             \r
+342    RADIANS 1       1       V       V               \r
+343    DEGREES 1       1       V       V               \r
+344    SUBTOTAL        2       30      V       V R             \r
+345    SUMIF   2       3       V       R V R           \r
+346    COUNTIF 2       2       V       R V             \r
+347    COUNTBLANK      1       1       V       R               \r
+350    ISPMT   4       4       V       V V V V         \r
+351    DATEDIF 3       3       V       V V V           \r
+352    DATESTRING      1       1       V       V               \r
+353    NUMBERSTRING    2       2       V       V V             \r
+354    ROMAN   1       2       V       V V             \r
+# New Built-In Sheet Functions in BIFF8\r
+358    GETPIVOTDATA    2       30                              \r
+359    HYPERLINK       1       2       V       V V             \r
+360    PHONETIC        1       1       V       R               \r
+361    AVERAGEA        1       30      V       R \85             \r
+362    MAXA    1       30      V       R \85             \r
+363    MINA    1       30      V       R \85             \r
+364    STDEVPA 1       30      V       R \85             \r
+365    VARPA   1       30      V       R \85             \r
+366    STDEVA  1       30      V       R \85             \r
+367    VARA    1       30      V       R \85             \r
index 0ea6a7f10777a6b7ffc4ca7d6639eb41f18f6cb9..58628053c0ba19645d907d0c3cddd5bbda20263a 100644 (file)
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on May 15, 2005
- *
- */
 package org.apache.poi.hssf.record.formula.functions;
 
 import org.apache.poi.hssf.record.formula.eval.BoolEval;
 import org.apache.poi.hssf.record.formula.eval.ErrorEval;
 import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.EvaluationException;
 import org.apache.poi.hssf.record.formula.eval.NumberEval;
 import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
 import org.apache.poi.hssf.record.formula.eval.ValueEval;
 
-public class Pmt extends FinanceFunction {
+/**
+ * Implementation for the PMT() Excel function.<p/>
+ * 
+ * <b>Syntax:</b><br/>
+ * <b>PMT</b>(<b>rate</b>, <b>nper</b>, <b>pv</b>, fv, type)<p/>
+ * 
+ * Returns the constant repayment amount required for a loan assuming a constant interest rate.<p/>
+ * 
+ * <b>rate</b> the loan interest rate.<br/>
+ * <b>nper</b> the number of loan repayments.<br/>
+ * <b>pv</b> the present value of the future payments (or principle).<br/>
+ * <b>fv</b> the future value (default zero) surplus cash at the end of the loan lifetime.<br/>
+ * <b>type</b> whether payments are due at the beginning(1) or end(0 - default) of each payment period.<br/>
+ * 
+ */
+public final class Pmt extends FinanceFunction {
+
+       public Eval evaluate(Eval[] args, int srcRow, short srcCol) {
+               
+               if(args.length < 3 || args.length > 5) {
+                       return ErrorEval.VALUE_INVALID;
+               }
+               
+               try {
+                       // evaluate first three (always present) args
+                       double rate = evalArg(args[0], srcRow, srcCol);
+                       double nper = evalArg(args[1], srcRow, srcCol);
+                       double pv  = evalArg(args[2], srcRow, srcCol); 
+                       double fv = 0;
+                       boolean arePaymentsAtPeriodBeginning = false;
+                       
+                       switch (args.length) {
+                               case 5:
+                                       ValueEval ve = singleOperandNumericAsBoolean(args[4], srcRow, srcCol);
+                                       if (ve instanceof ErrorEval) { 
+                                               return ve;
+                                       }
+                                       arePaymentsAtPeriodBeginning = ((BoolEval) ve).getBooleanValue();
+                               case 4:
+                                       fv = evalArg(args[3], srcRow, srcCol);
+                       }
+                       double d = FinanceLib.pmt(rate, nper, pv, fv, arePaymentsAtPeriodBeginning);
+                       if (Double.isNaN(d)) {
+                               return (ValueEval) ErrorEval.VALUE_INVALID;
+                       }
+                       if (Double.isInfinite(d)) {
+                               return (ValueEval) ErrorEval.NUM_ERROR;
+                       }
+                       return new NumberEval(d);
+               } catch (EvaluationException e) {
+                       return e.getErrorEval();
+               }
+       }
 
-    public Eval evaluate(Eval[] operands, int srcRow, short srcCol) {
-        double rate = 0, fv = 0, nper = 0, pv = 0, d = 0;
-        boolean type = false;
-        ValueEval retval = null;
-        ValueEval ve = null;
-        
-        switch (operands.length) {
-        default:
-            retval = ErrorEval.VALUE_INVALID;
-            break;
-        case 5:
-            ve = singleOperandNumericAsBoolean(operands[4], srcRow, srcCol);
-            if (ve instanceof ErrorEval) { retval = ErrorEval.VALUE_INVALID; break; }
-            type = ((BoolEval) ve).getBooleanValue();
-        case 4:
-            ve = singleOperandEvaluate(operands[0], srcRow, srcCol);
-            if (ve instanceof NumericValueEval) rate = ((NumericValueEval) ve).getNumberValue();
-            else { retval = ErrorEval.VALUE_INVALID; break; }
-            
-            ve = singleOperandEvaluate(operands[1], srcRow, srcCol);
-            if (ve instanceof NumericValueEval) nper  = ((NumericValueEval) ve).getNumberValue();
-            else { retval = ErrorEval.VALUE_INVALID; break; }
-            
-            ve = singleOperandEvaluate(operands[2], srcRow, srcCol);
-            if (ve instanceof NumericValueEval) pv   = ((NumericValueEval) ve).getNumberValue();
-            else { retval = ErrorEval.VALUE_INVALID; break; }
-            
-            ve = singleOperandEvaluate(operands[3], srcRow, srcCol);
-            if (ve instanceof NumericValueEval) fv = ((NumericValueEval) ve).getNumberValue();
-            else { retval = ErrorEval.VALUE_INVALID; break; }
-        }
-        
-        if (retval == null) {
-            d = FinanceLib.pmt(rate, nper, pv, fv, type);
-            retval = (Double.isNaN(d))
-                    ? (ValueEval) ErrorEval.VALUE_INVALID
-                    : (Double.isInfinite(d)) 
-                        ? (ValueEval) ErrorEval.NUM_ERROR 
-                        : new NumberEval(d);
-        }
-        return retval;
-    }
+       private double evalArg(Eval arg, int srcRow, short srcCol) throws EvaluationException {
+               ValueEval ve = singleOperandEvaluate(arg, srcRow, srcCol);
+               if(ve instanceof ErrorEval) {
+                       throw new EvaluationException((ErrorEval) ve);
+               }
+               if (ve instanceof NumericValueEval) {
+                       return ((NumericValueEval) ve).getNumberValue();
+               }
+               throw new EvaluationException(ErrorEval.VALUE_INVALID); 
+       }
 }
index 3dbff81ca038f663d543f3f76d4d92477aac5364..557060aa50bb8f511970ef2be8b7f86b047c67b6 100644 (file)
@@ -190,7 +190,7 @@ public class HWPFDocument extends POIDocument
     }
     
     // read in the pictures stream
-    _pictures = new PicturesTable(_dataStream);
+    _pictures = new PicturesTable(this, _dataStream);
 
     // get the start of text in the main stream
     int fcMin = _fib.getFcMin();
index 1ff84996cbf4a925c4d14bf9ce6d1c1d331f49fe..d9598b1061cefad7b934deaf5fe0cff0c1b8a0b3 100644 (file)
 package org.apache.poi.hwpf.model;
 
 import org.apache.poi.util.LittleEndian;
+import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.usermodel.CharacterRun;
 import org.apache.poi.hwpf.usermodel.Picture;
+import org.apache.poi.hwpf.usermodel.Range;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -53,6 +55,7 @@ public class PicturesTable
   static final int BLOCK_TYPE_OFFSET = 0xE;
   static final int MM_MODE_TYPE_OFFSET = 0x6;
 
+  private HWPFDocument _document;
   private byte[] _dataStream;
 
   /** @link dependency
@@ -61,10 +64,12 @@ public class PicturesTable
 
   /**
    *
+   * @param document 
    * @param _dataStream
    */
-  public PicturesTable(byte[] _dataStream)
+  public PicturesTable(HWPFDocument _document, byte[] _dataStream)
   {
+       this._document = _document;
     this._dataStream = _dataStream;
   }
 
@@ -119,24 +124,25 @@ public class PicturesTable
   }
 
   /**
+   * Not all documents have all the images concatenated in the data stream
+   * although MS claims so. The best approach is to scan all character runs.
+   *  
    * @return a list of Picture objects found in current document
    */
   public List getAllPictures() {
     ArrayList pictures = new ArrayList();
-    
-    int pos = 0;
-    boolean atEnd = false;
-    
-    while(pos<_dataStream.length && !atEnd) {
-      if (isBlockContainsImage(pos)) {
-        pictures.add(new Picture(pos, _dataStream, false));
-      }
-      
-      int skipOn = LittleEndian.getInt(_dataStream, pos);
-      if(skipOn <= 0) { atEnd = true; }
-      pos += skipOn;
-    }
-    
+       
+    Range range = _document.getRange();
+    for (int i = 0; i < range.numCharacterRuns(); i++) {
+       CharacterRun run = range.getCharacterRun(i);
+       String text = run.text();
+       int j = text.charAt(0);
+       Picture picture = extractPicture(run, false);
+       if (picture != null) {
+               pictures.add(picture);
+       }
+       }
+
     return pictures;
   }
 
index d3e9c4c41220d85e8c25749ef1a353c253260ace..66d2a1d27050567ed87b50b461eee29ecee96b44 100755 (executable)
@@ -14,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record.formula.functions;
 
@@ -41,6 +40,7 @@ public final class AllIndividualFunctionEvaluationTests {
                result.addTestSuite(TestMid.class);
                result.addTestSuite(TestMathX.class);
                result.addTestSuite(TestMatch.class);
+               result.addTestSuite(TestPmt.class);
                result.addTestSuite(TestOffset.class);
                result.addTestSuite(TestRowCol.class);
                result.addTestSuite(TestSumproduct.class);
@@ -50,5 +50,4 @@ public final class AllIndividualFunctionEvaluationTests {
                result.addTestSuite(TestXYNumericFunction.class);
                return result;
        }
-
 }
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java b/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestPmt.java
new file mode 100644 (file)
index 0000000..935615a
--- /dev/null
@@ -0,0 +1,87 @@
+/* ====================================================================
+   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.hssf.record.formula.functions;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.record.formula.eval.ErrorEval;
+import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
+
+/**
+ * 
+ * @author Josh Micich
+ */
+public final class TestPmt extends TestCase {
+       
+       private static void confirm(double expected, NumberEval ne) {
+               // only asserting accuracy to 4 fractional digits
+               assertEquals(expected, ne.getNumberValue(), 0.00005);
+       }
+       private static Eval invoke(Eval[] args) {
+               return new Pmt().evaluate(args, -1, (short)-1);
+       }
+       /**
+        * Invocation when not expecting an error result
+        */
+       private static NumberEval invokeNormal(Eval[] args) {
+               Eval ev = invoke(args);
+               if(ev instanceof ErrorEval) {
+                       throw new AssertionFailedError("Normal evaluation failed with error code: "
+                                       + ev.toString());
+               }
+               return (NumberEval) ev;
+       }
+
+       private static void confirm(double expected, double rate, double nper, double pv, double fv, boolean isBeginning) {
+               Eval[] args = { 
+                               new NumberEval(rate),
+                               new NumberEval(nper),
+                               new NumberEval(pv),
+                               new NumberEval(fv),
+                               new NumberEval(isBeginning ? 1 : 0),
+               };
+               confirm(expected, invokeNormal(args));
+       }
+
+       
+       public void testBasic() {
+               confirm(-1037.0321, (0.08/12), 10, 10000, 0, false);
+               confirm(-1030.1643, (0.08/12), 10, 10000, 0, true);
+       }
+       
+       public void test3args() {
+               
+               Eval[] args = { 
+                               new NumberEval(0.005),
+                               new NumberEval(24),
+                               new NumberEval(1000),
+               };
+               Eval ev = invoke(args);
+               if(ev instanceof ErrorEval) {
+                       ErrorEval err = (ErrorEval) ev;
+                       if(err.getErrorCode() == HSSFErrorConstants.ERROR_VALUE) {
+                               throw new AssertionFailedError("Identified bug 44691");
+                       }
+               }
+               
+               confirm(-44.3206, invokeNormal(args));
+       }
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/data/Bug44603.doc b/src/scratchpad/testcases/org/apache/poi/hwpf/data/Bug44603.doc
new file mode 100644 (file)
index 0000000..00312ae
Binary files /dev/null and b/src/scratchpad/testcases/org/apache/poi/hwpf/data/Bug44603.doc differ
index 686e558c845083eb49ad30513411c16e8144cb3d..3656b2ff5f6d4b6d49c71020840a1bdedea402a0 100644 (file)
 package org.apache.poi.hwpf.usermodel;
 
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.FileInputStream;
-import java.util.Iterator;
 import java.util.List;
 
+import junit.framework.TestCase;
+
 import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.hwpf.model.TextPiece;
-import org.apache.poi.hwpf.usermodel.Paragraph;
-import org.apache.poi.hwpf.usermodel.Range;
 import org.apache.poi.util.LittleEndian;
 
-import junit.framework.TestCase;
-
 /**
  * Test the picture handling
  *
@@ -118,6 +115,12 @@ public class TestPictures extends TestCase {
      * emf image, with a crazy offset
      */
     public void testEmfComplexImage() throws Exception {
+       /*
+       
+       Commenting out this test case temporarily. The file emf_2003_image does not contain any
+       pictures. Instead it has an office drawing object. Need to rewrite this test after
+       revisiting the implementation of office drawing objects.
+       
        HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/emf_2003_image.doc"));
        List pics = doc.getPicturesTable().getAllPictures();
        
@@ -137,9 +140,17 @@ public class TestPictures extends TestCase {
        assertEquals(4, pic.getSize());
        assertEquals(0x80000000l, LittleEndian.getUInt(pic.getContent()));
        assertEquals(0x80000000l, LittleEndian.getUInt(pic.getRawContent()));
+       */
     }
-    
-    
+
+    public void testPicturesWithTable() throws Exception {
+       HWPFDocument doc = new HWPFDocument(new FileInputStream(
+                       new File(dirname, "Bug44603.doc")));
+
+       List pics = doc.getPicturesTable().getAllPictures();
+       assertEquals(pics.size(), 2);
+    }
+
     private byte[] loadImage(String filename) throws Exception {
        ByteArrayOutputStream b = new ByteArrayOutputStream();
        FileInputStream fis = new FileInputStream(dirname + "/" + filename);
diff --git a/src/testcases/org/apache/poi/hssf/data/44693.xls b/src/testcases/org/apache/poi/hssf/data/44693.xls
new file mode 100644 (file)
index 0000000..dd954c6
Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/44693.xls differ
diff --git a/src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls b/src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls
new file mode 100644 (file)
index 0000000..71f8743
Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls differ
index b79236ff08c138d6ae158218b193d188c95082ca..3b98aed0aed318710db0d9b477dde202973457d7 100644 (file)
@@ -293,7 +293,7 @@ public final class TestFormulaParser extends TestCase {
         assertEquals("FOO", tname.toFormulaString(w));
         
         AbstractFunctionPtg tfunc = (AbstractFunctionPtg) ptg[1];
-        assertEquals("externalflag", tfunc.getName());
+        assertTrue(tfunc.isExternalFunction());
     }
 
     public void testEmbeddedSlash() {
@@ -888,4 +888,17 @@ public final class TestFormulaParser extends TestCase {
             assertTrue(e.getMessage().startsWith("Too few arguments suppled to operation token"));
         }
     }
+    public void testFuncPtgSelection() {
+        Workbook book = Workbook.createWorkbook();
+        Ptg[] ptgs;
+        ptgs = FormulaParser.parse("countif(A1:A2, 1)", book);
+        assertEquals(3, ptgs.length);
+        if(FuncVarPtg.class == ptgs[2].getClass()) {
+            throw new AssertionFailedError("Identified bug 44675");
+        }
+        assertEquals(FuncPtg.class, ptgs[2].getClass());
+        ptgs = FormulaParser.parse("sin(1)", book);
+        assertEquals(2, ptgs.length);
+        assertEquals(FuncPtg.class, ptgs[1].getClass());
+    }
 }
index b1acfeafa17f70c13ae74ad5e7826da43123b5b1..9da8f45ebc26689543410303b518513ed5ab30d9 100755 (executable)
@@ -14,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -28,10 +27,10 @@ import junit.framework.TestSuite;
  * 
  * @author Josh Micich
  */
-public class AllRecordTests {
+public final class AllRecordTests {
        
        public static Test suite() {
-               TestSuite result = new TestSuite("Tests for org.apache.poi.hssf.record");
+               TestSuite result = new TestSuite(AllRecordTests.class.getName());
 
                result.addTest(AllFormulaTests.suite());
                
@@ -56,6 +55,7 @@ public class AllRecordTests {
                result.addTestSuite(TestEmbeddedObjectRefSubRecord.class);
                result.addTestSuite(TestEndSubRecord.class);
                result.addTestSuite(TestEscherAggregate.class);
+               result.addTestSuite(TestExternalNameRecord.class);
                result.addTestSuite(TestFontBasisRecord.class);
                result.addTestSuite(TestFontIndexRecord.class);
                result.addTestSuite(TestFormulaRecord.class);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java b/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
new file mode 100644 (file)
index 0000000..960627a
--- /dev/null
@@ -0,0 +1,55 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.hssf.record;\r
+\r
+import junit.framework.AssertionFailedError;\r
+import junit.framework.TestCase;\r
+/**\r
+ * \r
+ * @author Josh Micich\r
+ */\r
+public final class TestExternalNameRecord extends TestCase {\r
+\r
+       private static final byte[] dataFDS = {\r
+               0, 0, 0, 0, 0, 0, 3, 0, 70, 68, 83, 0, 0,\r
+       };\r
+       private static ExternalNameRecord createSimpleENR() {\r
+               return new ExternalNameRecord(new TestcaseRecordInputStream((short)0x0023, dataFDS));\r
+       }\r
+       public void testBasicDeserializeReserialize() {\r
+               \r
+               ExternalNameRecord enr = createSimpleENR();\r
+               assertEquals( "FDS", enr.getText());\r
+        \r
+               try {\r
+                       TestcaseRecordInputStream.confirmRecordEncoding(0x0023, dataFDS, enr.serialize());\r
+               } catch (ArrayIndexOutOfBoundsException e) {\r
+                       if(e.getMessage().equals("15")) {\r
+                               throw new AssertionFailedError("Identified bug 44695");\r
+                       }\r
+               }\r
+       }\r
+       \r
+       public void testBasicSize() {\r
+               ExternalNameRecord enr = createSimpleENR();\r
+               if(enr.getRecordSize() == 13) {\r
+                       throw new AssertionFailedError("Identified bug 44695");\r
+               }\r
+               assertEquals(17, enr.getRecordSize());\r
+       }\r
+}\r
index 92ca4ba04419583cbbe4c54bc2f6987f57c0306b..b50e95fa86b282fd1f4e6648ca2c449f6cde0757 100644 (file)
@@ -17,6 +17,8 @@
 
 package org.apache.poi.hssf.record.formula;
 
+import org.apache.poi.hssf.record.formula.function.AllFormulaFunctionTests;
+
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
@@ -28,12 +30,12 @@ import junit.framework.TestSuite;
 public class AllFormulaTests {
        
        public static Test suite() {
-               TestSuite result = new TestSuite("Tests for org.apache.poi.hssf.record.formula");
+               TestSuite result = new TestSuite(AllFormulaTests.class.getName());
                result.addTestSuite(TestArea3DPtg.class);
                result.addTestSuite(TestAreaErrPtg.class);
-        result.addTestSuite(TestAreaPtg.class);
-        result.addTestSuite(TestErrPtg.class);
-        result.addTestSuite(TestExternalFunctionFormulas.class);
+               result.addTestSuite(TestAreaPtg.class);
+               result.addTestSuite(TestErrPtg.class);
+               result.addTestSuite(TestExternalFunctionFormulas.class);
                result.addTestSuite(TestFuncPtg.class);
                result.addTestSuite(TestIntersectionPtg.class);
                result.addTestSuite(TestPercentPtg.class);
@@ -42,6 +44,7 @@ public class AllFormulaTests {
                result.addTestSuite(TestReferencePtg.class);
                result.addTestSuite(TestSheetNameFormatter.class);
                result.addTestSuite(TestUnionPtg.class);
+               result.addTest(AllFormulaFunctionTests.suite());
                return result;
        }
 }
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/function/AllFormulaFunctionTests.java b/src/testcases/org/apache/poi/hssf/record/formula/function/AllFormulaFunctionTests.java
new file mode 100644 (file)
index 0000000..8a59095
--- /dev/null
@@ -0,0 +1,37 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Collects all tests for this package.
+ * 
+ * @author Josh Micich
+ */
+public class AllFormulaFunctionTests {
+       
+       public static Test suite() {
+               TestSuite result = new TestSuite(AllFormulaFunctionTests.class.getName());
+               result.addTestSuite(TestFunctionMetadataRegistry.class);
+               result.addTestSuite(TestParseMissingBuiltInFuncs.class);
+               result.addTestSuite(TestReadMissingBuiltInFuncs.class);
+               return result;
+       }
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/function/ExcelFileFormatDocFunctionExtractor.java b/src/testcases/org/apache/poi/hssf/record/formula/function/ExcelFileFormatDocFunctionExtractor.java
new file mode 100644 (file)
index 0000000..c7d74b6
--- /dev/null
@@ -0,0 +1,503 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.zip.CRC32;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+/**
+ * This class is not used during normal POI run-time but is used at development time to generate 
+ * the file 'functionMetadata.txt'.   There are more than 300 built-in functions in Excel and the
+ * intention of this class is to make it easier to maintain the metadata, by extracting it from
+ * a reliable source.
+ * 
+ * @author Josh Micich
+ */
+public class ExcelFileFormatDocFunctionExtractor {
+
+       private static final String SOURCE_DOC_FILE_NAME = "excelfileformat.odt";
+
+       private static final class FunctionData {
+
+               private final int _index;
+               private final boolean _hasFootnote;
+               private final String _name;
+               private final int _minParams;
+               private final int _maxParams;
+               private final String _returnClass;
+               private final String _paramClasses;
+               private final boolean _isVolatile;
+
+               public FunctionData(int funcIx, boolean hasFootnote, String funcName, int minParams, int maxParams,
+                                       String returnClass, String paramClasses, boolean isVolatile) {
+                       _index = funcIx;
+                       _hasFootnote = hasFootnote;
+                       _name = funcName;
+                       _minParams = minParams;
+                       _maxParams = maxParams;
+                       _returnClass = returnClass;
+                       _paramClasses = paramClasses;
+                       _isVolatile = isVolatile;
+               }
+               public int getIndex() {
+                       return _index;
+               }
+               public String getName() {
+                       return _name;
+               }
+               public boolean hasFootnote() {
+                       return _hasFootnote;
+               }
+               public String formatAsDataLine() {
+                       return _index + "\t" + _name + "\t" + _minParams + "\t"
+                                       + _maxParams + "\t" + _returnClass + "\t" + _paramClasses
+                                       + "\t" + checkMark(_isVolatile) + "\t" + checkMark(_hasFootnote);
+               }
+               private static String checkMark(boolean b) {
+                       return b ? "x" : "";
+               }
+       }
+       
+       private static final class FunctionDataCollector {
+
+
+               private final Map _allFunctionsByIndex;
+               private final Map _allFunctionsByName;
+               private final Set _groupFunctionIndexes;
+               private final Set _groupFunctionNames;
+               private final PrintStream _ps;
+               
+               public FunctionDataCollector(PrintStream ps) {
+                       _ps = ps;
+                       _allFunctionsByIndex = new HashMap();
+                       _allFunctionsByName = new HashMap();
+                       _groupFunctionIndexes = new HashSet();
+                       _groupFunctionNames = new HashSet();
+               }
+
+               public void addFuntion(int funcIx, boolean hasFootnote, String funcName, int minParams, int maxParams,
+                               String returnClass, String paramClasses, String volatileFlagStr) {
+                       boolean isVolatile = volatileFlagStr.length() > 0;
+                       
+                       Integer funcIxKey = new Integer(funcIx);
+                       if(!_groupFunctionIndexes.add(funcIxKey)) {
+                               throw new RuntimeException("Duplicate function index (" + funcIx + ")");
+                       }
+                       if(!_groupFunctionNames.add(funcName)) {
+                               throw new RuntimeException("Duplicate function name '" + funcName + "'");
+                       }
+                       
+                       checkRedefinedFunction(hasFootnote, funcName, funcIxKey);
+                       FunctionData fd = new FunctionData(funcIx, hasFootnote, funcName, 
+                                       minParams, maxParams, returnClass, paramClasses, isVolatile);
+                       
+                       _allFunctionsByIndex.put(funcIxKey, fd);
+                       _allFunctionsByName.put(funcName, fd);
+               }
+
+               private void checkRedefinedFunction(boolean hasNote, String funcName, Integer funcIxKey) {
+                       FunctionData fdPrev;
+                       fdPrev = (FunctionData) _allFunctionsByIndex.get(funcIxKey);
+                       if(fdPrev != null) {
+                               if(fdPrev.hasFootnote() && hasNote) {
+                                       // func def can change if both have a foot-note
+                                       _allFunctionsByName.remove(fdPrev.getName());
+                               } else {
+                                       throw new RuntimeException("changing function definition without foot-note");
+                               }
+                       }
+                       fdPrev = (FunctionData) _allFunctionsByName.get(funcName);
+                       if(fdPrev != null) {
+                               if(fdPrev.hasFootnote() && hasNote) {
+                                       // func def can change if both have a foot-note
+                                       _allFunctionsByIndex.remove(new Integer(fdPrev.getIndex()));
+                               } else {
+                                       throw new RuntimeException("changing function definition without foot-note");
+                               }
+                       }
+               }
+
+               public void endTableGroup(String headingText) {
+                       Integer[] keys = new Integer[_groupFunctionIndexes.size()];
+                       _groupFunctionIndexes.toArray(keys);
+                       _groupFunctionIndexes.clear();
+                       _groupFunctionNames.clear();
+                       Arrays.sort(keys);
+                       
+                       _ps.println("# " + headingText);
+                       for (int i = 0; i < keys.length; i++) {
+                               FunctionData fd = (FunctionData) _allFunctionsByIndex.get(keys[i]);
+                               _ps.println(fd.formatAsDataLine());
+                       }
+               }
+       }
+       
+       /**
+        * To avoid drag-in - parse XML using only JDK. 
+        */
+       private static class EFFDocHandler implements ContentHandler {
+               private static final String[] HEADING_PATH_NAMES = {
+                       "office:document-content", "office:body", "office:text", "text:h",      
+               };
+               private static final String[] TABLE_BASE_PATH_NAMES = {
+                       "office:document-content", "office:body", "office:text", "table:table", 
+               };
+               private static final String[] TABLE_ROW_RELPATH_NAMES = {
+                       "table:table-row",      
+               };
+               private static final String[] TABLE_CELL_RELPATH_NAMES = {
+                       "table:table-row", "table:table-cell", "text:p",        
+               };
+               private static final String[] NOTE_REF_RELPATH_NAMES = {
+                       "table:table-row", "table:table-cell", "text:p", "text:span", "text:note-ref",
+               };
+
+               
+               private final Stack _elemNameStack;
+               /** <code>true</code> only when parsing the target tables */
+               private boolean _isInsideTable;
+               
+               private final List _rowData; 
+               private final StringBuffer _textNodeBuffer;
+               private final List _rowNoteFlags;
+               private boolean _cellHasNote;
+               
+               private final FunctionDataCollector _fdc;
+               private String _lastHeadingText;
+               
+               public EFFDocHandler(FunctionDataCollector fdc) {
+                       _fdc = fdc;
+                       _elemNameStack = new Stack();
+                       _isInsideTable = false;
+                       _rowData = new ArrayList();
+                       _textNodeBuffer = new StringBuffer();
+                       _rowNoteFlags = new ArrayList();
+               }
+               
+               private boolean matchesTargetPath() {
+                       return matchesPath(0, TABLE_BASE_PATH_NAMES);
+               }
+               private boolean matchesRelPath(String[] pathNames) {
+                       return matchesPath(TABLE_BASE_PATH_NAMES.length, pathNames);
+               }
+               private boolean matchesPath(int baseStackIndex, String[] pathNames) {
+                       if(_elemNameStack.size() != baseStackIndex + pathNames.length) {
+                               return false;
+                       }
+                       for (int i = 0; i < pathNames.length; i++) {
+                               if(!_elemNameStack.get(baseStackIndex + i).equals(pathNames[i])) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               }
+               public void characters(char[] ch, int start, int length) {
+                       // only 2 text nodes where text is collected:
+                       if(matchesRelPath(TABLE_CELL_RELPATH_NAMES) || matchesPath(0, HEADING_PATH_NAMES)) {
+                               _textNodeBuffer.append(ch, start, length);
+                       }
+               }
+
+               public void endElement(String namespaceURI, String localName, String name) {
+                       String expectedName = (String) _elemNameStack.peek();
+                       if(expectedName != name) {
+                               throw new RuntimeException("close tag mismatch");
+                       }
+                       if(matchesPath(0, HEADING_PATH_NAMES)) {
+                               _lastHeadingText = _textNodeBuffer.toString().trim();
+                               _textNodeBuffer.setLength(0);
+                       }                       
+                       if(_isInsideTable) {
+                               if(matchesTargetPath()) {
+                                       _fdc.endTableGroup(_lastHeadingText);
+                                       _isInsideTable = false;
+                               } else if(matchesRelPath(TABLE_ROW_RELPATH_NAMES)) {
+                                       String[] cellData = new String[_rowData.size()];
+                                       _rowData.toArray(cellData);
+                                       _rowData.clear();
+                                       Boolean[] noteFlags = new Boolean[_rowNoteFlags.size()];
+                                       _rowNoteFlags.toArray(noteFlags);
+                                       _rowNoteFlags.clear();
+                                       processTableRow(cellData, noteFlags);
+                               } else if(matchesRelPath(TABLE_CELL_RELPATH_NAMES)) {
+                                       _rowData.add(_textNodeBuffer.toString().trim());
+                                       _rowNoteFlags.add(Boolean.valueOf(_cellHasNote));
+                                       _textNodeBuffer.setLength(0);
+                               }
+                       }
+                       _elemNameStack.pop();
+               }
+
+               private void processTableRow(String[] cellData, Boolean[] noteFlags) {
+                       // each table row of the document contains data for two functions
+                       if(cellData.length != 15) {
+                               throw new RuntimeException("Bad table row size");
+                       }
+                       processFunction(cellData, noteFlags, 0);
+                       processFunction(cellData, noteFlags, 8);
+               }
+               public void processFunction(String[] cellData, Boolean[] noteFlags, int i) {
+                       String funcIxStr = cellData[i + 0];
+                       if (funcIxStr.length() < 1) {
+                               // empty (happens on the right hand side when there is an odd number of functions)
+                               return;
+                       }
+                       int funcIx = parseInt(funcIxStr);
+
+                       boolean hasFootnote = noteFlags[i + 1].booleanValue();
+                       String funcName = cellData[i + 1];
+                       int minParams = parseInt(cellData[i + 2]);
+                       int maxParams = parseInt(cellData[i + 3]);
+
+                       String returnClass = cellData[i + 4];
+                       String paramClasses = cellData[i + 5];
+                       String volatileFlagStr = cellData[i + 6];
+                       
+                       _fdc.addFuntion(funcIx, hasFootnote, funcName, minParams, maxParams, returnClass, paramClasses, volatileFlagStr);
+               }
+               private static int parseInt(String valStr) {
+                       try {
+                               return Integer.parseInt(valStr);
+                       } catch (NumberFormatException e) {
+                               throw new RuntimeException("Value '" + valStr + "' could not be parsed as an integer");
+                       }
+               }
+               public void startElement(String namespaceURI, String localName, String name, Attributes atts) {
+                       _elemNameStack.add(name);
+                       if(matchesTargetPath()) {
+                               String tableName = atts.getValue("table:name");
+                               if(tableName.startsWith("tab_fml_func") && !tableName.equals("tab_fml_func0")) {
+                                       _isInsideTable = true;
+                               }
+                               return;
+                       }
+                       if(matchesPath(0, HEADING_PATH_NAMES)) {
+                               _textNodeBuffer.setLength(0);
+                       } else if(matchesRelPath(TABLE_ROW_RELPATH_NAMES)) {
+                               _rowData.clear();
+                               _rowNoteFlags.clear();
+                       } else if(matchesRelPath(TABLE_CELL_RELPATH_NAMES)) {
+                               _textNodeBuffer.setLength(0);
+                               _cellHasNote = false;
+                       } else if(matchesRelPath(NOTE_REF_RELPATH_NAMES)) {
+                               _cellHasNote = true;
+                       }
+               }
+
+               public void endDocument() {
+                       // do nothing
+               }
+               public void endPrefixMapping(String prefix) {
+                       // do nothing
+               }
+               public void ignorableWhitespace(char[] ch, int start, int length) {
+                       // do nothing
+               }
+               public void processingInstruction(String target, String data) {
+                       // do nothing
+               }
+               public void setDocumentLocator(Locator locator) {
+                       // do nothing
+               }
+               public void skippedEntity(String name) {
+                       // do nothing
+               }
+               public void startDocument() {
+                       // do nothing
+               }
+               public void startPrefixMapping(String prefix, String uri) {
+                       // do nothing
+               }
+       }
+
+       private static void extractFunctionData(FunctionDataCollector fdc, InputStream is) {
+               System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");
+               
+               XMLReader xr;
+               try {
+                       xr = XMLReaderFactory.createXMLReader();
+               } catch (SAXException e) {
+                       throw new RuntimeException(e);
+               }
+               xr.setContentHandler(new EFFDocHandler(fdc));
+
+               InputSource inSrc = new InputSource(is);
+               
+               try {
+                       xr.parse(inSrc);
+                       is.close();
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               } catch (SAXException e) {
+                       throw new RuntimeException(e);
+               }
+       }
+
+       private static void processFile(File effDocFile, File outFile) {
+               OutputStream os;
+               try {
+                       os = new FileOutputStream(outFile);
+               } catch (FileNotFoundException e) {
+                       throw new RuntimeException(e);
+               }
+               PrintStream ps = new PrintStream(os);
+               outputLicenseHeader(ps);
+               Class genClass = ExcelFileFormatDocFunctionExtractor.class;
+               ps.println("# Created by (" + genClass.getName() + ")");
+               // identify the source file
+               ps.print("# from source file '" + SOURCE_DOC_FILE_NAME + "'");
+               ps.println(" (size=" + effDocFile.length() + ", crc=" + getFileCRC(effDocFile) + ")");
+               ps.println("#");
+               ps.println("#Columns: (index, name, minParams, maxParams, returnClass, paramClasses, isVolatile, hasFootnote )");
+               ps.println("");
+               try {
+                       ZipFile zf = new ZipFile(effDocFile);
+                       InputStream is = zf.getInputStream(zf.getEntry("content.xml"));
+                       extractFunctionData(new FunctionDataCollector(ps), is);
+                       zf.close();
+               } catch (ZipException e) {
+                       throw new RuntimeException(e);
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+               ps.close();
+       }
+
+       private static void outputLicenseHeader(PrintStream ps) {
+           String[] lines= {
+            "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.",
+           };
+           for (int i = 0; i < lines.length; i++) {
+               ps.print("# ");
+            ps.println(lines[i]);
+        }
+        ps.println();
+    }
+
+    /**
+        * Helps identify the source file
+        */
+       private static String getFileCRC(File f) {
+               CRC32 crc = new CRC32();
+               byte[]buf = new byte[2048];
+               try {
+                       InputStream is = new FileInputStream(f);
+                       while(true) {
+                               int bytesRead = is.read(buf);
+                               if(bytesRead<1) { 
+                                       break;
+                               }
+                               crc.update(buf, 0, bytesRead);
+                       }
+                       is.close();
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+               return "0x" + Long.toHexString(crc.getValue()).toUpperCase();
+       }
+       
+       private static File getSourceFile() {
+               if (true) {
+                       File dir = new File("c:/josh/ref-docs");
+                       File effDocFile = new File(dir, SOURCE_DOC_FILE_NAME);
+                       return effDocFile;
+               }
+               URL url;
+               try {
+                       url = new URL("http://sc.openoffice.org/" + SOURCE_DOC_FILE_NAME);
+               } catch (MalformedURLException e) {
+                       throw new RuntimeException(e);
+               }
+               
+               File result;
+               byte[]buf = new byte[2048];
+               try {
+                       URLConnection conn = url.openConnection();
+                       InputStream is = conn.getInputStream();
+                       System.out.println("downloading " + url.toExternalForm());
+                       result = File.createTempFile("excelfileformat", "odt");
+                       OutputStream os = new FileOutputStream(result);
+                       while(true) {
+                               int bytesRead = is.read(buf);
+                               if(bytesRead<1) { 
+                                       break;
+                               }
+                               os.write(buf, 0, bytesRead);
+                       }
+                       is.close();
+                       os.close();
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+               System.out.println("file downloaded ok");
+               return result;
+       }
+       
+       public static void main(String[] args) {
+               
+               File effDocFile = getSourceFile();
+               if(!effDocFile.exists()) {
+                       throw new RuntimeException("file '" + effDocFile.getAbsolutePath() + "' does not exist");
+               }
+               
+               File outFile = new File("functionMetadata-asGenerated.txt");
+               processFile(effDocFile, outFile);
+       }
+       
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/function/TestFunctionMetadataRegistry.java b/src/testcases/org/apache/poi/hssf/record/formula/function/TestFunctionMetadataRegistry.java
new file mode 100644 (file)
index 0000000..edb215e
--- /dev/null
@@ -0,0 +1,43 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import junit.framework.TestCase;
+/**
+ * 
+ * @author Josh Micich
+ */
+public final class TestFunctionMetadataRegistry extends TestCase {
+
+    public void testWellKnownFunctions() {
+        confirmFunction(0, "COUNT");
+        confirmFunction(1, "IF");
+        
+    }
+
+    private static void confirmFunction(int index, String funcName) {
+        FunctionMetadata fm;
+        fm = FunctionMetadataRegistry.getFunctionByIndex(index);
+        assertNotNull(fm);
+        assertEquals(funcName, fm.getName());
+        
+        fm = FunctionMetadataRegistry.getFunctionByName(funcName);
+        assertNotNull(fm);
+        assertEquals(index, fm.getIndex());
+    }
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/function/TestParseMissingBuiltInFuncs.java b/src/testcases/org/apache/poi/hssf/record/formula/function/TestParseMissingBuiltInFuncs.java
new file mode 100644 (file)
index 0000000..fe1b8fc
--- /dev/null
@@ -0,0 +1,79 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.model.FormulaParser;
+import org.apache.poi.hssf.model.Workbook;
+import org.apache.poi.hssf.record.formula.AbstractFunctionPtg;
+import org.apache.poi.hssf.record.formula.FuncPtg;
+import org.apache.poi.hssf.record.formula.FuncVarPtg;
+import org.apache.poi.hssf.record.formula.Ptg;
+/**
+ * @author Josh Micich
+ */
+public final class TestParseMissingBuiltInFuncs extends TestCase {
+
+       private static Ptg[] parse(String formula) {
+               Workbook book = Workbook.createWorkbook();
+               return FormulaParser.parse(formula, book);
+       }
+       private static void confirmFunc(String formula, int expPtgArraySize, boolean isVarArgFunc, int funcIx) {
+               Ptg[] ptgs = parse(formula);
+               Ptg ptgF = ptgs[ptgs.length-1];  // func is last RPN token in all these formulas
+               
+               if(!(ptgF instanceof AbstractFunctionPtg)) {
+                   throw new RuntimeException("function token missing");
+               }
+               AbstractFunctionPtg func = (AbstractFunctionPtg) ptgF;
+               if(func.getFunctionIndex() == 255) {
+                   throw new AssertionFailedError("Failed to recognise built-in function in formula '" 
+                           + formula + "'");
+               }
+               
+               assertEquals(expPtgArraySize, ptgs.length);
+               assertEquals(funcIx, func.getFunctionIndex());
+               Class expCls = isVarArgFunc ? FuncVarPtg.class : FuncPtg.class;
+               assertEquals(expCls, ptgF.getClass());
+       }
+       
+       public void testDatedif() {
+               int expSize = 4;   // NB would be 5 if POI added tAttrVolatile properly
+               confirmFunc("DATEDIF(NOW(),NOW(),\"d\")", expSize, false, 351);
+       }
+
+       public void testDdb() {
+               confirmFunc("DDB(1,1,1,1,1)", 6, true, 144);
+       }
+       public void testAtan() {
+               confirmFunc("ATAN(1)", 2, false, 18);
+       }
+       
+       public void testUsdollar() {
+               confirmFunc("USDOLLAR(1)", 2, false, 204);
+       }
+
+       public void testDBCS() {
+               confirmFunc("DBCS(\"abc\")", 2, false, 215);
+       }
+       public void testIsnontext() {
+               confirmFunc("ISNONTEXT(\"abc\")", 2, false, 190);
+       }
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/function/TestReadMissingBuiltInFuncs.java b/src/testcases/org/apache/poi/hssf/record/formula/function/TestReadMissingBuiltInFuncs.java
new file mode 100644 (file)
index 0000000..7e1d031
--- /dev/null
@@ -0,0 +1,142 @@
+/* ====================================================================
+   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.hssf.record.formula.function;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+/**
+ * Tests reading from a sample spreadsheet some built-in functions that were not properly
+ * registered in POI as bug #44675 (March 2008).
+ * 
+ * @author Josh Micich
+ */
+public final class TestReadMissingBuiltInFuncs extends TestCase {
+
+       private HSSFSheet sht;
+
+       protected void setUp() {
+               String cwd = System.getProperty("HSSF.testdata.path");
+               HSSFWorkbook wb;
+               try {
+                       InputStream is = new FileInputStream(new File(cwd, "missingFuncs44675.xls"));
+                       wb = new HSSFWorkbook(is);
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+               sht = wb.getSheetAt(0);
+       }
+       
+       public void testDatedif() {
+               
+               String formula;
+               try {
+                       formula = getCellFormula(0);
+               } catch (IllegalStateException e) {
+                       if(e.getMessage().startsWith("Too few arguments")) {
+                           if(e.getMessage().indexOf("AttrPtg") > 0) {
+                       throw afe("tAttrVolatile not supported in FormulaParser.toFormulaString");
+                           }
+                               throw afe("NOW() registered with 1 arg instead of 0");
+                       }
+                       if(e.getMessage().startsWith("too much stuff")) {
+                               throw afe("DATEDIF() not registered");
+                       }
+                       // some other unexpected error
+                       throw e;
+               }
+               assertEquals("DATEDIF(NOW(),NOW(),\"d\")", formula);
+       }
+       public void testDdb() {
+               
+               String formula = getCellFormula(1);
+               if("externalflag(1,1,1,1,1)".equals(formula)) {
+                       throw afe("DDB() not registered");
+               }
+               assertEquals("DDB(1,1,1,1,1)", formula);
+       }
+       public void testAtan() {
+       
+               String formula = getCellFormula(2);
+               if(formula.equals("ARCTAN(1)")) {
+                       throw afe("func ix 18 registered as ARCTAN() instead of ATAN()");
+               }
+               assertEquals("ATAN(1)", formula);
+       }
+       
+       public void testUsdollar() {
+       
+               String formula = getCellFormula(3);
+               if(formula.equals("YEN(1)")) {
+                       throw afe("func ix 204 registered as YEN() instead of USDOLLAR()");
+               }
+               assertEquals("USDOLLAR(1)", formula);
+       }
+
+       public void testDBCS() {
+       
+               String formula;
+               try {
+                       formula = getCellFormula(4);
+               } catch (IllegalStateException e) {
+                       if(e.getMessage().startsWith("too much stuff")) {
+                               throw afe("DBCS() not registered");
+                       }
+                       // some other unexpected error
+                       throw e;
+               } catch (NegativeArraySizeException e) {
+                       throw afe("found err- DBCS() registered with -1 args");
+               }
+               if(formula.equals("JIS(\"abc\")")) {
+                       throw afe("func ix 215 registered as JIS() instead of DBCS()");
+               }
+               assertEquals("DBCS(\"abc\")", formula);
+       }
+       public void testIsnontext() {
+               
+               String formula;
+               try {
+                       formula = getCellFormula(5);
+               } catch (IllegalStateException e) {
+                       if(e.getMessage().startsWith("too much stuff")) {
+                               throw afe("ISNONTEXT() registered with wrong index");
+                       }
+                       // some other unexpected error
+                       throw e;
+               }
+               assertEquals("ISNONTEXT(\"abc\")", formula);
+       }
+       
+       private String getCellFormula(int rowIx) {
+               String result = sht.getRow(rowIx).getCell((short)0).getCellFormula();
+               if (false) {
+                       System.err.println(result);
+               }
+               return result;
+       }
+       private static AssertionFailedError afe(String msg) {
+               return new AssertionFailedError(msg);
+       }
+}
index 05ba29d09eab6aa01462ce1d21f817d11b77d534..94c19cbc04cd5a7982d4565d61ee0a4a275c91f3 100644 (file)
@@ -1218,6 +1218,30 @@ extends TestCase {
         
         assertEquals(1, wb.getNumberOfSheets());
     }
+    
+    /**
+     * User reported the wrong number of rows from the
+     *  iterator, but we can't replicate that
+     */
+    public void test44693() throws Exception {
+        FileInputStream in = new FileInputStream(new File(cwd, "44693.xls"));
+        
+        HSSFWorkbook wb = new HSSFWorkbook(in);
+        HSSFSheet s = wb.getSheetAt(0);
+
+        // Rows are 1 to 713
+        assertEquals(0, s.getFirstRowNum());
+        assertEquals(712, s.getLastRowNum());
+        assertEquals(713, s.getPhysicalNumberOfRows());
+        
+        // Now check the iterator
+        int rowsSeen = 0;
+        for(Iterator i = s.rowIterator(); i.hasNext(); ) {
+               HSSFRow r = (HSSFRow)i.next();
+               rowsSeen++;
+        }
+        assertEquals(713, rowsSeen);
+    }
 }