langtools/src/share/classes/sun/tools/javap/RuntimeConstants.java
changeset 10 06bc494ca11e
child 2723 b659ca23d5f5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/sun/tools/javap/RuntimeConstants.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,787 @@
+/*
+ * Copyright 2002-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package sun.tools.javap;
+
+public interface RuntimeConstants {
+
+    /* Signature Characters */
+    public static final char   SIGC_VOID                  = 'V';
+    public static final String SIG_VOID                   = "V";
+    public static final char   SIGC_BOOLEAN               = 'Z';
+    public static final String SIG_BOOLEAN                = "Z";
+    public static final char   SIGC_BYTE                  = 'B';
+    public static final String SIG_BYTE                   = "B";
+    public static final char   SIGC_CHAR                  = 'C';
+    public static final String SIG_CHAR                   = "C";
+    public static final char   SIGC_SHORT                 = 'S';
+    public static final String SIG_SHORT                  = "S";
+    public static final char   SIGC_INT                   = 'I';
+    public static final String SIG_INT                    = "I";
+    public static final char   SIGC_LONG                  = 'J';
+    public static final String SIG_LONG                   = "J";
+    public static final char   SIGC_FLOAT                 = 'F';
+    public static final String SIG_FLOAT                  = "F";
+    public static final char   SIGC_DOUBLE                = 'D';
+    public static final String SIG_DOUBLE                 = "D";
+    public static final char   SIGC_ARRAY                 = '[';
+    public static final String SIG_ARRAY                  = "[";
+    public static final char   SIGC_CLASS                 = 'L';
+    public static final String SIG_CLASS                  = "L";
+    public static final char   SIGC_METHOD                = '(';
+    public static final String SIG_METHOD                 = "(";
+    public static final char   SIGC_ENDCLASS              = ';';
+    public static final String SIG_ENDCLASS               = ";";
+    public static final char   SIGC_ENDMETHOD             = ')';
+    public static final String SIG_ENDMETHOD              = ")";
+    public static final char   SIGC_PACKAGE               = '/';
+    public static final String SIG_PACKAGE                = "/";
+
+    /* Class File Constants */
+    public static final int JAVA_MAGIC                   = 0xcafebabe;
+    public static final int JAVA_VERSION                 = 45;
+    public static final int JAVA_MINOR_VERSION           = 3;
+
+    /* Constant table */
+    public static final int CONSTANT_UTF8                = 1;
+    public static final int CONSTANT_UNICODE             = 2;
+    public static final int CONSTANT_INTEGER             = 3;
+    public static final int CONSTANT_FLOAT               = 4;
+    public static final int CONSTANT_LONG                = 5;
+    public static final int CONSTANT_DOUBLE              = 6;
+    public static final int CONSTANT_CLASS               = 7;
+    public static final int CONSTANT_STRING              = 8;
+    public static final int CONSTANT_FIELD               = 9;
+    public static final int CONSTANT_METHOD              = 10;
+    public static final int CONSTANT_INTERFACEMETHOD     = 11;
+    public static final int CONSTANT_NAMEANDTYPE         = 12;
+
+    /* Access Flags */
+    public static final int ACC_PUBLIC                   = 0x00000001;
+    public static final int ACC_PRIVATE                  = 0x00000002;
+    public static final int ACC_PROTECTED                = 0x00000004;
+    public static final int ACC_STATIC                   = 0x00000008;
+    public static final int ACC_FINAL                    = 0x00000010;
+    public static final int ACC_SYNCHRONIZED             = 0x00000020;
+    public static final int ACC_SUPER                        = 0x00000020;
+    public static final int ACC_VOLATILE                 = 0x00000040;
+    public static final int ACC_TRANSIENT                = 0x00000080;
+    public static final int ACC_NATIVE                   = 0x00000100;
+    public static final int ACC_INTERFACE                = 0x00000200;
+    public static final int ACC_ABSTRACT                 = 0x00000400;
+    public static final int ACC_STRICT                   = 0x00000800;
+    public static final int ACC_EXPLICIT                 = 0x00001000;
+    public static final int ACC_SYNTHETIC                = 0x00010000; // actually, this is an attribute
+
+    /* Type codes */
+    public static final int T_CLASS                      = 0x00000002;
+    public static final int T_BOOLEAN                    = 0x00000004;
+    public static final int T_CHAR                       = 0x00000005;
+    public static final int T_FLOAT                      = 0x00000006;
+    public static final int T_DOUBLE                     = 0x00000007;
+    public static final int T_BYTE                       = 0x00000008;
+    public static final int T_SHORT                      = 0x00000009;
+    public static final int T_INT                        = 0x0000000a;
+    public static final int T_LONG                       = 0x0000000b;
+
+    /* Type codes for StackMap attribute */
+    public static final int ITEM_Bogus      =0; // an unknown or uninitialized value
+    public static final int ITEM_Integer    =1; // a 32-bit integer
+    public static final int ITEM_Float      =2; // not used
+    public static final int ITEM_Double     =3; // not used
+    public static final int ITEM_Long       =4; // a 64-bit integer
+    public static final int ITEM_Null       =5; // the type of null
+    public static final int ITEM_InitObject =6; // "this" in constructor
+    public static final int ITEM_Object     =7; // followed by 2-byte index of class name
+    public static final int ITEM_NewObject  =8; // followed by 2-byte ref to "new"
+
+    /* Constants used in StackMapTable attribute */
+    public static final int SAME_FRAME_BOUND                  = 64;
+    public static final int SAME_LOCALS_1_STACK_ITEM_BOUND    = 128;
+    public static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247;
+    public static final int SAME_FRAME_EXTENDED               = 251;
+    public static final int FULL_FRAME                        = 255;
+
+    /* Opcodes */
+    public static final int opc_dead                     = -2;
+    public static final int opc_label                    = -1;
+    public static final int opc_nop                      = 0;
+    public static final int opc_aconst_null              = 1;
+    public static final int opc_iconst_m1                = 2;
+    public static final int opc_iconst_0                 = 3;
+    public static final int opc_iconst_1                 = 4;
+    public static final int opc_iconst_2                 = 5;
+    public static final int opc_iconst_3                 = 6;
+    public static final int opc_iconst_4                 = 7;
+    public static final int opc_iconst_5                 = 8;
+    public static final int opc_lconst_0                 = 9;
+    public static final int opc_lconst_1                 = 10;
+    public static final int opc_fconst_0                 = 11;
+    public static final int opc_fconst_1                 = 12;
+    public static final int opc_fconst_2                 = 13;
+    public static final int opc_dconst_0                 = 14;
+    public static final int opc_dconst_1                 = 15;
+    public static final int opc_bipush                   = 16;
+    public static final int opc_sipush                   = 17;
+    public static final int opc_ldc                      = 18;
+    public static final int opc_ldc_w                    = 19;
+    public static final int opc_ldc2_w                   = 20;
+    public static final int opc_iload                    = 21;
+    public static final int opc_lload                    = 22;
+    public static final int opc_fload                    = 23;
+    public static final int opc_dload                    = 24;
+    public static final int opc_aload                    = 25;
+    public static final int opc_iload_0                  = 26;
+    public static final int opc_iload_1                  = 27;
+    public static final int opc_iload_2                  = 28;
+    public static final int opc_iload_3                  = 29;
+    public static final int opc_lload_0                  = 30;
+    public static final int opc_lload_1                  = 31;
+    public static final int opc_lload_2                  = 32;
+    public static final int opc_lload_3                  = 33;
+    public static final int opc_fload_0                  = 34;
+    public static final int opc_fload_1                  = 35;
+    public static final int opc_fload_2                  = 36;
+    public static final int opc_fload_3                  = 37;
+    public static final int opc_dload_0                  = 38;
+    public static final int opc_dload_1                  = 39;
+    public static final int opc_dload_2                  = 40;
+    public static final int opc_dload_3                  = 41;
+    public static final int opc_aload_0                  = 42;
+    public static final int opc_aload_1                  = 43;
+    public static final int opc_aload_2                  = 44;
+    public static final int opc_aload_3                  = 45;
+    public static final int opc_iaload                   = 46;
+    public static final int opc_laload                   = 47;
+    public static final int opc_faload                   = 48;
+    public static final int opc_daload                   = 49;
+    public static final int opc_aaload                   = 50;
+    public static final int opc_baload                   = 51;
+    public static final int opc_caload                   = 52;
+    public static final int opc_saload                   = 53;
+    public static final int opc_istore                   = 54;
+    public static final int opc_lstore                   = 55;
+    public static final int opc_fstore                   = 56;
+    public static final int opc_dstore                   = 57;
+    public static final int opc_astore                   = 58;
+    public static final int opc_istore_0                 = 59;
+    public static final int opc_istore_1                 = 60;
+    public static final int opc_istore_2                 = 61;
+    public static final int opc_istore_3                 = 62;
+    public static final int opc_lstore_0                 = 63;
+    public static final int opc_lstore_1                 = 64;
+    public static final int opc_lstore_2                 = 65;
+    public static final int opc_lstore_3                 = 66;
+    public static final int opc_fstore_0                 = 67;
+    public static final int opc_fstore_1                 = 68;
+    public static final int opc_fstore_2                 = 69;
+    public static final int opc_fstore_3                 = 70;
+    public static final int opc_dstore_0                 = 71;
+    public static final int opc_dstore_1                 = 72;
+    public static final int opc_dstore_2                 = 73;
+    public static final int opc_dstore_3                 = 74;
+    public static final int opc_astore_0                 = 75;
+    public static final int opc_astore_1                 = 76;
+    public static final int opc_astore_2                 = 77;
+    public static final int opc_astore_3                 = 78;
+    public static final int opc_iastore                  = 79;
+    public static final int opc_lastore                  = 80;
+    public static final int opc_fastore                  = 81;
+    public static final int opc_dastore                  = 82;
+    public static final int opc_aastore                  = 83;
+    public static final int opc_bastore                  = 84;
+    public static final int opc_castore                  = 85;
+    public static final int opc_sastore                  = 86;
+    public static final int opc_pop                      = 87;
+    public static final int opc_pop2                     = 88;
+    public static final int opc_dup                      = 89;
+    public static final int opc_dup_x1                   = 90;
+    public static final int opc_dup_x2                   = 91;
+    public static final int opc_dup2                     = 92;
+    public static final int opc_dup2_x1                  = 93;
+    public static final int opc_dup2_x2                  = 94;
+    public static final int opc_swap                     = 95;
+    public static final int opc_iadd                     = 96;
+    public static final int opc_ladd                     = 97;
+    public static final int opc_fadd                     = 98;
+    public static final int opc_dadd                     = 99;
+    public static final int opc_isub                     = 100;
+    public static final int opc_lsub                     = 101;
+    public static final int opc_fsub                     = 102;
+    public static final int opc_dsub                     = 103;
+    public static final int opc_imul                     = 104;
+    public static final int opc_lmul                     = 105;
+    public static final int opc_fmul                     = 106;
+    public static final int opc_dmul                     = 107;
+    public static final int opc_idiv                     = 108;
+    public static final int opc_ldiv                     = 109;
+    public static final int opc_fdiv                     = 110;
+    public static final int opc_ddiv                     = 111;
+    public static final int opc_irem                     = 112;
+    public static final int opc_lrem                     = 113;
+    public static final int opc_frem                     = 114;
+    public static final int opc_drem                     = 115;
+    public static final int opc_ineg                     = 116;
+    public static final int opc_lneg                     = 117;
+    public static final int opc_fneg                     = 118;
+    public static final int opc_dneg                     = 119;
+    public static final int opc_ishl                     = 120;
+    public static final int opc_lshl                     = 121;
+    public static final int opc_ishr                     = 122;
+    public static final int opc_lshr                     = 123;
+    public static final int opc_iushr                    = 124;
+    public static final int opc_lushr                    = 125;
+    public static final int opc_iand                     = 126;
+    public static final int opc_land                     = 127;
+    public static final int opc_ior                      = 128;
+    public static final int opc_lor                      = 129;
+    public static final int opc_ixor                     = 130;
+    public static final int opc_lxor                     = 131;
+    public static final int opc_iinc                     = 132;
+    public static final int opc_i2l                      = 133;
+    public static final int opc_i2f                      = 134;
+    public static final int opc_i2d                      = 135;
+    public static final int opc_l2i                      = 136;
+    public static final int opc_l2f                      = 137;
+    public static final int opc_l2d                      = 138;
+    public static final int opc_f2i                      = 139;
+    public static final int opc_f2l                      = 140;
+    public static final int opc_f2d                      = 141;
+    public static final int opc_d2i                      = 142;
+    public static final int opc_d2l                      = 143;
+    public static final int opc_d2f                      = 144;
+    public static final int opc_i2b                      = 145;
+    public static final int opc_int2byte                 = 145;
+    public static final int opc_i2c                      = 146;
+    public static final int opc_int2char                 = 146;
+    public static final int opc_i2s                      = 147;
+    public static final int opc_int2short                = 147;
+    public static final int opc_lcmp                     = 148;
+    public static final int opc_fcmpl                    = 149;
+    public static final int opc_fcmpg                    = 150;
+    public static final int opc_dcmpl                    = 151;
+    public static final int opc_dcmpg                    = 152;
+    public static final int opc_ifeq                     = 153;
+    public static final int opc_ifne                     = 154;
+    public static final int opc_iflt                     = 155;
+    public static final int opc_ifge                     = 156;
+    public static final int opc_ifgt                     = 157;
+    public static final int opc_ifle                     = 158;
+    public static final int opc_if_icmpeq                = 159;
+    public static final int opc_if_icmpne                = 160;
+    public static final int opc_if_icmplt                = 161;
+    public static final int opc_if_icmpge                = 162;
+    public static final int opc_if_icmpgt                = 163;
+    public static final int opc_if_icmple                = 164;
+    public static final int opc_if_acmpeq                = 165;
+    public static final int opc_if_acmpne                = 166;
+    public static final int opc_goto                     = 167;
+    public static final int opc_jsr                      = 168;
+    public static final int opc_ret                      = 169;
+    public static final int opc_tableswitch              = 170;
+    public static final int opc_lookupswitch             = 171;
+    public static final int opc_ireturn                  = 172;
+    public static final int opc_lreturn                  = 173;
+    public static final int opc_freturn                  = 174;
+    public static final int opc_dreturn                  = 175;
+    public static final int opc_areturn                  = 176;
+    public static final int opc_return                   = 177;
+    public static final int opc_getstatic                = 178;
+    public static final int opc_putstatic                = 179;
+    public static final int opc_getfield                 = 180;
+    public static final int opc_putfield                 = 181;
+    public static final int opc_invokevirtual            = 182;
+    public static final int opc_invokenonvirtual         = 183;
+    public static final int opc_invokespecial            = 183;
+    public static final int opc_invokestatic             = 184;
+    public static final int opc_invokeinterface          = 185;
+//    public static final int opc_xxxunusedxxx             = 186;
+    public static final int opc_new                      = 187;
+    public static final int opc_newarray                 = 188;
+    public static final int opc_anewarray                = 189;
+    public static final int opc_arraylength              = 190;
+    public static final int opc_athrow                   = 191;
+    public static final int opc_checkcast                = 192;
+    public static final int opc_instanceof               = 193;
+    public static final int opc_monitorenter             = 194;
+    public static final int opc_monitorexit              = 195;
+    public static final int opc_wide                     = 196;
+    public static final int opc_multianewarray           = 197;
+    public static final int opc_ifnull                   = 198;
+    public static final int opc_ifnonnull                = 199;
+    public static final int opc_goto_w                   = 200;
+    public static final int opc_jsr_w                    = 201;
+        /* Pseudo-instructions */
+    public static final int opc_bytecode                 = 203;
+    public static final int opc_try                      = 204;
+    public static final int opc_endtry                   = 205;
+    public static final int opc_catch                    = 206;
+    public static final int opc_var                      = 207;
+    public static final int opc_endvar                   = 208;
+    public static final int opc_localsmap                = 209;
+    public static final int opc_stackmap                 = 210;
+        /* PicoJava prefixes */
+    public static final int opc_nonpriv                  = 254;
+    public static final int opc_priv                     = 255;
+
+        /* Wide instructions */
+    public static final int opc_iload_w         = (opc_wide<<8)|opc_iload;
+    public static final int opc_lload_w         = (opc_wide<<8)|opc_lload;
+    public static final int opc_fload_w         = (opc_wide<<8)|opc_fload;
+    public static final int opc_dload_w         = (opc_wide<<8)|opc_dload;
+    public static final int opc_aload_w         = (opc_wide<<8)|opc_aload;
+    public static final int opc_istore_w        = (opc_wide<<8)|opc_istore;
+    public static final int opc_lstore_w        = (opc_wide<<8)|opc_lstore;
+    public static final int opc_fstore_w        = (opc_wide<<8)|opc_fstore;
+    public static final int opc_dstore_w        = (opc_wide<<8)|opc_dstore;
+    public static final int opc_astore_w        = (opc_wide<<8)|opc_astore;
+    public static final int opc_ret_w           = (opc_wide<<8)|opc_ret;
+    public static final int opc_iinc_w          = (opc_wide<<8)|opc_iinc;
+
+    /* Opcode Names */
+  public static final String opcNamesTab[] = {
+        "nop",
+        "aconst_null",
+        "iconst_m1",
+        "iconst_0",
+        "iconst_1",
+        "iconst_2",
+        "iconst_3",
+        "iconst_4",
+        "iconst_5",
+        "lconst_0",
+        "lconst_1",
+        "fconst_0",
+        "fconst_1",
+        "fconst_2",
+        "dconst_0",
+        "dconst_1",
+        "bipush",
+        "sipush",
+        "ldc",
+        "ldc_w",
+        "ldc2_w",
+        "iload",
+        "lload",
+        "fload",
+        "dload",
+        "aload",
+        "iload_0",
+        "iload_1",
+        "iload_2",
+        "iload_3",
+        "lload_0",
+        "lload_1",
+        "lload_2",
+        "lload_3",
+        "fload_0",
+        "fload_1",
+        "fload_2",
+        "fload_3",
+        "dload_0",
+        "dload_1",
+        "dload_2",
+        "dload_3",
+        "aload_0",
+        "aload_1",
+        "aload_2",
+        "aload_3",
+        "iaload",
+        "laload",
+        "faload",
+        "daload",
+        "aaload",
+        "baload",
+        "caload",
+        "saload",
+        "istore",
+        "lstore",
+        "fstore",
+        "dstore",
+        "astore",
+        "istore_0",
+        "istore_1",
+        "istore_2",
+        "istore_3",
+        "lstore_0",
+        "lstore_1",
+        "lstore_2",
+        "lstore_3",
+        "fstore_0",
+        "fstore_1",
+        "fstore_2",
+        "fstore_3",
+        "dstore_0",
+        "dstore_1",
+        "dstore_2",
+        "dstore_3",
+        "astore_0",
+        "astore_1",
+        "astore_2",
+        "astore_3",
+        "iastore",
+        "lastore",
+        "fastore",
+        "dastore",
+        "aastore",
+        "bastore",
+        "castore",
+        "sastore",
+        "pop",
+        "pop2",
+        "dup",
+        "dup_x1",
+        "dup_x2",
+        "dup2",
+        "dup2_x1",
+        "dup2_x2",
+        "swap",
+        "iadd",
+        "ladd",
+        "fadd",
+        "dadd",
+        "isub",
+        "lsub",
+        "fsub",
+        "dsub",
+        "imul",
+        "lmul",
+        "fmul",
+        "dmul",
+        "idiv",
+        "ldiv",
+        "fdiv",
+        "ddiv",
+        "irem",
+        "lrem",
+        "frem",
+        "drem",
+        "ineg",
+        "lneg",
+        "fneg",
+        "dneg",
+        "ishl",
+        "lshl",
+        "ishr",
+        "lshr",
+        "iushr",
+        "lushr",
+        "iand",
+        "land",
+        "ior",
+        "lor",
+        "ixor",
+        "lxor",
+        "iinc",
+        "i2l",
+        "i2f",
+        "i2d",
+        "l2i",
+        "l2f",
+        "l2d",
+        "f2i",
+        "f2l",
+        "f2d",
+        "d2i",
+        "d2l",
+        "d2f",
+        "i2b",
+        "i2c",
+        "i2s",
+        "lcmp",
+        "fcmpl",
+        "fcmpg",
+        "dcmpl",
+        "dcmpg",
+        "ifeq",
+        "ifne",
+        "iflt",
+        "ifge",
+        "ifgt",
+        "ifle",
+        "if_icmpeq",
+        "if_icmpne",
+        "if_icmplt",
+        "if_icmpge",
+        "if_icmpgt",
+        "if_icmple",
+        "if_acmpeq",
+        "if_acmpne",
+        "goto",
+        "jsr",
+        "ret",
+        "tableswitch",
+        "lookupswitch",
+        "ireturn",
+        "lreturn",
+        "freturn",
+        "dreturn",
+        "areturn",
+        "return",
+        "getstatic",
+        "putstatic",
+        "getfield",
+        "putfield",
+        "invokevirtual",
+        "invokespecial", //     was "invokenonvirtual",
+        "invokestatic",
+        "invokeinterface",
+        "bytecode 186", //"xxxunusedxxx",
+        "new",
+        "newarray",
+        "anewarray",
+        "arraylength",
+        "athrow",
+        "checkcast",
+        "instanceof",
+        "monitorenter",
+        "monitorexit",
+         null, // "wide",
+        "multianewarray",
+        "ifnull",
+        "ifnonnull",
+        "goto_w",
+        "jsr_w",
+        "bytecode 202", // "breakpoint",
+        "bytecode",
+        "try",
+        "endtry",
+        "catch",
+        "var",
+        "endvar",
+        "locals_map",
+        "stack_map"
+  };
+
+    /* Opcode Lengths */
+  public static final int opcLengthsTab[] = {
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        2,
+        3,
+        2,
+        3,
+        3,
+        2,
+        2,
+        2,
+        2,
+        2,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        2,
+        2,
+        2,
+        2,
+        2,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        3,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        2,
+        99,
+        99,
+        1,
+        1,
+        1,
+        1,
+        1,
+        1,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        3,
+        5,
+        0,
+        3,
+        2,
+        3,
+        1,
+        1,
+        3,
+        3,
+        1,
+        1,
+        0, // wide
+        4,
+        3,
+        3,
+        5,
+        5,
+        1,
+        1, 0, 0, 0, 0, 0 // pseudo
+  };
+
+}