public class com.mongodb.Mongo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.Mongo
  super_class: java.lang.Object
{
  static final java.lang.String ADMIN_DATABASE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "admin"

  private final java.util.concurrent.ConcurrentMap<java.lang.String, com.mongodb.DB> dbCache;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lcom/mongodb/DB;>;

  private volatile com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

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

  private final java.util.List<com.mongodb.MongoCredential> credentialsList;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/mongodb/MongoCredential;>;

  private final com.mongodb.Bytes$OptionHolder optionHolder;
    descriptor: Lcom/mongodb/Bytes$OptionHolder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.BufferProvider bufferProvider;
    descriptor: Lcom/mongodb/connection/BufferProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.ConcurrentLinkedQueue<com.mongodb.Mongo$ServerCursorAndNamespace> orphanedCursors;
    descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Lcom/mongodb/Mongo$ServerCursorAndNamespace;>;

  private final java.util.concurrent.ExecutorService cursorCleaningService;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.client.internal.MongoClientDelegate delegate;
    descriptor: Lcom/mongodb/client/internal/MongoClientDelegate;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 114
            aload 0 /* this */
            new com.mongodb.ServerAddress
            dup
            invokespecial com.mongodb.ServerAddress.<init>:()V
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 115
            return
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.lang.String host
         0: .line 125
            aload 0 /* this */
            new com.mongodb.ServerAddress
            dup
            aload 1 /* host */
            invokespecial com.mongodb.ServerAddress.<init>:(Ljava/lang/String;)V
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 126
            return
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
            0    2     1  host  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      host  final

  public void <init>(java.lang.String, com.mongodb.MongoOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/MongoOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.lang.String host
        start local 2 // com.mongodb.MongoOptions options
         0: .line 140
            aload 0 /* this */
            new com.mongodb.ServerAddress
            dup
            aload 1 /* host */
            invokespecial com.mongodb.ServerAddress.<init>:(Ljava/lang/String;)V
            aload 2 /* options */
            invokevirtual com.mongodb.MongoOptions.toClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 141
            return
        end local 2 // com.mongodb.MongoOptions options
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1     host  Ljava/lang/String;
            0    2     2  options  Lcom/mongodb/MongoOptions;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      host     final
      options  final

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.lang.String host
        start local 2 // int port
         0: .line 152
            aload 0 /* this */
            new com.mongodb.ServerAddress
            dup
            aload 1 /* host */
            iload 2 /* port */
            invokespecial com.mongodb.ServerAddress.<init>:(Ljava/lang/String;I)V
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 153
            return
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
            0    2     1  host  Ljava/lang/String;
            0    2     2  port  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      host  final
      port  final

  public void <init>(com.mongodb.ServerAddress);
    descriptor: (Lcom/mongodb/ServerAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress address
         0: .line 164
            aload 0 /* this */
            aload 1 /* address */
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 165
            return
        end local 1 // com.mongodb.ServerAddress address
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1  address  Lcom/mongodb/ServerAddress;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      address  final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.MongoOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress address
        start local 2 // com.mongodb.MongoOptions options
         0: .line 179
            aload 0 /* this */
            aload 1 /* address */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoOptions.toClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 180
            return
        end local 2 // com.mongodb.MongoOptions options
        end local 1 // com.mongodb.ServerAddress address
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1  address  Lcom/mongodb/ServerAddress;
            0    2     2  options  Lcom/mongodb/MongoOptions;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      address  final
      options  final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.ServerAddress);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/ServerAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress left
        start local 2 // com.mongodb.ServerAddress right
         0: .line 194
            aload 0 /* this */
            iconst_2
            anewarray com.mongodb.ServerAddress
            dup
            iconst_0
            aload 1 /* left */
            aastore
            dup
            iconst_1
            aload 2 /* right */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 195
            return
        end local 2 // com.mongodb.ServerAddress right
        end local 1 // com.mongodb.ServerAddress left
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/mongodb/Mongo;
            0    2     1   left  Lcom/mongodb/ServerAddress;
            0    2     2  right  Lcom/mongodb/ServerAddress;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      left   final
      right  final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.ServerAddress, com.mongodb.MongoOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress left
        start local 2 // com.mongodb.ServerAddress right
        start local 3 // com.mongodb.MongoOptions options
         0: .line 212
            aload 0 /* this */
            iconst_2
            anewarray com.mongodb.ServerAddress
            dup
            iconst_0
            aload 1 /* left */
            aastore
            dup
            iconst_1
            aload 2 /* right */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* options */
            invokevirtual com.mongodb.MongoOptions.toClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 213
            return
        end local 3 // com.mongodb.MongoOptions options
        end local 2 // com.mongodb.ServerAddress right
        end local 1 // com.mongodb.ServerAddress left
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1     left  Lcom/mongodb/ServerAddress;
            0    2     2    right  Lcom/mongodb/ServerAddress;
            0    2     3  options  Lcom/mongodb/MongoOptions;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      left     final
      right    final
      options  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.util.List seeds
         0: .line 232
            aload 0 /* this */
            aload 1 /* seeds */
            invokestatic com.mongodb.Mongo.createLegacyOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 233
            return
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/mongodb/Mongo;
            0    2     1  seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      seeds  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.util.List seeds
        start local 2 // com.mongodb.MongoOptions options
         0: .line 256
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoOptions.toClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 257
            return
        end local 2 // com.mongodb.MongoOptions options
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1    seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  options  Lcom/mongodb/MongoOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoOptions;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      seeds    final
      options  final

  public void <init>(com.mongodb.MongoURI);
    descriptor: (Lcom/mongodb/MongoURI;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.MongoURI uri
         0: .line 279
            aload 0 /* this */
            aload 1 /* uri */
            invokevirtual com.mongodb.MongoURI.toClientURI:()Lcom/mongodb/MongoClientURI;
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/MongoClientURI;)V
         1: .line 280
            return
        end local 1 // com.mongodb.MongoURI uri
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
            0    2     1   uri  Lcom/mongodb/MongoURI;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      uri   final

  void <init>(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.util.List seedList
        start local 2 // com.mongodb.MongoClientOptions options
         0: .line 283
            aload 0 /* this */
            aload 1 /* seedList */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 284
            return
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.util.List seedList
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/Mongo;
            0    2     1  seedList  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2   options  Lcom/mongodb/MongoClientOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoClientOptions;)V
    MethodParameters:
          Name  Flags
      seedList  final
      options   final

  void <init>(com.mongodb.ServerAddress, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress serverAddress
        start local 2 // com.mongodb.MongoClientOptions options
         0: .line 287
            aload 0 /* this */
            aload 1 /* serverAddress */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 288
            return
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/Mongo;
            0    2     1  serverAddress  Lcom/mongodb/ServerAddress;
            0    2     2        options  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
               Name  Flags
      serverAddress  final
      options        final

  void <init>(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress serverAddress
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 291
            aload 0 /* this */
            aload 1 /* serverAddress */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aconst_null
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 292
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/Mongo;
            0    2     1    serverAddress  Lcom/mongodb/ServerAddress;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3          options  Lcom/mongodb/MongoClientOptions;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;)V
    MethodParameters:
                 Name  Flags
      serverAddress    final
      credentialsList  final
      options          final

  void <init>(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerAddress serverAddress
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 296
            aload 0 /* this */
            aload 1 /* serverAddress */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokestatic com.mongodb.Mongo.createCluster:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            aload 3 /* options */
            aload 2 /* credentialsList */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/MongoClientOptions;Ljava/util/List;)V
         1: .line 297
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/Mongo;
            0    2     1           serverAddress  Lcom/mongodb/ServerAddress;
            0    2     2         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      serverAddress           final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  void <init>(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.util.List seedList
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 300
            aload 0 /* this */
            aload 1 /* seedList */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aconst_null
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 301
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // java.util.List seedList
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/Mongo;
            0    2     1         seedList  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3          options  Lcom/mongodb/MongoClientOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;)V
    MethodParameters:
                 Name  Flags
      seedList         final
      credentialsList  final
      options          final

  void <init>(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.util.List seedList
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 305
            aload 0 /* this */
            aload 1 /* seedList */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokestatic com.mongodb.Mongo.createCluster:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            aload 3 /* options */
            aload 2 /* credentialsList */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/MongoClientOptions;Ljava/util/List;)V
         1: .line 306
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // java.util.List seedList
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/Mongo;
            0    2     1                seedList  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      seedList                final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  void <init>(com.mongodb.MongoClientURI);
    descriptor: (Lcom/mongodb/MongoClientURI;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.MongoClientURI mongoURI
         0: .line 309
            aload 0 /* this */
            aload 1 /* mongoURI */
            aconst_null
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 310
            return
        end local 1 // com.mongodb.MongoClientURI mongoURI
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/Mongo;
            0    2     1  mongoURI  Lcom/mongodb/MongoClientURI;
    MethodParameters:
          Name  Flags
      mongoURI  final

  void <init>(com.mongodb.MongoClientURI, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.MongoClientURI mongoURI
        start local 2 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 313
            aload 0 /* this */
            aload 1 /* mongoURI */
            aload 2 /* mongoDriverInformation */
            invokestatic com.mongodb.Mongo.createCluster:(Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            aload 1 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getOptions:()Lcom/mongodb/MongoClientOptions;
         1: .line 314
            aload 1 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getCredentials:()Lcom/mongodb/MongoCredential;
            ifnull 2
            iconst_1
            anewarray com.mongodb.MongoCredential
            dup
            iconst_0
            aload 1 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getCredentials:()Lcom/mongodb/MongoCredential;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            goto 3
      StackMap locals: uninitialized-this com.mongodb.MongoClientURI com.mongodb.MongoDriverInformation
      StackMap stack: uninitialized-this com.mongodb.connection.Cluster com.mongodb.MongoClientOptions
         2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
      StackMap locals: uninitialized-this com.mongodb.MongoClientURI com.mongodb.MongoDriverInformation
      StackMap stack: uninitialized-this com.mongodb.connection.Cluster com.mongodb.MongoClientOptions java.util.List
         3: invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/MongoClientOptions;Ljava/util/List;)V
         4: .line 315
            return
        end local 2 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 1 // com.mongodb.MongoClientURI mongoURI
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lcom/mongodb/Mongo;
            0    5     1                mongoURI  Lcom/mongodb/MongoClientURI;
            0    5     2  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      mongoURI                final
      mongoDriverInformation  final

  void <init>(com.mongodb.connection.Cluster, com.mongodb.MongoClientOptions, java.util.List<com.mongodb.MongoCredential>);
    descriptor: (Lcom/mongodb/connection/Cluster;Lcom/mongodb/MongoClientOptions;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.connection.Cluster cluster
        start local 2 // com.mongodb.MongoClientOptions options
        start local 3 // java.util.List credentialsList
         0: .line 318
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
         2: new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.mongodb.Mongo.dbCache:Ljava/util/concurrent/ConcurrentMap;
         3: .line 100
            aload 0 /* this */
            new com.mongodb.internal.connection.PowerOfTwoBufferPool
            dup
            invokespecial com.mongodb.internal.connection.PowerOfTwoBufferPool.<init>:()V
            putfield com.mongodb.Mongo.bufferProvider:Lcom/mongodb/connection/BufferProvider;
         4: .line 102
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedQueue
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
            putfield com.mongodb.Mongo.orphanedCursors:Ljava/util/concurrent/ConcurrentLinkedQueue;
         5: .line 319
            aload 0 /* this */
            aload 2 /* options */
            putfield com.mongodb.Mongo.options:Lcom/mongodb/MongoClientOptions;
         6: .line 320
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            putfield com.mongodb.Mongo.readPreference:Lcom/mongodb/ReadPreference;
         7: .line 321
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getWriteConcern:()Lcom/mongodb/WriteConcern;
            putfield com.mongodb.Mongo.writeConcern:Lcom/mongodb/WriteConcern;
         8: .line 322
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            putfield com.mongodb.Mongo.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 323
            aload 0 /* this */
            new com.mongodb.Bytes$OptionHolder
            dup
            aconst_null
            invokespecial com.mongodb.Bytes$OptionHolder.<init>:(Lcom/mongodb/Bytes$OptionHolder;)V
            putfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
        10: .line 324
            aload 0 /* this */
            aload 3 /* credentialsList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.mongodb.Mongo.credentialsList:Ljava/util/List;
        11: .line 326
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getAutoEncryptionSettings:()Lcom/mongodb/AutoEncryptionSettings;
            astore 4 /* autoEncryptionSettings */
        start local 4 // com.mongodb.AutoEncryptionSettings autoEncryptionSettings
        12: .line 327
            aload 0 /* this */
        13: new com.mongodb.client.internal.MongoClientDelegate
            dup
            aload 1 /* cluster */
            aload 3 /* credentialsList */
            aload 0 /* this */
        14: .line 328
            aload 4 /* autoEncryptionSettings */
            ifnonnull 15
            aconst_null
            goto 16
      StackMap locals: com.mongodb.Mongo com.mongodb.connection.Cluster com.mongodb.MongoClientOptions java.util.List com.mongodb.AutoEncryptionSettings
      StackMap stack: com.mongodb.Mongo new 13 new 13 com.mongodb.connection.Cluster java.util.List com.mongodb.Mongo
        15: aload 0 /* this */
            invokevirtual com.mongodb.Mongo.asSimpleMongoClient:()Lcom/mongodb/client/internal/SimpleMongoClient;
            aload 4 /* autoEncryptionSettings */
            invokestatic com.mongodb.client.internal.Crypts.createCrypt:(Lcom/mongodb/client/internal/SimpleMongoClient;Lcom/mongodb/AutoEncryptionSettings;)Lcom/mongodb/client/internal/Crypt;
      StackMap locals: com.mongodb.Mongo com.mongodb.connection.Cluster com.mongodb.MongoClientOptions java.util.List com.mongodb.AutoEncryptionSettings
      StackMap stack: com.mongodb.Mongo new 13 new 13 com.mongodb.connection.Cluster java.util.List com.mongodb.Mongo com.mongodb.client.internal.Crypt
        16: invokespecial com.mongodb.client.internal.MongoClientDelegate.<init>:(Lcom/mongodb/connection/Cluster;Ljava/util/List;Ljava/lang/Object;Lcom/mongodb/client/internal/Crypt;)V
        17: .line 327
            putfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
        18: .line 330
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.isCursorFinalizerEnabled:()Z
            ifeq 19
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.createCursorCleaningService:()Ljava/util/concurrent/ExecutorService;
            goto 20
      StackMap locals:
      StackMap stack: com.mongodb.Mongo
        19: aconst_null
      StackMap locals: com.mongodb.Mongo com.mongodb.connection.Cluster com.mongodb.MongoClientOptions java.util.List com.mongodb.AutoEncryptionSettings
      StackMap stack: com.mongodb.Mongo java.util.concurrent.ExecutorService
        20: putfield com.mongodb.Mongo.cursorCleaningService:Ljava/util/concurrent/ExecutorService;
        21: .line 331
            return
        end local 4 // com.mongodb.AutoEncryptionSettings autoEncryptionSettings
        end local 3 // java.util.List credentialsList
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // com.mongodb.connection.Cluster cluster
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   22     0                    this  Lcom/mongodb/Mongo;
            0   22     1                 cluster  Lcom/mongodb/connection/Cluster;
            0   22     2                 options  Lcom/mongodb/MongoClientOptions;
            0   22     3         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
           12   22     4  autoEncryptionSettings  Lcom/mongodb/AutoEncryptionSettings;
    Signature: (Lcom/mongodb/connection/Cluster;Lcom/mongodb/MongoClientOptions;Ljava/util/List<Lcom/mongodb/MongoCredential;>;)V
    MethodParameters:
                 Name  Flags
      cluster          final
      options          final
      credentialsList  final

  com.mongodb.client.internal.SimpleMongoClient asSimpleMongoClient();
    descriptor: ()Lcom/mongodb/client/internal/SimpleMongoClient;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 335
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  public void setWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 352
            aload 0 /* this */
            aload 1 /* writeConcern */
            putfield com.mongodb.Mongo.writeConcern:Lcom/mongodb/WriteConcern;
         1: .line 353
            return
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/Mongo;
            0    2     1  writeConcern  Lcom/mongodb/WriteConcern;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 361
            aload 0 /* this */
            getfield com.mongodb.Mongo.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  public com.mongodb.ReadConcern getReadConcern();
    descriptor: ()Lcom/mongodb/ReadConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 370
            aload 0 /* this */
            getfield com.mongodb.Mongo.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  public void setReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 387
            aload 0 /* this */
            aload 1 /* readPreference */
            putfield com.mongodb.Mongo.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 388
            return
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/Mongo;
            0    2     1  readPreference  Lcom/mongodb/ReadPreference;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.ReadPreference getReadPreference();
    descriptor: ()Lcom/mongodb/ReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 396
            aload 0 /* this */
            getfield com.mongodb.Mongo.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  public java.util.List<com.mongodb.ServerAddress> getAllAddress();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 407
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getCluster:()Lcom/mongodb/connection/Cluster;
            invokeinterface com.mongodb.connection.Cluster.getSettings:()Lcom/mongodb/connection/ClusterSettings;
            invokevirtual com.mongodb.connection.ClusterSettings.getHosts:()Ljava/util/List;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    Signature: ()Ljava/util/List<Lcom/mongodb/ServerAddress;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.util.List<com.mongodb.ServerAddress> getServerAddressList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 418
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getServerAddressList:()Ljava/util/List;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    Signature: ()Ljava/util/List<Lcom/mongodb/ServerAddress;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private com.mongodb.connection.ClusterDescription getClusterDescription();
    descriptor: ()Lcom/mongodb/connection/ClusterDescription;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 422
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getCluster:()Lcom/mongodb/connection/Cluster;
            invokeinterface com.mongodb.connection.Cluster.getDescription:()Lcom/mongodb/connection/ClusterDescription;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  public com.mongodb.ServerAddress getAddress();
    descriptor: ()Lcom/mongodb/ServerAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 434
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getClusterDescription:()Lcom/mongodb/connection/ClusterDescription;
            astore 1 /* description */
        start local 1 // com.mongodb.connection.ClusterDescription description
         1: .line 435
            aload 1 /* description */
            invokevirtual com.mongodb.connection.ClusterDescription.getPrimaries:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 436
            aconst_null
            areturn
         3: .line 438
      StackMap locals: com.mongodb.connection.ClusterDescription
      StackMap stack:
            aload 1 /* description */
            invokevirtual com.mongodb.connection.ClusterDescription.getPrimaries:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.connection.ServerDescription
            invokevirtual com.mongodb.connection.ServerDescription.getAddress:()Lcom/mongodb/ServerAddress;
            areturn
        end local 1 // com.mongodb.connection.ClusterDescription description
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/mongodb/Mongo;
            1    4     1  description  Lcom/mongodb/connection/ClusterDescription;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.mongodb.lang.Nullable()

  public com.mongodb.MongoOptions getMongoOptions();
    descriptor: ()Lcom/mongodb/MongoOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 453
            new com.mongodb.MongoOptions
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.MongoOptions.<init>:(Lcom/mongodb/MongoClientOptions;)V
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.ReplicaSetStatus getReplicaSetStatus();
    descriptor: ()Lcom/mongodb/ReplicaSetStatus;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 465
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getClusterDescription:()Lcom/mongodb/connection/ClusterDescription;
            astore 1 /* clusterDescription */
        start local 1 // com.mongodb.connection.ClusterDescription clusterDescription
         1: .line 466
            aload 1 /* clusterDescription */
            invokevirtual com.mongodb.connection.ClusterDescription.getType:()Lcom/mongodb/connection/ClusterType;
            getstatic com.mongodb.connection.ClusterType.REPLICA_SET:Lcom/mongodb/connection/ClusterType;
            if_acmpne 3
            aload 1 /* clusterDescription */
            invokevirtual com.mongodb.connection.ClusterDescription.getConnectionMode:()Lcom/mongodb/connection/ClusterConnectionMode;
            getstatic com.mongodb.connection.ClusterConnectionMode.MULTIPLE:Lcom/mongodb/connection/ClusterConnectionMode;
            if_acmpne 3
         2: .line 467
            new com.mongodb.ReplicaSetStatus
            dup
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getCluster:()Lcom/mongodb/connection/Cluster;
            invokespecial com.mongodb.ReplicaSetStatus.<init>:(Lcom/mongodb/connection/Cluster;)V
            goto 4
      StackMap locals: com.mongodb.connection.ClusterDescription
      StackMap stack:
         3: aconst_null
         4: .line 466
      StackMap locals:
      StackMap stack: com.mongodb.ReplicaSetStatus
            areturn
        end local 1 // com.mongodb.connection.ClusterDescription clusterDescription
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/mongodb/Mongo;
            1    5     1  clusterDescription  Lcom/mongodb/connection/ClusterDescription;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.mongodb.lang.Nullable()

  public java.util.List<java.lang.String> getDatabaseNames();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 480
            new com.mongodb.Mongo$1
            dup
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            getstatic com.mongodb.ReadConcern.DEFAULT:Lcom/mongodb/ReadConcern;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
         1: .line 481
            aload 0 /* this */
            getfield com.mongodb.Mongo.options:Lcom/mongodb/MongoClientOptions;
            invokevirtual com.mongodb.MongoClientOptions.getRetryReads:()Z
         2: .line 480
            invokespecial com.mongodb.Mongo$1.<init>:(Lcom/mongodb/Mongo;Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/internal/OperationExecutor;Lcom/mongodb/ReadConcern;Lcom/mongodb/ReadPreference;Z)V
         3: .line 486
            new com.mongodb.Mongo$2
            dup
            aload 0 /* this */
            invokespecial com.mongodb.Mongo$2.<init>:(Lcom/mongodb/Mongo;)V
            invokevirtual com.mongodb.Mongo$1.map:(Lcom/mongodb/Function;)Lcom/mongodb/client/MongoIterable;
         4: .line 491
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface com.mongodb.client.MongoIterable.into:(Ljava/util/Collection;)Ljava/util/Collection;
            checkcast java.util.List
         5: .line 480
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/mongodb/Mongo;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.DB getDB(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/DB;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.lang.String dbName
         0: .line 514
            aload 0 /* this */
            getfield com.mongodb.Mongo.dbCache:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* dbName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.DB
            astore 2 /* db */
        start local 2 // com.mongodb.DB db
         1: .line 515
            aload 2 /* db */
            ifnull 3
         2: .line 516
            aload 2 /* db */
            areturn
         3: .line 519
      StackMap locals: com.mongodb.DB
      StackMap stack:
            new com.mongodb.DB
            dup
            aload 0 /* this */
            aload 1 /* dbName */
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            invokespecial com.mongodb.DB.<init>:(Lcom/mongodb/Mongo;Ljava/lang/String;Lcom/mongodb/client/internal/OperationExecutor;)V
            astore 2 /* db */
         4: .line 520
            aload 0 /* this */
            getfield com.mongodb.Mongo.dbCache:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* dbName */
            aload 2 /* db */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.DB
            astore 3 /* temp */
        start local 3 // com.mongodb.DB temp
         5: .line 521
            aload 3 /* temp */
            ifnull 7
         6: .line 522
            aload 3 /* temp */
            areturn
         7: .line 524
      StackMap locals: com.mongodb.DB
      StackMap stack:
            aload 2 /* db */
            areturn
        end local 3 // com.mongodb.DB temp
        end local 2 // com.mongodb.DB db
        end local 1 // java.lang.String dbName
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/mongodb/Mongo;
            0    8     1  dbName  Ljava/lang/String;
            1    8     2      db  Lcom/mongodb/DB;
            5    8     3    temp  Lcom/mongodb/DB;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      dbName  final

  public java.util.Collection<com.mongodb.DB> getUsedDatabases();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 535
            aload 0 /* this */
            getfield com.mongodb.Mongo.dbCache:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    Signature: ()Ljava/util/Collection<Lcom/mongodb/DB;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void dropDatabase(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // java.lang.String dbName
         0: .line 546
            aload 0 /* this */
            aload 1 /* dbName */
            invokevirtual com.mongodb.Mongo.getDB:(Ljava/lang/String;)Lcom/mongodb/DB;
            invokevirtual com.mongodb.DB.dropDatabase:()V
         1: .line 547
            return
        end local 1 // java.lang.String dbName
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/Mongo;
            0    2     1  dbName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      dbName  final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 554
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.close:()V
         1: .line 555
            aload 0 /* this */
            getfield com.mongodb.Mongo.cursorCleaningService:Ljava/util/concurrent/ExecutorService;
            ifnull 3
         2: .line 556
            aload 0 /* this */
            getfield com.mongodb.Mongo.cursorCleaningService:Ljava/util/concurrent/ExecutorService;
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
         3: .line 558
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/Mongo;

  public void slaveOk();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 569
            aload 0 /* this */
            iconst_4
            invokevirtual com.mongodb.Mongo.addOption:(I)V
         1: .line 570
            return
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setOptions(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // int options
         0: .line 586
            aload 0 /* this */
            getfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
            iload 1 /* options */
            invokevirtual com.mongodb.Bytes$OptionHolder.set:(I)V
         1: .line 587
            return
        end local 1 // int options
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/Mongo;
            0    2     1  options  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      options  final

  public void resetOptions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 597
            aload 0 /* this */
            getfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
            invokevirtual com.mongodb.Bytes$OptionHolder.reset:()V
         1: .line 598
            return
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void addOption(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // int option
         0: .line 614
            aload 0 /* this */
            getfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
            iload 1 /* option */
            invokevirtual com.mongodb.Bytes$OptionHolder.add:(I)V
         1: .line 615
            return
        end local 1 // int option
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/Mongo;
            0    2     1  option  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      option  final

  public int getOptions();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 626
            aload 0 /* this */
            getfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
            invokevirtual com.mongodb.Bytes$OptionHolder.get:()I
            ireturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.CommandResult fsync(boolean);
    descriptor: (Z)Lcom/mongodb/CommandResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // boolean async
         0: .line 640
            new com.mongodb.BasicDBObject
            dup
            ldc "fsync"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 2 /* command */
        start local 2 // com.mongodb.DBObject command
         1: .line 641
            iload 1 /* async */
            ifeq 3
         2: .line 642
            aload 2 /* command */
            ldc "async"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 644
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 0 /* this */
            ldc "admin"
            invokevirtual com.mongodb.Mongo.getDB:(Ljava/lang/String;)Lcom/mongodb/DB;
            aload 2 /* command */
            invokevirtual com.mongodb.DB.command:(Lcom/mongodb/DBObject;)Lcom/mongodb/CommandResult;
            areturn
        end local 2 // com.mongodb.DBObject command
        end local 1 // boolean async
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/mongodb/Mongo;
            0    4     1    async  Z
            1    4     2  command  Lcom/mongodb/DBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      async  final

  public com.mongodb.CommandResult fsyncAndLock();
    descriptor: ()Lcom/mongodb/CommandResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 657
            new com.mongodb.BasicDBObject
            dup
            ldc "fsync"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 1 /* command */
        start local 1 // com.mongodb.DBObject command
         1: .line 658
            aload 1 /* command */
            ldc "lock"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 659
            aload 0 /* this */
            ldc "admin"
            invokevirtual com.mongodb.Mongo.getDB:(Ljava/lang/String;)Lcom/mongodb/DB;
            aload 1 /* command */
            invokevirtual com.mongodb.DB.command:(Lcom/mongodb/DBObject;)Lcom/mongodb/CommandResult;
            areturn
        end local 1 // com.mongodb.DBObject command
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/mongodb/Mongo;
            1    3     1  command  Lcom/mongodb/DBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.DBObject unlock();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 672
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.FsyncUnlockOperation
            dup
            invokespecial com.mongodb.operation.FsyncUnlockOperation.<init>:()V
            aload 0 /* this */
            getfield com.mongodb.Mongo.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.Mongo.readConcern:Lcom/mongodb/ReadConcern;
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
            invokestatic com.mongodb.DBObjects.toDBObject:(Lorg/bson/BsonDocument;)Lcom/mongodb/DBObject;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isLocked();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 684
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.CurrentOpOperation
            dup
            invokespecial com.mongodb.operation.CurrentOpOperation.<init>:()V
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.Mongo.readConcern:Lcom/mongodb/ReadConcern;
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
         1: .line 685
            ldc "fsyncLock"
            getstatic org.bson.BsonBoolean.FALSE:Lorg/bson/BsonBoolean;
            invokevirtual org.bson.BsonDocument.getBoolean:(Ljava/lang/Object;Lorg/bson/BsonBoolean;)Lorg/bson/BsonBoolean;
            invokevirtual org.bson.BsonBoolean.getValue:()Z
         2: .line 684
            ireturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/Mongo;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 690
            new java.lang.StringBuilder
            dup
            ldc "Mongo{options="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 691
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 692
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         3: .line 690
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/Mongo;

  public int getMaxBsonObjectSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 705
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getClusterDescription:()Lcom/mongodb/connection/ClusterDescription;
            invokevirtual com.mongodb.connection.ClusterDescription.getPrimaries:()Ljava/util/List;
            astore 1 /* primaries */
        start local 1 // java.util.List primaries
         1: .line 706
            aload 1 /* primaries */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            invokestatic com.mongodb.connection.ServerDescription.getDefaultMaxDocumentSize:()I
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: aload 1 /* primaries */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.connection.ServerDescription
            invokevirtual com.mongodb.connection.ServerDescription.getMaxDocumentSize:()I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.util.List primaries
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/mongodb/Mongo;
            1    4     1  primaries  Ljava/util/List<Lcom/mongodb/connection/ServerDescription;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.String getConnectPoint();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 717
            aload 0 /* this */
            invokevirtual com.mongodb.Mongo.getAddress:()Lcom/mongodb/ServerAddress;
            astore 1 /* master */
        start local 1 // com.mongodb.ServerAddress master
         1: .line 718
            aload 1 /* master */
            ifnull 2
            ldc "%s:%d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* master */
            invokevirtual com.mongodb.ServerAddress.getHost:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* master */
            invokevirtual com.mongodb.ServerAddress.getPort:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            goto 3
      StackMap locals: com.mongodb.ServerAddress
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // com.mongodb.ServerAddress master
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/mongodb/Mongo;
            1    4     1  master  Lcom/mongodb/ServerAddress;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.mongodb.lang.Nullable()

  private static com.mongodb.MongoClientOptions createLegacyOptions();
    descriptor: ()Lcom/mongodb/MongoClientOptions;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 722
            invokestatic com.mongodb.MongoClientOptions.builder:()Lcom/mongodb/MongoClientOptions$Builder;
            invokevirtual com.mongodb.MongoClientOptions$Builder.legacyDefaults:()Lcom/mongodb/MongoClientOptions$Builder;
            invokevirtual com.mongodb.MongoClientOptions$Builder.build:()Lcom/mongodb/MongoClientOptions;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.mongodb.connection.Cluster createCluster(com.mongodb.MongoClientURI, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.mongodb.MongoClientURI mongoURI
        start local 1 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 726
            aload 0 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getCredentials:()Lcom/mongodb/MongoCredential;
            ifnull 2
         1: .line 727
            aload 0 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getCredentials:()Lcom/mongodb/MongoCredential;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            goto 3
      StackMap locals:
      StackMap stack:
         2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         3: .line 726
      StackMap locals:
      StackMap stack: java.util.List
            astore 2 /* credentialList */
        start local 2 // java.util.List credentialList
         4: .line 728
            invokestatic com.mongodb.connection.ClusterSettings.builder:()Lcom/mongodb/connection/ClusterSettings$Builder;
            aload 0 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getProxied:()Lcom/mongodb/ConnectionString;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.applyConnectionString:(Lcom/mongodb/ConnectionString;)Lcom/mongodb/connection/ClusterSettings$Builder;
         5: .line 729
            aload 0 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getOptions:()Lcom/mongodb/MongoClientOptions;
         6: .line 728
            invokestatic com.mongodb.Mongo.getClusterSettings:(Lcom/mongodb/connection/ClusterSettings$Builder;Lcom/mongodb/MongoClientOptions;)Lcom/mongodb/connection/ClusterSettings;
         7: .line 729
            aload 2 /* credentialList */
            aload 0 /* mongoURI */
            invokevirtual com.mongodb.MongoClientURI.getOptions:()Lcom/mongodb/MongoClientOptions;
            aload 1 /* mongoDriverInformation */
         8: .line 728
            invokestatic com.mongodb.Mongo.createCluster:(Lcom/mongodb/connection/ClusterSettings;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            areturn
        end local 2 // java.util.List credentialList
        end local 1 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 0 // com.mongodb.MongoClientURI mongoURI
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                mongoURI  Lcom/mongodb/MongoClientURI;
            0    9     1  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
            4    9     2          credentialList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      mongoURI                final
      mongoDriverInformation  final

  private static com.mongodb.connection.Cluster createCluster(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.util.List seedList
        start local 1 // java.util.List credentialsList
        start local 2 // com.mongodb.MongoClientOptions options
        start local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 735
            aload 0 /* seedList */
            aload 2 /* options */
            getstatic com.mongodb.connection.ClusterConnectionMode.MULTIPLE:Lcom/mongodb/connection/ClusterConnectionMode;
            invokestatic com.mongodb.Mongo.getClusterSettings:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/connection/ClusterConnectionMode;)Lcom/mongodb/connection/ClusterSettings;
            aload 1 /* credentialsList */
            aload 2 /* options */
         1: .line 736
            aload 3 /* mongoDriverInformation */
         2: .line 735
            invokestatic com.mongodb.Mongo.createCluster:(Lcom/mongodb/connection/ClusterSettings;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            areturn
        end local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.util.List credentialsList
        end local 0 // java.util.List seedList
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                seedList  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    3     1         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    3     2                 options  Lcom/mongodb/MongoClientOptions;
            0    3     3  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      seedList                final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  private static com.mongodb.connection.Cluster createCluster(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.ServerAddress serverAddress
        start local 1 // java.util.List credentialsList
        start local 2 // com.mongodb.MongoClientOptions options
        start local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 741
            aload 0 /* serverAddress */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 2 /* options */
            aload 2 /* options */
            invokestatic com.mongodb.Mongo.getSingleServerClusterMode:(Lcom/mongodb/MongoClientOptions;)Lcom/mongodb/connection/ClusterConnectionMode;
            invokestatic com.mongodb.Mongo.getClusterSettings:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/connection/ClusterConnectionMode;)Lcom/mongodb/connection/ClusterSettings;
         1: .line 742
            aload 1 /* credentialsList */
            aload 2 /* options */
            aload 3 /* mongoDriverInformation */
         2: .line 741
            invokestatic com.mongodb.Mongo.createCluster:(Lcom/mongodb/connection/ClusterSettings;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
            areturn
        end local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.util.List credentialsList
        end local 0 // com.mongodb.ServerAddress serverAddress
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0           serverAddress  Lcom/mongodb/ServerAddress;
            0    3     1         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    3     2                 options  Lcom/mongodb/MongoClientOptions;
            0    3     3  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      serverAddress           final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  private static com.mongodb.connection.Cluster createCluster(com.mongodb.connection.ClusterSettings, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/connection/ClusterSettings;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=5, args_size=4
        start local 0 // com.mongodb.connection.ClusterSettings clusterSettings
        start local 1 // java.util.List credentialsList
        start local 2 // com.mongodb.MongoClientOptions options
        start local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 747
            aload 3 /* mongoDriverInformation */
            ifnonnull 1
            invokestatic com.mongodb.MongoDriverInformation.builder:()Lcom/mongodb/MongoDriverInformation$Builder;
            goto 2
         1: .line 748
      StackMap locals:
      StackMap stack:
            aload 3 /* mongoDriverInformation */
            invokestatic com.mongodb.MongoDriverInformation.builder:(Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/MongoDriverInformation$Builder;
         2: .line 747
      StackMap locals:
      StackMap stack: com.mongodb.MongoDriverInformation$Builder
            astore 4 /* builder */
        start local 4 // com.mongodb.MongoDriverInformation$Builder builder
         3: .line 749
            new com.mongodb.connection.DefaultClusterFactory
            dup
            invokespecial com.mongodb.connection.DefaultClusterFactory.<init>:()V
            aload 0 /* clusterSettings */
         4: .line 750
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getServerSettings:()Lcom/mongodb/connection/ServerSettings;
         5: .line 751
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getConnectionPoolSettings:()Lcom/mongodb/connection/ConnectionPoolSettings;
         6: .line 752
            new com.mongodb.connection.SocketStreamFactory
            dup
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getSocketSettings:()Lcom/mongodb/connection/SocketSettings;
         7: .line 753
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getSslSettings:()Lcom/mongodb/connection/SslSettings;
         8: .line 754
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getSocketFactory:()Ljavax/net/SocketFactory;
         9: .line 752
            invokespecial com.mongodb.connection.SocketStreamFactory.<init>:(Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/SslSettings;Ljavax/net/SocketFactory;)V
        10: .line 755
            new com.mongodb.connection.SocketStreamFactory
            dup
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getHeartbeatSocketSettings:()Lcom/mongodb/connection/SocketSettings;
        11: .line 756
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getSslSettings:()Lcom/mongodb/connection/SslSettings;
        12: .line 757
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getSocketFactory:()Ljavax/net/SocketFactory;
        13: .line 755
            invokespecial com.mongodb.connection.SocketStreamFactory.<init>:(Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/SslSettings;Ljavax/net/SocketFactory;)V
        14: .line 758
            aload 1 /* credentialsList */
        15: .line 759
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getCommandListeners:()Ljava/util/List;
            invokestatic com.mongodb.internal.event.EventListenerHelper.getCommandListener:(Ljava/util/List;)Lcom/mongodb/event/CommandListener;
        16: .line 760
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getApplicationName:()Ljava/lang/String;
        17: .line 761
            aload 4 /* builder */
            ldc "legacy"
            invokevirtual com.mongodb.MongoDriverInformation$Builder.driverName:(Ljava/lang/String;)Lcom/mongodb/MongoDriverInformation$Builder;
            invokevirtual com.mongodb.MongoDriverInformation$Builder.build:()Lcom/mongodb/MongoDriverInformation;
        18: .line 762
            aload 2 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getCompressorList:()Ljava/util/List;
        19: .line 749
            invokevirtual com.mongodb.connection.DefaultClusterFactory.createCluster:(Lcom/mongodb/connection/ClusterSettings;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/connection/ConnectionPoolSettings;Lcom/mongodb/connection/StreamFactory;Lcom/mongodb/connection/StreamFactory;Ljava/util/List;Lcom/mongodb/event/CommandListener;Ljava/lang/String;Lcom/mongodb/MongoDriverInformation;Ljava/util/List;)Lcom/mongodb/connection/Cluster;
            areturn
        end local 4 // com.mongodb.MongoDriverInformation$Builder builder
        end local 3 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.util.List credentialsList
        end local 0 // com.mongodb.connection.ClusterSettings clusterSettings
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   20     0         clusterSettings  Lcom/mongodb/connection/ClusterSettings;
            0   20     1         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0   20     2                 options  Lcom/mongodb/MongoClientOptions;
            0   20     3  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
            3   20     4                 builder  Lcom/mongodb/MongoDriverInformation$Builder;
    Signature: (Lcom/mongodb/connection/ClusterSettings;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)Lcom/mongodb/connection/Cluster;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
                        Name  Flags
      clusterSettings         final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  private static com.mongodb.connection.ClusterSettings getClusterSettings(com.mongodb.connection.ClusterSettings$Builder, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/connection/ClusterSettings$Builder;Lcom/mongodb/MongoClientOptions;)Lcom/mongodb/connection/ClusterSettings;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.mongodb.connection.ClusterSettings$Builder builder
        start local 1 // com.mongodb.MongoClientOptions options
         0: .line 766
            aload 0 /* builder */
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getRequiredReplicaSetName:()Ljava/lang/String;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.requiredReplicaSetName:(Ljava/lang/String;)Lcom/mongodb/connection/ClusterSettings$Builder;
         1: .line 767
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getServerSelectionTimeout:()I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.serverSelectionTimeout:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/connection/ClusterSettings$Builder;
         2: .line 768
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getLocalThreshold:()I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.localThreshold:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/connection/ClusterSettings$Builder;
         3: .line 769
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getServerSelector:()Lcom/mongodb/selector/ServerSelector;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.serverSelector:(Lcom/mongodb/selector/ServerSelector;)Lcom/mongodb/connection/ClusterSettings$Builder;
         4: .line 770
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getDescription:()Ljava/lang/String;
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.description:(Ljava/lang/String;)Lcom/mongodb/connection/ClusterSettings$Builder;
         5: .line 771
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getConnectionPoolSettings:()Lcom/mongodb/connection/ConnectionPoolSettings;
            invokevirtual com.mongodb.connection.ConnectionPoolSettings.getMaxWaitQueueSize:()I
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.maxWaitQueueSize:(I)Lcom/mongodb/connection/ClusterSettings$Builder;
            pop
         6: .line 772
            aload 1 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getClusterListeners:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.mongodb.connection.ClusterSettings$Builder com.mongodb.MongoClientOptions top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mongodb.event.ClusterListener
            astore 2 /* clusterListener */
        start local 2 // com.mongodb.event.ClusterListener clusterListener
         8: .line 773
            aload 0 /* builder */
            aload 2 /* clusterListener */
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.addClusterListener:(Lcom/mongodb/event/ClusterListener;)Lcom/mongodb/connection/ClusterSettings$Builder;
            pop
        end local 2 // com.mongodb.event.ClusterListener clusterListener
         9: .line 772
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 775
            aload 0 /* builder */
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.build:()Lcom/mongodb/connection/ClusterSettings;
            areturn
        end local 1 // com.mongodb.MongoClientOptions options
        end local 0 // com.mongodb.connection.ClusterSettings$Builder builder
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0          builder  Lcom/mongodb/connection/ClusterSettings$Builder;
            0   11     1          options  Lcom/mongodb/MongoClientOptions;
            8    9     2  clusterListener  Lcom/mongodb/event/ClusterListener;
    MethodParameters:
         Name  Flags
      builder  final
      options  final

  private static com.mongodb.connection.ClusterSettings getClusterSettings(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoClientOptions, com.mongodb.connection.ClusterConnectionMode);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/connection/ClusterConnectionMode;)Lcom/mongodb/connection/ClusterSettings;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.List seedList
        start local 1 // com.mongodb.MongoClientOptions options
        start local 2 // com.mongodb.connection.ClusterConnectionMode clusterConnectionMode
         0: .line 780
            invokestatic com.mongodb.connection.ClusterSettings.builder:()Lcom/mongodb/connection/ClusterSettings$Builder;
         1: .line 781
            new java.util.ArrayList
            dup
            aload 0 /* seedList */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.hosts:(Ljava/util/List;)Lcom/mongodb/connection/ClusterSettings$Builder;
         2: .line 782
            aload 2 /* clusterConnectionMode */
            invokevirtual com.mongodb.connection.ClusterSettings$Builder.mode:(Lcom/mongodb/connection/ClusterConnectionMode;)Lcom/mongodb/connection/ClusterSettings$Builder;
            aload 1 /* options */
         3: .line 780
            invokestatic com.mongodb.Mongo.getClusterSettings:(Lcom/mongodb/connection/ClusterSettings$Builder;Lcom/mongodb/MongoClientOptions;)Lcom/mongodb/connection/ClusterSettings;
            areturn
        end local 2 // com.mongodb.connection.ClusterConnectionMode clusterConnectionMode
        end local 1 // com.mongodb.MongoClientOptions options
        end local 0 // java.util.List seedList
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0               seedList  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    4     1                options  Lcom/mongodb/MongoClientOptions;
            0    4     2  clusterConnectionMode  Lcom/mongodb/connection/ClusterConnectionMode;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/connection/ClusterConnectionMode;)Lcom/mongodb/connection/ClusterSettings;
    MethodParameters:
                       Name  Flags
      seedList               final
      options                final
      clusterConnectionMode  final

  com.mongodb.connection.Cluster getCluster();
    descriptor: ()Lcom/mongodb/connection/Cluster;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 786
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getCluster:()Lcom/mongodb/connection/Cluster;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  com.mongodb.internal.session.ServerSessionPool getServerSessionPool();
    descriptor: ()Lcom/mongodb/internal/session/ServerSessionPool;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 790
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getServerSessionPool:()Lcom/mongodb/internal/session/ServerSessionPool;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  com.mongodb.Bytes$OptionHolder getOptionHolder();
    descriptor: ()Lcom/mongodb/Bytes$OptionHolder;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 795
            aload 0 /* this */
            getfield com.mongodb.Mongo.optionHolder:Lcom/mongodb/Bytes$OptionHolder;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  com.mongodb.connection.BufferProvider getBufferProvider();
    descriptor: ()Lcom/mongodb/connection/BufferProvider;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 799
            aload 0 /* this */
            getfield com.mongodb.Mongo.bufferProvider:Lcom/mongodb/connection/BufferProvider;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  com.mongodb.MongoClientOptions getMongoClientOptions();
    descriptor: ()Lcom/mongodb/MongoClientOptions;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 803
            aload 0 /* this */
            getfield com.mongodb.Mongo.options:Lcom/mongodb/MongoClientOptions;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  java.util.List<com.mongodb.MongoCredential> getCredentialsList();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 807
            aload 0 /* this */
            getfield com.mongodb.Mongo.credentialsList:Ljava/util/List;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;
    Signature: ()Ljava/util/List<Lcom/mongodb/MongoCredential;>;

  void addOrphanedCursor(com.mongodb.ServerCursor, com.mongodb.MongoNamespace);
    descriptor: (Lcom/mongodb/ServerCursor;Lcom/mongodb/MongoNamespace;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ServerCursor serverCursor
        start local 2 // com.mongodb.MongoNamespace namespace
         0: .line 811
            aload 0 /* this */
            getfield com.mongodb.Mongo.orphanedCursors:Ljava/util/concurrent/ConcurrentLinkedQueue;
            new com.mongodb.Mongo$ServerCursorAndNamespace
            dup
            aload 1 /* serverCursor */
            aload 2 /* namespace */
            invokespecial com.mongodb.Mongo$ServerCursorAndNamespace.<init>:(Lcom/mongodb/ServerCursor;Lcom/mongodb/MongoNamespace;)V
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
            pop
         1: .line 812
            return
        end local 2 // com.mongodb.MongoNamespace namespace
        end local 1 // com.mongodb.ServerCursor serverCursor
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/Mongo;
            0    2     1  serverCursor  Lcom/mongodb/ServerCursor;
            0    2     2     namespace  Lcom/mongodb/MongoNamespace;
    MethodParameters:
              Name  Flags
      serverCursor  final
      namespace     final

  com.mongodb.client.internal.OperationExecutor createOperationExecutor();
    descriptor: ()Lcom/mongodb/client/internal/OperationExecutor;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 815
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            areturn
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/Mongo;

  com.mongodb.client.ClientSession createClientSession(com.mongodb.ClientSessionOptions);
    descriptor: (Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/client/ClientSession;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.Mongo this
        start local 1 // com.mongodb.ClientSessionOptions options
         0: .line 820
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            aload 1 /* options */
            aload 0 /* this */
            getfield com.mongodb.Mongo.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.Mongo.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.Mongo.readPreference:Lcom/mongodb/ReadPreference;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.createClientSession:(Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/ClientSession;
            areturn
        end local 1 // com.mongodb.ClientSessionOptions options
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/Mongo;
            0    1     1  options  Lcom/mongodb/ClientSessionOptions;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      options  final

  private java.util.concurrent.ExecutorService createCursorCleaningService();
    descriptor: ()Ljava/util/concurrent/ExecutorService;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 824
            new com.mongodb.internal.thread.DaemonThreadFactory
            dup
            ldc "CleanCursors"
            invokespecial com.mongodb.internal.thread.DaemonThreadFactory.<init>:(Ljava/lang/String;)V
            invokestatic java.util.concurrent.Executors.newSingleThreadScheduledExecutor:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
            astore 1 /* newTimer */
        start local 1 // java.util.concurrent.ScheduledExecutorService newTimer
         1: .line 825
            aload 1 /* newTimer */
            new com.mongodb.Mongo$3
            dup
            aload 0 /* this */
            invokespecial com.mongodb.Mongo$3.<init>:(Lcom/mongodb/Mongo;)V
         2: .line 830
            lconst_1
            lconst_1
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
         3: .line 825
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
         4: .line 831
            aload 1 /* newTimer */
            areturn
        end local 1 // java.util.concurrent.ScheduledExecutorService newTimer
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/mongodb/Mongo;
            1    5     1  newTimer  Ljava/util/concurrent/ScheduledExecutorService;

  private void cleanCursors();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // com.mongodb.Mongo this
         0: .line 836
            goto 20
        start local 1 // com.mongodb.Mongo$ServerCursorAndNamespace cur
         1: .line 837
      StackMap locals: com.mongodb.Mongo$ServerCursorAndNamespace
      StackMap stack:
            new com.mongodb.binding.SingleServerBinding
            dup
            aload 0 /* this */
            getfield com.mongodb.Mongo.delegate:Lcom/mongodb/client/internal/MongoClientDelegate;
            invokevirtual com.mongodb.client.internal.MongoClientDelegate.getCluster:()Lcom/mongodb/connection/Cluster;
            aload 1 /* cur */
            getfield com.mongodb.Mongo$ServerCursorAndNamespace.serverCursor:Lcom/mongodb/ServerCursor;
            invokevirtual com.mongodb.ServerCursor.getAddress:()Lcom/mongodb/ServerAddress;
            invokespecial com.mongodb.binding.SingleServerBinding.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/ServerAddress;)V
            astore 2 /* binding */
        start local 2 // com.mongodb.binding.ReadWriteBinding binding
         2: .line 839
            aload 2 /* binding */
            invokeinterface com.mongodb.binding.ReadWriteBinding.getReadConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 3 /* source */
        start local 3 // com.mongodb.binding.ConnectionSource source
         3: .line 841
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            astore 4 /* connection */
        start local 4 // com.mongodb.connection.Connection connection
         4: .line 843
            aload 4 /* connection */
            aload 1 /* cur */
            getfield com.mongodb.Mongo$ServerCursorAndNamespace.namespace:Lcom/mongodb/MongoNamespace;
            aload 1 /* cur */
            getfield com.mongodb.Mongo$ServerCursorAndNamespace.serverCursor:Lcom/mongodb/ServerCursor;
            invokevirtual com.mongodb.ServerCursor.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface com.mongodb.connection.Connection.killCursor:(Lcom/mongodb/MongoNamespace;Ljava/util/List;)V
         5: .line 844
            goto 9
      StackMap locals: com.mongodb.Mongo com.mongodb.Mongo$ServerCursorAndNamespace com.mongodb.binding.ReadWriteBinding com.mongodb.binding.ConnectionSource com.mongodb.connection.Connection
      StackMap stack: java.lang.Throwable
         6: astore 5
         7: .line 845
            aload 4 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         8: .line 846
            aload 5
            athrow
         9: .line 845
      StackMap locals:
      StackMap stack:
            aload 4 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        end local 4 // com.mongodb.connection.Connection connection
        10: .line 847
            goto 14
      StackMap locals: com.mongodb.Mongo com.mongodb.Mongo$ServerCursorAndNamespace com.mongodb.binding.ReadWriteBinding com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 848
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        13: .line 849
            aload 6
            athrow
        14: .line 848
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        end local 3 // com.mongodb.binding.ConnectionSource source
        15: .line 850
            goto 19
      StackMap locals: com.mongodb.Mongo com.mongodb.Mongo$ServerCursorAndNamespace com.mongodb.binding.ReadWriteBinding
      StackMap stack: java.lang.Throwable
        16: astore 7
        17: .line 851
            aload 2 /* binding */
            invokeinterface com.mongodb.binding.ReadWriteBinding.release:()V
        18: .line 852
            aload 7
            athrow
        19: .line 851
      StackMap locals:
      StackMap stack:
            aload 2 /* binding */
            invokeinterface com.mongodb.binding.ReadWriteBinding.release:()V
        end local 2 // com.mongodb.binding.ReadWriteBinding binding
        end local 1 // com.mongodb.Mongo$ServerCursorAndNamespace cur
        20: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.Mongo.orphanedCursors:Ljava/util/concurrent/ConcurrentLinkedQueue;
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.poll:()Ljava/lang/Object;
            checkcast com.mongodb.Mongo$ServerCursorAndNamespace
            dup
            astore 1 /* cur */
        start local 1 // com.mongodb.Mongo$ServerCursorAndNamespace cur
        21: ifnonnull 1
        22: .line 854
            return
        end local 1 // com.mongodb.Mongo$ServerCursorAndNamespace cur
        end local 0 // com.mongodb.Mongo this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lcom/mongodb/Mongo;
            1   20     1         cur  Lcom/mongodb/Mongo$ServerCursorAndNamespace;
           21   23     1         cur  Lcom/mongodb/Mongo$ServerCursorAndNamespace;
            2   20     2     binding  Lcom/mongodb/binding/ReadWriteBinding;
            3   15     3      source  Lcom/mongodb/binding/ConnectionSource;
            4   10     4  connection  Lcom/mongodb/connection/Connection;
      Exception table:
        from    to  target  type
           4     6       6  any
           3    11      11  any
           2    16      16  any

  private static com.mongodb.connection.ClusterConnectionMode getSingleServerClusterMode(com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/MongoClientOptions;)Lcom/mongodb/connection/ClusterConnectionMode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClientOptions options
         0: .line 857
            aload 0 /* options */
            invokevirtual com.mongodb.MongoClientOptions.getRequiredReplicaSetName:()Ljava/lang/String;
            ifnonnull 2
         1: .line 858
            getstatic com.mongodb.connection.ClusterConnectionMode.SINGLE:Lcom/mongodb/connection/ClusterConnectionMode;
            areturn
         2: .line 860
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.connection.ClusterConnectionMode.MULTIPLE:Lcom/mongodb/connection/ClusterConnectionMode;
            areturn
        end local 0 // com.mongodb.MongoClientOptions options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  options  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
         Name  Flags
      options  final
}
SourceFile: "Mongo.java"
NestMembers:
  com.mongodb.Mongo$1  com.mongodb.Mongo$2  com.mongodb.Mongo$3  com.mongodb.Mongo$Holder  com.mongodb.Mongo$ServerCursorAndNamespace
InnerClasses:
  OptionHolder = com.mongodb.Bytes$OptionHolder of com.mongodb.Bytes
  com.mongodb.Mongo$1
  com.mongodb.Mongo$2
  com.mongodb.Mongo$3
  public Holder = com.mongodb.Mongo$Holder of com.mongodb.Mongo
  private ServerCursorAndNamespace = com.mongodb.Mongo$ServerCursorAndNamespace of com.mongodb.Mongo
  public Builder = com.mongodb.MongoClientOptions$Builder of com.mongodb.MongoClientOptions
  public final Builder = com.mongodb.MongoDriverInformation$Builder of com.mongodb.MongoDriverInformation
  public final Builder = com.mongodb.connection.ClusterSettings$Builder of com.mongodb.connection.ClusterSettings
    RuntimeVisibleAnnotations: 
      com.mongodb.annotations.ThreadSafe()
      java.lang.Deprecated()