abstract class sun.font.CMap
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.font.CMap
  super_class: java.lang.Object
{
  static final short ShiftJISEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final short GBKEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final short Big5Encoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final short WansungEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final short JohabEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final short MSUnicodeSurrogateEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final char noSuchChar;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65533

  static final int SHORTMASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  static final int INTMASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483647

  static final char[][] converterMaps;
    descriptor: [[C
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  char[] xlat;
    descriptor: [C
    flags: (0x0000) 

  public static final sun.font.CMap$NullCMapClass theNullCmap;
    descriptor: Lsun/font/CMap$NullCMapClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 135
            bipush 7
            anewarray char[]
            putstatic sun.font.CMap.converterMaps:[[C
         1: .line 1054
            new sun.font.CMap$NullCMapClass
            dup
            invokespecial sun.font.CMap$NullCMapClass.<init>:()V
            putstatic sun.font.CMap.theNullCmap:Lsun/font/CMap$NullCMapClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.font.CMap this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/font/CMap;

  static sun.font.CMap initialize(sun.font.TrueTypeFont);
    descriptor: (Lsun/font/TrueTypeFont;)Lsun/font/CMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=17, args_size=1
        start local 0 // sun.font.TrueTypeFont font
         0: .line 146
            aconst_null
            astore 1 /* cmap */
        start local 1 // sun.font.CMap cmap
         1: .line 148
            iconst_m1
            istore 4 /* encodingID */
        start local 4 // int encodingID
         2: .line 150
            iconst_0
            istore 5 /* three0 */
        start local 5 // int three0
         3: iconst_0
            istore 6 /* three1 */
        start local 6 // int three1
         4: iconst_0
            istore 7 /* three2 */
        start local 7 // int three2
         5: iconst_0
            istore 8 /* three3 */
        start local 8 // int three3
         6: iconst_0
            istore 9 /* three4 */
        start local 9 // int three4
         7: iconst_0
            istore 10 /* three5 */
        start local 10 // int three5
         8: .line 151
            iconst_0
            istore 11 /* three6 */
        start local 11 // int three6
         9: iconst_0
            istore 12 /* three10 */
        start local 12 // int three10
        10: .line 152
            iconst_0
            istore 13 /* threeStar */
        start local 13 // boolean threeStar
        11: .line 154
            aload 0 /* font */
            ldc 1668112752
            invokevirtual sun.font.TrueTypeFont.getTableBuffer:(I)Ljava/nio/ByteBuffer;
            astore 14 /* cmapBuffer */
        start local 14 // java.nio.ByteBuffer cmapBuffer
        12: .line 155
            aload 0 /* font */
            ldc 1668112752
            invokevirtual sun.font.TrueTypeFont.getTableSize:(I)I
            pop
        13: .line 156
            aload 14 /* cmapBuffer */
            iconst_2
            invokevirtual java.nio.ByteBuffer.getShort:(I)S
            istore 15 /* numberSubTables */
        start local 15 // short numberSubTables
        14: .line 159
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        15: goto 32
        16: .line 160
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
            aload 14 /* cmapBuffer */
            iload 16 /* i */
            bipush 8
            imul
            iconst_4
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        17: .line 161
            aload 14 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 3 /* platformID */
        start local 3 // int platformID
        18: .line 162
            iload 3 /* platformID */
            iconst_3
            if_icmpne 31
        19: .line 163
            iconst_1
            istore 13 /* threeStar */
        20: .line 164
            aload 14 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 4 /* encodingID */
        21: .line 165
            aload 14 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 2 /* offset */
        start local 2 // int offset
        22: .line 166
            iload 4 /* encodingID */
            tableswitch { // 0 - 10
                    0: 23
                    1: 24
                    2: 25
                    3: 26
                    4: 27
                    5: 28
                    6: 29
                    7: 31
                    8: 31
                    9: 31
                   10: 30
              default: 31
          }
        23: .line 167
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap int int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
            iload 2 /* offset */
            istore 5 /* three0 */
            goto 31
        24: .line 168
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 6 /* three1 */
            goto 31
        25: .line 169
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 7 /* three2 */
            goto 31
        26: .line 170
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 8 /* three3 */
            goto 31
        27: .line 171
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 9 /* three4 */
            goto 31
        28: .line 172
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 10 /* three5 */
            goto 31
        29: .line 173
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 11 /* three6 */
            goto 31
        30: .line 174
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 12 /* three10 */
        end local 2 // int offset
        31: .line 159
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
            iinc 16 /* i */ 1
        end local 3 // int platformID
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
        32: iload 16 /* i */
            iload 15 /* numberSubTables */
            if_icmplt 16
        end local 16 // int i
        33: .line 180
            iload 13 /* threeStar */
            ifeq 85
        34: .line 181
            iload 12 /* three10 */
            ifeq 37
        35: .line 182
            aload 14 /* cmapBuffer */
            iload 12 /* three10 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        36: .line 183
            goto 86
        37: .line 184
      StackMap locals:
      StackMap stack:
            iload 5 /* three0 */
            ifeq 40
        38: .line 214
            aload 14 /* cmapBuffer */
            iload 5 /* three0 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        39: .line 216
            goto 86
        40: .line 217
      StackMap locals:
      StackMap stack:
            iload 6 /* three1 */
            ifeq 43
        41: .line 218
            aload 14 /* cmapBuffer */
            iload 6 /* three1 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        42: .line 219
            goto 86
        43: .line 220
      StackMap locals:
      StackMap stack:
            iload 7 /* three2 */
            ifeq 48
        44: .line 221
            aload 14 /* cmapBuffer */
            iload 7 /* three2 */
        45: .line 222
            iconst_2
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        46: .line 221
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        47: .line 223
            goto 86
        48: .line 224
      StackMap locals:
      StackMap stack:
            iload 8 /* three3 */
            ifeq 53
        49: .line 225
            aload 14 /* cmapBuffer */
            iload 8 /* three3 */
        50: .line 226
            iconst_3
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        51: .line 225
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        52: .line 227
            goto 86
        53: .line 228
      StackMap locals:
      StackMap stack:
            iload 9 /* three4 */
            ifeq 75
        54: .line 235
            getstatic sun.font.FontUtilities.isSolaris:Z
            ifeq 71
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
            ifnull 71
        55: .line 236
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        56: .line 237
            ldc "/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType"
        57: .line 236
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        58: .line 237
            ifne 67
        59: .line 238
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        60: .line 239
            ldc "/usr/openwin/lib/locale/zh_CN/X11/fonts/TrueType"
        61: .line 238
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        62: .line 239
            ifne 67
        63: .line 240
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        64: .line 241
            ldc "/usr/openwin/lib/locale/zh/X11/fonts/TrueType"
        65: .line 240
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        66: .line 241
            ifeq 71
        67: .line 242
      StackMap locals:
      StackMap stack:
            aload 14 /* cmapBuffer */
            iload 9 /* three4 */
        68: .line 243
            iconst_3
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        69: .line 242
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        70: .line 244
            goto 86
        71: .line 246
      StackMap locals:
      StackMap stack:
            aload 14 /* cmapBuffer */
            iload 9 /* three4 */
        72: .line 247
            iconst_4
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        73: .line 246
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        74: .line 249
            goto 86
        75: .line 250
      StackMap locals:
      StackMap stack:
            iload 10 /* three5 */
            ifeq 80
        76: .line 251
            aload 14 /* cmapBuffer */
            iload 10 /* three5 */
        77: .line 252
            iconst_5
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        78: .line 251
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        79: .line 253
            goto 86
        80: .line 254
      StackMap locals:
      StackMap stack:
            iload 11 /* three6 */
            ifeq 86
        81: .line 255
            aload 14 /* cmapBuffer */
            iload 11 /* three6 */
        82: .line 256
            bipush 6
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        83: .line 255
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        84: .line 258
            goto 86
        85: .line 263
      StackMap locals:
      StackMap stack:
            aload 14 /* cmapBuffer */
            aload 14 /* cmapBuffer */
            bipush 8
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        86: .line 265
      StackMap locals:
      StackMap stack:
            aload 1 /* cmap */
            areturn
        end local 15 // short numberSubTables
        end local 14 // java.nio.ByteBuffer cmapBuffer
        end local 13 // boolean threeStar
        end local 12 // int three10
        end local 11 // int three6
        end local 10 // int three5
        end local 9 // int three4
        end local 8 // int three3
        end local 7 // int three2
        end local 6 // int three1
        end local 5 // int three0
        end local 4 // int encodingID
        end local 1 // sun.font.CMap cmap
        end local 0 // sun.font.TrueTypeFont font
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   87     0             font  Lsun/font/TrueTypeFont;
            1   87     1             cmap  Lsun/font/CMap;
           22   31     2           offset  I
           18   32     3       platformID  I
            2   87     4       encodingID  I
            3   87     5           three0  I
            4   87     6           three1  I
            5   87     7           three2  I
            6   87     8           three3  I
            7   87     9           three4  I
            8   87    10           three5  I
            9   87    11           three6  I
           10   87    12          three10  I
           11   87    13        threeStar  Z
           12   87    14       cmapBuffer  Ljava/nio/ByteBuffer;
           14   87    15  numberSubTables  S
           15   33    16                i  I
    MethodParameters:
      Name  Flags
      font  

  static char[] getConverter(short);
    descriptor: (S)[C
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // short encodingID
         0: .line 272
            ldc 32768
            istore 1 /* dBegin */
        start local 1 // int dBegin
         1: .line 273
            ldc 65535
            istore 2 /* dEnd */
        start local 2 // int dEnd
         2: .line 276
            iload 0 /* encodingID */
            tableswitch { // 2 - 6
                    2: 3
                    3: 7
                    4: 11
                    5: 15
                    6: 19
              default: 23
          }
         3: .line 278
      StackMap locals: int int
      StackMap stack:
            ldc 33088
            istore 1 /* dBegin */
         4: .line 279
            ldc 64764
            istore 2 /* dEnd */
         5: .line 280
            ldc "SJIS"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
         6: .line 281
            goto 24
        end local 3 // java.lang.String encoding
         7: .line 283
      StackMap locals:
      StackMap stack:
            ldc 33088
            istore 1 /* dBegin */
         8: .line 284
            ldc 65184
            istore 2 /* dEnd */
         9: .line 285
            ldc "GBK"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        10: .line 286
            goto 24
        end local 3 // java.lang.String encoding
        11: .line 288
      StackMap locals:
      StackMap stack:
            ldc 41280
            istore 1 /* dBegin */
        12: .line 289
            ldc 65278
            istore 2 /* dEnd */
        13: .line 290
            ldc "Big5"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        14: .line 291
            goto 24
        end local 3 // java.lang.String encoding
        15: .line 293
      StackMap locals:
      StackMap stack:
            ldc 41377
            istore 1 /* dBegin */
        16: .line 294
            ldc 65246
            istore 2 /* dEnd */
        17: .line 295
            ldc "EUC_KR"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        18: .line 296
            goto 24
        end local 3 // java.lang.String encoding
        19: .line 298
      StackMap locals:
      StackMap stack:
            ldc 33089
            istore 1 /* dBegin */
        20: .line 299
            ldc 65022
            istore 2 /* dEnd */
        21: .line 300
            ldc "Johab"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        22: .line 301
            goto 24
        end local 3 // java.lang.String encoding
        23: .line 303
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 3 // java.lang.String encoding
        24: .line 307
      StackMap locals: java.lang.String
      StackMap stack:
            ldc 65536
            newarray 5
            astore 4 /* convertedChars */
        start local 4 // char[] convertedChars
        25: .line 308
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        26: goto 29
        27: .line 309
      StackMap locals: char[] int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 5 /* i */
            ldc 65533
            castore
        28: .line 308
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 5 /* i */
            ldc 65536
            if_icmplt 27
        end local 5 // int i
        30: .line 312
            iload 2 /* dEnd */
            iload 1 /* dBegin */
            isub
            iconst_1
            iadd
            iconst_2
            imul
            newarray 8
            astore 5 /* inputBytes */
        start local 5 // byte[] inputBytes
        31: .line 313
            iload 2 /* dEnd */
            iload 1 /* dBegin */
            isub
            iconst_1
            iadd
            newarray 5
            astore 6 /* outputChars */
        start local 6 // char[] outputChars
        32: .line 315
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        33: .line 317
            iload 0 /* encodingID */
            iconst_2
            if_icmpne 46
        34: .line 318
            iload 1 /* dBegin */
            istore 9 /* i */
        start local 9 // int i
        35: goto 44
        36: .line 319
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            iload 9 /* i */
            bipush 8
            ishr
            sipush 255
            iand
            istore 8 /* firstByte */
        start local 8 // int firstByte
        37: .line 320
            iload 8 /* firstByte */
            sipush 161
            if_icmplt 41
            iload 8 /* firstByte */
            sipush 223
            if_icmpgt 41
        38: .line 322
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iconst_m1
            bastore
        39: .line 323
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iconst_m1
            bastore
        40: .line 324
            goto 43
        41: .line 325
      StackMap locals: int int int java.lang.String char[] byte[] char[] int int int
      StackMap stack:
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 8 /* firstByte */
            i2b
            bastore
        42: .line 326
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            sipush 255
            iand
            i2b
            bastore
        43: .line 318
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 8 // int firstByte
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
        44: iload 9 /* i */
            iload 2 /* dEnd */
            if_icmple 36
        end local 9 // int i
        45: .line 329
            goto 52
        46: .line 330
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            iload 1 /* dBegin */
            istore 9 /* i */
        start local 9 // int i
        47: goto 51
        48: .line 331
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            bastore
        49: .line 332
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            sipush 255
            iand
            i2b
            bastore
        50: .line 330
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 9 /* i */
            iload 2 /* dEnd */
            if_icmple 48
        end local 9 // int i
        52: .line 336
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            aload 3 /* encoding */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
        53: .line 337
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        54: .line 338
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        55: .line 339
            ldc "\u0000"
            invokevirtual java.nio.charset.CharsetDecoder.replaceWith:(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
        56: .line 340
            aload 5 /* inputBytes */
            iconst_0
            aload 5 /* inputBytes */
            arraylength
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
        57: .line 341
            aload 6 /* outputChars */
            iconst_0
            aload 6 /* outputChars */
            arraylength
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
        58: .line 342
            iconst_1
        59: .line 340
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            pop
        60: .line 345
            bipush 32
            istore 9 /* i */
        start local 9 // int i
        61: goto 64
        62: .line 346
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 9 /* i */
            iload 9 /* i */
            i2c
            castore
        63: .line 345
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 9 /* i */
            bipush 126
            if_icmple 62
        end local 9 // int i
        65: .line 350
            iload 0 /* encodingID */
            iconst_2
            if_icmpne 71
        66: .line 351
            sipush 161
            istore 9 /* i */
        start local 9 // int i
        67: goto 70
        68: .line 352
      StackMap locals:
      StackMap stack:
            aload 4 /* convertedChars */
            iload 9 /* i */
            iload 9 /* i */
            sipush 161
            isub
            ldc 65377
            iadd
            i2c
            castore
        69: .line 351
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 9 /* i */
            sipush 223
            if_icmple 68
        end local 9 // int i
        71: .line 364
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            aload 6 /* outputChars */
            iconst_0
            aload 4 /* convertedChars */
            iload 1 /* dBegin */
        72: .line 365
            aload 6 /* outputChars */
            arraylength
        73: .line 364
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        74: .line 371
            ldc 65536
            newarray 5
            astore 9 /* invertedChars */
        start local 9 // char[] invertedChars
        75: .line 372
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        76: goto 80
        77: .line 373
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top char[] int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 10 /* i */
            caload
            ldc 65533
            if_icmpeq 79
        78: .line 374
            aload 9 /* invertedChars */
            aload 4 /* convertedChars */
            iload 10 /* i */
            caload
            iload 10 /* i */
            i2c
            castore
        79: .line 372
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 10 /* i */
            ldc 65536
            if_icmplt 77
        end local 10 // int i
        81: .line 377
            aload 9 /* invertedChars */
        82: areturn
        end local 9 // char[] invertedChars
        end local 7 // int j
        end local 6 // char[] outputChars
        end local 5 // byte[] inputBytes
        end local 4 // char[] convertedChars
        83: .line 379
      StackMap locals: int int int java.lang.String
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        84: .line 380
            aload 4 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 4 // java.lang.Exception e
        85: .line 382
            aconst_null
            areturn
        end local 3 // java.lang.String encoding
        end local 2 // int dEnd
        end local 1 // int dBegin
        end local 0 // short encodingID
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   86     0      encodingID  S
            1   86     1          dBegin  I
            2   86     2            dEnd  I
            6    7     3        encoding  Ljava/lang/String;
           10   11     3        encoding  Ljava/lang/String;
           14   15     3        encoding  Ljava/lang/String;
           18   19     3        encoding  Ljava/lang/String;
           22   23     3        encoding  Ljava/lang/String;
           24   86     3        encoding  Ljava/lang/String;
           25   83     4  convertedChars  [C
           26   30     5               i  I
           31   83     5      inputBytes  [B
           32   83     6     outputChars  [C
           33   83     7               j  I
           37   44     8       firstByte  I
           35   45     9               i  I
           47   52     9               i  I
           61   65     9               i  I
           67   71     9               i  I
           75   83     9   invertedChars  [C
           76   81    10               i  I
           84   85     4               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          24    82      83  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      encodingID  

  static char[] getConverterMap(short);
    descriptor: (S)[C
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // short encodingID
         0: .line 391
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            aaload
            ifnonnull 2
         1: .line 392
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            iload 0 /* encodingID */
            invokestatic sun.font.CMap.getConverter:(S)[C
            aastore
         2: .line 394
      StackMap locals:
      StackMap stack:
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            aaload
            areturn
        end local 0 // short encodingID
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  encodingID  S
    MethodParameters:
            Name  Flags
      encodingID  

  static sun.font.CMap createCMap(java.nio.ByteBuffer, int, char[]);
    descriptor: (Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.nio.ByteBuffer buffer
        start local 1 // int offset
        start local 2 // char[] xlat
         0: .line 402
            aload 0 /* buffer */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            istore 3 /* subtableFormat */
        start local 3 // int subtableFormat
         1: .line 404
            iload 3 /* subtableFormat */
            bipush 8
            if_icmpge 4
         2: .line 405
            aload 0 /* buffer */
            iload 1 /* offset */
            iconst_2
            iadd
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            i2l
            lstore 4 /* subtableLength */
        start local 4 // long subtableLength
         3: .line 406
            goto 5
        end local 4 // long subtableLength
         4: .line 407
      StackMap locals: int
      StackMap stack:
            aload 0 /* buffer */
            iload 1 /* offset */
            iconst_4
            iadd
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            ldc 2147483647
            iand
            i2l
            lstore 4 /* subtableLength */
        start local 4 // long subtableLength
         5: .line 409
      StackMap locals: long
      StackMap stack:
            iload 1 /* offset */
            i2l
            lload 4 /* subtableLength */
            ladd
            aload 0 /* buffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            i2l
            lcmp
            ifle 8
         6: .line 410
            invokestatic sun.font.FontUtilities.isLogging:()Z
            ifeq 8
         7: .line 411
            invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
            ldc "Cmap subtable overflows buffer."
            invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
         8: .line 414
      StackMap locals:
      StackMap stack:
            iload 3 /* subtableFormat */
            tableswitch { // 0 - 12
                    0: 9
                    1: 16
                    2: 10
                    3: 16
                    4: 11
                    5: 16
                    6: 12
                    7: 16
                    8: 13
                    9: 16
                   10: 14
                   11: 16
                   12: 15
              default: 16
          }
         9: .line 415
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat0
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            invokespecial sun.font.CMap$CMapFormat0.<init>:(Ljava/nio/ByteBuffer;I)V
            areturn
        10: .line 416
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat2
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat2.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        11: .line 417
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat4
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat4.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        12: .line 418
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat6
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat6.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        13: .line 419
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat8
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat8.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        14: .line 420
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat10
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat10.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        15: .line 421
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat12
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat12.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        16: .line 422
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cmap format unimplemented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 423
            aload 0 /* buffer */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 422
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // long subtableLength
        end local 3 // int subtableFormat
        end local 2 // char[] xlat
        end local 1 // int offset
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0          buffer  Ljava/nio/ByteBuffer;
            0   19     1          offset  I
            0   19     2            xlat  [C
            1   19     3  subtableFormat  I
            3    4     4  subtableLength  J
            5   19     4  subtableLength  J
    MethodParameters:
        Name  Flags
      buffer  
      offset  
      xlat    

  abstract char getGlyph(int);
    descriptor: (I)C
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      charCode  

  final int getControlCodeGlyph(int, boolean);
    descriptor: (IZ)I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.font.CMap this
        start local 1 // int charCode
        start local 2 // boolean noSurrogates
         0: .line 1057
            iload 1 /* charCode */
            bipush 16
            if_icmpge 4
         1: .line 1058
            iload 1 /* charCode */
            tableswitch { // 9 - 13
                    9: 2
                   10: 2
                   11: 3
                   12: 3
                   13: 2
              default: 3
          }
         2: .line 1061
      StackMap locals:
      StackMap stack:
            ldc 65535
            ireturn
         3: .line 1063
      StackMap locals:
      StackMap stack:
            goto 11
      StackMap locals:
      StackMap stack:
         4: iload 1 /* charCode */
            sipush 8204
            if_icmplt 11
         5: .line 1064
            iload 1 /* charCode */
            sipush 8207
            if_icmple 8
         6: .line 1065
            iload 1 /* charCode */
            sipush 8232
            if_icmplt 7
            iload 1 /* charCode */
            sipush 8238
            if_icmple 8
         7: .line 1066
      StackMap locals:
      StackMap stack:
            iload 1 /* charCode */
            sipush 8298
            if_icmplt 9
            iload 1 /* charCode */
            sipush 8303
            if_icmpgt 9
         8: .line 1067
      StackMap locals:
      StackMap stack:
            ldc 65535
            ireturn
         9: .line 1068
      StackMap locals:
      StackMap stack:
            iload 2 /* noSurrogates */
            ifeq 11
            iload 1 /* charCode */
            ldc 65535
            if_icmplt 11
        10: .line 1069
            iconst_0
            ireturn
        11: .line 1072
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // boolean noSurrogates
        end local 1 // int charCode
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lsun/font/CMap;
            0   12     1      charCode  I
            0   12     2  noSurrogates  Z
    MethodParameters:
              Name  Flags
      charCode      
      noSurrogates  
}
SourceFile: "CMap.java"
NestMembers:
  sun.font.CMap$CMapFormat0  sun.font.CMap$CMapFormat10  sun.font.CMap$CMapFormat12  sun.font.CMap$CMapFormat2  sun.font.CMap$CMapFormat4  sun.font.CMap$CMapFormat6  sun.font.CMap$CMapFormat8  sun.font.CMap$NullCMapClass
InnerClasses:
  CMapFormat0 = sun.font.CMap$CMapFormat0 of sun.font.CMap
  CMapFormat10 = sun.font.CMap$CMapFormat10 of sun.font.CMap
  CMapFormat12 = sun.font.CMap$CMapFormat12 of sun.font.CMap
  CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap
  CMapFormat4 = sun.font.CMap$CMapFormat4 of sun.font.CMap
  CMapFormat6 = sun.font.CMap$CMapFormat6 of sun.font.CMap
  CMapFormat8 = sun.font.CMap$CMapFormat8 of sun.font.CMap
  NullCMapClass = sun.font.CMap$NullCMapClass of sun.font.CMap