public class org.bson.Document implements java.util.Map<java.lang.String, java.lang.Object>, java.io.Serializable, org.bson.conversions.Bson
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.Document
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6297731997167536582

  private final java.util.LinkedHashMap<java.lang.String, java.lang.Object> documentAsMap;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/String;Ljava/lang/Object;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
         2: .line 62
            return
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/Document;

  public void <init>(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
         2: .line 72
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 73
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bson/Document;
            0    4     1    key  Ljava/lang/String;
            0    4     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public void <init>(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.util.Map map
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            aload 1 /* map */
            invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
            putfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
         2: .line 82
            return
        end local 1 // java.util.Map map
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/Document;
            0    3     1   map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
      Name  Flags
      map   final

  public static org.bson.Document parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/Document;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String json
         0: .line 94
            aload 0 /* json */
            new org.bson.codecs.DocumentCodec
            dup
            invokespecial org.bson.codecs.DocumentCodec.<init>:()V
            invokestatic org.bson.Document.parse:(Ljava/lang/String;Lorg/bson/codecs/Decoder;)Lorg/bson/Document;
            areturn
        end local 0 // java.lang.String json
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  json  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      json  final

  public static org.bson.Document parse(java.lang.String, org.bson.codecs.Decoder<org.bson.Document>);
    descriptor: (Ljava/lang/String;Lorg/bson/codecs/Decoder;)Lorg/bson/Document;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String json
        start local 1 // org.bson.codecs.Decoder decoder
         0: .line 107
            ldc "codec"
            aload 1 /* decoder */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 108
            new org.bson.json.JsonReader
            dup
            aload 0 /* json */
            invokespecial org.bson.json.JsonReader.<init>:(Ljava/lang/String;)V
            astore 2 /* bsonReader */
        start local 2 // org.bson.json.JsonReader bsonReader
         2: .line 109
            aload 1 /* decoder */
            aload 2 /* bsonReader */
            invokestatic org.bson.codecs.DecoderContext.builder:()Lorg/bson/codecs/DecoderContext$Builder;
            invokevirtual org.bson.codecs.DecoderContext$Builder.build:()Lorg/bson/codecs/DecoderContext;
            invokeinterface org.bson.codecs.Decoder.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 2 // org.bson.json.JsonReader bsonReader
        end local 1 // org.bson.codecs.Decoder decoder
        end local 0 // java.lang.String json
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        json  Ljava/lang/String;
            0    3     1     decoder  Lorg/bson/codecs/Decoder<Lorg/bson/Document;>;
            2    3     2  bsonReader  Lorg/bson/json/JsonReader;
    Signature: (Ljava/lang/String;Lorg/bson/codecs/Decoder<Lorg/bson/Document;>;)Lorg/bson/Document;
    MethodParameters:
         Name  Flags
      json     final
      decoder  final

  public <C> org.bson.BsonDocument toBsonDocument(java.lang.Class<C>, org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Class documentClass
        start local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 114
            new org.bson.BsonDocumentWrapper
            dup
            aload 0 /* this */
            aload 2 /* codecRegistry */
            ldc Lorg/bson/Document;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            invokespecial org.bson.BsonDocumentWrapper.<init>:(Ljava/lang/Object;Lorg/bson/codecs/Encoder;)V
            areturn
        end local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 1 // java.lang.Class documentClass
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/bson/Document;
            0    1     1  documentClass  Ljava/lang/Class<TC;>;
            0    1     2  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    Signature: <C:Ljava/lang/Object;>(Ljava/lang/Class<TC;>;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
    MethodParameters:
               Name  Flags
      documentClass  final
      codecRegistry  final

  public org.bson.Document append(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 127
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 128
            aload 0 /* this */
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/Document;
            0    2     1    key  Ljava/lang/String;
            0    2     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public <T> T get(, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Class clazz
         0: .line 143
            ldc "clazz"
            aload 2 /* clazz */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 144
            aload 2 /* clazz */
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/Document;
            0    2     1    key  Ljava/lang/Object;
            0    2     2  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      key    final
      clazz  final

  public <T> T get(, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object defaultValue
         0: .line 160
            ldc "defaultValue"
            aload 2 /* defaultValue */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 161
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         2: .line 162
            aload 3 /* value */
            ifnonnull 3
            aload 2 /* defaultValue */
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: aload 3 /* value */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/bson/Document;
            0    5     1           key  Ljava/lang/Object;
            0    5     2  defaultValue  TT;
            2    5     3         value  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;TT;)TT;
    MethodParameters:
              Name  Flags
      key           final
      defaultValue  final

  public <T> T getEmbedded(java.util.List<?>, java.lang.Class<T>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.util.List keys
        start local 2 // java.lang.Class clazz
         0: .line 183
            ldc "keys"
            aload 1 /* keys */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 184
            ldc "keys"
            aload 1 /* keys */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: java.lang.String
         2: iconst_1
      StackMap locals: org.bson.Document java.util.List java.lang.Class
      StackMap stack: java.lang.String int
         3: invokestatic org.bson.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
         4: .line 185
            ldc "clazz"
            aload 2 /* clazz */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 186
            aload 0 /* this */
            aload 1 /* keys */
            aload 2 /* clazz */
            aconst_null
            invokevirtual org.bson.Document.getEmbeddedValue:(Ljava/util/List;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.util.List keys
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/bson/Document;
            0    6     1   keys  Ljava/util/List<*>;
            0    6     2  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<*>;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      keys   final
      clazz  final

  public <T> T getEmbedded(java.util.List<?>, );
    descriptor: (Ljava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.util.List keys
        start local 2 // java.lang.Object defaultValue
         0: .line 207
            ldc "keys"
            aload 1 /* keys */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 208
            ldc "keys"
            aload 1 /* keys */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: java.lang.String
         2: iconst_1
      StackMap locals: org.bson.Document java.util.List java.lang.Object
      StackMap stack: java.lang.String int
         3: invokestatic org.bson.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
         4: .line 209
            ldc "defaultValue"
            aload 2 /* defaultValue */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 210
            aload 0 /* this */
            aload 1 /* keys */
            aconst_null
            aload 2 /* defaultValue */
            invokevirtual org.bson.Document.getEmbeddedValue:(Ljava/util/List;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.util.List keys
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/bson/Document;
            0    6     1          keys  Ljava/util/List<*>;
            0    6     2  defaultValue  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<*>;TT;)TT;
    MethodParameters:
              Name  Flags
      keys          final
      defaultValue  final

  private <T> T getEmbeddedValue(java.util.List<?>, java.lang.Class<T>, );
    descriptor: (Ljava/util/List;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.bson.Document this
        start local 1 // java.util.List keys
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.Object defaultValue
         0: .line 218
            aload 0 /* this */
            astore 4 /* value */
        start local 4 // java.lang.Object value
         1: .line 219
            aload 1 /* keys */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5 /* keyIterator */
        start local 5 // java.util.Iterator keyIterator
         2: .line 220
            goto 12
         3: .line 221
      StackMap locals: java.lang.Object java.util.Iterator
      StackMap stack:
            aload 5 /* keyIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* key */
        start local 6 // java.lang.Object key
         4: .line 222
            aload 4 /* value */
            checkcast org.bson.Document
            aload 6 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
         5: .line 223
            aload 4 /* value */
            instanceof org.bson.Document
            ifne 12
         6: .line 224
            aload 4 /* value */
            ifnonnull 8
         7: .line 225
            aload 3 /* defaultValue */
            areturn
         8: .line 226
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* keyIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 12
         9: .line 227
            new java.lang.ClassCastException
            dup
            ldc "At key %s, the value is not a Document (%s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 228
            aload 6 /* key */
            aastore
            dup
            iconst_1
            aload 4 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        11: .line 227
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.Object key
        12: .line 220
      StackMap locals:
      StackMap stack:
            aload 5 /* keyIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 232
            aload 2 /* clazz */
            ifnull 14
            aload 2 /* clazz */
            aload 4 /* value */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 4 /* value */
      StackMap locals:
      StackMap stack: java.lang.Object
        15: areturn
        end local 5 // java.util.Iterator keyIterator
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object defaultValue
        end local 2 // java.lang.Class clazz
        end local 1 // java.util.List keys
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/bson/Document;
            0   16     1          keys  Ljava/util/List<*>;
            0   16     2         clazz  Ljava/lang/Class<TT;>;
            0   16     3  defaultValue  TT;
            1   16     4         value  Ljava/lang/Object;
            2   16     5   keyIterator  Ljava/util/Iterator<*>;
            4   12     6           key  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<*>;Ljava/lang/Class<TT;>;TT;)TT;
    MethodParameters:
              Name  Flags
      keys          final
      clazz         final
      defaultValue  final

  public java.lang.Integer getInteger(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 243
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public int getInteger(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // int defaultValue
         0: .line 255
            aload 0 /* this */
            aload 1 /* key */
            iload 2 /* defaultValue */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // int defaultValue
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/bson/Document;
            0    1     1           key  Ljava/lang/Object;
            0    1     2  defaultValue  I
    MethodParameters:
              Name  Flags
      key           final
      defaultValue  final

  public java.lang.Long getLong(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 266
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.Double getDouble(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Double;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 277
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.String getString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 288
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.Boolean getBoolean(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 299
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public boolean getBoolean(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // boolean defaultValue
         0: .line 311
            aload 0 /* this */
            aload 1 /* key */
            iload 2 /* defaultValue */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // boolean defaultValue
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/bson/Document;
            0    1     1           key  Ljava/lang/Object;
            0    1     2  defaultValue  Z
    MethodParameters:
              Name  Flags
      key           final
      defaultValue  final

  public org.bson.types.ObjectId getObjectId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bson/types/ObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 322
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.types.ObjectId
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.util.Date getDate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 333
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Date
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public <T> java.util.List<T> getList(, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Class clazz
         0: .line 348
            ldc "clazz"
            aload 2 /* clazz */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 349
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* clazz */
            aconst_null
            invokevirtual org.bson.Document.constructValuesList:(Ljava/lang/Object;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/Document;
            0    2     1    key  Ljava/lang/Object;
            0    2     2  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
       Name  Flags
      key    final
      clazz  final

  public <T> java.util.List<T> getList(, java.lang.Class<T>, java.util.List<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Class clazz
        start local 3 // java.util.List defaultValue
         0: .line 365
            ldc "defaultValue"
            aload 3 /* defaultValue */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 366
            ldc "clazz"
            aload 2 /* clazz */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 367
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* clazz */
            aload 3 /* defaultValue */
            invokevirtual org.bson.Document.constructValuesList:(Ljava/lang/Object;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
            areturn
        end local 3 // java.util.List defaultValue
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/bson/Document;
            0    3     1           key  Ljava/lang/Object;
            0    3     2         clazz  Ljava/lang/Class<TT;>;
            0    3     3  defaultValue  Ljava/util/List<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;Ljava/util/List<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
              Name  Flags
      key           final
      clazz         final
      defaultValue  final

  private <T> java.util.List<T> constructValuesList(, java.lang.Class<T>, java.util.List<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Class clazz
        start local 3 // java.util.List defaultValue
         0: .line 375
            aload 0 /* this */
            aload 1 /* key */
            ldc Ljava/util/List;
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* value */
        start local 4 // java.util.List value
         1: .line 376
            aload 4 /* value */
            ifnonnull 3
         2: .line 377
            aload 3 /* defaultValue */
            areturn
         3: .line 380
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* value */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.bson.Document java.lang.Object java.lang.Class java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 5 /* item */
        start local 5 // java.lang.Object item
         5: .line 381
            aload 2 /* clazz */
            aload 5 /* item */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         6: .line 382
            new java.lang.ClassCastException
            dup
            ldc "List element cannot be cast to %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Object item
         7: .line 380
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 385
            aload 4 /* value */
            areturn
        end local 4 // java.util.List value
        end local 3 // java.util.List defaultValue
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/bson/Document;
            0    9     1           key  Ljava/lang/Object;
            0    9     2         clazz  Ljava/lang/Class<TT;>;
            0    9     3  defaultValue  Ljava/util/List<TT;>;
            1    9     4         value  Ljava/util/List<*>;
            5    7     5          item  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;Ljava/util/List<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
              Name  Flags
      key           final
      clazz         final
      defaultValue  final

  public java.lang.String toJson();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 399
            aload 0 /* this */
            new org.bson.json.JsonWriterSettings
            dup
            invokespecial org.bson.json.JsonWriterSettings.<init>:()V
            invokevirtual org.bson.Document.toJson:(Lorg/bson/json/JsonWriterSettings;)Ljava/lang/String;
            areturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;

  public java.lang.String toJson(org.bson.json.JsonWriterSettings);
    descriptor: (Lorg/bson/json/JsonWriterSettings;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // org.bson.json.JsonWriterSettings writerSettings
         0: .line 412
            aload 0 /* this */
            aload 1 /* writerSettings */
            new org.bson.codecs.DocumentCodec
            dup
            invokespecial org.bson.codecs.DocumentCodec.<init>:()V
            invokevirtual org.bson.Document.toJson:(Lorg/bson/json/JsonWriterSettings;Lorg/bson/codecs/Encoder;)Ljava/lang/String;
            areturn
        end local 1 // org.bson.json.JsonWriterSettings writerSettings
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/bson/Document;
            0    1     1  writerSettings  Lorg/bson/json/JsonWriterSettings;
    MethodParameters:
                Name  Flags
      writerSettings  final

  public java.lang.String toJson(org.bson.codecs.Encoder<org.bson.Document>);
    descriptor: (Lorg/bson/codecs/Encoder;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // org.bson.codecs.Encoder encoder
         0: .line 426
            aload 0 /* this */
            new org.bson.json.JsonWriterSettings
            dup
            invokespecial org.bson.json.JsonWriterSettings.<init>:()V
            aload 1 /* encoder */
            invokevirtual org.bson.Document.toJson:(Lorg/bson/json/JsonWriterSettings;Lorg/bson/codecs/Encoder;)Ljava/lang/String;
            areturn
        end local 1 // org.bson.codecs.Encoder encoder
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/bson/Document;
            0    1     1  encoder  Lorg/bson/codecs/Encoder<Lorg/bson/Document;>;
    Signature: (Lorg/bson/codecs/Encoder<Lorg/bson/Document;>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      encoder  final

  public java.lang.String toJson(org.bson.json.JsonWriterSettings, org.bson.codecs.Encoder<org.bson.Document>);
    descriptor: (Lorg/bson/json/JsonWriterSettings;Lorg/bson/codecs/Encoder;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // org.bson.json.JsonWriterSettings writerSettings
        start local 2 // org.bson.codecs.Encoder encoder
         0: .line 438
            new org.bson.json.JsonWriter
            dup
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            aload 1 /* writerSettings */
            invokespecial org.bson.json.JsonWriter.<init>:(Ljava/io/Writer;Lorg/bson/json/JsonWriterSettings;)V
            astore 3 /* writer */
        start local 3 // org.bson.json.JsonWriter writer
         1: .line 439
            aload 2 /* encoder */
            aload 3 /* writer */
            aload 0 /* this */
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            invokeinterface org.bson.codecs.Encoder.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
         2: .line 440
            aload 3 /* writer */
            invokevirtual org.bson.json.JsonWriter.getWriter:()Ljava/io/Writer;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 3 // org.bson.json.JsonWriter writer
        end local 2 // org.bson.codecs.Encoder encoder
        end local 1 // org.bson.json.JsonWriterSettings writerSettings
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/bson/Document;
            0    3     1  writerSettings  Lorg/bson/json/JsonWriterSettings;
            0    3     2         encoder  Lorg/bson/codecs/Encoder<Lorg/bson/Document;>;
            1    3     3          writer  Lorg/bson/json/JsonWriter;
    Signature: (Lorg/bson/json/JsonWriterSettings;Lorg/bson/codecs/Encoder<Lorg/bson/Document;>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      writerSettings  final
      encoder         final

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 447
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.size:()I
            ireturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 452
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.isEmpty:()Z
            ireturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;

  public boolean containsValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object value
         0: .line 457
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* value */
            invokevirtual java.util.LinkedHashMap.containsValue:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bson/Document;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  final

  public boolean containsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 462
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            invokevirtual java.util.LinkedHashMap.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.Object get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 467
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public java.lang.Object put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.Document this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 472
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bson/Document;
            0    1     1    key  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public java.lang.Object remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object key
         0: .line 477
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* key */
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public void putAll(java.util.Map<? extends java.lang.String, ?>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.util.Map map
         0: .line 482
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 1 /* map */
            invokevirtual java.util.LinkedHashMap.putAll:(Ljava/util/Map;)V
         1: .line 483
            return
        end local 1 // java.util.Map map
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/Document;
            0    2     1   map  Ljava/util/Map<+Ljava/lang/String;*>;
    Signature: (Ljava/util/Map<+Ljava/lang/String;*>;)V
    MethodParameters:
      Name  Flags
      map   final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 487
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
         1: .line 488
            return
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/Document;

  public java.util.Set<java.lang.String> keySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 492
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.keySet:()Ljava/util/Set;
            areturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.util.Collection<java.lang.Object> values();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 497
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            areturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
    Signature: ()Ljava/util/Collection<Ljava/lang/Object;>;

  public java.util.Set<java.util.Map$Entry<java.lang.String, java.lang.Object>> entrySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 502
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.entrySet:()Ljava/util/Set;
            areturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;
    Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;>;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bson.Document this
        start local 1 // java.lang.Object o
         0: .line 507
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 508
            iconst_1
            ireturn
         2: .line 510
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            ifnull 3
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 511
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 514
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.bson.Document
            astore 2 /* document */
        start local 2 // org.bson.Document document
         5: .line 516
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            aload 2 /* document */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 517
            iconst_0
            ireturn
         7: .line 520
      StackMap locals: org.bson.Document
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.bson.Document document
        end local 1 // java.lang.Object o
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/bson/Document;
            0    8     1         o  Ljava/lang/Object;
            5    8     2  document  Lorg/bson/Document;
    MethodParameters:
      Name  Flags
      o     final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 525
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.hashCode:()I
            ireturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/Document;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.Document this
         0: .line 530
            new java.lang.StringBuilder
            dup
            ldc "Document{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 531
            aload 0 /* this */
            getfield org.bson.Document.documentAsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 532
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         3: .line 530
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.bson.Document this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/Document;

  public java.lang.Object put(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)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
            checkcast java.lang.String
            aload 2
            checkcast java.lang.Object
            invokevirtual org.bson.Document.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/io/Serializable;Lorg/bson/conversions/Bson;
SourceFile: "Document.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.bson.codecs.DecoderContext$Builder of org.bson.codecs.DecoderContext
  public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext