public abstract class java.awt.FontMetrics implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.awt.FontMetrics
  super_class: java.lang.Object
{
  private static final java.awt.font.FontRenderContext DEFAULT_FRC;
    descriptor: Ljava/awt/font/FontRenderContext;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected java.awt.Font font;
    descriptor: Ljava/awt/Font;
    flags: (0x0004) ACC_PROTECTED

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1681126225205050147

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 103
            invokestatic java.awt.Toolkit.loadLibraries:()V
         1: .line 104
            invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
            ifne 3
         2: .line 105
            invokestatic java.awt.FontMetrics.initIDs:()V
         3: .line 110
      StackMap locals:
      StackMap stack:
            new java.awt.font.FontRenderContext
            dup
            aconst_null
            iconst_0
            iconst_0
            invokespecial java.awt.font.FontRenderContext.<init>:(Ljava/awt/geom/AffineTransform;ZZ)V
            putstatic java.awt.FontMetrics.DEFAULT_FRC:Ljava/awt/font/FontRenderContext;
         4: .line 125
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.awt.Font);
    descriptor: (Ljava/awt/Font;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.awt.Font font
         0: .line 134
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aload 0 /* this */
            aload 1 /* font */
            putfield java.awt.FontMetrics.font:Ljava/awt/Font;
         2: .line 136
            return
        end local 1 // java.awt.Font font
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/FontMetrics;
            0    3     1  font  Ljava/awt/Font;
    MethodParameters:
      Name  Flags
      font  

  public java.awt.Font getFont();
    descriptor: ()Ljava/awt/Font;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 145
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            areturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public java.awt.font.FontRenderContext getFontRenderContext();
    descriptor: ()Ljava/awt/font/FontRenderContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 161
            getstatic java.awt.FontMetrics.DEFAULT_FRC:Ljava/awt/font/FontRenderContext;
            areturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getLeading();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 177
            iconst_0
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getAscent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 190
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            invokevirtual java.awt.Font.getSize:()I
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getDescent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 205
            iconst_0
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 222
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getLeading:()I
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getAscent:()I
            iadd
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getDescent:()I
            iadd
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getMaxAscent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 234
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getAscent:()I
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getMaxDescent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 246
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getDescent:()I
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int getMaxDecent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 259
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getMaxDescent:()I
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public int getMaxAdvance();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 273
            iconst_m1
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public int charWidth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // int codePoint
         0: .line 298
            iload 1 /* codePoint */
            invokestatic java.lang.Character.isValidCodePoint:(I)Z
            ifne 2
         1: .line 299
            ldc 65535
            istore 1 /* codePoint */
         2: .line 302
      StackMap locals:
      StackMap stack:
            iload 1 /* codePoint */
            sipush 256
            if_icmpge 4
         3: .line 303
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getWidths:()[I
            iload 1 /* codePoint */
            iaload
            ireturn
         4: .line 305
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 5
            astore 2 /* buffer */
        start local 2 // char[] buffer
         5: .line 306
            iload 1 /* codePoint */
            aload 2 /* buffer */
            iconst_0
            invokestatic java.lang.Character.toChars:(I[CI)I
            istore 3 /* len */
        start local 3 // int len
         6: .line 307
            aload 0 /* this */
            aload 2 /* buffer */
            iconst_0
            iload 3 /* len */
            invokevirtual java.awt.FontMetrics.charsWidth:([CII)I
            ireturn
        end local 3 // int len
        end local 2 // char[] buffer
        end local 1 // int codePoint
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Ljava/awt/FontMetrics;
            0    7     1  codePoint  I
            5    7     2     buffer  [C
            6    7     3        len  I
    MethodParameters:
           Name  Flags
      codePoint  

  public int charWidth(char);
    descriptor: (C)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // char ch
         0: .line 332
            iload 1 /* ch */
            sipush 256
            if_icmpge 2
         1: .line 333
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getWidths:()[I
            iload 1 /* ch */
            iaload
            ireturn
         2: .line 335
      StackMap locals:
      StackMap stack:
            iconst_1
            newarray 5
            dup
            iconst_0
            iload 1 /* ch */
            castore
            astore 2 /* data */
        start local 2 // char[] data
         3: .line 336
            aload 0 /* this */
            aload 2 /* data */
            iconst_0
            iconst_1
            invokevirtual java.awt.FontMetrics.charsWidth:([CII)I
            ireturn
        end local 2 // char[] data
        end local 1 // char ch
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/FontMetrics;
            0    4     1    ch  C
            3    4     2  data  [C
    MethodParameters:
      Name  Flags
      ch    

  public int stringWidth(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.lang.String str
         0: .line 357
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 358
            iload 2 /* len */
            newarray 5
            astore 3 /* data */
        start local 3 // char[] data
         2: .line 359
            aload 1 /* str */
            iconst_0
            iload 2 /* len */
            aload 3 /* data */
            iconst_0
            invokevirtual java.lang.String.getChars:(II[CI)V
         3: .line 360
            aload 0 /* this */
            aload 3 /* data */
            iconst_0
            iload 2 /* len */
            invokevirtual java.awt.FontMetrics.charsWidth:([CII)I
            ireturn
        end local 3 // char[] data
        end local 2 // int len
        end local 1 // java.lang.String str
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/FontMetrics;
            0    4     1   str  Ljava/lang/String;
            1    4     2   len  I
            2    4     3  data  [C
    MethodParameters:
      Name  Flags
      str   

  public int charsWidth(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.awt.FontMetrics this
        start local 1 // char[] data
        start local 2 // int off
        start local 3 // int len
         0: .line 387
            aload 0 /* this */
            new java.lang.String
            dup
            aload 1 /* data */
            iload 2 /* off */
            iload 3 /* len */
            invokespecial java.lang.String.<init>:([CII)V
            invokevirtual java.awt.FontMetrics.stringWidth:(Ljava/lang/String;)I
            ireturn
        end local 3 // int len
        end local 2 // int off
        end local 1 // char[] data
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;
            0    1     1  data  [C
            0    1     2   off  I
            0    1     3   len  I
    MethodParameters:
      Name  Flags
      data  
      off   
      len   

  public int bytesWidth(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.awt.FontMetrics this
        start local 1 // byte[] data
        start local 2 // int off
        start local 3 // int len
         0: .line 414
            aload 0 /* this */
            new java.lang.String
            dup
            aload 1 /* data */
            iconst_0
            iload 2 /* off */
            iload 3 /* len */
            invokespecial java.lang.String.<init>:([BIII)V
            invokevirtual java.awt.FontMetrics.stringWidth:(Ljava/lang/String;)I
            ireturn
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] data
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;
            0    1     1  data  [B
            0    1     2   off  I
            0    1     3   len  I
    MethodParameters:
      Name  Flags
      data  
      off   
      len   

  public int[] getWidths();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 429
            sipush 256
            newarray 10
            astore 1 /* widths */
        start local 1 // int[] widths
         1: .line 430
            iconst_0
            istore 2 /* ch */
        start local 2 // char ch
         2: goto 5
         3: .line 431
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* widths */
            iload 2 /* ch */
            aload 0 /* this */
            iload 2 /* ch */
            invokevirtual java.awt.FontMetrics.charWidth:(C)I
            iastore
         4: .line 430
            iload 2 /* ch */
            iconst_1
            iadd
            i2c
            istore 2 /* ch */
      StackMap locals:
      StackMap stack:
         5: iload 2 /* ch */
            sipush 256
            if_icmplt 3
        end local 2 // char ch
         6: .line 433
            aload 1 /* widths */
            areturn
        end local 1 // int[] widths
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/awt/FontMetrics;
            1    7     1  widths  [I
            2    6     2      ch  C

  public boolean hasUniformLineMetrics();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 449
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            invokevirtual java.awt.Font.hasUniformLineMetrics:()Z
            ireturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/FontMetrics;

  public java.awt.font.LineMetrics getLineMetrics(java.lang.String, java.awt.Graphics);
    descriptor: (Ljava/lang/String;Ljava/awt/Graphics;)Ljava/awt/font/LineMetrics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.lang.String str
        start local 2 // java.awt.Graphics context
         0: .line 462
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* str */
            aload 0 /* this */
            aload 2 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
            invokevirtual java.awt.Font.getLineMetrics:(Ljava/lang/String;Ljava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            areturn
        end local 2 // java.awt.Graphics context
        end local 1 // java.lang.String str
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/awt/FontMetrics;
            0    1     1      str  Ljava/lang/String;
            0    1     2  context  Ljava/awt/Graphics;
    MethodParameters:
         Name  Flags
      str      
      context  

  public java.awt.font.LineMetrics getLineMetrics(java.lang.String, int, int, java.awt.Graphics);
    descriptor: (Ljava/lang/String;IILjava/awt/Graphics;)Ljava/awt/font/LineMetrics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.lang.String str
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 479
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* str */
            iload 2 /* beginIndex */
            iload 3 /* limit */
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
            invokevirtual java.awt.Font.getLineMetrics:(Ljava/lang/String;IILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // java.lang.String str
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/awt/FontMetrics;
            0    1     1         str  Ljava/lang/String;
            0    1     2  beginIndex  I
            0    1     3       limit  I
            0    1     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      str         
      beginIndex  
      limit       
      context     

  public java.awt.font.LineMetrics getLineMetrics(char[], int, int, java.awt.Graphics);
    descriptor: ([CIILjava/awt/Graphics;)Ljava/awt/font/LineMetrics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // char[] chars
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 496
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
         1: .line 497
            aload 1 /* chars */
            iload 2 /* beginIndex */
            iload 3 /* limit */
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
         2: .line 496
            invokevirtual java.awt.Font.getLineMetrics:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // char[] chars
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/awt/FontMetrics;
            0    3     1       chars  [C
            0    3     2  beginIndex  I
            0    3     3       limit  I
            0    3     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      chars       
      beginIndex  
      limit       
      context     

  public java.awt.font.LineMetrics getLineMetrics(java.text.CharacterIterator, int, int, java.awt.Graphics);
    descriptor: (Ljava/text/CharacterIterator;IILjava/awt/Graphics;)Ljava/awt/font/LineMetrics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.text.CharacterIterator ci
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 515
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* ci */
            iload 2 /* beginIndex */
            iload 3 /* limit */
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
            invokevirtual java.awt.Font.getLineMetrics:(Ljava/text/CharacterIterator;IILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // java.text.CharacterIterator ci
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/awt/FontMetrics;
            0    1     1          ci  Ljava/text/CharacterIterator;
            0    1     2  beginIndex  I
            0    1     3       limit  I
            0    1     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      ci          
      beginIndex  
      limit       
      context     

  public java.awt.geom.Rectangle2D getStringBounds(java.lang.String, java.awt.Graphics);
    descriptor: (Ljava/lang/String;Ljava/awt/Graphics;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.lang.String str
        start local 2 // java.awt.Graphics context
         0: .line 532
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* str */
            aload 0 /* this */
            aload 2 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
            invokevirtual java.awt.Font.getStringBounds:(Ljava/lang/String;Ljava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
            areturn
        end local 2 // java.awt.Graphics context
        end local 1 // java.lang.String str
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/awt/FontMetrics;
            0    1     1      str  Ljava/lang/String;
            0    1     2  context  Ljava/awt/Graphics;
    MethodParameters:
         Name  Flags
      str      
      context  

  public java.awt.geom.Rectangle2D getStringBounds(java.lang.String, int, int, java.awt.Graphics);
    descriptor: (Ljava/lang/String;IILjava/awt/Graphics;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.lang.String str
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 553
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* str */
            iload 2 /* beginIndex */
            iload 3 /* limit */
         1: .line 554
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
         2: .line 553
            invokevirtual java.awt.Font.getStringBounds:(Ljava/lang/String;IILjava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // java.lang.String str
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/awt/FontMetrics;
            0    3     1         str  Ljava/lang/String;
            0    3     2  beginIndex  I
            0    3     3       limit  I
            0    3     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      str         
      beginIndex  
      limit       
      context     

  public java.awt.geom.Rectangle2D getStringBounds(char[], int, int, java.awt.Graphics);
    descriptor: ([CIILjava/awt/Graphics;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // char[] chars
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 578
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* chars */
            iload 2 /* beginIndex */
            iload 3 /* limit */
         1: .line 579
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
         2: .line 578
            invokevirtual java.awt.Font.getStringBounds:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // char[] chars
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/awt/FontMetrics;
            0    3     1       chars  [C
            0    3     2  beginIndex  I
            0    3     3       limit  I
            0    3     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      chars       
      beginIndex  
      limit       
      context     

  public java.awt.geom.Rectangle2D getStringBounds(java.text.CharacterIterator, int, int, java.awt.Graphics);
    descriptor: (Ljava/text/CharacterIterator;IILjava/awt/Graphics;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.text.CharacterIterator ci
        start local 2 // int beginIndex
        start local 3 // int limit
        start local 4 // java.awt.Graphics context
         0: .line 600
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 1 /* ci */
            iload 2 /* beginIndex */
            iload 3 /* limit */
         1: .line 601
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
         2: .line 600
            invokevirtual java.awt.Font.getStringBounds:(Ljava/text/CharacterIterator;IILjava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
            areturn
        end local 4 // java.awt.Graphics context
        end local 3 // int limit
        end local 2 // int beginIndex
        end local 1 // java.text.CharacterIterator ci
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/awt/FontMetrics;
            0    3     1          ci  Ljava/text/CharacterIterator;
            0    3     2  beginIndex  I
            0    3     3       limit  I
            0    3     4     context  Ljava/awt/Graphics;
    MethodParameters:
            Name  Flags
      ci          
      beginIndex  
      limit       
      context     

  public java.awt.geom.Rectangle2D getMaxCharBounds(java.awt.Graphics);
    descriptor: (Ljava/awt/Graphics;)Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.awt.Graphics context
         0: .line 613
            aload 0 /* this */
            getfield java.awt.FontMetrics.font:Ljava/awt/Font;
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual java.awt.FontMetrics.myFRC:(Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
            invokevirtual java.awt.Font.getMaxCharBounds:(Ljava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
            areturn
        end local 1 // java.awt.Graphics context
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/awt/FontMetrics;
            0    1     1  context  Ljava/awt/Graphics;
    MethodParameters:
         Name  Flags
      context  

  private java.awt.font.FontRenderContext myFRC(java.awt.Graphics);
    descriptor: (Ljava/awt/Graphics;)Ljava/awt/font/FontRenderContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.awt.FontMetrics this
        start local 1 // java.awt.Graphics context
         0: .line 617
            aload 1 /* context */
            instanceof java.awt.Graphics2D
            ifeq 2
         1: .line 618
            aload 1 /* context */
            checkcast java.awt.Graphics2D
            invokevirtual java.awt.Graphics2D.getFontRenderContext:()Ljava/awt/font/FontRenderContext;
            areturn
         2: .line 620
      StackMap locals:
      StackMap stack:
            getstatic java.awt.FontMetrics.DEFAULT_FRC:Ljava/awt/font/FontRenderContext;
            areturn
        end local 1 // java.awt.Graphics context
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/awt/FontMetrics;
            0    3     1  context  Ljava/awt/Graphics;
    MethodParameters:
         Name  Flags
      context  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.awt.FontMetrics this
         0: .line 631
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 632
            ldc "[font="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getFont:()Ljava/awt/Font;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 633
            ldc "ascent="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getAscent:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 634
            ldc ", descent="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getDescent:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 635
            ldc ", height="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.awt.FontMetrics.getHeight:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 631
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.awt.FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/awt/FontMetrics;

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
}
SourceFile: "FontMetrics.java"