public class org.bouncycastle.util.io.pem.PemReader extends java.io.BufferedReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.util.io.pem.PemReader
  super_class: java.io.BufferedReader
{
  private static final java.lang.String BEGIN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "-----BEGIN "

  private static final java.lang.String END;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "-----END "

  public void <init>(java.io.Reader);
    descriptor: (Ljava/io/Reader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.util.io.pem.PemReader this
        start local 1 // java.io.Reader reader
         0: .line 19
            aload 0 /* this */
            aload 1 /* reader */
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
         1: .line 20
            return
        end local 1 // java.io.Reader reader
        end local 0 // org.bouncycastle.util.io.pem.PemReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/util/io/pem/PemReader;
            0    2     1  reader  Ljava/io/Reader;
    MethodParameters:
        Name  Flags
      reader  

  public org.bouncycastle.util.io.pem.PemObject readPemObject();
    descriptor: ()Lorg/bouncycastle/util/io/pem/PemObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.bouncycastle.util.io.pem.PemReader this
         0: .line 25
            aload 0 /* this */
            invokevirtual org.bouncycastle.util.io.pem.PemReader.readLine:()Ljava/lang/String;
            astore 1 /* line */
        start local 1 // java.lang.String line
         1: .line 27
            aload 1 /* line */
            ifnull 7
            aload 1 /* line */
            ldc "-----BEGIN "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         2: .line 29
            aload 1 /* line */
            ldc "-----BEGIN "
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* line */
         3: .line 30
            aload 1 /* line */
            bipush 45
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* index */
        start local 2 // int index
         4: .line 31
            aload 1 /* line */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* type */
        start local 3 // java.lang.String type
         5: .line 33
            iload 2 /* index */
            ifle 7
         6: .line 35
            aload 0 /* this */
            aload 3 /* type */
            invokevirtual org.bouncycastle.util.io.pem.PemReader.loadObject:(Ljava/lang/String;)Lorg/bouncycastle/util/io/pem/PemObject;
            areturn
        end local 3 // java.lang.String type
        end local 2 // int index
         7: .line 39
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String line
        end local 0 // org.bouncycastle.util.io.pem.PemReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/bouncycastle/util/io/pem/PemReader;
            1    8     1   line  Ljava/lang/String;
            4    7     2  index  I
            5    7     3   type  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private org.bouncycastle.util.io.pem.PemObject loadObject(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/util/io/pem/PemObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.bouncycastle.util.io.pem.PemReader this
        start local 1 // java.lang.String type
         0: .line 46
            new java.lang.StringBuilder
            dup
            ldc "-----END "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* endMarker */
        start local 3 // java.lang.String endMarker
         1: .line 47
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuffer buf
         2: .line 48
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* headers */
        start local 5 // java.util.List headers
         3: .line 50
            goto 13
        start local 2 // java.lang.String line
         4: .line 52
      StackMap locals: org.bouncycastle.util.io.pem.PemReader java.lang.String java.lang.String java.lang.String java.lang.StringBuffer java.util.List
      StackMap stack:
            aload 2 /* line */
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iflt 10
         5: .line 54
            aload 2 /* line */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* index */
        start local 6 // int index
         6: .line 55
            aload 2 /* line */
            iconst_0
            iload 6 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* hdr */
        start local 7 // java.lang.String hdr
         7: .line 56
            aload 2 /* line */
            iload 6 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 8 /* value */
        start local 8 // java.lang.String value
         8: .line 58
            aload 5 /* headers */
            new org.bouncycastle.util.io.pem.PemHeader
            dup
            aload 7 /* hdr */
            aload 8 /* value */
            invokespecial org.bouncycastle.util.io.pem.PemHeader.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 60
            goto 13
        end local 8 // java.lang.String value
        end local 7 // java.lang.String hdr
        end local 6 // int index
        10: .line 63
      StackMap locals:
      StackMap stack:
            aload 2 /* line */
            aload 3 /* endMarker */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 12
        11: .line 65
            goto 15
        12: .line 68
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            aload 2 /* line */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 2 // java.lang.String line
        13: .line 50
      StackMap locals: org.bouncycastle.util.io.pem.PemReader java.lang.String top java.lang.String java.lang.StringBuffer java.util.List
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.util.io.pem.PemReader.readLine:()Ljava/lang/String;
            dup
            astore 2 /* line */
        start local 2 // java.lang.String line
        14: ifnonnull 4
        15: .line 71
      StackMap locals: org.bouncycastle.util.io.pem.PemReader java.lang.String java.lang.String java.lang.String java.lang.StringBuffer java.util.List
      StackMap stack:
            aload 2 /* line */
            ifnonnull 17
        16: .line 73
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            aload 3 /* endMarker */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 76
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.util.io.pem.PemObject
            dup
            aload 1 /* type */
            aload 5 /* headers */
            aload 4 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokestatic org.bouncycastle.util.encoders.Base64.decode:(Ljava/lang/String;)[B
            invokespecial org.bouncycastle.util.io.pem.PemObject.<init>:(Ljava/lang/String;Ljava/util/List;[B)V
            areturn
        end local 5 // java.util.List headers
        end local 4 // java.lang.StringBuffer buf
        end local 3 // java.lang.String endMarker
        end local 2 // java.lang.String line
        end local 1 // java.lang.String type
        end local 0 // org.bouncycastle.util.io.pem.PemReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lorg/bouncycastle/util/io/pem/PemReader;
            0   18     1       type  Ljava/lang/String;
            4   13     2       line  Ljava/lang/String;
           14   18     2       line  Ljava/lang/String;
            1   18     3  endMarker  Ljava/lang/String;
            2   18     4        buf  Ljava/lang/StringBuffer;
            3   18     5    headers  Ljava/util/List;
            6   10     6      index  I
            7   10     7        hdr  Ljava/lang/String;
            8   10     8      value  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "PemReader.java"