public class sun.font.NativeFont extends sun.font.PhysicalFont
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.font.NativeFont
  super_class: sun.font.PhysicalFont
{
  java.lang.String encoding;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private int numGlyphs;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  boolean isBitmapDelegate;
    descriptor: Z
    flags: (0x0000) 

  sun.font.PhysicalFont delegateFont;
    descriptor: Lsun/font/PhysicalFont;
    flags: (0x0000) 

  public void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.font.NativeFont this
        start local 1 // java.lang.String platName
        start local 2 // boolean bitmapDelegate
         0: .line 71
            aload 0 /* this */
            aload 1 /* platName */
            aconst_null
            invokespecial sun.font.PhysicalFont.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 61
            aload 0 /* this */
            iconst_m1
            putfield sun.font.NativeFont.numGlyphs:I
         2: .line 83
            aload 0 /* this */
            iload 2 /* bitmapDelegate */
            putfield sun.font.NativeFont.isBitmapDelegate:Z
         3: .line 85
            invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
            ifeq 5
         4: .line 86
            new java.awt.FontFormatException
            dup
            ldc "Native font in headless toolkit"
            invokespecial java.awt.FontFormatException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 88
      StackMap locals: sun.font.NativeFont java.lang.String int
      StackMap stack:
            aload 0 /* this */
            iconst_5
            putfield sun.font.NativeFont.fontRank:I
         6: .line 89
            aload 0 /* this */
            invokevirtual sun.font.NativeFont.initNames:()V
         7: .line 90
            aload 0 /* this */
            invokevirtual sun.font.NativeFont.getNumGlyphs:()I
            ifne 9
         8: .line 91
            new java.awt.FontFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't locate font"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* platName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.awt.FontFormatException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 93
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean bitmapDelegate
        end local 1 // java.lang.String platName
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lsun/font/NativeFont;
            0   10     1        platName  Ljava/lang/String;
            0   10     2  bitmapDelegate  Z
    Exceptions:
      throws java.awt.FontFormatException
    MethodParameters:
                Name  Flags
      platName        
      bitmapDelegate  

  private void initNames();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // sun.font.NativeFont this
         0: .line 101
            bipush 14
            newarray 10
            astore 1 /* hPos */
        start local 1 // int[] hPos
         1: .line 102
            iconst_1
            istore 2 /* hyphenCnt */
        start local 2 // int hyphenCnt
         2: .line 103
            iconst_1
            istore 3 /* pos */
        start local 3 // int pos
         3: .line 105
            aload 0 /* this */
            getfield sun.font.NativeFont.platName:Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 4 /* xlfd */
        start local 4 // java.lang.String xlfd
         4: .line 106
            aload 4 /* xlfd */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 11
         5: .line 107
            goto 10
         6: .line 108
      StackMap locals: sun.font.NativeFont int[] int int java.lang.String
      StackMap stack:
            aload 4 /* xlfd */
            bipush 45
            iload 3 /* pos */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* pos */
         7: .line 109
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 10
         8: .line 110
            aload 1 /* hPos */
            iload 2 /* hyphenCnt */
            iinc 2 /* hyphenCnt */ 1
            iload 3 /* pos */
            iastore
         9: .line 111
            iinc 3 /* pos */ 1
        10: .line 107
      StackMap locals:
      StackMap stack:
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 11
            iload 2 /* hyphenCnt */
            bipush 14
            if_icmplt 6
        11: .line 116
      StackMap locals:
      StackMap stack:
            iload 2 /* hyphenCnt */
            bipush 14
            if_icmpne 62
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 62
        12: .line 119
            aload 4 /* xlfd */
            aload 1 /* hPos */
            iconst_1
            iaload
            iconst_1
            iadd
            aload 1 /* hPos */
            iconst_2
            iaload
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* tmpFamily */
        start local 5 // java.lang.String tmpFamily
        13: .line 120
            new java.lang.StringBuilder
            dup
            aload 5 /* tmpFamily */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 6 /* sBuffer */
        start local 6 // java.lang.StringBuilder sBuffer
        14: .line 121
            aload 6 /* sBuffer */
            iconst_0
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            invokestatic java.lang.Character.toUpperCase:(C)C
            istore 7 /* ch */
        start local 7 // char ch
        15: .line 122
            aload 6 /* sBuffer */
            iconst_0
            iconst_1
            iload 7 /* ch */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 123
            iconst_1
            istore 8 /* i */
        start local 8 // int i
        17: goto 22
        18: .line 124
      StackMap locals: sun.font.NativeFont int[] int int java.lang.String java.lang.String java.lang.StringBuilder int int
      StackMap stack:
            aload 6 /* sBuffer */
            iload 8 /* i */
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 32
            if_icmpne 21
        19: .line 125
            aload 6 /* sBuffer */
            iload 8 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            invokestatic java.lang.Character.toUpperCase:(C)C
            istore 7 /* ch */
        20: .line 126
            aload 6 /* sBuffer */
            iload 8 /* i */
            iconst_1
            iadd
            iload 8 /* i */
            iconst_2
            iadd
            iload 7 /* ch */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 123
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            aload 6 /* sBuffer */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            if_icmplt 18
        end local 8 // int i
        23: .line 129
            aload 0 /* this */
            aload 6 /* sBuffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield sun.font.NativeFont.familyName:Ljava/lang/String;
        24: .line 131
            aload 4 /* xlfd */
            aload 1 /* hPos */
            iconst_2
            iaload
            iconst_1
            iadd
            aload 1 /* hPos */
            iconst_3
            iaload
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* tmpWeight */
        start local 8 // java.lang.String tmpWeight
        25: .line 132
            aload 4 /* xlfd */
            aload 1 /* hPos */
            iconst_3
            iaload
            iconst_1
            iadd
            aload 1 /* hPos */
            iconst_4
            iaload
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* tmpSlant */
        start local 9 // java.lang.String tmpSlant
        26: .line 134
            aconst_null
            astore 10 /* styleStr */
        start local 10 // java.lang.String styleStr
        27: .line 136
            aload 8 /* tmpWeight */
            ldc "bold"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            ifge 29
        28: .line 137
            aload 8 /* tmpWeight */
            ldc "demi"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 31
        29: .line 138
      StackMap locals: sun.font.NativeFont int[] int int java.lang.String java.lang.String java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.font.NativeFont.style:I
            iconst_1
            ior
            putfield sun.font.NativeFont.style:I
        30: .line 139
            ldc "Bold"
            astore 10 /* styleStr */
        31: .line 142
      StackMap locals:
      StackMap stack:
            aload 9 /* tmpSlant */
            ldc "i"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
        32: .line 143
            aload 9 /* tmpSlant */
            ldc "italic"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 39
        33: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.font.NativeFont.style:I
            iconst_2
            ior
            putfield sun.font.NativeFont.style:I
        34: .line 146
            aload 10 /* styleStr */
            ifnonnull 37
        35: .line 147
            ldc "Italic"
            astore 10 /* styleStr */
        36: .line 148
            goto 46
        37: .line 149
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 10 /* styleStr */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Italic"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* styleStr */
        38: .line 151
            goto 46
        39: .line 152
      StackMap locals:
      StackMap stack:
            aload 9 /* tmpSlant */
            ldc "o"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
        40: .line 153
            aload 9 /* tmpSlant */
            ldc "oblique"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 46
        41: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.font.NativeFont.style:I
            iconst_2
            ior
            putfield sun.font.NativeFont.style:I
        42: .line 155
            aload 10 /* styleStr */
            ifnonnull 45
        43: .line 156
            ldc "Oblique"
            astore 10 /* styleStr */
        44: .line 157
            goto 46
        45: .line 158
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 10 /* styleStr */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Oblique"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* styleStr */
        46: .line 162
      StackMap locals:
      StackMap stack:
            aload 10 /* styleStr */
            ifnonnull 49
        47: .line 163
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.NativeFont.familyName:Ljava/lang/String;
            putfield sun.font.NativeFont.fullName:Ljava/lang/String;
        48: .line 164
            goto 50
        49: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.font.NativeFont.familyName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* styleStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield sun.font.NativeFont.fullName:Ljava/lang/String;
        50: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* xlfd */
            aload 1 /* hPos */
            bipush 12
            iaload
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield sun.font.NativeFont.encoding:Ljava/lang/String;
        51: .line 169
            aload 0 /* this */
            getfield sun.font.NativeFont.encoding:Ljava/lang/String;
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 53
        52: .line 170
            aload 0 /* this */
            aload 4 /* xlfd */
            aload 1 /* hPos */
            bipush 13
            iaload
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield sun.font.NativeFont.encoding:Ljava/lang/String;
        53: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.encoding:Ljava/lang/String;
            ldc "fontspecific"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 63
        54: .line 173
            aload 5 /* tmpFamily */
            ldc "dingbats"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 57
        55: .line 174
            aload 0 /* this */
            ldc "dingbats"
            putfield sun.font.NativeFont.encoding:Ljava/lang/String;
        56: .line 175
            goto 63
      StackMap locals:
      StackMap stack:
        57: aload 5 /* tmpFamily */
            ldc "symbol"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 60
        58: .line 176
            aload 0 /* this */
            ldc "symbol"
            putfield sun.font.NativeFont.encoding:Ljava/lang/String;
        59: .line 177
            goto 63
        60: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "iso8859-1"
            putfield sun.font.NativeFont.encoding:Ljava/lang/String;
        end local 10 // java.lang.String styleStr
        end local 9 // java.lang.String tmpSlant
        end local 8 // java.lang.String tmpWeight
        end local 7 // char ch
        end local 6 // java.lang.StringBuilder sBuffer
        end local 5 // java.lang.String tmpFamily
        61: .line 181
            goto 63
        62: .line 182
      StackMap locals: sun.font.NativeFont int[] int int java.lang.String
      StackMap stack:
            new java.awt.FontFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad native name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.font.NativeFont.platName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.awt.FontFormatException.<init>:(Ljava/lang/String;)V
            athrow
        63: .line 188
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String xlfd
        end local 3 // int pos
        end local 2 // int hyphenCnt
        end local 1 // int[] hPos
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   64     0       this  Lsun/font/NativeFont;
            1   64     1       hPos  [I
            2   64     2  hyphenCnt  I
            3   64     3        pos  I
            4   64     4       xlfd  Ljava/lang/String;
           13   61     5  tmpFamily  Ljava/lang/String;
           14   61     6    sBuffer  Ljava/lang/StringBuilder;
           15   61     7         ch  C
           17   23     8          i  I
           25   61     8  tmpWeight  Ljava/lang/String;
           26   61     9   tmpSlant  Ljava/lang/String;
           27   61    10   styleStr  Ljava/lang/String;
    Exceptions:
      throws java.awt.FontFormatException

  static boolean hasExternalBitmaps(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String platName
         0: .line 209
            new java.lang.StringBuilder
            dup
            aload 0 /* platName */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 210
            aload 1 /* sb */
            ldc "-0-"
            invokevirtual java.lang.StringBuilder.indexOf:(Ljava/lang/String;)I
            istore 2 /* pos */
        start local 2 // int pos
         2: .line 211
            goto 5
         3: .line 212
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* pos */
            iconst_1
            iadd
            iload 2 /* pos */
            iconst_2
            iadd
            ldc "*"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 213
            aload 1 /* sb */
            ldc "-0-"
            iload 2 /* pos */
            invokevirtual java.lang.StringBuilder.indexOf:(Ljava/lang/String;I)I
            istore 2 /* pos */
         5: .line 211
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            ifge 3
         6: .line 215
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* xlfd */
        start local 3 // java.lang.String xlfd
         7: .line 216
            aconst_null
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         8: .line 218
            aload 3 /* xlfd */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 4 /* bytes */
         9: .line 219
            goto 12
      StackMap locals: java.lang.String java.lang.StringBuilder int java.lang.String byte[]
      StackMap stack: java.io.UnsupportedEncodingException
        10: pop
        11: .line 220
            aload 3 /* xlfd */
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* bytes */
        12: .line 222
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            invokestatic sun.font.NativeFont.haveBitmapFonts:([B)Z
            ireturn
        end local 4 // byte[] bytes
        end local 3 // java.lang.String xlfd
        end local 2 // int pos
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String platName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0  platName  Ljava/lang/String;
            1   13     1        sb  Ljava/lang/StringBuilder;
            2   13     2       pos  I
            7   13     3      xlfd  Ljava/lang/String;
            8   13     4     bytes  [B
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      platName  

  public static boolean fontExists(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String xlfd
         0: .line 226
            aconst_null
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         1: .line 228
            aload 0 /* xlfd */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 1 /* bytes */
         2: .line 229
            goto 5
      StackMap locals: java.lang.String byte[]
      StackMap stack: java.io.UnsupportedEncodingException
         3: pop
         4: .line 230
            aload 0 /* xlfd */
            invokevirtual java.lang.String.getBytes:()[B
            astore 1 /* bytes */
         5: .line 232
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            invokestatic sun.font.NativeFont.fontExists:([B)Z
            ireturn
        end local 1 // byte[] bytes
        end local 0 // java.lang.String xlfd
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   xlfd  Ljava/lang/String;
            1    6     1  bytes  [B
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      xlfd  

  private static native boolean haveBitmapFonts(byte[]);
    descriptor: ([B)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      xlfd  

  private static native boolean fontExists(byte[]);
    descriptor: ([B)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      xlfd  

  public sun.font.CharToGlyphMapper getMapper();
    descriptor: ()Lsun/font/CharToGlyphMapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.font.NativeFont this
         0: .line 239
            aload 0 /* this */
            getfield sun.font.NativeFont.mapper:Lsun/font/CharToGlyphMapper;
            ifnonnull 7
         1: .line 240
            aload 0 /* this */
            getfield sun.font.NativeFont.isBitmapDelegate:Z
            ifeq 4
         2: .line 242
            aload 0 /* this */
            new sun.font.NativeGlyphMapper
            dup
            aload 0 /* this */
            invokespecial sun.font.NativeGlyphMapper.<init>:(Lsun/font/NativeFont;)V
            putfield sun.font.NativeFont.mapper:Lsun/font/CharToGlyphMapper;
         3: .line 243
            goto 7
         4: .line 245
      StackMap locals:
      StackMap stack:
            invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
            astore 1 /* fm */
        start local 1 // sun.font.SunFontManager fm
         5: .line 246
            aload 0 /* this */
            aload 1 /* fm */
            invokevirtual sun.font.SunFontManager.getDefaultPhysicalFont:()Lsun/font/PhysicalFont;
            putfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
         6: .line 247
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            invokevirtual sun.font.PhysicalFont.getMapper:()Lsun/font/CharToGlyphMapper;
            putfield sun.font.NativeFont.mapper:Lsun/font/CharToGlyphMapper;
        end local 1 // sun.font.SunFontManager fm
         7: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.mapper:Lsun/font/CharToGlyphMapper;
            areturn
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/font/NativeFont;
            5    7     1    fm  Lsun/font/SunFontManager;

  sun.font.FontStrike createStrike(sun.font.FontStrikeDesc);
    descriptor: (Lsun/font/FontStrikeDesc;)Lsun/font/FontStrike;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.font.NativeFont this
        start local 1 // sun.font.FontStrikeDesc desc
         0: .line 254
            aload 0 /* this */
            getfield sun.font.NativeFont.isBitmapDelegate:Z
            ifeq 2
         1: .line 255
            new sun.font.NativeStrike
            dup
            aload 0 /* this */
            aload 1 /* desc */
            invokespecial sun.font.NativeStrike.<init>:(Lsun/font/NativeFont;Lsun/font/FontStrikeDesc;)V
            areturn
         2: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            ifnonnull 5
         3: .line 258
            invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
            astore 2 /* fm */
        start local 2 // sun.font.SunFontManager fm
         4: .line 259
            aload 0 /* this */
            aload 2 /* fm */
            invokevirtual sun.font.SunFontManager.getDefaultPhysicalFont:()Lsun/font/PhysicalFont;
            putfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
        end local 2 // sun.font.SunFontManager fm
         5: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            instanceof sun.font.NativeFont
            ifeq 7
         6: .line 265
            new sun.font.NativeStrike
            dup
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            checkcast sun.font.NativeFont
            aload 1 /* desc */
            invokespecial sun.font.NativeStrike.<init>:(Lsun/font/NativeFont;Lsun/font/FontStrikeDesc;)V
            areturn
         7: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            aload 1 /* desc */
            invokevirtual sun.font.PhysicalFont.createStrike:(Lsun/font/FontStrikeDesc;)Lsun/font/FontStrike;
            astore 2 /* delegate */
        start local 2 // sun.font.FontStrike delegate
         8: .line 268
            new sun.font.DelegateStrike
            dup
            aload 0 /* this */
            aload 1 /* desc */
            aload 2 /* delegate */
            invokespecial sun.font.DelegateStrike.<init>:(Lsun/font/NativeFont;Lsun/font/FontStrikeDesc;Lsun/font/FontStrike;)V
            areturn
        end local 2 // sun.font.FontStrike delegate
        end local 1 // sun.font.FontStrikeDesc desc
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/font/NativeFont;
            0    9     1      desc  Lsun/font/FontStrikeDesc;
            4    5     2        fm  Lsun/font/SunFontManager;
            8    9     2  delegate  Lsun/font/FontStrike;
    MethodParameters:
      Name  Flags
      desc  

  public java.awt.geom.Rectangle2D getMaxCharBounds(java.awt.font.FontRenderContext);
    descriptor: (Ljava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.font.NativeFont this
        start local 1 // java.awt.font.FontRenderContext frc
         0: .line 273
            aconst_null
            areturn
        end local 1 // java.awt.font.FontRenderContext frc
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/font/NativeFont;
            0    1     1   frc  Ljava/awt/font/FontRenderContext;
    MethodParameters:
      Name  Flags
      frc   

  native sun.font.StrikeMetrics getFontMetrics(long);
    descriptor: (J)Lsun/font/StrikeMetrics;
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
                Name  Flags
      pScalerContext  

  native float getGlyphAdvance(long, int);
    descriptor: (JI)F
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
           Name  Flags
      pContext   
      glyphCode  

  java.awt.geom.Rectangle2D$Float getGlyphOutlineBounds(long, int);
    descriptor: (JI)Ljava/awt/geom/Rectangle2D$Float;
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // sun.font.NativeFont this
        start local 1 // long pScalerContext
        start local 3 // int glyphCode
         0: .line 282
            new java.awt.geom.Rectangle2D$Float
            dup
            fconst_0
            fconst_0
            fconst_0
            fconst_0
            invokespecial java.awt.geom.Rectangle2D$Float.<init>:(FFFF)V
            areturn
        end local 3 // int glyphCode
        end local 1 // long pScalerContext
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lsun/font/NativeFont;
            0    1     1  pScalerContext  J
            0    1     3       glyphCode  I
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphCode       

  public java.awt.geom.GeneralPath getGlyphOutline(long, int, float, float);
    descriptor: (JIFF)Ljava/awt/geom/GeneralPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=6, args_size=5
        start local 0 // sun.font.NativeFont this
        start local 1 // long pScalerContext
        start local 3 // int glyphCode
        start local 4 // float x
        start local 5 // float y
         0: .line 289
            aconst_null
            areturn
        end local 5 // float y
        end local 4 // float x
        end local 3 // int glyphCode
        end local 1 // long pScalerContext
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lsun/font/NativeFont;
            0    1     1  pScalerContext  J
            0    1     3       glyphCode  I
            0    1     4               x  F
            0    1     5               y  F
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphCode       
      x               
      y               

  native long getGlyphImage(long, int);
    descriptor: (JI)J
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphCode       

  native long getGlyphImageNoDefault(long, int);
    descriptor: (JI)J
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphCode       

  void getGlyphMetrics(long, int, java.awt.geom.Point2D$Float);
    descriptor: (JILjava/awt/geom/Point2D$Float;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // sun.font.NativeFont this
        start local 1 // long pScalerContext
        start local 3 // int glyphCode
        start local 4 // java.awt.geom.Point2D$Float metrics
         0: .line 298
            new java.lang.RuntimeException
            dup
            ldc "this should be called on the strike"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.awt.geom.Point2D$Float metrics
        end local 3 // int glyphCode
        end local 1 // long pScalerContext
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lsun/font/NativeFont;
            0    1     1  pScalerContext  J
            0    1     3       glyphCode  I
            0    1     4         metrics  Ljava/awt/geom/Point2D$Float;
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphCode       
      metrics         

  public java.awt.geom.GeneralPath getGlyphVectorOutline(long, int[], int, float, float);
    descriptor: (J[IIFF)Ljava/awt/geom/GeneralPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=7, args_size=6
        start local 0 // sun.font.NativeFont this
        start local 1 // long pScalerContext
        start local 3 // int[] glyphs
        start local 4 // int numGlyphs
        start local 5 // float x
        start local 6 // float y
         0: .line 304
            aconst_null
            areturn
        end local 6 // float y
        end local 5 // float x
        end local 4 // int numGlyphs
        end local 3 // int[] glyphs
        end local 1 // long pScalerContext
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lsun/font/NativeFont;
            0    1     1  pScalerContext  J
            0    1     3          glyphs  [I
            0    1     4       numGlyphs  I
            0    1     5               x  F
            0    1     6               y  F
    MethodParameters:
                Name  Flags
      pScalerContext  
      glyphs          
      numGlyphs       
      x               
      y               

  private native int countGlyphs(byte[], int);
    descriptor: ([BI)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                   Name  Flags
      platformNameBytes  
      ptSize             

  public int getNumGlyphs();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.font.NativeFont this
         0: .line 310
            aload 0 /* this */
            getfield sun.font.NativeFont.numGlyphs:I
            iconst_m1
            if_icmpne 3
         1: .line 311
            aload 0 /* this */
            bipush 8
            invokevirtual sun.font.NativeFont.getPlatformNameBytes:(I)[B
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         2: .line 312
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* bytes */
            bipush 8
            invokevirtual sun.font.NativeFont.countGlyphs:([BI)I
            putfield sun.font.NativeFont.numGlyphs:I
        end local 1 // byte[] bytes
         3: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.numGlyphs:I
            ireturn
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/font/NativeFont;
            2    3     1  bytes  [B

  sun.font.PhysicalFont getDelegateFont();
    descriptor: ()Lsun/font/PhysicalFont;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.font.NativeFont this
         0: .line 318
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            ifnonnull 3
         1: .line 319
            invokestatic sun.font.SunFontManager.getInstance:()Lsun/font/SunFontManager;
            astore 1 /* fm */
        start local 1 // sun.font.SunFontManager fm
         2: .line 320
            aload 0 /* this */
            aload 1 /* fm */
            invokevirtual sun.font.SunFontManager.getDefaultPhysicalFont:()Lsun/font/PhysicalFont;
            putfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
        end local 1 // sun.font.SunFontManager fm
         3: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.delegateFont:Lsun/font/PhysicalFont;
            areturn
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/font/NativeFont;
            2    3     1    fm  Lsun/font/SunFontManager;

  byte[] getPlatformNameBytes(int);
    descriptor: (I)[B
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.font.NativeFont this
        start local 1 // int ptSize
         0: .line 335
            bipush 14
            newarray 10
            astore 2 /* hPos */
        start local 2 // int[] hPos
         1: .line 336
            iconst_1
            istore 3 /* hyphenCnt */
        start local 3 // int hyphenCnt
         2: .line 337
            iconst_1
            istore 4 /* pos */
        start local 4 // int pos
         3: .line 339
            goto 8
         4: .line 340
      StackMap locals: int[] int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.NativeFont.platName:Ljava/lang/String;
            bipush 45
            iload 4 /* pos */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* pos */
         5: .line 341
            iload 4 /* pos */
            iconst_m1
            if_icmpeq 8
         6: .line 342
            aload 2 /* hPos */
            iload 3 /* hyphenCnt */
            iinc 3 /* hyphenCnt */ 1
            iload 4 /* pos */
            iastore
         7: .line 343
            iinc 4 /* pos */ 1
         8: .line 339
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iconst_m1
            if_icmpeq 9
            iload 3 /* hyphenCnt */
            bipush 14
            if_icmplt 4
         9: .line 346
      StackMap locals:
      StackMap stack:
            iload 1 /* ptSize */
            invokestatic java.lang.Math.abs:(I)I
            bipush 10
            imul
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            astore 5 /* sizeStr */
        start local 5 // java.lang.String sizeStr
        10: .line 347
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.font.NativeFont.platName:Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 6 /* sb */
        start local 6 // java.lang.StringBuilder sb
        11: .line 349
            aload 6 /* sb */
            aload 2 /* hPos */
            bipush 11
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            bipush 12
            iaload
            ldc "*"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 351
            aload 6 /* sb */
            aload 2 /* hPos */
            bipush 9
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            bipush 10
            iaload
            ldc "72"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 353
            aload 6 /* sb */
            aload 2 /* hPos */
            bipush 8
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            bipush 9
            iaload
            ldc "72"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 362
            aload 6 /* sb */
            aload 2 /* hPos */
            bipush 7
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            bipush 8
            iaload
            aload 5 /* sizeStr */
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 364
            aload 6 /* sb */
            aload 2 /* hPos */
            bipush 6
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            bipush 7
            iaload
            ldc "*"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 372
            aload 2 /* hPos */
            iconst_0
            iaload
            ifne 18
            aload 2 /* hPos */
            iconst_1
            iaload
            iconst_1
            if_icmpne 18
        17: .line 378
            aload 6 /* sb */
            aload 2 /* hPos */
            iconst_0
            iaload
            iconst_1
            iadd
            aload 2 /* hPos */
            iconst_1
            iaload
            ldc "*"
            invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 381
      StackMap locals: java.lang.String java.lang.StringBuilder
      StackMap stack:
            aload 6 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* xlfd */
        start local 7 // java.lang.String xlfd
        19: .line 382
            aconst_null
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        20: .line 384
            aload 7 /* xlfd */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 8 /* bytes */
        21: .line 385
            goto 24
      StackMap locals: sun.font.NativeFont int int[] int int java.lang.String java.lang.StringBuilder java.lang.String byte[]
      StackMap stack: java.io.UnsupportedEncodingException
        22: pop
        23: .line 386
            aload 7 /* xlfd */
            invokevirtual java.lang.String.getBytes:()[B
            astore 8 /* bytes */
        24: .line 388
      StackMap locals:
      StackMap stack:
            aload 8 /* bytes */
            areturn
        end local 8 // byte[] bytes
        end local 7 // java.lang.String xlfd
        end local 6 // java.lang.StringBuilder sb
        end local 5 // java.lang.String sizeStr
        end local 4 // int pos
        end local 3 // int hyphenCnt
        end local 2 // int[] hPos
        end local 1 // int ptSize
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lsun/font/NativeFont;
            0   25     1     ptSize  I
            1   25     2       hPos  [I
            2   25     3  hyphenCnt  I
            3   25     4        pos  I
           10   25     5    sizeStr  Ljava/lang/String;
           11   25     6         sb  Ljava/lang/StringBuilder;
           19   25     7       xlfd  Ljava/lang/String;
           20   25     8      bytes  [B
      Exception table:
        from    to  target  type
          20    21      22  Class java.io.UnsupportedEncodingException
    MethodParameters:
        Name  Flags
      ptSize  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.font.NativeFont this
         0: .line 392
            new java.lang.StringBuilder
            dup
            ldc " ** Native Font: Family="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.font.NativeFont.familyName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " Name="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.font.NativeFont.fullName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 393
            ldc " style="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.font.NativeFont.style:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " nativeName="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.font.NativeFont.platName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 392
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // sun.font.NativeFont this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/font/NativeFont;
}
SourceFile: "NativeFont.java"
InnerClasses:
  public Float = java.awt.geom.Point2D$Float of java.awt.geom.Point2D
  public Float = java.awt.geom.Rectangle2D$Float of java.awt.geom.Rectangle2D