final class com.mongodb.operation.OperationHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.operation.OperationHelper
  super_class: java.lang.Object
{
  public static final com.mongodb.diagnostics.logging.Logger LOGGER;
    descriptor: Lcom/mongodb/diagnostics/logging/Logger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            ldc "operation"
            invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
            putstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void validateReadConcern(com.mongodb.connection.Connection, com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.connection.Connection connection
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 91
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.Connection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 1 /* readConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcern:(Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/ReadConcern;)V
         1: .line 92
            return
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.Connection connection
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0   connection  Lcom/mongodb/connection/Connection;
            0    2     1  readConcern  Lcom/mongodb/ReadConcern;
    MethodParameters:
             Name  Flags
      connection   final
      readConcern  final

  static void validateReadConcern(com.mongodb.connection.ConnectionDescription, com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/ReadConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.connection.ConnectionDescription description
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 95
            aload 0 /* description */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifne 4
            aload 1 /* readConcern */
            invokevirtual com.mongodb.ReadConcern.isServerDefault:()Z
            ifne 4
         1: .line 96
            new java.lang.IllegalArgumentException
            dup
            ldc "ReadConcern not supported by server version: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 97
            aload 0 /* description */
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerVersion:()Lcom/mongodb/connection/ServerVersion;
            aastore
         3: .line 96
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.ConnectionDescription description
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  description  Lcom/mongodb/connection/ConnectionDescription;
            0    5     1  readConcern  Lcom/mongodb/ReadConcern;
    MethodParameters:
             Name  Flags
      description  final
      readConcern  final

  static void validateReadConcern(com.mongodb.connection.AsyncConnection, com.mongodb.ReadConcern, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.mongodb.connection.AsyncConnection connection
        start local 1 // com.mongodb.ReadConcern readConcern
        start local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 103
            aconst_null
            astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
         1: .line 104
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifne 5
            aload 1 /* readConcern */
            invokevirtual com.mongodb.ReadConcern.isServerDefault:()Z
            ifne 5
         2: .line 105
            new java.lang.IllegalArgumentException
            dup
            ldc "ReadConcern not supported by server version: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 106
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerVersion:()Lcom/mongodb/connection/ServerVersion;
            aastore
         4: .line 105
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 3 /* throwable */
         5: .line 108
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* callable */
            aload 0 /* connection */
            aload 3 /* throwable */
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithConnection.call:(Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Throwable;)V
         6: .line 109
            return
        end local 3 // java.lang.Throwable throwable
        end local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.AsyncConnection connection
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0   connection  Lcom/mongodb/connection/AsyncConnection;
            0    7     1  readConcern  Lcom/mongodb/ReadConcern;
            0    7     2     callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
            1    7     3    throwable  Ljava/lang/Throwable;
    MethodParameters:
             Name  Flags
      connection   final
      readConcern  final
      callable     final

  static void validateReadConcern(com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, com.mongodb.ReadConcern, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.connection.AsyncConnection connection
        start local 2 // com.mongodb.ReadConcern readConcern
        start local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 113
            aload 1 /* connection */
            aload 2 /* readConcern */
            new com.mongodb.operation.OperationHelper$1
            dup
            aload 3 /* callable */
            aload 0 /* source */
            invokespecial com.mongodb.operation.OperationHelper$1.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;Lcom/mongodb/binding/AsyncConnectionSource;)V
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcern:(Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
         1: .line 119
            return
        end local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 2 // com.mongodb.ReadConcern readConcern
        end local 1 // com.mongodb.connection.AsyncConnection connection
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0       source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1   connection  Lcom/mongodb/connection/AsyncConnection;
            0    2     2  readConcern  Lcom/mongodb/ReadConcern;
            0    2     3     callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
             Name  Flags
      source       final
      connection   final
      readConcern  final
      callable     final

  static void validateCollation(com.mongodb.connection.Connection, com.mongodb.client.model.Collation);
    descriptor: (Lcom/mongodb/connection/Connection;Lcom/mongodb/client/model/Collation;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.connection.Connection connection
        start local 1 // com.mongodb.client.model.Collation collation
         0: .line 122
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.Connection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 1 /* collation */
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/client/model/Collation;)V
         1: .line 123
            return
        end local 1 // com.mongodb.client.model.Collation collation
        end local 0 // com.mongodb.connection.Connection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  connection  Lcom/mongodb/connection/Connection;
            0    2     1   collation  Lcom/mongodb/client/model/Collation;
    MethodParameters:
            Name  Flags
      connection  final
      collation   final

  static void validateCollation(com.mongodb.connection.ConnectionDescription, com.mongodb.client.model.Collation);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/client/model/Collation;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 1 // com.mongodb.client.model.Collation collation
         0: .line 126
            aload 1 /* collation */
            ifnull 4
            aload 0 /* connectionDescription */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotFour:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifne 4
         1: .line 127
            new java.lang.IllegalArgumentException
            dup
            ldc "Collation not supported by server version: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 128
            aload 0 /* connectionDescription */
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerVersion:()Lcom/mongodb/connection/ServerVersion;
            aastore
         3: .line 127
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 130
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.mongodb.client.model.Collation collation
        end local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    5     1              collation  Lcom/mongodb/client/model/Collation;
    MethodParameters:
                       Name  Flags
      connectionDescription  final
      collation              final

  static void validateCollationAndWriteConcern(com.mongodb.connection.ConnectionDescription, com.mongodb.client.model.Collation, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/client/model/Collation;Lcom/mongodb/WriteConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 1 // com.mongodb.client.model.Collation collation
        start local 2 // com.mongodb.WriteConcern writeConcern
         0: .line 134
            aload 1 /* collation */
            ifnull 4
            aload 0 /* connectionDescription */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotFour:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifne 4
         1: .line 135
            new java.lang.IllegalArgumentException
            dup
            ldc "Collation not supported by server version: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 136
            aload 0 /* connectionDescription */
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerVersion:()Lcom/mongodb/connection/ServerVersion;
            aastore
         3: .line 135
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* collation */
            ifnull 6
            aload 2 /* writeConcern */
            invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
            ifne 6
         5: .line 138
            new com.mongodb.MongoClientException
            dup
            ldc "Specifying collation with an unacknowledged WriteConcern is not supported"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.mongodb.WriteConcern writeConcern
        end local 1 // com.mongodb.client.model.Collation collation
        end local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    7     1              collation  Lcom/mongodb/client/model/Collation;
            0    7     2           writeConcern  Lcom/mongodb/WriteConcern;
    MethodParameters:
                       Name  Flags
      connectionDescription  final
      collation              final
      writeConcern           final

  static void validateCollation(com.mongodb.connection.AsyncConnection, com.mongodb.client.model.Collation, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.mongodb.connection.AsyncConnection connection
        start local 1 // com.mongodb.client.model.Collation collation
        start local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 144
            aconst_null
            astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
         1: .line 145
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotFour:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifne 5
            aload 1 /* collation */
            ifnull 5
         2: .line 146
            new java.lang.IllegalArgumentException
            dup
            ldc "Collation not supported by server version: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 147
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerVersion:()Lcom/mongodb/connection/ServerVersion;
            aastore
         4: .line 146
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 3 /* throwable */
         5: .line 149
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* callable */
            aload 0 /* connection */
            aload 3 /* throwable */
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithConnection.call:(Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Throwable;)V
         6: .line 150
            return
        end local 3 // java.lang.Throwable throwable
        end local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 1 // com.mongodb.client.model.Collation collation
        end local 0 // com.mongodb.connection.AsyncConnection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  connection  Lcom/mongodb/connection/AsyncConnection;
            0    7     1   collation  Lcom/mongodb/client/model/Collation;
            0    7     2    callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
            1    7     3   throwable  Ljava/lang/Throwable;
    MethodParameters:
            Name  Flags
      connection  final
      collation   final
      callable    final

  static void validateCollation(com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, com.mongodb.client.model.Collation, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.connection.AsyncConnection connection
        start local 2 // com.mongodb.client.model.Collation collation
        start local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 154
            aload 1 /* connection */
            aload 2 /* collation */
            new com.mongodb.operation.OperationHelper$2
            dup
            aload 3 /* callable */
            aload 0 /* source */
            invokespecial com.mongodb.operation.OperationHelper$2.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;Lcom/mongodb/binding/AsyncConnectionSource;)V
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
         1: .line 160
            return
        end local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 2 // com.mongodb.client.model.Collation collation
        end local 1 // com.mongodb.connection.AsyncConnection connection
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0      source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1  connection  Lcom/mongodb/connection/AsyncConnection;
            0    2     2   collation  Lcom/mongodb/client/model/Collation;
            0    2     3    callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
            Name  Flags
      source      final
      connection  final
      collation   final
      callable    final

  static void validateWriteRequestCollations(com.mongodb.connection.ConnectionDescription, java.util.List<? extends com.mongodb.bulk.WriteRequest>, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 1 // java.util.List requests
        start local 2 // com.mongodb.WriteConcern writeConcern
         0: .line 164
            aconst_null
            astore 3 /* collation */
        start local 3 // com.mongodb.client.model.Collation collation
         1: .line 165
            aload 1 /* requests */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: com.mongodb.connection.ConnectionDescription java.util.List com.mongodb.WriteConcern com.mongodb.client.model.Collation top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mongodb.bulk.WriteRequest
            astore 4 /* request */
        start local 4 // com.mongodb.bulk.WriteRequest request
         3: .line 166
            aload 4 /* request */
            instanceof com.mongodb.bulk.UpdateRequest
            ifeq 6
         4: .line 167
            aload 4 /* request */
            checkcast com.mongodb.bulk.UpdateRequest
            invokevirtual com.mongodb.bulk.UpdateRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            astore 3 /* collation */
         5: .line 168
            goto 8
      StackMap locals: com.mongodb.connection.ConnectionDescription java.util.List com.mongodb.WriteConcern com.mongodb.client.model.Collation com.mongodb.bulk.WriteRequest java.util.Iterator
      StackMap stack:
         6: aload 4 /* request */
            instanceof com.mongodb.bulk.DeleteRequest
            ifeq 8
         7: .line 169
            aload 4 /* request */
            checkcast com.mongodb.bulk.DeleteRequest
            invokevirtual com.mongodb.bulk.DeleteRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            astore 3 /* collation */
         8: .line 171
      StackMap locals:
      StackMap stack:
            aload 3 /* collation */
            ifnull 10
         9: .line 172
            goto 11
        end local 4 // com.mongodb.bulk.WriteRequest request
        10: .line 165
      StackMap locals: com.mongodb.connection.ConnectionDescription java.util.List com.mongodb.WriteConcern com.mongodb.client.model.Collation top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 175
      StackMap locals: com.mongodb.connection.ConnectionDescription java.util.List com.mongodb.WriteConcern com.mongodb.client.model.Collation
      StackMap stack:
            aload 0 /* connectionDescription */
            aload 3 /* collation */
            aload 2 /* writeConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateCollationAndWriteConcern:(Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/client/model/Collation;Lcom/mongodb/WriteConcern;)V
        12: .line 176
            return
        end local 3 // com.mongodb.client.model.Collation collation
        end local 2 // com.mongodb.WriteConcern writeConcern
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   13     0  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0   13     1               requests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0   13     2           writeConcern  Lcom/mongodb/WriteConcern;
            1   13     3              collation  Lcom/mongodb/client/model/Collation;
            3   10     4                request  Lcom/mongodb/bulk/WriteRequest;
    Signature: (Lcom/mongodb/connection/ConnectionDescription;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;Lcom/mongodb/WriteConcern;)V
    MethodParameters:
                       Name  Flags
      connectionDescription  final
      requests               final
      writeConcern           final

  static void validateWriteRequests(com.mongodb.connection.ConnectionDescription, java.lang.Boolean, java.util.List<? extends com.mongodb.bulk.WriteRequest>, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 1 // java.lang.Boolean bypassDocumentValidation
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.WriteConcern writeConcern
         0: .line 180
            aload 0 /* connectionDescription */
            aload 1 /* bypassDocumentValidation */
            aload 3 /* writeConcern */
            invokestatic com.mongodb.operation.OperationHelper.checkBypassDocumentValidationIsSupported:(Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Lcom/mongodb/WriteConcern;)V
         1: .line 181
            aload 0 /* connectionDescription */
            aload 2 /* requests */
            aload 3 /* writeConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateWriteRequestCollations:(Lcom/mongodb/connection/ConnectionDescription;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
         2: .line 182
            return
        end local 3 // com.mongodb.WriteConcern writeConcern
        end local 2 // java.util.List requests
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    3     0     connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    3     1  bypassDocumentValidation  Ljava/lang/Boolean;
            0    3     2                  requests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0    3     3              writeConcern  Lcom/mongodb/WriteConcern;
    Signature: (Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;Lcom/mongodb/WriteConcern;)V
    MethodParameters:
                          Name  Flags
      connectionDescription     final
      bypassDocumentValidation  final
      requests                  final
      writeConcern              final

  static void validateWriteRequests(com.mongodb.connection.AsyncConnection, java.lang.Boolean, java.util.List<? extends com.mongodb.bulk.WriteRequest>, com.mongodb.WriteConcern, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Boolean;Ljava/util/List;Lcom/mongodb/WriteConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.mongodb.connection.AsyncConnection connection
        start local 1 // java.lang.Boolean bypassDocumentValidation
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.WriteConcern writeConcern
        start local 4 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 188
            aload 0 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 1 /* bypassDocumentValidation */
            aload 2 /* requests */
            aload 3 /* writeConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateWriteRequests:(Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
         1: .line 189
            aload 4 /* callable */
            aload 0 /* connection */
            aconst_null
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithConnection.call:(Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Throwable;)V
         2: .line 190
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 5 /* t */
        start local 5 // java.lang.Throwable t
         4: .line 191
            aload 4 /* callable */
            aload 0 /* connection */
            aload 5 /* t */
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithConnection.call:(Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
         5: .line 193
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 3 // com.mongodb.WriteConcern writeConcern
        end local 2 // java.util.List requests
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // com.mongodb.connection.AsyncConnection connection
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0                connection  Lcom/mongodb/connection/AsyncConnection;
            0    6     1  bypassDocumentValidation  Ljava/lang/Boolean;
            0    6     2                  requests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0    6     3              writeConcern  Lcom/mongodb/WriteConcern;
            0    6     4                  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
            4    5     5                         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Signature: (Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Boolean;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;Lcom/mongodb/WriteConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    MethodParameters:
                          Name  Flags
      connection                final
      bypassDocumentValidation  final
      requests                  final
      writeConcern              final
      callable                  final

  static void validateIndexRequestCollations(com.mongodb.connection.Connection, java.util.List<com.mongodb.bulk.IndexRequest>);
    descriptor: (Lcom/mongodb/connection/Connection;Ljava/util/List;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.mongodb.connection.Connection connection
        start local 1 // java.util.List requests
         0: .line 195
            aload 1 /* requests */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.mongodb.connection.Connection java.util.List top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mongodb.bulk.IndexRequest
            astore 2 /* request */
        start local 2 // com.mongodb.bulk.IndexRequest request
         2: .line 196
            aload 2 /* request */
            invokevirtual com.mongodb.bulk.IndexRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            ifnull 5
         3: .line 197
            aload 0 /* connection */
            aload 2 /* request */
            invokevirtual com.mongodb.bulk.IndexRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/Connection;Lcom/mongodb/client/model/Collation;)V
         4: .line 198
            goto 6
        end local 2 // com.mongodb.bulk.IndexRequest request
         5: .line 195
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 201
      StackMap locals: com.mongodb.connection.Connection java.util.List
      StackMap stack:
            return
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.connection.Connection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  connection  Lcom/mongodb/connection/Connection;
            0    7     1    requests  Ljava/util/List<Lcom/mongodb/bulk/IndexRequest;>;
            2    5     2     request  Lcom/mongodb/bulk/IndexRequest;
    Signature: (Lcom/mongodb/connection/Connection;Ljava/util/List<Lcom/mongodb/bulk/IndexRequest;>;)V
    MethodParameters:
            Name  Flags
      connection  final
      requests    final

  static void validateIndexRequestCollations(com.mongodb.connection.AsyncConnection, java.util.List<com.mongodb.bulk.IndexRequest>, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Ljava/util/List;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.mongodb.connection.AsyncConnection connection
        start local 1 // java.util.List requests
        start local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 205
            iconst_0
            istore 3 /* calledTheCallable */
        start local 3 // boolean calledTheCallable
         1: .line 206
            aload 1 /* requests */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: com.mongodb.connection.AsyncConnection java.util.List com.mongodb.operation.OperationHelper$AsyncCallableWithConnection int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mongodb.bulk.IndexRequest
            astore 4 /* request */
        start local 4 // com.mongodb.bulk.IndexRequest request
         3: .line 207
            aload 4 /* request */
            invokevirtual com.mongodb.bulk.IndexRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            ifnull 7
         4: .line 208
            iconst_1
            istore 3 /* calledTheCallable */
         5: .line 209
            aload 0 /* connection */
            aload 4 /* request */
            invokevirtual com.mongodb.bulk.IndexRequest.getCollation:()Lcom/mongodb/client/model/Collation;
            new com.mongodb.operation.OperationHelper$3
            dup
            aload 2 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$3.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
         6: .line 215
            goto 8
        end local 4 // com.mongodb.bulk.IndexRequest request
         7: .line 206
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 218
      StackMap locals: com.mongodb.connection.AsyncConnection java.util.List com.mongodb.operation.OperationHelper$AsyncCallableWithConnection int
      StackMap stack:
            iload 3 /* calledTheCallable */
            ifne 10
         9: .line 219
            aload 2 /* callable */
            aload 0 /* connection */
            aconst_null
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithConnection.call:(Lcom/mongodb/connection/AsyncConnection;Ljava/lang/Throwable;)V
        10: .line 221
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean calledTheCallable
        end local 2 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.connection.AsyncConnection connection
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0         connection  Lcom/mongodb/connection/AsyncConnection;
            0   11     1           requests  Ljava/util/List<Lcom/mongodb/bulk/IndexRequest;>;
            0   11     2           callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
            1   11     3  calledTheCallable  Z
            3    7     4            request  Lcom/mongodb/bulk/IndexRequest;
    Signature: (Lcom/mongodb/connection/AsyncConnection;Ljava/util/List<Lcom/mongodb/bulk/IndexRequest;>;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    MethodParameters:
            Name  Flags
      connection  final
      requests    final
      callable    final

  static void validateReadConcernAndCollation(com.mongodb.connection.Connection, com.mongodb.ReadConcern, com.mongodb.client.model.Collation);
    descriptor: (Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/model/Collation;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.connection.Connection connection
        start local 1 // com.mongodb.ReadConcern readConcern
        start local 2 // com.mongodb.client.model.Collation collation
         0: .line 225
            aload 0 /* connection */
            aload 1 /* readConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcern:(Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadConcern;)V
         1: .line 226
            aload 0 /* connection */
            aload 2 /* collation */
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/Connection;Lcom/mongodb/client/model/Collation;)V
         2: .line 227
            return
        end local 2 // com.mongodb.client.model.Collation collation
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.Connection connection
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0   connection  Lcom/mongodb/connection/Connection;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
            0    3     2    collation  Lcom/mongodb/client/model/Collation;
    MethodParameters:
             Name  Flags
      connection   final
      readConcern  final
      collation    final

  static void validateReadConcernAndCollation(com.mongodb.connection.ConnectionDescription, com.mongodb.ReadConcern, com.mongodb.client.model.Collation);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/model/Collation;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.connection.ConnectionDescription description
        start local 1 // com.mongodb.ReadConcern readConcern
        start local 2 // com.mongodb.client.model.Collation collation
         0: .line 231
            aload 0 /* description */
            aload 1 /* readConcern */
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcern:(Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/ReadConcern;)V
         1: .line 232
            aload 0 /* description */
            aload 2 /* collation */
            invokestatic com.mongodb.operation.OperationHelper.validateCollation:(Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/client/model/Collation;)V
         2: .line 233
            return
        end local 2 // com.mongodb.client.model.Collation collation
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.ConnectionDescription description
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  description  Lcom/mongodb/connection/ConnectionDescription;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
            0    3     2    collation  Lcom/mongodb/client/model/Collation;
    MethodParameters:
             Name  Flags
      description  final
      readConcern  final
      collation    final

  static void validateReadConcernAndCollation(com.mongodb.connection.AsyncConnection, com.mongodb.ReadConcern, com.mongodb.client.model.Collation, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.connection.AsyncConnection connection
        start local 1 // com.mongodb.ReadConcern readConcern
        start local 2 // com.mongodb.client.model.Collation collation
        start local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 238
            aload 0 /* connection */
            aload 1 /* readConcern */
            new com.mongodb.operation.OperationHelper$4
            dup
            aload 3 /* callable */
            aload 2 /* collation */
            invokespecial com.mongodb.operation.OperationHelper$4.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;Lcom/mongodb/client/model/Collation;)V
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcern:(Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
         1: .line 248
            return
        end local 3 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 2 // com.mongodb.client.model.Collation collation
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.connection.AsyncConnection connection
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0   connection  Lcom/mongodb/connection/AsyncConnection;
            0    2     1  readConcern  Lcom/mongodb/ReadConcern;
            0    2     2    collation  Lcom/mongodb/client/model/Collation;
            0    2     3     callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
    MethodParameters:
             Name  Flags
      connection   final
      readConcern  final
      collation    final
      callable     final

  static void validateReadConcernAndCollation(com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, com.mongodb.ReadConcern, com.mongodb.client.model.Collation, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.connection.AsyncConnection connection
        start local 2 // com.mongodb.ReadConcern readConcern
        start local 3 // com.mongodb.client.model.Collation collation
        start local 4 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 253
            aload 1 /* connection */
            aload 2 /* readConcern */
            aload 3 /* collation */
            new com.mongodb.operation.OperationHelper$5
            dup
            aload 4 /* callable */
            aload 0 /* source */
            invokespecial com.mongodb.operation.OperationHelper$5.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;Lcom/mongodb/binding/AsyncConnectionSource;)V
            invokestatic com.mongodb.operation.OperationHelper.validateReadConcernAndCollation:(Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/model/Collation;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
         1: .line 259
            return
        end local 4 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 3 // com.mongodb.client.model.Collation collation
        end local 2 // com.mongodb.ReadConcern readConcern
        end local 1 // com.mongodb.connection.AsyncConnection connection
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0       source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1   connection  Lcom/mongodb/connection/AsyncConnection;
            0    2     2  readConcern  Lcom/mongodb/ReadConcern;
            0    2     3    collation  Lcom/mongodb/client/model/Collation;
            0    2     4     callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
             Name  Flags
      source       final
      connection   final
      readConcern  final
      collation    final
      callable     final

  static void checkBypassDocumentValidationIsSupported(com.mongodb.connection.ConnectionDescription, java.lang.Boolean, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Lcom/mongodb/WriteConcern;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 1 // java.lang.Boolean bypassDocumentValidation
        start local 2 // com.mongodb.WriteConcern writeConcern
         0: .line 263
            aload 1 /* bypassDocumentValidation */
            ifnull 3
            aload 0 /* connectionDescription */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifeq 3
         1: .line 264
            aload 2 /* writeConcern */
            invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
            ifne 3
         2: .line 265
            new com.mongodb.MongoClientException
            dup
            ldc "Specifying bypassDocumentValidation with an unacknowledged WriteConcern is not supported"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 267
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.mongodb.WriteConcern writeConcern
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // com.mongodb.connection.ConnectionDescription connectionDescription
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    4     0     connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    4     1  bypassDocumentValidation  Ljava/lang/Boolean;
            0    4     2              writeConcern  Lcom/mongodb/WriteConcern;
    MethodParameters:
                          Name  Flags
      connectionDescription     final
      bypassDocumentValidation  final
      writeConcern              final

  static boolean isRetryableWrite(boolean, com.mongodb.WriteConcern, com.mongodb.connection.ServerDescription, com.mongodb.connection.ConnectionDescription, com.mongodb.session.SessionContext);
    descriptor: (ZLcom/mongodb/WriteConcern;Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // boolean retryWrites
        start local 1 // com.mongodb.WriteConcern writeConcern
        start local 2 // com.mongodb.connection.ServerDescription serverDescription
        start local 3 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 4 // com.mongodb.session.SessionContext sessionContext
         0: .line 272
            iload 0 /* retryWrites */
            ifne 2
         1: .line 273
            iconst_0
            ireturn
         2: .line 274
      StackMap locals:
      StackMap stack:
            aload 1 /* writeConcern */
            invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
            ifne 5
         3: .line 275
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but the writeConcern is unacknowledged."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         4: .line 276
            iconst_0
            ireturn
         5: .line 277
      StackMap locals:
      StackMap stack:
            aload 4 /* sessionContext */
            invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
            ifeq 8
         6: .line 278
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but in an active transaction."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         7: .line 279
            iconst_0
            ireturn
         8: .line 281
      StackMap locals:
      StackMap stack:
            aload 2 /* serverDescription */
            aload 3 /* connectionDescription */
            aload 4 /* sessionContext */
            invokestatic com.mongodb.operation.OperationHelper.canRetryWrite:(Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
            ireturn
        end local 4 // com.mongodb.session.SessionContext sessionContext
        end local 3 // com.mongodb.connection.ConnectionDescription connectionDescription
        end local 2 // com.mongodb.connection.ServerDescription serverDescription
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // boolean retryWrites
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0            retryWrites  Z
            0    9     1           writeConcern  Lcom/mongodb/WriteConcern;
            0    9     2      serverDescription  Lcom/mongodb/connection/ServerDescription;
            0    9     3  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    9     4         sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                       Name  Flags
      retryWrites            final
      writeConcern           final
      serverDescription      final
      connectionDescription  final
      sessionContext         final

  static boolean canRetryWrite(com.mongodb.connection.ServerDescription, com.mongodb.connection.ConnectionDescription, com.mongodb.session.SessionContext);
    descriptor: (Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.connection.ServerDescription serverDescription
        start local 1 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 287
            aload 1 /* connectionDescription */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsLessThanVersionThreeDotSix:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifeq 3
         1: .line 288
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but the server does not support retryable writes."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         2: .line 289
            iconst_0
            ireturn
         3: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* serverDescription */
            invokevirtual com.mongodb.connection.ServerDescription.getLogicalSessionTimeoutMinutes:()Ljava/lang/Integer;
            ifnonnull 6
         4: .line 291
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but the server does not have 3.6 feature compatibility enabled."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         5: .line 292
            iconst_0
            ireturn
         6: .line 293
      StackMap locals:
      StackMap stack:
            aload 1 /* connectionDescription */
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerType:()Lcom/mongodb/connection/ServerType;
            getstatic com.mongodb.connection.ServerType.STANDALONE:Lcom/mongodb/connection/ServerType;
            invokevirtual com.mongodb.connection.ServerType.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 294
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but the server is a standalone server."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         8: .line 295
            iconst_0
            ireturn
         9: .line 296
      StackMap locals:
      StackMap stack:
            aload 2 /* sessionContext */
            invokeinterface com.mongodb.session.SessionContext.hasSession:()Z
            ifne 12
        10: .line 297
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryWrites set to true but there is no implicit session, likely because the MongoClient was created with multiple MongoCredential instances and sessions can only be used with a single MongoCredential"
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
        11: .line 299
            iconst_0
            ireturn
        12: .line 301
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // com.mongodb.connection.ConnectionDescription connectionDescription
        end local 0 // com.mongodb.connection.ServerDescription serverDescription
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   13     0      serverDescription  Lcom/mongodb/connection/ServerDescription;
            0   13     1  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0   13     2         sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                       Name  Flags
      serverDescription      final
      connectionDescription  final
      sessionContext         final

  static boolean isRetryableRead(boolean, com.mongodb.connection.ServerDescription, com.mongodb.connection.ConnectionDescription, com.mongodb.session.SessionContext);
    descriptor: (ZLcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // boolean retryReads
        start local 1 // com.mongodb.connection.ServerDescription serverDescription
        start local 2 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 3 // com.mongodb.session.SessionContext sessionContext
         0: .line 306
            iload 0 /* retryReads */
            ifne 2
         1: .line 307
            iconst_0
            ireturn
         2: .line 308
      StackMap locals:
      StackMap stack:
            aload 3 /* sessionContext */
            invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
            ifeq 5
         3: .line 309
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryReads set to true but in an active transaction."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         4: .line 310
            iconst_0
            ireturn
         5: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* serverDescription */
            aload 2 /* connectionDescription */
            aload 3 /* sessionContext */
            invokestatic com.mongodb.operation.OperationHelper.canRetryRead:(Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
            ireturn
        end local 3 // com.mongodb.session.SessionContext sessionContext
        end local 2 // com.mongodb.connection.ConnectionDescription connectionDescription
        end local 1 // com.mongodb.connection.ServerDescription serverDescription
        end local 0 // boolean retryReads
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0             retryReads  Z
            0    6     1      serverDescription  Lcom/mongodb/connection/ServerDescription;
            0    6     2  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0    6     3         sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                       Name  Flags
      retryReads             final
      serverDescription      final
      connectionDescription  final
      sessionContext         final

  static boolean canRetryRead(com.mongodb.connection.ServerDescription, com.mongodb.connection.ConnectionDescription, com.mongodb.session.SessionContext);
    descriptor: (Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.connection.ServerDescription serverDescription
        start local 1 // com.mongodb.connection.ConnectionDescription connectionDescription
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 318
            aload 1 /* connectionDescription */
            invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsLessThanVersionThreeDotSix:(Lcom/mongodb/connection/ConnectionDescription;)Z
            ifeq 3
         1: .line 319
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryReads set to true but the server does not support retryable reads."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         2: .line 320
            iconst_0
            ireturn
         3: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* serverDescription */
            invokevirtual com.mongodb.connection.ServerDescription.getLogicalSessionTimeoutMinutes:()Ljava/lang/Integer;
            ifnonnull 6
         4: .line 322
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryReads set to true but the server does not have 3.6 feature compatibility enabled."
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         5: .line 323
            iconst_0
            ireturn
         6: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* serverDescription */
            invokevirtual com.mongodb.connection.ServerDescription.getType:()Lcom/mongodb/connection/ServerType;
            getstatic com.mongodb.connection.ServerType.STANDALONE:Lcom/mongodb/connection/ServerType;
            if_acmpeq 9
            aload 2 /* sessionContext */
            invokeinterface com.mongodb.session.SessionContext.hasSession:()Z
            ifne 9
         7: .line 325
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "retryReads set to true but there is no implicit session, likely because the MongoClient was created with multiple MongoCredential instances and sessions can only be used with a single MongoCredential"
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         8: .line 327
            iconst_0
            ireturn
         9: .line 329
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // com.mongodb.connection.ConnectionDescription connectionDescription
        end local 0 // com.mongodb.connection.ServerDescription serverDescription
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0      serverDescription  Lcom/mongodb/connection/ServerDescription;
            0   10     1  connectionDescription  Lcom/mongodb/connection/ConnectionDescription;
            0   10     2         sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                       Name  Flags
      serverDescription      final
      connectionDescription  final
      sessionContext         final

  static <T> com.mongodb.operation.QueryBatchCursor<T> createEmptyBatchCursor(com.mongodb.MongoNamespace, org.bson.codecs.Decoder<T>, com.mongodb.ServerAddress, int);
    descriptor: (Lcom/mongodb/MongoNamespace;Lorg/bson/codecs/Decoder;Lcom/mongodb/ServerAddress;I)Lcom/mongodb/operation/QueryBatchCursor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=4, args_size=4
        start local 0 // com.mongodb.MongoNamespace namespace
        start local 1 // org.bson.codecs.Decoder decoder
        start local 2 // com.mongodb.ServerAddress serverAddress
        start local 3 // int batchSize
         0: .line 334
            new com.mongodb.operation.QueryBatchCursor
            dup
            new com.mongodb.connection.QueryResult
            dup
            aload 0 /* namespace */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            lconst_0
         1: .line 335
            aload 2 /* serverAddress */
            invokespecial com.mongodb.connection.QueryResult.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;JLcom/mongodb/ServerAddress;)V
         2: .line 336
            iconst_0
            iload 3 /* batchSize */
            aload 1 /* decoder */
         3: .line 334
            invokespecial com.mongodb.operation.QueryBatchCursor.<init>:(Lcom/mongodb/connection/QueryResult;IILorg/bson/codecs/Decoder;)V
            areturn
        end local 3 // int batchSize
        end local 2 // com.mongodb.ServerAddress serverAddress
        end local 1 // org.bson.codecs.Decoder decoder
        end local 0 // com.mongodb.MongoNamespace namespace
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0      namespace  Lcom/mongodb/MongoNamespace;
            0    4     1        decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    4     2  serverAddress  Lcom/mongodb/ServerAddress;
            0    4     3      batchSize  I
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/ServerAddress;I)Lcom/mongodb/operation/QueryBatchCursor<TT;>;
    MethodParameters:
               Name  Flags
      namespace      final
      decoder        final
      serverAddress  final
      batchSize      final

  static <T> com.mongodb.async.AsyncBatchCursor<T> createEmptyAsyncBatchCursor(com.mongodb.MongoNamespace, com.mongodb.ServerAddress);
    descriptor: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/ServerAddress;)Lcom/mongodb/async/AsyncBatchCursor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // com.mongodb.MongoNamespace namespace
        start local 1 // com.mongodb.ServerAddress serverAddress
         0: .line 340
            new com.mongodb.operation.AsyncSingleBatchQueryCursor
            dup
            new com.mongodb.connection.QueryResult
            dup
            aload 0 /* namespace */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            lconst_0
            aload 1 /* serverAddress */
            invokespecial com.mongodb.connection.QueryResult.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;JLcom/mongodb/ServerAddress;)V
            invokespecial com.mongodb.operation.AsyncSingleBatchQueryCursor.<init>:(Lcom/mongodb/connection/QueryResult;)V
            areturn
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // com.mongodb.MongoNamespace namespace
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0      namespace  Lcom/mongodb/MongoNamespace;
            0    1     1  serverAddress  Lcom/mongodb/ServerAddress;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lcom/mongodb/ServerAddress;)Lcom/mongodb/async/AsyncBatchCursor<TT;>;
    MethodParameters:
               Name  Flags
      namespace      final
      serverAddress  final

  static <T> com.mongodb.operation.BatchCursor<T> cursorDocumentToBatchCursor(org.bson.BsonDocument, org.bson.codecs.Decoder<T>, com.mongodb.binding.ConnectionSource, int);
    descriptor: (Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;I)Lcom/mongodb/operation/BatchCursor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.bson.BsonDocument cursorDocument
        start local 1 // org.bson.codecs.Decoder decoder
        start local 2 // com.mongodb.binding.ConnectionSource source
        start local 3 // int batchSize
         0: .line 345
            new com.mongodb.operation.QueryBatchCursor
            dup
            aload 0 /* cursorDocument */
         1: .line 346
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getServerDescription:()Lcom/mongodb/connection/ServerDescription;
            invokevirtual com.mongodb.connection.ServerDescription.getAddress:()Lcom/mongodb/ServerAddress;
         2: .line 345
            invokestatic com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult;
         3: .line 347
            iconst_0
            iload 3 /* batchSize */
            aload 1 /* decoder */
            aload 2 /* source */
         4: .line 345
            invokespecial com.mongodb.operation.QueryBatchCursor.<init>:(Lcom/mongodb/connection/QueryResult;IILorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;)V
            areturn
        end local 3 // int batchSize
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // org.bson.codecs.Decoder decoder
        end local 0 // org.bson.BsonDocument cursorDocument
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  cursorDocument  Lorg/bson/BsonDocument;
            0    5     1         decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    5     2          source  Lcom/mongodb/binding/ConnectionSource;
            0    5     3       batchSize  I
    Signature: <T:Ljava/lang/Object;>(Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/binding/ConnectionSource;I)Lcom/mongodb/operation/BatchCursor<TT;>;
    MethodParameters:
                Name  Flags
      cursorDocument  final
      decoder         final
      source          final
      batchSize       final

  static <T> com.mongodb.async.AsyncBatchCursor<T> cursorDocumentToAsyncBatchCursor(org.bson.BsonDocument, org.bson.codecs.Decoder<T>, com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, int);
    descriptor: (Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;I)Lcom/mongodb/async/AsyncBatchCursor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=11, locals=5, args_size=5
        start local 0 // org.bson.BsonDocument cursorDocument
        start local 1 // org.bson.codecs.Decoder decoder
        start local 2 // com.mongodb.binding.AsyncConnectionSource source
        start local 3 // com.mongodb.connection.AsyncConnection connection
        start local 4 // int batchSize
         0: .line 353
            new com.mongodb.operation.AsyncQueryBatchCursor
            dup
            aload 0 /* cursorDocument */
         1: .line 354
            aload 2 /* source */
            invokeinterface com.mongodb.binding.AsyncConnectionSource.getServerDescription:()Lcom/mongodb/connection/ServerDescription;
            invokevirtual com.mongodb.connection.ServerDescription.getAddress:()Lcom/mongodb/ServerAddress;
         2: .line 353
            invokestatic com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult;
         3: .line 355
            iconst_0
            iload 4 /* batchSize */
            lconst_0
            aload 1 /* decoder */
            aload 2 /* source */
            aload 3 /* connection */
            aload 0 /* cursorDocument */
         4: .line 353
            invokespecial com.mongodb.operation.AsyncQueryBatchCursor.<init>:(Lcom/mongodb/connection/QueryResult;IIJLorg/bson/codecs/Decoder;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lorg/bson/BsonDocument;)V
            areturn
        end local 4 // int batchSize
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // com.mongodb.binding.AsyncConnectionSource source
        end local 1 // org.bson.codecs.Decoder decoder
        end local 0 // org.bson.BsonDocument cursorDocument
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  cursorDocument  Lorg/bson/BsonDocument;
            0    5     1         decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    5     2          source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    5     3      connection  Lcom/mongodb/connection/AsyncConnection;
            0    5     4       batchSize  I
    Signature: <T:Ljava/lang/Object;>(Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;I)Lcom/mongodb/async/AsyncBatchCursor<TT;>;
    MethodParameters:
                Name  Flags
      cursorDocument  final
      decoder         final
      source          final
      connection      final
      batchSize       final

  static <T> com.mongodb.connection.QueryResult<T> cursorDocumentToQueryResult(org.bson.BsonDocument, com.mongodb.ServerAddress);
    descriptor: (Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.BsonDocument cursorDocument
        start local 1 // com.mongodb.ServerAddress serverAddress
         0: .line 360
            aload 0 /* cursorDocument */
            aload 1 /* serverAddress */
            ldc "firstBatch"
            invokestatic com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Ljava/lang/String;)Lcom/mongodb/connection/QueryResult;
            areturn
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // org.bson.BsonDocument cursorDocument
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  cursorDocument  Lorg/bson/BsonDocument;
            0    1     1   serverAddress  Lcom/mongodb/ServerAddress;
    Signature: <T:Ljava/lang/Object;>(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                Name  Flags
      cursorDocument  final
      serverAddress   final

  static <T> com.mongodb.connection.QueryResult<T> getMoreCursorDocumentToQueryResult(org.bson.BsonDocument, com.mongodb.ServerAddress);
    descriptor: (Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.BsonDocument cursorDocument
        start local 1 // com.mongodb.ServerAddress serverAddress
         0: .line 364
            aload 0 /* cursorDocument */
            aload 1 /* serverAddress */
            ldc "nextBatch"
            invokestatic com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Ljava/lang/String;)Lcom/mongodb/connection/QueryResult;
            areturn
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // org.bson.BsonDocument cursorDocument
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  cursorDocument  Lorg/bson/BsonDocument;
            0    1     1   serverAddress  Lcom/mongodb/ServerAddress;
    Signature: <T:Ljava/lang/Object;>(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                Name  Flags
      cursorDocument  final
      serverAddress   final

  private static <T> com.mongodb.connection.QueryResult<T> cursorDocumentToQueryResult(org.bson.BsonDocument, com.mongodb.ServerAddress, java.lang.String);
    descriptor: (Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Ljava/lang/String;)Lcom/mongodb/connection/QueryResult;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.bson.BsonDocument cursorDocument
        start local 1 // com.mongodb.ServerAddress serverAddress
        start local 2 // java.lang.String fieldNameContainingBatch
         0: .line 369
            aload 0 /* cursorDocument */
            ldc "id"
            invokevirtual org.bson.BsonDocument.get:(Ljava/lang/Object;)Lorg/bson/BsonValue;
            checkcast org.bson.BsonInt64
            invokevirtual org.bson.BsonInt64.getValue:()J
            lstore 3 /* cursorId */
        start local 3 // long cursorId
         1: .line 370
            new com.mongodb.MongoNamespace
            dup
            aload 0 /* cursorDocument */
            ldc "ns"
            invokevirtual org.bson.BsonDocument.getString:(Ljava/lang/Object;)Lorg/bson/BsonString;
            invokevirtual org.bson.BsonString.getValue:()Ljava/lang/String;
            invokespecial com.mongodb.MongoNamespace.<init>:(Ljava/lang/String;)V
            astore 5 /* queryResultNamespace */
        start local 5 // com.mongodb.MongoNamespace queryResultNamespace
         2: .line 371
            new com.mongodb.connection.QueryResult
            dup
            aload 5 /* queryResultNamespace */
            aload 0 /* cursorDocument */
            aload 2 /* fieldNameContainingBatch */
            invokestatic com.mongodb.operation.BsonDocumentWrapperHelper.toList:(Lorg/bson/BsonDocument;Ljava/lang/String;)Ljava/util/List;
         3: .line 372
            lload 3 /* cursorId */
            aload 1 /* serverAddress */
         4: .line 371
            invokespecial com.mongodb.connection.QueryResult.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;JLcom/mongodb/ServerAddress;)V
            areturn
        end local 5 // com.mongodb.MongoNamespace queryResultNamespace
        end local 3 // long cursorId
        end local 2 // java.lang.String fieldNameContainingBatch
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // org.bson.BsonDocument cursorDocument
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    5     0            cursorDocument  Lorg/bson/BsonDocument;
            0    5     1             serverAddress  Lcom/mongodb/ServerAddress;
            0    5     2  fieldNameContainingBatch  Ljava/lang/String;
            1    5     3                  cursorId  J
            2    5     5      queryResultNamespace  Lcom/mongodb/MongoNamespace;
    Signature: <T:Ljava/lang/Object;>(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Ljava/lang/String;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                          Name  Flags
      cursorDocument            final
      serverAddress             final
      fieldNameContainingBatch  final

  static <T> com.mongodb.async.SingleResultCallback<T> releasingCallback(com.mongodb.async.SingleResultCallback<T>, com.mongodb.binding.AsyncConnectionSource);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncConnectionSource;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.SingleResultCallback wrapped
        start local 1 // com.mongodb.binding.AsyncConnectionSource source
         0: .line 376
            new com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback
            dup
            aload 0 /* wrapped */
            aload 1 /* source */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.<init>:(Lcom/mongodb/async/SingleResultCallback;Ljava/util/List;)V
            areturn
        end local 1 // com.mongodb.binding.AsyncConnectionSource source
        end local 0 // com.mongodb.async.SingleResultCallback wrapped
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  wrapped  Lcom/mongodb/async/SingleResultCallback<TT;>;
            0    1     1   source  Lcom/mongodb/binding/AsyncConnectionSource;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/async/SingleResultCallback<TT;>;Lcom/mongodb/binding/AsyncConnectionSource;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
         Name  Flags
      wrapped  final
      source   final

  static <T> com.mongodb.async.SingleResultCallback<T> releasingCallback(com.mongodb.async.SingleResultCallback<T>, com.mongodb.connection.AsyncConnection);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.SingleResultCallback wrapped
        start local 1 // com.mongodb.connection.AsyncConnection connection
         0: .line 380
            new com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback
            dup
            aload 0 /* wrapped */
            aload 1 /* connection */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.<init>:(Lcom/mongodb/async/SingleResultCallback;Ljava/util/List;)V
            areturn
        end local 1 // com.mongodb.connection.AsyncConnection connection
        end local 0 // com.mongodb.async.SingleResultCallback wrapped
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     wrapped  Lcom/mongodb/async/SingleResultCallback<TT;>;
            0    1     1  connection  Lcom/mongodb/connection/AsyncConnection;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/async/SingleResultCallback<TT;>;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
            Name  Flags
      wrapped     final
      connection  final

  static <T> com.mongodb.async.SingleResultCallback<T> releasingCallback(com.mongodb.async.SingleResultCallback<T>, com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.mongodb.async.SingleResultCallback wrapped
        start local 1 // com.mongodb.binding.AsyncConnectionSource source
        start local 2 // com.mongodb.connection.AsyncConnection connection
         0: .line 385
            new com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback
            dup
            aload 0 /* wrapped */
            iconst_2
            anewarray com.mongodb.binding.ReferenceCounted
            dup
            iconst_0
            aload 2 /* connection */
            aastore
            dup
            iconst_1
            aload 1 /* source */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.<init>:(Lcom/mongodb/async/SingleResultCallback;Ljava/util/List;)V
            areturn
        end local 2 // com.mongodb.connection.AsyncConnection connection
        end local 1 // com.mongodb.binding.AsyncConnectionSource source
        end local 0 // com.mongodb.async.SingleResultCallback wrapped
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     wrapped  Lcom/mongodb/async/SingleResultCallback<TT;>;
            0    1     1      source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    1     2  connection  Lcom/mongodb/connection/AsyncConnection;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/async/SingleResultCallback<TT;>;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
            Name  Flags
      wrapped     final
      source      final
      connection  final

  static <T> com.mongodb.async.SingleResultCallback<T> releasingCallback(com.mongodb.async.SingleResultCallback<T>, com.mongodb.binding.AsyncReadBinding, com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.mongodb.async.SingleResultCallback wrapped
        start local 1 // com.mongodb.binding.AsyncReadBinding readBinding
        start local 2 // com.mongodb.binding.AsyncConnectionSource source
        start local 3 // com.mongodb.connection.AsyncConnection connection
         0: .line 392
            new com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback
            dup
            aload 0 /* wrapped */
            iconst_3
            anewarray com.mongodb.binding.ReferenceCounted
            dup
            iconst_0
            aload 1 /* readBinding */
            aastore
            dup
            iconst_1
            aload 3 /* connection */
            aastore
            dup
            iconst_2
            aload 2 /* source */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.<init>:(Lcom/mongodb/async/SingleResultCallback;Ljava/util/List;)V
            areturn
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // com.mongodb.binding.AsyncConnectionSource source
        end local 1 // com.mongodb.binding.AsyncReadBinding readBinding
        end local 0 // com.mongodb.async.SingleResultCallback wrapped
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      wrapped  Lcom/mongodb/async/SingleResultCallback<TT;>;
            0    1     1  readBinding  Lcom/mongodb/binding/AsyncReadBinding;
            0    1     2       source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    1     3   connection  Lcom/mongodb/connection/AsyncConnection;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/async/SingleResultCallback<TT;>;Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
             Name  Flags
      wrapped      final
      readBinding  final
      source       final
      connection   final

  static <T> T withConnection(com.mongodb.binding.ReadBinding, com.mongodb.operation.OperationHelper$CallableWithConnection<T>);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnection;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
         0: .line 443
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getReadConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 2 /* source */
        start local 2 // com.mongodb.binding.ConnectionSource source
         1: .line 445
            aload 2 /* source */
            aload 1 /* callable */
            invokestatic com.mongodb.operation.OperationHelper.withConnectionSource:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnection;)Ljava/lang/Object;
            astore 4
         2: .line 447
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         3: .line 445
            aload 4
            areturn
         4: .line 446
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.operation.OperationHelper$CallableWithConnection com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 447
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         6: .line 448
            aload 3
            athrow
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   binding  Lcom/mongodb/binding/ReadBinding;
            0    7     1  callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;
            1    7     2    source  Lcom/mongodb/binding/ConnectionSource;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static <T> T withConnection(com.mongodb.binding.ReadBinding, com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource<T>);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
         0: .line 452
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getReadConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 2 /* source */
        start local 2 // com.mongodb.binding.ConnectionSource source
         1: .line 454
            aload 2 /* source */
            aload 1 /* callable */
            invokestatic com.mongodb.operation.OperationHelper.withConnectionSource:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            astore 4
         2: .line 456
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         3: .line 454
            aload 4
            areturn
         4: .line 455
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 456
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         6: .line 457
            aload 3
            athrow
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   binding  Lcom/mongodb/binding/ReadBinding;
            0    7     1  callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;
            1    7     2    source  Lcom/mongodb/binding/ConnectionSource;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static <T> T withReadConnectionSource(com.mongodb.binding.ReadBinding, com.mongodb.operation.OperationHelper$CallableWithSource<T>);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithSource callable
         0: .line 461
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getReadConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 2 /* source */
        start local 2 // com.mongodb.binding.ConnectionSource source
         1: .line 463
            aload 1 /* callable */
            aload 2 /* source */
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithSource.call:(Lcom/mongodb/binding/ConnectionSource;)Ljava/lang/Object;
            astore 4
         2: .line 465
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         3: .line 463
            aload 4
            areturn
         4: .line 464
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.operation.OperationHelper$CallableWithSource com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 465
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         6: .line 466
            aload 3
            athrow
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithSource callable
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   binding  Lcom/mongodb/binding/ReadBinding;
            0    7     1  callable  Lcom/mongodb/operation/OperationHelper$CallableWithSource<TT;>;
            1    7     2    source  Lcom/mongodb/binding/ConnectionSource;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithSource<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static <T> T withReleasableConnection(com.mongodb.binding.ReadBinding, com.mongodb.MongoException, com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource<T>);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // com.mongodb.MongoException connectionException
        start local 2 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
         0: .line 471
            aconst_null
            astore 3 /* source */
        start local 3 // com.mongodb.binding.ConnectionSource source
         1: .line 474
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getReadConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 3 /* source */
         2: .line 475
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            astore 4 /* connection */
        start local 4 // com.mongodb.connection.Connection connection
         3: .line 476
            goto 8
        end local 4 // com.mongodb.connection.Connection connection
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.MongoException com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
         4: pop
         5: .line 477
            aload 3 /* source */
            ifnull 7
         6: .line 478
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         7: .line 480
      StackMap locals:
      StackMap stack:
            aload 1 /* connectionException */
            athrow
        start local 4 // com.mongodb.connection.Connection connection
         8: .line 483
      StackMap locals: com.mongodb.connection.Connection
      StackMap stack:
            aload 2 /* callable */
            aload 3 /* source */
            aload 4 /* connection */
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource.call:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            astore 6
         9: .line 485
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        10: .line 483
            aload 6
            areturn
        11: .line 484
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        12: .line 485
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        13: .line 486
            aload 5
            athrow
        end local 4 // com.mongodb.connection.Connection connection
        end local 3 // com.mongodb.binding.ConnectionSource source
        end local 2 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
        end local 1 // com.mongodb.MongoException connectionException
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0              binding  Lcom/mongodb/binding/ReadBinding;
            0   14     1  connectionException  Lcom/mongodb/MongoException;
            0   14     2             callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;
            1   14     3               source  Lcom/mongodb/binding/ConnectionSource;
            3    4     4           connection  Lcom/mongodb/connection/Connection;
            8   14     4           connection  Lcom/mongodb/connection/Connection;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Throwable
           8     9      11  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;)TT;
    MethodParameters:
                     Name  Flags
      binding              final
      connectionException  final
      callable             final

  static <T> T withConnection(com.mongodb.binding.WriteBinding, com.mongodb.operation.OperationHelper$CallableWithConnection<T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnection;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
         0: .line 490
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getWriteConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 2 /* source */
        start local 2 // com.mongodb.binding.ConnectionSource source
         1: .line 492
            aload 2 /* source */
            aload 1 /* callable */
            invokestatic com.mongodb.operation.OperationHelper.withConnectionSource:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnection;)Ljava/lang/Object;
            astore 4
         2: .line 494
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         3: .line 492
            aload 4
            areturn
         4: .line 493
      StackMap locals: com.mongodb.binding.WriteBinding com.mongodb.operation.OperationHelper$CallableWithConnection com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 494
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         6: .line 495
            aload 3
            athrow
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   binding  Lcom/mongodb/binding/WriteBinding;
            0    7     1  callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;
            1    7     2    source  Lcom/mongodb/binding/ConnectionSource;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static <T> T withReleasableConnection(com.mongodb.binding.WriteBinding, com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource<T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
         0: .line 499
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getWriteConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 2 /* source */
        start local 2 // com.mongodb.binding.ConnectionSource source
         1: .line 501
            aload 1 /* callable */
            aload 2 /* source */
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource.call:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            astore 4
         2: .line 503
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         3: .line 501
            aload 4
            areturn
         4: .line 502
      StackMap locals: com.mongodb.binding.WriteBinding com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 503
            aload 2 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         6: .line 504
            aload 3
            athrow
        end local 2 // com.mongodb.binding.ConnectionSource source
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   binding  Lcom/mongodb/binding/WriteBinding;
            0    7     1  callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;
            1    7     2    source  Lcom/mongodb/binding/ConnectionSource;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static <T> T withReleasableConnection(com.mongodb.binding.WriteBinding, com.mongodb.MongoException, com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource<T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // com.mongodb.MongoException connectionException
        start local 2 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
         0: .line 509
            aconst_null
            astore 3 /* source */
        start local 3 // com.mongodb.binding.ConnectionSource source
         1: .line 512
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getWriteConnectionSource:()Lcom/mongodb/binding/ConnectionSource;
            astore 3 /* source */
         2: .line 513
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            astore 4 /* connection */
        start local 4 // com.mongodb.connection.Connection connection
         3: .line 514
            goto 8
        end local 4 // com.mongodb.connection.Connection connection
      StackMap locals: com.mongodb.binding.WriteBinding com.mongodb.MongoException com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource com.mongodb.binding.ConnectionSource
      StackMap stack: java.lang.Throwable
         4: pop
         5: .line 515
            aload 3 /* source */
            ifnull 7
         6: .line 516
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
         7: .line 518
      StackMap locals:
      StackMap stack:
            aload 1 /* connectionException */
            athrow
        start local 4 // com.mongodb.connection.Connection connection
         8: .line 521
      StackMap locals: com.mongodb.connection.Connection
      StackMap stack:
            aload 2 /* callable */
            aload 3 /* source */
            aload 4 /* connection */
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource.call:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            astore 6
         9: .line 523
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        10: .line 521
            aload 6
            areturn
        11: .line 522
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        12: .line 523
            aload 3 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.release:()V
        13: .line 524
            aload 5
            athrow
        end local 4 // com.mongodb.connection.Connection connection
        end local 3 // com.mongodb.binding.ConnectionSource source
        end local 2 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
        end local 1 // com.mongodb.MongoException connectionException
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0              binding  Lcom/mongodb/binding/WriteBinding;
            0   14     1  connectionException  Lcom/mongodb/MongoException;
            0   14     2             callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;
            1   14     3               source  Lcom/mongodb/binding/ConnectionSource;
            3    4     4           connection  Lcom/mongodb/connection/Connection;
            8   14     4           connection  Lcom/mongodb/connection/Connection;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Throwable
           8     9      11  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;)TT;
    MethodParameters:
                     Name  Flags
      binding              final
      connectionException  final
      callable             final

  static <T> T withConnectionSource(com.mongodb.binding.ConnectionSource, com.mongodb.operation.OperationHelper$CallableWithConnection<T>);
    descriptor: (Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnection;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.binding.ConnectionSource source
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
         0: .line 528
            aload 0 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            astore 2 /* connection */
        start local 2 // com.mongodb.connection.Connection connection
         1: .line 530
            aload 1 /* callable */
            aload 2 /* connection */
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithConnection.call:(Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            astore 4
         2: .line 532
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         3: .line 530
            aload 4
            areturn
         4: .line 531
      StackMap locals: com.mongodb.binding.ConnectionSource com.mongodb.operation.OperationHelper$CallableWithConnection com.mongodb.connection.Connection
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 532
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         6: .line 533
            aload 3
            athrow
        end local 2 // com.mongodb.connection.Connection connection
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnection callable
        end local 0 // com.mongodb.binding.ConnectionSource source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      source  Lcom/mongodb/binding/ConnectionSource;
            0    7     1    callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;
            1    7     2  connection  Lcom/mongodb/connection/Connection;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnection<TT;>;)TT;
    MethodParameters:
          Name  Flags
      source    final
      callable  final

  static <T> T withConnectionSource(com.mongodb.binding.ConnectionSource, com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource<T>);
    descriptor: (Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.mongodb.binding.ConnectionSource source
        start local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
         0: .line 537
            aload 0 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getConnection:()Lcom/mongodb/connection/Connection;
            astore 2 /* connection */
        start local 2 // com.mongodb.connection.Connection connection
         1: .line 539
            aload 1 /* callable */
            aload 0 /* source */
            aload 2 /* connection */
            invokeinterface com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource.call:(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            astore 4
         2: .line 541
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         3: .line 539
            aload 4
            areturn
         4: .line 540
      StackMap locals: com.mongodb.binding.ConnectionSource com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource com.mongodb.connection.Connection
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 541
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         6: .line 542
            aload 3
            athrow
        end local 2 // com.mongodb.connection.Connection connection
        end local 1 // com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.ConnectionSource source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      source  Lcom/mongodb/binding/ConnectionSource;
            0    7     1    callable  Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;
            1    7     2  connection  Lcom/mongodb/connection/Connection;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource<TT;>;)TT;
    MethodParameters:
          Name  Flags
      source    final
      callable  final

  static void withAsyncConnection(com.mongodb.binding.AsyncWriteBinding, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 546
            aload 0 /* binding */
            new com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionCallback
            dup
            aload 1 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionCallback.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 547
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static void withAsyncConnection(com.mongodb.binding.AsyncWriteBinding, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 550
            aload 0 /* binding */
            new com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback
            dup
            aload 1 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 551
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static void withAsyncReadConnection(com.mongodb.binding.AsyncReadBinding, com.mongodb.operation.OperationHelper$AsyncCallableWithSource);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithSource callable
         0: .line 554
            aload 0 /* binding */
            new com.mongodb.operation.OperationHelper$AsyncCallableWithSourceCallback
            dup
            aload 1 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$AsyncCallableWithSourceCallback.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithSource;)V
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.binding.AsyncReadBinding.getReadConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 555
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithSource callable
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithSource;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  static void withAsyncReadConnection(com.mongodb.binding.AsyncReadBinding, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 558
            aload 0 /* binding */
            new com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback
            dup
            aload 1 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.binding.AsyncReadBinding.getReadConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 559
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
          Name  Flags
      binding   final
      callable  final

  private static void withAsyncConnectionSourceCallableConnection(com.mongodb.binding.AsyncConnectionSource, com.mongodb.operation.OperationHelper$AsyncCallableWithConnection);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
         0: .line 593
            aload 0 /* source */
            new com.mongodb.operation.OperationHelper$6
            dup
            aload 0 /* source */
            aload 1 /* callable */
            invokespecial com.mongodb.operation.OperationHelper$6.<init>:(Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;)V
            invokeinterface com.mongodb.binding.AsyncConnectionSource.getConnection:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 604
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnection callable
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnection;
    MethodParameters:
          Name  Flags
      source    final
      callable  final

  private static void withAsyncConnectionSource(com.mongodb.binding.AsyncConnectionSource, com.mongodb.operation.OperationHelper$AsyncCallableWithSource);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithSource;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithSource callable
         0: .line 607
            aload 1 /* callable */
            aload 0 /* source */
            aconst_null
            invokeinterface com.mongodb.operation.OperationHelper$AsyncCallableWithSource.call:(Lcom/mongodb/binding/AsyncConnectionSource;Ljava/lang/Throwable;)V
         1: .line 608
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithSource callable
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithSource;
    MethodParameters:
          Name  Flags
      source    final
      callable  final

  private static void withAsyncConnectionSource(com.mongodb.binding.AsyncConnectionSource, com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource);
    descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.binding.AsyncConnectionSource source
        start local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
         0: .line 611
            aload 0 /* source */
            new com.mongodb.operation.OperationHelper$7
            dup
            aload 1 /* callable */
            aload 0 /* source */
            invokespecial com.mongodb.operation.OperationHelper$7.<init>:(Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;Lcom/mongodb/binding/AsyncConnectionSource;)V
            invokeinterface com.mongodb.binding.AsyncConnectionSource.getConnection:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 617
            return
        end local 1 // com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource callable
        end local 0 // com.mongodb.binding.AsyncConnectionSource source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    source  Lcom/mongodb/binding/AsyncConnectionSource;
            0    2     1  callable  Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;
    MethodParameters:
          Name  Flags
      source    final
      callable  final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.OperationHelper this
         0: .line 636
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 637
            return
        end local 0 // com.mongodb.operation.OperationHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/operation/OperationHelper;
}
SourceFile: "OperationHelper.java"
NestMembers:
  com.mongodb.operation.OperationHelper$1  com.mongodb.operation.OperationHelper$2  com.mongodb.operation.OperationHelper$3  com.mongodb.operation.OperationHelper$4  com.mongodb.operation.OperationHelper$5  com.mongodb.operation.OperationHelper$6  com.mongodb.operation.OperationHelper$7  com.mongodb.operation.OperationHelper$AsyncCallableWithConnection  com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource  com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback  com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionCallback  com.mongodb.operation.OperationHelper$AsyncCallableWithSource  com.mongodb.operation.OperationHelper$AsyncCallableWithSourceCallback  com.mongodb.operation.OperationHelper$CallableWithConnection  com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource  com.mongodb.operation.OperationHelper$CallableWithSource  com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback  com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback
InnerClasses:
  com.mongodb.operation.OperationHelper$1
  com.mongodb.operation.OperationHelper$2
  com.mongodb.operation.OperationHelper$3
  com.mongodb.operation.OperationHelper$4
  com.mongodb.operation.OperationHelper$5
  com.mongodb.operation.OperationHelper$6
  com.mongodb.operation.OperationHelper$7
  abstract AsyncCallableWithConnection = com.mongodb.operation.OperationHelper$AsyncCallableWithConnection of com.mongodb.operation.OperationHelper
  abstract AsyncCallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  private AsyncCallableWithConnectionAndSourceCallback = com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback of com.mongodb.operation.OperationHelper
  private AsyncCallableWithConnectionCallback = com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionCallback of com.mongodb.operation.OperationHelper
  abstract AsyncCallableWithSource = com.mongodb.operation.OperationHelper$AsyncCallableWithSource of com.mongodb.operation.OperationHelper
  private AsyncCallableWithSourceCallback = com.mongodb.operation.OperationHelper$AsyncCallableWithSourceCallback of com.mongodb.operation.OperationHelper
  abstract CallableWithConnection = com.mongodb.operation.OperationHelper$CallableWithConnection of com.mongodb.operation.OperationHelper
  abstract CallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  abstract CallableWithSource = com.mongodb.operation.OperationHelper$CallableWithSource of com.mongodb.operation.OperationHelper
  ConnectionReleasingWrappedCallback = com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback of com.mongodb.operation.OperationHelper
  private ReferenceCountedReleasingWrappedCallback = com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback of com.mongodb.operation.OperationHelper