public class org.bson.BsonBinaryReader extends org.bson.AbstractBsonReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.BsonBinaryReader
  super_class: org.bson.AbstractBsonReader
{
  private final org.bson.io.BsonInput bsonInput;
    descriptor: Lorg/bson/io/BsonInput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.bson.BsonBinaryReader$Mark mark;
    descriptor: Lorg/bson/BsonBinaryReader$Mark;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$bson$BsonContextType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$bson$BsonType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bson.BsonBinaryReader this
        start local 1 // java.nio.ByteBuffer byteBuffer
         0: .line 46
            aload 0 /* this */
            new org.bson.io.ByteBufferBsonInput
            dup
            new org.bson.ByteBufNIO
            dup
            ldc "byteBuffer"
            aload 1 /* byteBuffer */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokespecial org.bson.ByteBufNIO.<init>:(Ljava/nio/ByteBuffer;)V
            invokespecial org.bson.io.ByteBufferBsonInput.<init>:(Lorg/bson/ByteBuf;)V
            invokespecial org.bson.BsonBinaryReader.<init>:(Lorg/bson/io/BsonInput;)V
         1: .line 47
            return
        end local 1 // java.nio.ByteBuffer byteBuffer
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bson/BsonBinaryReader;
            0    2     1  byteBuffer  Ljava/nio/ByteBuffer;
    MethodParameters:
            Name  Flags
      byteBuffer  final

  public void <init>(org.bson.io.BsonInput);
    descriptor: (Lorg/bson/io/BsonInput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // org.bson.BsonBinaryReader this
        start local 1 // org.bson.io.BsonInput bsonInput
         0: .line 54
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonReader.<init>:()V
         1: .line 55
            aload 1 /* bsonInput */
            ifnonnull 3
         2: .line 56
            new java.lang.IllegalArgumentException
            dup
            ldc "bsonInput is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 58
      StackMap locals: org.bson.BsonBinaryReader org.bson.io.BsonInput
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bsonInput */
            putfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
         4: .line 59
            aload 0 /* this */
            new org.bson.BsonBinaryReader$Context
            dup
            aload 0 /* this */
            aconst_null
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            iconst_0
            iconst_0
            invokespecial org.bson.BsonBinaryReader$Context.<init>:(Lorg/bson/BsonBinaryReader;Lorg/bson/BsonBinaryReader$Context;Lorg/bson/BsonContextType;II)V
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         5: .line 60
            return
        end local 1 // org.bson.io.BsonInput bsonInput
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/bson/BsonBinaryReader;
            0    6     1  bsonInput  Lorg/bson/io/BsonInput;
    MethodParameters:
           Name  Flags
      bsonInput  final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 64
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonReader.close:()V
         1: .line 65
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonBinaryReader;

  public org.bson.io.BsonInput getBsonInput();
    descriptor: ()Lorg/bson/io/BsonInput;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 73
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  public org.bson.BsonType readBsonType();
    descriptor: ()Lorg/bson/BsonType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 78
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.isClosed:()Z
            ifeq 2
         1: .line 79
            new java.lang.IllegalStateException
            dup
            ldc "BSONBinaryWriter"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.INITIAL:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 3
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.DONE:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 3
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.SCOPE_DOCUMENT:Lorg/bson/AbstractBsonReader$State;
            if_acmpne 6
         3: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonBinaryReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
         4: .line 85
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
         5: .line 86
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getCurrentBsonType:()Lorg/bson/BsonType;
            areturn
         6: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 8
         7: .line 89
            aload 0 /* this */
            ldc "ReadBSONType"
            iconst_1
            anewarray org.bson.AbstractBsonReader$State
            dup
            iconst_0
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            aastore
            invokevirtual org.bson.BsonBinaryReader.throwInvalidState:(Ljava/lang/String;[Lorg/bson/AbstractBsonReader$State;)V
         8: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readByte:()B
            istore 1 /* bsonTypeByte */
        start local 1 // byte bsonTypeByte
         9: .line 93
            iload 1 /* bsonTypeByte */
            invokestatic org.bson.BsonType.findByValue:(I)Lorg/bson/BsonType;
            astore 2 /* bsonType */
        start local 2 // org.bson.BsonType bsonType
        10: .line 94
            aload 2 /* bsonType */
            ifnonnull 15
        11: .line 95
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readCString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
        12: .line 96
            new org.bson.BsonSerializationException
            dup
            ldc "Detected unknown BSON type \"\\x%x\" for fieldname \"%s\". Are you using the latest driver version?"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 98
            iload 1 /* bsonTypeByte */
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            dup
            iconst_1
            aload 3 /* name */
            aastore
        14: .line 96
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.BsonSerializationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String name
        15: .line 100
      StackMap locals: int org.bson.BsonType
      StackMap stack:
            aload 0 /* this */
            aload 2 /* bsonType */
            invokevirtual org.bson.BsonBinaryReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        16: .line 102
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getCurrentBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 25
        17: .line 103
            invokestatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonContextType:()[I
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader$Context.getContextType:()Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iaload
            tableswitch { // 2 - 5
                    2: 20
                    3: 18
                    4: 22
                    5: 20
              default: 22
          }
        18: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.END_OF_ARRAY:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        19: .line 106
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            areturn
        20: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.END_OF_DOCUMENT:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        21: .line 110
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            areturn
        22: .line 112
      StackMap locals:
      StackMap stack:
            new org.bson.BsonSerializationException
            dup
            ldc "BSONType EndOfDocument is not valid when ContextType is %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 113
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader$Context.getContextType:()Lorg/bson/BsonContextType;
            aastore
        24: .line 112
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.BsonSerializationException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 116
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonContextType:()[I
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader$Context.getContextType:()Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iaload
            tableswitch { // 2 - 5
                    2: 29
                    3: 26
                    4: 32
                    5: 29
              default: 32
          }
        26: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.skipCString:()V
        27: .line 119
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        28: .line 120
            goto 33
        29: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readCString:()Ljava/lang/String;
            invokevirtual org.bson.BsonBinaryReader.setCurrentName:(Ljava/lang/String;)V
        30: .line 124
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.NAME:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        31: .line 125
            goto 33
        32: .line 127
      StackMap locals:
      StackMap stack:
            new org.bson.BSONException
            dup
            ldc "Unexpected ContextType."
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getCurrentBsonType:()Lorg/bson/BsonType;
            areturn
        end local 2 // org.bson.BsonType bsonType
        end local 1 // byte bsonTypeByte
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0          this  Lorg/bson/BsonBinaryReader;
            9   34     1  bsonTypeByte  B
           10   34     2      bsonType  Lorg/bson/BsonType;
           12   15     3          name  Ljava/lang/String;

  protected org.bson.BsonBinary doReadBinaryData();
    descriptor: ()Lorg/bson/BsonBinary;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 136
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 1 /* numBytes */
        start local 1 // int numBytes
         1: .line 137
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readByte:()B
            istore 2 /* type */
        start local 2 // byte type
         2: .line 139
            iload 2 /* type */
            getstatic org.bson.BsonBinarySubType.OLD_BINARY:Lorg/bson/BsonBinarySubType;
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            if_icmpne 7
         3: .line 140
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt32:()I
            istore 3 /* repeatedNumBytes */
        start local 3 // int repeatedNumBytes
         4: .line 141
            iload 3 /* repeatedNumBytes */
            iload 1 /* numBytes */
            iconst_4
            isub
            if_icmpeq 6
         5: .line 142
            new org.bson.BsonSerializationException
            dup
            ldc "Binary sub type OldBinary has inconsistent sizes"
            invokespecial org.bson.BsonSerializationException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 144
      StackMap locals: int int int
      StackMap stack:
            iinc 1 /* numBytes */ -4
        end local 3 // int repeatedNumBytes
         7: .line 146
      StackMap locals:
      StackMap stack:
            iload 1 /* numBytes */
            newarray 8
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         8: .line 147
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            aload 3 /* bytes */
            invokeinterface org.bson.io.BsonInput.readBytes:([B)V
         9: .line 148
            new org.bson.BsonBinary
            dup
            iload 2 /* type */
            aload 3 /* bytes */
            invokespecial org.bson.BsonBinary.<init>:(B[B)V
            areturn
        end local 3 // byte[] bytes
        end local 2 // byte type
        end local 1 // int numBytes
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/bson/BsonBinaryReader;
            1   10     1          numBytes  I
            2   10     2              type  B
            4    7     3  repeatedNumBytes  I
            8   10     3             bytes  [B

  protected byte doPeekBinarySubType();
    descriptor: ()B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 153
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.mark:()V
         1: .line 154
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            pop
         2: .line 155
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readByte:()B
            istore 1 /* type */
        start local 1 // byte type
         3: .line 156
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.reset:()V
         4: .line 157
            iload 1 /* type */
            ireturn
        end local 1 // byte type
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BsonBinaryReader;
            3    5     1  type  B

  protected int doPeekBinarySize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 162
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.mark:()V
         1: .line 163
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 1 /* size */
        start local 1 // int size
         2: .line 164
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.reset:()V
         3: .line 165
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/BsonBinaryReader;
            2    4     1  size  I

  protected boolean doReadBoolean();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 170
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readByte:()B
            istore 1 /* booleanByte */
        start local 1 // byte booleanByte
         1: .line 171
            iload 1 /* booleanByte */
            ifeq 3
            iload 1 /* booleanByte */
            iconst_1
            if_icmpeq 3
         2: .line 172
            new org.bson.BsonSerializationException
            dup
            ldc "Expected a boolean value but found %d"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* booleanByte */
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.BsonSerializationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 174
      StackMap locals: int
      StackMap stack:
            iload 1 /* booleanByte */
            iconst_1
            if_icmpne 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // byte booleanByte
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/bson/BsonBinaryReader;
            1    5     1  booleanByte  B

  protected long doReadDateTime();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 179
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt64:()J
            lreturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected double doReadDouble();
    descriptor: ()D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 184
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readDouble:()D
            dreturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected int doReadInt32();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 189
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt32:()I
            ireturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected long doReadInt64();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 194
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt64:()J
            lreturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  public org.bson.types.Decimal128 doReadDecimal128();
    descriptor: ()Lorg/bson/types/Decimal128;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 199
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt64:()J
            lstore 1 /* low */
        start local 1 // long low
         1: .line 200
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt64:()J
            lstore 3 /* high */
        start local 3 // long high
         2: .line 201
            lload 3 /* high */
            lload 1 /* low */
            invokestatic org.bson.types.Decimal128.fromIEEE754BIDEncoding:(JJ)Lorg/bson/types/Decimal128;
            areturn
        end local 3 // long high
        end local 1 // long low
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/BsonBinaryReader;
            1    3     1   low  J
            2    3     3  high  J

  protected java.lang.String doReadJavaScript();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 206
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readString:()Ljava/lang/String;
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected java.lang.String doReadJavaScriptWithScope();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 211
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            istore 1 /* startPosition */
        start local 1 // int startPosition
         1: .line 212
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 2 /* size */
        start local 2 // int size
         2: .line 213
            aload 0 /* this */
            new org.bson.BsonBinaryReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            iload 1 /* startPosition */
            iload 2 /* size */
            invokespecial org.bson.BsonBinaryReader$Context.<init>:(Lorg/bson/BsonBinaryReader;Lorg/bson/BsonBinaryReader$Context;Lorg/bson/BsonContextType;II)V
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         3: .line 214
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readString:()Ljava/lang/String;
            areturn
        end local 2 // int size
        end local 1 // int startPosition
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/bson/BsonBinaryReader;
            1    4     1  startPosition  I
            2    4     2           size  I

  protected void doReadMaxKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 219
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected void doReadMinKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 223
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected void doReadNull();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 227
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected org.bson.types.ObjectId doReadObjectId();
    descriptor: ()Lorg/bson/types/ObjectId;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 231
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readObjectId:()Lorg/bson/types/ObjectId;
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected org.bson.BsonRegularExpression doReadRegularExpression();
    descriptor: ()Lorg/bson/BsonRegularExpression;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 236
            new org.bson.BsonRegularExpression
            dup
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readCString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readCString:()Ljava/lang/String;
            invokespecial org.bson.BsonRegularExpression.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected org.bson.BsonDbPointer doReadDBPointer();
    descriptor: ()Lorg/bson/BsonDbPointer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 241
            new org.bson.BsonDbPointer
            dup
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readObjectId:()Lorg/bson/types/ObjectId;
            invokespecial org.bson.BsonDbPointer.<init>:(Ljava/lang/String;Lorg/bson/types/ObjectId;)V
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected java.lang.String doReadString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 246
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readString:()Ljava/lang/String;
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected java.lang.String doReadSymbol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 251
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readString:()Ljava/lang/String;
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected org.bson.BsonTimestamp doReadTimestamp();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 256
            new org.bson.BsonTimestamp
            dup
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt64:()J
            invokespecial org.bson.BsonTimestamp.<init>:(J)V
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected void doReadUndefined();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 261
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  public void doReadStartArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 265
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            istore 1 /* startPosition */
        start local 1 // int startPosition
         1: .line 266
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 2 /* size */
        start local 2 // int size
         2: .line 267
            aload 0 /* this */
            new org.bson.BsonBinaryReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            iload 1 /* startPosition */
            iload 2 /* size */
            invokespecial org.bson.BsonBinaryReader$Context.<init>:(Lorg/bson/BsonBinaryReader;Lorg/bson/BsonBinaryReader$Context;Lorg/bson/BsonContextType;II)V
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         3: .line 268
            return
        end local 2 // int size
        end local 1 // int startPosition
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/bson/BsonBinaryReader;
            1    4     1  startPosition  I
            2    4     2           size  I

  protected void doReadStartDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 272
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.SCOPE_DOCUMENT:Lorg/bson/AbstractBsonReader$State;
            if_acmpne 2
         1: .line 273
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
         3: .line 272
      StackMap locals:
      StackMap stack: org.bson.BsonContextType
            astore 1 /* contextType */
        start local 1 // org.bson.BsonContextType contextType
         4: .line 274
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            istore 2 /* startPosition */
        start local 2 // int startPosition
         5: .line 275
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 3 /* size */
        start local 3 // int size
         6: .line 276
            aload 0 /* this */
            new org.bson.BsonBinaryReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            aload 1 /* contextType */
            iload 2 /* startPosition */
            iload 3 /* size */
            invokespecial org.bson.BsonBinaryReader$Context.<init>:(Lorg/bson/BsonBinaryReader;Lorg/bson/BsonBinaryReader$Context;Lorg/bson/BsonContextType;II)V
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         7: .line 277
            return
        end local 3 // int size
        end local 2 // int startPosition
        end local 1 // org.bson.BsonContextType contextType
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/bson/BsonBinaryReader;
            4    8     1    contextType  Lorg/bson/BsonContextType;
            5    8     2  startPosition  I
            6    8     3           size  I

  protected void doReadEndArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 281
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            invokevirtual org.bson.BsonBinaryReader$Context.popContext:(I)Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 282
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonBinaryReader;

  protected void doReadEndDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 286
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            invokevirtual org.bson.BsonBinaryReader$Context.popContext:(I)Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 287
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            if_acmpne 3
         2: .line 288
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.getPosition:()I
            invokevirtual org.bson.BsonBinaryReader$Context.popContext:(I)Lorg/bson/BsonBinaryReader$Context;
            invokevirtual org.bson.BsonBinaryReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         3: .line 290
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/BsonBinaryReader;

  protected void doSkipName();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 294
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  protected void doSkipValue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 298
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.isClosed:()Z
            ifeq 2
         1: .line 299
            new java.lang.IllegalStateException
            dup
            ldc "BSONBinaryWriter"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 4
         3: .line 302
            aload 0 /* this */
            ldc "skipValue"
            iconst_1
            anewarray org.bson.AbstractBsonReader$State
            dup
            iconst_0
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            aastore
            invokevirtual org.bson.BsonBinaryReader.throwInvalidState:(Ljava/lang/String;[Lorg/bson/AbstractBsonReader$State;)V
         4: .line 306
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonType:()[I
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getCurrentBsonType:()Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iaload
            tableswitch { // 2 - 22
                    2: 15
                    3: 39
                    4: 13
                    5: 5
                    6: 7
                    7: 45
                    8: 33
                    9: 9
                   10: 11
                   11: 31
                   12: 35
                   13: 47
                   14: 23
                   15: 41
                   16: 25
                   17: 17
                   18: 43
                   19: 19
                   20: 21
                   21: 29
                   22: 27
              default: 49
          }
         5: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            iconst_4
            isub
            istore 1 /* skip */
        start local 1 // int skip
         6: .line 309
            goto 50
        end local 1 // int skip
         7: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            iconst_1
            iadd
            istore 1 /* skip */
        start local 1 // int skip
         8: .line 312
            goto 50
        end local 1 // int skip
         9: .line 314
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 1 /* skip */
        start local 1 // int skip
        10: .line 315
            goto 50
        end local 1 // int skip
        11: .line 317
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 1 /* skip */
        start local 1 // int skip
        12: .line 318
            goto 50
        end local 1 // int skip
        13: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            iconst_4
            isub
            istore 1 /* skip */
        start local 1 // int skip
        14: .line 321
            goto 50
        end local 1 // int skip
        15: .line 323
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 1 /* skip */
        start local 1 // int skip
        16: .line 324
            goto 50
        end local 1 // int skip
        17: .line 326
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 1 /* skip */
        start local 1 // int skip
        18: .line 327
            goto 50
        end local 1 // int skip
        19: .line 329
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 1 /* skip */
        start local 1 // int skip
        20: .line 330
            goto 50
        end local 1 // int skip
        21: .line 332
      StackMap locals:
      StackMap stack:
            bipush 16
            istore 1 /* skip */
        start local 1 // int skip
        22: .line 333
            goto 50
        end local 1 // int skip
        23: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 1 /* skip */
        start local 1 // int skip
        24: .line 336
            goto 50
        end local 1 // int skip
        25: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            iconst_4
            isub
            istore 1 /* skip */
        start local 1 // int skip
        26: .line 339
            goto 50
        end local 1 // int skip
        27: .line 341
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* skip */
        start local 1 // int skip
        28: .line 342
            goto 50
        end local 1 // int skip
        29: .line 344
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* skip */
        start local 1 // int skip
        30: .line 345
            goto 50
        end local 1 // int skip
        31: .line 347
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* skip */
        start local 1 // int skip
        32: .line 348
            goto 50
        end local 1 // int skip
        33: .line 350
      StackMap locals:
      StackMap stack:
            bipush 12
            istore 1 /* skip */
        start local 1 // int skip
        34: .line 351
            goto 50
        end local 1 // int skip
        35: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.skipCString:()V
        36: .line 354
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.skipCString:()V
        37: .line 355
            iconst_0
            istore 1 /* skip */
        start local 1 // int skip
        38: .line 356
            goto 50
        end local 1 // int skip
        39: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 1 /* skip */
        start local 1 // int skip
        40: .line 359
            goto 50
        end local 1 // int skip
        41: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            istore 1 /* skip */
        start local 1 // int skip
        42: .line 362
            goto 50
        end local 1 // int skip
        43: .line 364
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 1 /* skip */
        start local 1 // int skip
        44: .line 365
            goto 50
        end local 1 // int skip
        45: .line 367
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* skip */
        start local 1 // int skip
        46: .line 368
            goto 50
        end local 1 // int skip
        47: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.readSize:()I
            bipush 12
            iadd
            istore 1 /* skip */
        start local 1 // int skip
        48: .line 371
            goto 50
        end local 1 // int skip
        49: .line 373
      StackMap locals:
      StackMap stack:
            new org.bson.BSONException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected BSON type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.bson.BsonBinaryReader.getCurrentBsonType:()Lorg/bson/BsonType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // int skip
        50: .line 375
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            iload 1 /* skip */
            invokeinterface org.bson.io.BsonInput.skip:(I)V
        51: .line 377
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.BsonBinaryReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        52: .line 378
            return
        end local 1 // int skip
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   53     0  this  Lorg/bson/BsonBinaryReader;
            6    7     1  skip  I
            8    9     1  skip  I
           10   11     1  skip  I
           12   13     1  skip  I
           14   15     1  skip  I
           16   17     1  skip  I
           18   19     1  skip  I
           20   21     1  skip  I
           22   23     1  skip  I
           24   25     1  skip  I
           26   27     1  skip  I
           28   29     1  skip  I
           30   31     1  skip  I
           32   33     1  skip  I
           34   35     1  skip  I
           38   39     1  skip  I
           40   41     1  skip  I
           42   43     1  skip  I
           44   45     1  skip  I
           46   47     1  skip  I
           48   49     1  skip  I
           50   53     1  skip  I

  private int readSize();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 381
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.bsonInput:Lorg/bson/io/BsonInput;
            invokeinterface org.bson.io.BsonInput.readInt32:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 382
            iload 1 /* size */
            ifge 4
         2: .line 383
            ldc "Size %s is not valid because it is negative."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         3: .line 384
            new org.bson.BsonSerializationException
            dup
            aload 2 /* message */
            invokespecial org.bson.BsonSerializationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
         4: .line 386
      StackMap locals: int
      StackMap stack:
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/bson/BsonBinaryReader;
            1    5     1     size  I
            3    4     2  message  Ljava/lang/String;

  protected org.bson.BsonBinaryReader$Context getContext();
    descriptor: ()Lorg/bson/BsonBinaryReader$Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 390
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonReader.getContext:()Lorg/bson/AbstractBsonReader$Context;
            checkcast org.bson.BsonBinaryReader$Context
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  public void mark();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 396
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.mark:Lorg/bson/BsonBinaryReader$Mark;
            ifnull 2
         1: .line 397
            new org.bson.BSONException
            dup
            ldc "A mark already exists; it needs to be reset before creating a new one"
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bson.BsonBinaryReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.BsonBinaryReader$Mark.<init>:(Lorg/bson/BsonBinaryReader;)V
            putfield org.bson.BsonBinaryReader.mark:Lorg/bson/BsonBinaryReader$Mark;
         3: .line 400
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/BsonBinaryReader;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.bson.BsonReaderMark getMark();
    descriptor: ()Lorg/bson/BsonReaderMark;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 404
            new org.bson.BsonBinaryReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.BsonBinaryReader$Mark.<init>:(Lorg/bson/BsonBinaryReader;)V
            areturn
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonBinaryReader;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonBinaryReader this
         0: .line 410
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.mark:Lorg/bson/BsonBinaryReader$Mark;
            ifnonnull 2
         1: .line 411
            new org.bson.BSONException
            dup
            ldc "trying to reset a mark before creating it"
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonBinaryReader.mark:Lorg/bson/BsonBinaryReader$Mark;
            invokevirtual org.bson.BsonBinaryReader$Mark.reset:()V
         3: .line 414
            aload 0 /* this */
            aconst_null
            putfield org.bson.BsonBinaryReader.mark:Lorg/bson/BsonBinaryReader$Mark;
         4: .line 415
            return
        end local 0 // org.bson.BsonBinaryReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BsonBinaryReader;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected org.bson.AbstractBsonReader$Context getContext();
    descriptor: ()Lorg/bson/AbstractBsonReader$Context;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.bson.BsonBinaryReader.getContext:()Lorg/bson/BsonBinaryReader$Context;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$bson$BsonContextType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 35
            getstatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonContextType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.BsonContextType.values:()[Lorg/bson/BsonContextType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_5
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonContextType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$org$bson$BsonType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 35
            getstatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.BsonType.values:()[Lorg/bson/BsonType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.BsonType.BOOLEAN:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 9
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 10
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 20
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_2
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_1
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 17
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 19
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 14
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 16
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 22
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 21
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 11
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 8
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 12
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_3
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 15
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 18
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.bson.BsonType.UNDEFINED:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 7
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            dup
            putstatic org.bson.BsonBinaryReader.$SWITCH_TABLE$org$bson$BsonType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
}
SourceFile: "BsonBinaryReader.java"
NestMembers:
  org.bson.BsonBinaryReader$Context  org.bson.BsonBinaryReader$Mark
InnerClasses:
  protected abstract Context = org.bson.AbstractBsonReader$Context of org.bson.AbstractBsonReader
  public final State = org.bson.AbstractBsonReader$State of org.bson.AbstractBsonReader
  protected Context = org.bson.BsonBinaryReader$Context of org.bson.BsonBinaryReader
  protected Mark = org.bson.BsonBinaryReader$Mark of org.bson.BsonBinaryReader