public class com.mongodb.DBObjectCodec implements org.bson.codecs.CollectibleCodec<com.mongodb.DBObject>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.DBObjectCodec
  super_class: java.lang.Object
{
  private static final org.bson.codecs.BsonTypeClassMap DEFAULT_BSON_TYPE_CLASS_MAP;
    descriptor: Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.bson.codecs.configuration.CodecRegistry DEFAULT_REGISTRY;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final org.bson.codecs.configuration.CodecRegistry codecRegistry;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap;
    descriptor: Lorg/bson/codecs/BsonTypeCodecMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.DBObjectFactory objectFactory;
    descriptor: Lcom/mongodb/DBObjectFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.codecs.IdGenerator idGenerator;
    descriptor: Lorg/bson/codecs/IdGenerator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 67
            invokestatic com.mongodb.DBObjectCodec.createDefaultBsonTypeClassMap:()Lorg/bson/codecs/BsonTypeClassMap;
            putstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
         1: .line 68
            iconst_3
            anewarray org.bson.codecs.configuration.CodecProvider
            dup
            iconst_0
         2: .line 69
            new org.bson.codecs.ValueCodecProvider
            dup
            invokespecial org.bson.codecs.ValueCodecProvider.<init>:()V
            aastore
            dup
            iconst_1
            new org.bson.codecs.BsonValueCodecProvider
            dup
            invokespecial org.bson.codecs.BsonValueCodecProvider.<init>:()V
            aastore
            dup
            iconst_2
            new com.mongodb.DBObjectCodecProvider
            dup
            invokespecial com.mongodb.DBObjectCodecProvider.<init>:()V
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic org.bson.codecs.configuration.CodecRegistries.fromProviders:(Ljava/util/List;)Lorg/bson/codecs/configuration/CodecRegistry;
            putstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
         3: .line 71
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.bson.codecs.BsonTypeClassMap createDefaultBsonTypeClassMap();
    descriptor: ()Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 79
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* replacements */
        start local 0 // java.util.Map replacements
         1: .line 80
            aload 0 /* replacements */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            ldc Ljava/util/regex/Pattern;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 81
            aload 0 /* replacements */
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            ldc Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 82
            aload 0 /* replacements */
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            ldc Lorg/bson/types/BSONTimestamp;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 83
            aload 0 /* replacements */
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 84
            aload 0 /* replacements */
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 86
            new org.bson.codecs.BsonTypeClassMap
            dup
            aload 0 /* replacements */
            invokespecial org.bson.codecs.BsonTypeClassMap.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map replacements
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    7     0  replacements  Ljava/util/Map<Lorg/bson/BsonType;Ljava/lang/Class<*>;>;

  static org.bson.codecs.BsonTypeClassMap getDefaultBsonTypeClassMap();
    descriptor: ()Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 90
            getstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static org.bson.codecs.configuration.CodecRegistry getDefaultRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 94
            getstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.DBObjectCodec this
         0: .line 103
            aload 0 /* this */
            getstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;)V
         1: .line 104
            return
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/DBObjectCodec;

  public void <init>(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 112
            aload 0 /* this */
            aload 1 /* codecRegistry */
            getstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;)V
         1: .line 113
            return
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/DBObjectCodec;
            0    2     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeClassMap);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
         0: .line 122
            aload 0 /* this */
            aload 1 /* codecRegistry */
            aload 2 /* bsonTypeClassMap */
            new com.mongodb.BasicDBObjectFactory
            dup
            invokespecial com.mongodb.BasicDBObjectFactory.<init>:()V
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;Lcom/mongodb/DBObjectFactory;)V
         1: .line 123
            return
        end local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/DBObjectCodec;
            0    2     1     codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    2     2  bsonTypeClassMap  Lorg/bson/codecs/BsonTypeClassMap;
    MethodParameters:
                  Name  Flags
      codecRegistry     final
      bsonTypeClassMap  final

  public void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeClassMap, com.mongodb.DBObjectFactory);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;Lcom/mongodb/DBObjectFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        start local 3 // com.mongodb.DBObjectFactory objectFactory
         0: .line 132
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 76
            aload 0 /* this */
            new org.bson.codecs.ObjectIdGenerator
            dup
            invokespecial org.bson.codecs.ObjectIdGenerator.<init>:()V
            putfield com.mongodb.DBObjectCodec.idGenerator:Lorg/bson/codecs/IdGenerator;
         2: .line 133
            aload 0 /* this */
            ldc "objectFactory"
            aload 3 /* objectFactory */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.DBObjectFactory
            putfield com.mongodb.DBObjectCodec.objectFactory:Lcom/mongodb/DBObjectFactory;
         3: .line 134
            aload 0 /* this */
            ldc "codecRegistry"
            aload 1 /* codecRegistry */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 135
            aload 0 /* this */
            new org.bson.codecs.BsonTypeCodecMap
            dup
            ldc "bsonTypeClassMap"
            aload 2 /* bsonTypeClassMap */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.BsonTypeClassMap
            aload 1 /* codecRegistry */
            invokespecial org.bson.codecs.BsonTypeCodecMap.<init>:(Lorg/bson/codecs/BsonTypeClassMap;Lorg/bson/codecs/configuration/CodecRegistry;)V
            putfield com.mongodb.DBObjectCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
         5: .line 136
            return
        end local 3 // com.mongodb.DBObjectFactory objectFactory
        end local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/mongodb/DBObjectCodec;
            0    6     1     codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    6     2  bsonTypeClassMap  Lorg/bson/codecs/BsonTypeClassMap;
            0    6     3     objectFactory  Lcom/mongodb/DBObjectFactory;
    MethodParameters:
                  Name  Flags
      codecRegistry     final
      bsonTypeClassMap  final
      objectFactory     final

  public void encode(org.bson.BsonWriter, com.mongodb.DBObject, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lcom/mongodb/DBObject;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter writer
        start local 2 // com.mongodb.DBObject document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 140
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 142
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* encoderContext */
            aload 2 /* document */
            invokevirtual com.mongodb.DBObjectCodec.beforeFields:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Lcom/mongodb/DBObject;)V
         2: .line 144
            aload 2 /* document */
            invokeinterface com.mongodb.DBObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         4: .line 145
            aload 0 /* this */
            aload 3 /* encoderContext */
            aload 4 /* key */
            invokevirtual com.mongodb.DBObjectCodec.skipField:(Lorg/bson/codecs/EncoderContext;Ljava/lang/String;)Z
            ifeq 6
         5: .line 146
            goto 8
         6: .line 148
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* writer */
            aload 4 /* key */
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         7: .line 149
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* encoderContext */
            aload 2 /* document */
            aload 4 /* key */
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.String key
         8: .line 144
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 151
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
        10: .line 152
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // com.mongodb.DBObject document
        end local 1 // org.bson.BsonWriter writer
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/mongodb/DBObjectCodec;
            0   11     1          writer  Lorg/bson/BsonWriter;
            0   11     2        document  Lcom/mongodb/DBObject;
            0   11     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            4    8     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      writer          final
      document        final
      encoderContext  final

  public com.mongodb.DBObject decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 156
            new java.util.ArrayList
            dup
            bipush 10
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* path */
        start local 3 // java.util.List path
         1: .line 157
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            areturn
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/DBObjectCodec;
            0    2     1          reader  Lorg/bson/BsonReader;
            0    2     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            1    2     3            path  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  public java.lang.Class<com.mongodb.DBObject> getEncoderClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.DBObjectCodec this
         0: .line 162
            ldc Lcom/mongodb/DBObject;
            areturn
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/DBObjectCodec;
    Signature: ()Ljava/lang/Class<Lcom/mongodb/DBObject;>;

  public boolean documentHasId(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 167
            aload 1 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ireturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/DBObjectCodec;
            0    1     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.BsonValue getDocumentId(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lorg/bson/BsonValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 172
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ifne 2
         1: .line 173
            new java.lang.IllegalStateException
            dup
            ldc "The document does not contain an _id"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* id */
        start local 2 // java.lang.Object id
         3: .line 177
            aload 2 /* id */
            instanceof org.bson.BsonValue
            ifeq 5
         4: .line 178
            aload 2 /* id */
            checkcast org.bson.BsonValue
            areturn
         5: .line 181
      StackMap locals: java.lang.Object
      StackMap stack:
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            astore 3 /* idHoldingDocument */
        start local 3 // org.bson.BsonDocument idHoldingDocument
         6: .line 182
            new org.bson.BsonDocumentWriter
            dup
            aload 3 /* idHoldingDocument */
            invokespecial org.bson.BsonDocumentWriter.<init>:(Lorg/bson/BsonDocument;)V
            astore 4 /* writer */
        start local 4 // org.bson.BsonWriter writer
         7: .line 183
            aload 4 /* writer */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         8: .line 184
            aload 4 /* writer */
            ldc "_id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         9: .line 185
            aload 0 /* this */
            aload 4 /* writer */
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* id */
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        10: .line 186
            aload 4 /* writer */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
        11: .line 187
            aload 3 /* idHoldingDocument */
            ldc "_id"
            invokevirtual org.bson.BsonDocument.get:(Ljava/lang/Object;)Lorg/bson/BsonValue;
            areturn
        end local 4 // org.bson.BsonWriter writer
        end local 3 // org.bson.BsonDocument idHoldingDocument
        end local 2 // java.lang.Object id
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lcom/mongodb/DBObjectCodec;
            0   12     1           document  Lcom/mongodb/DBObject;
            3   12     2                 id  Ljava/lang/Object;
            6   12     3  idHoldingDocument  Lorg/bson/BsonDocument;
            7   12     4             writer  Lorg/bson/BsonWriter;
    MethodParameters:
          Name  Flags
      document  final

  public com.mongodb.DBObject generateIdIfAbsentFromDocument(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 192
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ifne 2
         1: .line 193
            aload 1 /* document */
            ldc "_id"
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.idGenerator:Lorg/bson/codecs/IdGenerator;
            invokeinterface org.bson.codecs.IdGenerator.generate:()Ljava/lang/Object;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            areturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/DBObjectCodec;
            0    3     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  private void beforeFields(org.bson.BsonWriter, org.bson.codecs.EncoderContext, com.mongodb.DBObject);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Lcom/mongodb/DBObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.codecs.EncoderContext encoderContext
        start local 3 // com.mongodb.DBObject document
         0: .line 199
            aload 2 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.isEncodingCollectibleDocument:()Z
            ifeq 3
            aload 3 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 200
            aload 1 /* bsonWriter */
            ldc "_id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         2: .line 201
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 2 /* encoderContext */
            aload 3 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         3: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.mongodb.DBObject document
        end local 2 // org.bson.codecs.EncoderContext encoderContext
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/mongodb/DBObjectCodec;
            0    4     1      bsonWriter  Lorg/bson/BsonWriter;
            0    4     2  encoderContext  Lorg/bson/codecs/EncoderContext;
            0    4     3        document  Lcom/mongodb/DBObject;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      encoderContext  final
      document        final

  private boolean skipField(org.bson.codecs.EncoderContext, java.lang.String);
    descriptor: (Lorg/bson/codecs/EncoderContext;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.EncoderContext encoderContext
        start local 2 // java.lang.String key
         0: .line 206
            aload 1 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.isEncodingCollectibleDocument:()Z
            ifeq 1
            aload 2 /* key */
            ldc "_id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.String key
        end local 1 // org.bson.codecs.EncoderContext encoderContext
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/DBObjectCodec;
            0    2     1  encoderContext  Lorg/bson/codecs/EncoderContext;
            0    2     2             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      encoderContext  final
      key             final

  private void writeValue(org.bson.BsonWriter, org.bson.codecs.EncoderContext, java.lang.Object);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.codecs.EncoderContext encoderContext
        start local 3 // java.lang.Object initialValue
         0: .line 211
            aload 3 /* initialValue */
            invokestatic org.bson.BSON.applyEncodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         1: .line 212
            aload 4 /* value */
            ifnonnull 4
         2: .line 213
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeNull:()V
         3: .line 214
            goto 30
      StackMap locals: java.lang.Object
      StackMap stack:
         4: aload 4 /* value */
            instanceof com.mongodb.DBRef
            ifeq 7
         5: .line 215
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast com.mongodb.DBRef
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeDBRef:(Lorg/bson/BsonWriter;Lcom/mongodb/DBRef;Lorg/bson/codecs/EncoderContext;)V
         6: .line 216
            goto 30
      StackMap locals:
      StackMap stack:
         7: aload 4 /* value */
            instanceof java.util.Map
            ifeq 10
         8: .line 217
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast java.util.Map
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeMap:(Lorg/bson/BsonWriter;Ljava/util/Map;Lorg/bson/codecs/EncoderContext;)V
         9: .line 218
            goto 30
      StackMap locals:
      StackMap stack:
        10: aload 4 /* value */
            instanceof java.lang.Iterable
            ifeq 13
        11: .line 219
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast java.lang.Iterable
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeIterable:(Lorg/bson/BsonWriter;Ljava/lang/Iterable;Lorg/bson/codecs/EncoderContext;)V
        12: .line 220
            goto 30
      StackMap locals:
      StackMap stack:
        13: aload 4 /* value */
            instanceof org.bson.BSONObject
            ifeq 16
        14: .line 221
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.BSONObject
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeBsonObject:(Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
        15: .line 222
            goto 30
      StackMap locals:
      StackMap stack:
        16: aload 4 /* value */
            instanceof org.bson.types.CodeWScope
            ifeq 19
        17: .line 223
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.types.CodeWScope
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeCodeWScope:(Lorg/bson/BsonWriter;Lorg/bson/types/CodeWScope;Lorg/bson/codecs/EncoderContext;)V
        18: .line 224
            goto 30
      StackMap locals:
      StackMap stack:
        19: aload 4 /* value */
            instanceof byte[]
            ifeq 22
        20: .line 225
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast byte[]
            invokevirtual com.mongodb.DBObjectCodec.encodeByteArray:(Lorg/bson/BsonWriter;[B)V
        21: .line 226
            goto 30
      StackMap locals:
      StackMap stack:
        22: aload 4 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 25
        23: .line 227
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeArray:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
        24: .line 228
            goto 30
      StackMap locals:
      StackMap stack:
        25: aload 4 /* value */
            instanceof org.bson.types.Symbol
            ifeq 28
        26: .line 229
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.types.Symbol
            invokevirtual org.bson.types.Symbol.getSymbol:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeSymbol:(Ljava/lang/String;)V
        27: .line 230
            goto 30
        28: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 4 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 5 /* codec */
        start local 5 // org.bson.codecs.Codec codec
        29: .line 232
            aload 2 /* encoderContext */
            aload 5 /* codec */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            invokevirtual org.bson.codecs.EncoderContext.encodeWithChildContext:(Lorg/bson/codecs/Encoder;Lorg/bson/BsonWriter;Ljava/lang/Object;)V
        end local 5 // org.bson.codecs.Codec codec
        30: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object initialValue
        end local 2 // org.bson.codecs.EncoderContext encoderContext
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Lcom/mongodb/DBObjectCodec;
            0   31     1      bsonWriter  Lorg/bson/BsonWriter;
            0   31     2  encoderContext  Lorg/bson/codecs/EncoderContext;
            0   31     3    initialValue  Ljava/lang/Object;
            1   31     4           value  Ljava/lang/Object;
           29   30     5           codec  Lorg/bson/codecs/Codec;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      encoderContext  final
      initialValue    final

  private void encodeMap(org.bson.BsonWriter, java.util.Map<java.lang.String, java.lang.Object>, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/util/Map;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.util.Map document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 237
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 239
            aload 2 /* document */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter java.util.Map org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         3: .line 240
            aload 1 /* bsonWriter */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         4: .line 241
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.util.Map$Entry entry
         5: .line 239
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 243
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 244
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.util.Map document
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2        document  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    5     4           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/bson/BsonWriter;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lorg/bson/codecs/EncoderContext;)V
    MethodParameters:
                Name  Flags
      bsonWriter      final
      document        final
      encoderContext  final

  private void encodeBsonObject(org.bson.BsonWriter, org.bson.BSONObject, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.BSONObject document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 247
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 249
            aload 2 /* document */
            invokeinterface org.bson.BSONObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter org.bson.BSONObject org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         3: .line 250
            aload 1 /* bsonWriter */
            aload 4 /* key */
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         4: .line 251
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* document */
            aload 4 /* key */
            invokeinterface org.bson.BSONObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.String key
         5: .line 249
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 253
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 254
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // org.bson.BSONObject document
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2        document  Lorg/bson/BSONObject;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    5     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      document        final
      encoderContext  final

  private void encodeByteArray(org.bson.BsonWriter, byte[]);
    descriptor: (Lorg/bson/BsonWriter;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // byte[] value
         0: .line 257
            aload 1 /* bsonWriter */
            new org.bson.BsonBinary
            dup
            aload 2 /* value */
            invokespecial org.bson.BsonBinary.<init>:([B)V
            invokeinterface org.bson.BsonWriter.writeBinaryData:(Lorg/bson/BsonBinary;)V
         1: .line 258
            return
        end local 2 // byte[] value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/DBObjectCodec;
            0    2     1  bsonWriter  Lorg/bson/BsonWriter;
            0    2     2       value  [B
    MethodParameters:
            Name  Flags
      bsonWriter  final
      value       final

  private void encodeArray(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.lang.Object value
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 261
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartArray:()V
         1: .line 263
            aload 2 /* value */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 4 /* size */
        start local 4 // int size
         2: .line 264
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 265
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* value */
            iload 5 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         5: .line 264
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 4
        end local 5 // int i
         7: .line 268
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndArray:()V
         8: .line 269
            return
        end local 4 // int size
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.lang.Object value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/mongodb/DBObjectCodec;
            0    9     1      bsonWriter  Lorg/bson/BsonWriter;
            0    9     2           value  Ljava/lang/Object;
            0    9     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            2    9     4            size  I
            3    7     5               i  I
    MethodParameters:
                Name  Flags
      bsonWriter      final
      value           final
      encoderContext  final

  private void encodeDBRef(org.bson.BsonWriter, com.mongodb.DBRef, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lcom/mongodb/DBRef;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // com.mongodb.DBRef dbRef
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 272
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 274
            aload 1 /* bsonWriter */
            ldc "$ref"
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getCollectionName:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeString:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 275
            aload 1 /* bsonWriter */
            ldc "$id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         3: .line 276
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getId:()Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         4: .line 277
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getDatabaseName:()Ljava/lang/String;
            ifnull 6
         5: .line 278
            aload 1 /* bsonWriter */
            ldc "$db"
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getDatabaseName:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeString:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 280
      StackMap locals:
      StackMap stack:
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 281
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // com.mongodb.DBRef dbRef
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2           dbRef  Lcom/mongodb/DBRef;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      dbRef           final
      encoderContext  final

  private void encodeCodeWScope(org.bson.BsonWriter, org.bson.types.CodeWScope, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/types/CodeWScope;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.types.CodeWScope value
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 284
            aload 1 /* bsonWriter */
            aload 2 /* value */
            invokevirtual org.bson.types.CodeWScope.getCode:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeJavaScriptWithScope:(Ljava/lang/String;)V
         1: .line 285
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 2 /* value */
            invokevirtual org.bson.types.CodeWScope.getScope:()Lorg/bson/BSONObject;
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            invokevirtual com.mongodb.DBObjectCodec.encodeBsonObject:(Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
         2: .line 286
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // org.bson.types.CodeWScope value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/DBObjectCodec;
            0    3     1      bsonWriter  Lorg/bson/BsonWriter;
            0    3     2           value  Lorg/bson/types/CodeWScope;
            0    3     3  encoderContext  Lorg/bson/codecs/EncoderContext;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      value           final
      encoderContext  final

  private void encodeIterable(org.bson.BsonWriter, java.lang.Iterable, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Iterable;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.lang.Iterable iterable
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 289
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartArray:()V
         1: .line 290
            aload 2 /* iterable */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter java.lang.Iterable org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* cur */
        start local 4 // java.lang.Object cur
         3: .line 291
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 4 /* cur */
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.Object cur
         4: .line 290
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 293
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndArray:()V
         6: .line 294
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.lang.Iterable iterable
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/mongodb/DBObjectCodec;
            0    7     1      bsonWriter  Lorg/bson/BsonWriter;
            0    7     2        iterable  Ljava/lang/Iterable;
            0    7     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    4     4             cur  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      iterable        final
      encoderContext  final

  private  readValue(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.lang.String fieldName
        start local 4 // java.util.List path
         0: .line 299
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
            astore 6 /* bsonType */
        start local 6 // org.bson.BsonType bsonType
         1: .line 301
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.isContainer:()Z
            ifeq 3
            aload 3 /* fieldName */
            ifnull 3
         2: .line 303
            aload 4 /* path */
            aload 3 /* fieldName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 306
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonReader org.bson.codecs.DecoderContext java.lang.String java.util.List top org.bson.BsonType
      StackMap stack:
            invokestatic com.mongodb.DBObjectCodec.$SWITCH_TABLE$org$bson$BsonType:()[I
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.ordinal:()I
            iaload
            tableswitch { // 4 - 16
                    4: 4
                    5: 6
                    6: 13
                    7: 18
                    8: 18
                    9: 18
                   10: 18
                   11: 15
                   12: 18
                   13: 10
                   14: 18
                   15: 18
                   16: 8
              default: 18
          }
         4: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.DBObjectCodec.verifyForDBRef:(Lcom/mongodb/DBObject;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         5: .line 309
            goto 19
        end local 5 // java.lang.Object initialRetVal
         6: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readArray:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Ljava/util/List;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         7: .line 312
            goto 19
        end local 5 // java.lang.Object initialRetVal
         8: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readCodeWScope:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lorg/bson/types/CodeWScope;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         9: .line 315
            goto 19
        end local 5 // java.lang.Object initialRetVal
        10: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readDBPointer:()Lorg/bson/BsonDbPointer;
            astore 7 /* dbPointer */
        start local 7 // org.bson.BsonDbPointer dbPointer
        11: .line 318
            new com.mongodb.DBRef
            dup
            aload 7 /* dbPointer */
            invokevirtual org.bson.BsonDbPointer.getNamespace:()Ljava/lang/String;
            aload 7 /* dbPointer */
            invokevirtual org.bson.BsonDbPointer.getId:()Lorg/bson/types/ObjectId;
            invokespecial com.mongodb.DBRef.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        12: .line 319
            goto 19
        end local 7 // org.bson.BsonDbPointer dbPointer
        end local 5 // java.lang.Object initialRetVal
        13: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokevirtual com.mongodb.DBObjectCodec.readBinary:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        14: .line 322
            goto 19
        end local 5 // java.lang.Object initialRetVal
        15: .line 324
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readNull:()V
        16: .line 325
            aconst_null
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        17: .line 326
            goto 19
        end local 5 // java.lang.Object initialRetVal
        18: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 6 /* bsonType */
            invokevirtual org.bson.codecs.BsonTypeCodecMap.get:(Lorg/bson/BsonType;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        19: .line 331
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonReader org.bson.codecs.DecoderContext java.lang.String java.util.List java.lang.Object org.bson.BsonType
      StackMap stack:
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.isContainer:()Z
            ifeq 21
            aload 3 /* fieldName */
            ifnull 21
        20: .line 333
            aload 4 /* path */
            aload 3 /* fieldName */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        21: .line 336
      StackMap locals:
      StackMap stack:
            aload 5 /* initialRetVal */
            invokestatic org.bson.BSON.applyDecodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // org.bson.BsonType bsonType
        end local 5 // java.lang.Object initialRetVal
        end local 4 // java.util.List path
        end local 3 // java.lang.String fieldName
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lcom/mongodb/DBObjectCodec;
            0   22     1          reader  Lorg/bson/BsonReader;
            0   22     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0   22     3       fieldName  Ljava/lang/String;
            0   22     4            path  Ljava/util/List<Ljava/lang/String;>;
            5    6     5   initialRetVal  Ljava/lang/Object;
            7    8     5   initialRetVal  Ljava/lang/Object;
            9   10     5   initialRetVal  Ljava/lang/Object;
           12   13     5   initialRetVal  Ljava/lang/Object;
           14   15     5   initialRetVal  Ljava/lang/Object;
           17   18     5   initialRetVal  Ljava/lang/Object;
           19   22     5   initialRetVal  Ljava/lang/Object;
            1   22     6        bsonType  Lorg/bson/BsonType;
           11   13     7       dbPointer  Lorg/bson/BsonDbPointer;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        com.mongodb.lang.Nullable()
      3:
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      fieldName       final
      path            final

  private java.lang.Object readBinary(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 340
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySubType:()B
            istore 3 /* bsonBinarySubType */
        start local 3 // byte bsonBinarySubType
         1: .line 342
            iload 3 /* bsonBinarySubType */
            invokestatic org.bson.BsonBinarySubType.isUuid:(B)Z
            ifeq 3
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySize:()I
            bipush 16
            if_icmpne 3
         2: .line 343
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Ljava/util/UUID;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            areturn
         3: .line 344
      StackMap locals: int
      StackMap stack:
            iload 3 /* bsonBinarySubType */
            getstatic org.bson.BsonBinarySubType.BINARY:Lorg/bson/BsonBinarySubType;
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            if_icmpeq 4
            iload 3 /* bsonBinarySubType */
            getstatic org.bson.BsonBinarySubType.OLD_BINARY:Lorg/bson/BsonBinarySubType;
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            if_icmpne 5
         4: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc [B
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            areturn
         5: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Lorg/bson/types/Binary;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            areturn
        end local 3 // byte bsonBinarySubType
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/mongodb/DBObjectCodec;
            0    6     1             reader  Lorg/bson/BsonReader;
            0    6     2     decoderContext  Lorg/bson/codecs/DecoderContext;
            1    6     3  bsonBinarySubType  B
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  private java.util.List readArray(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 352
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readStartArray:()V
         1: .line 353
            new com.mongodb.BasicDBList
            dup
            invokespecial com.mongodb.BasicDBList.<init>:()V
            astore 4 /* list */
        start local 4 // com.mongodb.BasicDBList list
         2: .line 354
            goto 4
         3: .line 355
      StackMap locals: com.mongodb.BasicDBList
      StackMap stack:
            aload 4 /* list */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aconst_null
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readValue:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            invokevirtual com.mongodb.BasicDBList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 354
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 3
         5: .line 357
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readEndArray:()V
         6: .line 358
            aload 4 /* list */
            areturn
        end local 4 // com.mongodb.BasicDBList list
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/mongodb/DBObjectCodec;
            0    7     1          reader  Lorg/bson/BsonReader;
            0    7     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    7     3            path  Ljava/util/List<Ljava/lang/String;>;
            2    7     4            list  Lcom/mongodb/BasicDBList;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private com.mongodb.DBObject readDocument(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 362
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.objectFactory:Lcom/mongodb/DBObjectFactory;
            aload 3 /* path */
            invokeinterface com.mongodb.DBObjectFactory.getInstance:(Ljava/util/List;)Lcom/mongodb/DBObject;
            astore 4 /* document */
        start local 4 // com.mongodb.DBObject document
         1: .line 364
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readStartDocument:()V
         2: .line 365
            goto 5
         3: .line 366
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readName:()Ljava/lang/String;
            astore 5 /* fieldName */
        start local 5 // java.lang.String fieldName
         4: .line 367
            aload 4 /* document */
            aload 5 /* fieldName */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 5 /* fieldName */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readValue:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String fieldName
         5: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 3
         6: .line 370
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readEndDocument:()V
         7: .line 371
            aload 4 /* document */
            areturn
        end local 4 // com.mongodb.DBObject document
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1          reader  Lorg/bson/BsonReader;
            0    8     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    8     3            path  Ljava/util/List<Ljava/lang/String;>;
            1    8     4        document  Lcom/mongodb/DBObject;
            4    5     5       fieldName  Ljava/lang/String;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Lcom/mongodb/DBObject;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private org.bson.types.CodeWScope readCodeWScope(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lorg/bson/types/CodeWScope;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 375
            new org.bson.types.CodeWScope
            dup
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readJavaScriptWithScope:()Ljava/lang/String;
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            invokespecial org.bson.types.CodeWScope.<init>:(Ljava/lang/String;Lorg/bson/BSONObject;)V
            areturn
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/DBObjectCodec;
            0    1     1          reader  Lorg/bson/BsonReader;
            0    1     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    1     3            path  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Lorg/bson/types/CodeWScope;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private java.lang.Object verifyForDBRef(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 379
            aload 1 /* document */
            ldc "$ref"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 2
            aload 1 /* document */
            ldc "$id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 380
            new com.mongodb.DBRef
            dup
            aload 1 /* document */
            ldc "$db"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* document */
            ldc "$ref"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* document */
            ldc "$id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokespecial com.mongodb.DBRef.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
            areturn
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            areturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/DBObjectCodec;
            0    3     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.BsonValue getDocumentId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bson/BsonValue;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.getDocumentId:(Lcom/mongodb/DBObject;)Lorg/bson/BsonValue;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object generateIdIfAbsentFromDocument(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.generateIdIfAbsentFromDocument:(Lcom/mongodb/DBObject;)Lcom/mongodb/DBObject;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.mongodb.DBObjectCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/DBObject;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean documentHasId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void encode(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.mongodb.DBObject
            aload 3
            invokevirtual com.mongodb.DBObjectCodec.encode:(Lorg/bson/BsonWriter;Lcom/mongodb/DBObject;Lorg/bson/codecs/EncoderContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  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 66
            getstatic com.mongodb.DBObjectCodec.$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 com.mongodb.DBObjectCodec.$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
}
Signature: Ljava/lang/Object;Lorg/bson/codecs/CollectibleCodec<Lcom/mongodb/DBObject;>;
SourceFile: "DBObjectCodec.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext