public final class com.mongodb.internal.connection.tlschannel.ClientTlsChannel implements com.mongodb.internal.connection.tlschannel.TlsChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.internal.connection.tlschannel.ClientTlsChannel
  super_class: java.lang.Object
{
  private final java.nio.channels.ByteChannel underlying;
    descriptor: Ljava/nio/channels/ByteChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl impl;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static javax.net.ssl.SSLEngine defaultSSLEngineFactory(javax.net.ssl.SSLContext);
    descriptor: (Ljavax/net/ssl/SSLContext;)Ljavax/net/ssl/SSLEngine;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.net.ssl.SSLContext sslContext
         0: .line 82
            aload 0 /* sslContext */
            invokevirtual javax.net.ssl.SSLContext.createSSLEngine:()Ljavax/net/ssl/SSLEngine;
            astore 1 /* engine */
        start local 1 // javax.net.ssl.SSLEngine engine
         1: .line 83
            aload 1 /* engine */
            iconst_1
            invokevirtual javax.net.ssl.SSLEngine.setUseClientMode:(Z)V
         2: .line 84
            aload 1 /* engine */
            areturn
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // javax.net.ssl.SSLContext sslContext
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  sslContext  Ljavax/net/ssl/SSLContext;
            1    3     1      engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
            Name  Flags
      sslContext  final

  public static com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder newBuilder(java.nio.channels.ByteChannel, javax.net.ssl.SSLEngine);
    descriptor: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;)Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.nio.channels.ByteChannel underlying
        start local 1 // javax.net.ssl.SSLEngine sslEngine
         0: .line 95
            new com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder
            dup
            aload 0 /* underlying */
            aload 1 /* sslEngine */
            invokespecial com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.<init>:(Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;)V
            areturn
        end local 1 // javax.net.ssl.SSLEngine sslEngine
        end local 0 // java.nio.channels.ByteChannel underlying
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  underlying  Ljava/nio/channels/ByteChannel;
            0    1     1   sslEngine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
            Name  Flags
      underlying  final
      sslEngine   final

  public static com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder newBuilder(java.nio.channels.ByteChannel, javax.net.ssl.SSLContext);
    descriptor: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLContext;)Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.nio.channels.ByteChannel underlying
        start local 1 // javax.net.ssl.SSLContext sslContext
         0: .line 106
            new com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder
            dup
            aload 0 /* underlying */
            aload 1 /* sslContext */
            invokespecial com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.<init>:(Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLContext;)V
            areturn
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // java.nio.channels.ByteChannel underlying
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  underlying  Ljava/nio/channels/ByteChannel;
            0    1     1  sslContext  Ljavax/net/ssl/SSLContext;
    MethodParameters:
            Name  Flags
      underlying  final
      sslContext  final

  private void <init>(java.nio.channels.ByteChannel, javax.net.ssl.SSLEngine, java.util.function.Consumer<javax.net.ssl.SSLSession>, boolean, com.mongodb.internal.connection.tlschannel.BufferAllocator, com.mongodb.internal.connection.tlschannel.BufferAllocator, boolean, );
    descriptor: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/function/Consumer;ZLcom/mongodb/internal/connection/tlschannel/BufferAllocator;Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=11, args_size=9
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.channels.ByteChannel underlying
        start local 2 // javax.net.ssl.SSLEngine engine
        start local 3 // java.util.function.Consumer sessionInitCallback
        start local 4 // boolean runTasks
        start local 5 // com.mongodb.internal.connection.tlschannel.BufferAllocator plainBufAllocator
        start local 6 // com.mongodb.internal.connection.tlschannel.BufferAllocator encryptedBufAllocator
        start local 7 // boolean releaseBuffers
        start local 8 // boolean waitForCloseNotifyOnClose
         0: .line 112
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 121
            aload 2 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getUseClientMode:()Z
            ifne 3
         2: .line 122
            new java.lang.IllegalArgumentException
            dup
            ldc "SSLEngine must be in client mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 124
      StackMap locals: com.mongodb.internal.connection.tlschannel.ClientTlsChannel java.nio.channels.ByteChannel javax.net.ssl.SSLEngine java.util.function.Consumer int com.mongodb.internal.connection.tlschannel.BufferAllocator com.mongodb.internal.connection.tlschannel.BufferAllocator int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* underlying */
            putfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.underlying:Ljava/nio/channels/ByteChannel;
         4: .line 125
            new com.mongodb.internal.connection.tlschannel.TrackingAllocator
            dup
            aload 5 /* plainBufAllocator */
            invokespecial com.mongodb.internal.connection.tlschannel.TrackingAllocator.<init>:(Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)V
            astore 9 /* trackingPlainBufAllocator */
        start local 9 // com.mongodb.internal.connection.tlschannel.TrackingAllocator trackingPlainBufAllocator
         5: .line 126
            new com.mongodb.internal.connection.tlschannel.TrackingAllocator
            dup
            aload 6 /* encryptedBufAllocator */
            invokespecial com.mongodb.internal.connection.tlschannel.TrackingAllocator.<init>:(Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)V
            astore 10 /* trackingEncryptedAllocator */
        start local 10 // com.mongodb.internal.connection.tlschannel.TrackingAllocator trackingEncryptedAllocator
         6: .line 127
            aload 0 /* this */
            new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl
            dup
            aload 1 /* underlying */
            aload 1 /* underlying */
            aload 2 /* engine */
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            aload 3 /* sessionInitCallback */
            iload 4 /* runTasks */
         7: .line 128
            aload 9 /* trackingPlainBufAllocator */
            aload 10 /* trackingEncryptedAllocator */
            iload 7 /* releaseBuffers */
            iload 8 /* waitForCloseNotifyOnClose */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.<init>:(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/Optional;Ljava/util/function/Consumer;ZLcom/mongodb/internal/connection/tlschannel/TrackingAllocator;Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;ZZ)V
         8: .line 127
            putfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
         9: .line 129
            return
        end local 10 // com.mongodb.internal.connection.tlschannel.TrackingAllocator trackingEncryptedAllocator
        end local 9 // com.mongodb.internal.connection.tlschannel.TrackingAllocator trackingPlainBufAllocator
        end local 8 // boolean waitForCloseNotifyOnClose
        end local 7 // boolean releaseBuffers
        end local 6 // com.mongodb.internal.connection.tlschannel.BufferAllocator encryptedBufAllocator
        end local 5 // com.mongodb.internal.connection.tlschannel.BufferAllocator plainBufAllocator
        end local 4 // boolean runTasks
        end local 3 // java.util.function.Consumer sessionInitCallback
        end local 2 // javax.net.ssl.SSLEngine engine
        end local 1 // java.nio.channels.ByteChannel underlying
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   10     0                        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0   10     1                  underlying  Ljava/nio/channels/ByteChannel;
            0   10     2                      engine  Ljavax/net/ssl/SSLEngine;
            0   10     3         sessionInitCallback  Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;
            0   10     4                    runTasks  Z
            0   10     5           plainBufAllocator  Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
            0   10     6       encryptedBufAllocator  Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
            0   10     7              releaseBuffers  Z
            0   10     8   waitForCloseNotifyOnClose  Z
            5   10     9   trackingPlainBufAllocator  Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
            6   10    10  trackingEncryptedAllocator  Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
    Signature: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;ZLcom/mongodb/internal/connection/tlschannel/BufferAllocator;Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;ZZ)V
    MethodParameters:
                           Name  Flags
      underlying                 final
      engine                     final
      sessionInitCallback        final
      runTasks                   final
      plainBufAllocator          final
      encryptedBufAllocator      final
      releaseBuffers             final
      waitForCloseNotifyOnClose  final

  public java.nio.channels.ByteChannel getUnderlying();
    descriptor: ()Ljava/nio/channels/ByteChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 133
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.underlying:Ljava/nio/channels/ByteChannel;
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public javax.net.ssl.SSLEngine getSslEngine();
    descriptor: ()Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 138
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:()Ljavax/net/ssl/SSLEngine;
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public java.util.function.Consumer<javax.net.ssl.SSLSession> getSessionInitCallback();
    descriptor: ()Ljava/util/function/Consumer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 143
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.getSessionInitCallback:()Ljava/util/function/Consumer;
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    Signature: ()Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;

  public com.mongodb.internal.connection.tlschannel.TrackingAllocator getPlainBufferAllocator();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 148
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.getPlainBufferAllocator:()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public com.mongodb.internal.connection.tlschannel.TrackingAllocator getEncryptedBufferAllocator();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 153
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.getEncryptedBufferAllocator:()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public boolean getRunTasks();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 158
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.getRunTasks:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer[] dstBuffers
        start local 2 // int offset
        start local 3 // int length
         0: .line 163
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* dstBuffers */
            iload 2 /* offset */
            iload 3 /* length */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:([Ljava/nio/ByteBuffer;II)V
            astore 4 /* dest */
        start local 4 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet dest
         1: .line 164
            aload 4 /* dest */
            invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.checkReadBuffer:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)V
         2: .line 165
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            aload 4 /* dest */
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.read:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
            lreturn
        end local 4 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet dest
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dstBuffers
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    3     1  dstBuffers  [Ljava/nio/ByteBuffer;
            0    3     2      offset  I
            0    3     3      length  I
            1    3     4        dest  Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      dstBuffers  final
      offset      final
      length      final

  public long read(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer[] dstBuffers
         0: .line 170
            aload 0 /* this */
            aload 1 /* dstBuffers */
            iconst_0
            aload 1 /* dstBuffers */
            arraylength
            invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel.read:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] dstBuffers
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    1     1  dstBuffers  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      dstBuffers  final

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer dstBuffer
         0: .line 175
            aload 0 /* this */
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* dstBuffer */
            aastore
            invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel.read:([Ljava/nio/ByteBuffer;)J
            l2i
            ireturn
        end local 1 // java.nio.ByteBuffer dstBuffer
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    1     1  dstBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      dstBuffer  final

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer[] srcBuffers
        start local 2 // int offset
        start local 3 // int length
         0: .line 180
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* srcBuffers */
            iload 2 /* offset */
            iload 3 /* length */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:([Ljava/nio/ByteBuffer;II)V
            astore 4 /* source */
        start local 4 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet source
         1: .line 181
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            aload 4 /* source */
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.write:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
            lreturn
        end local 4 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet source
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcBuffers
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    2     1  srcBuffers  [Ljava/nio/ByteBuffer;
            0    2     2      offset  I
            0    2     3      length  I
            1    2     4      source  Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcBuffers  final
      offset      final
      length      final

  public long write(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer[] outs
         0: .line 186
            aload 0 /* this */
            aload 1 /* outs */
            iconst_0
            aload 1 /* outs */
            arraylength
            invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel.write:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] outs
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    1     1  outs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      outs  final

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
        start local 1 // java.nio.ByteBuffer srcBuffer
         0: .line 191
            aload 0 /* this */
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* srcBuffer */
            aastore
            invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel.write:([Ljava/nio/ByteBuffer;)J
            l2i
            ireturn
        end local 1 // java.nio.ByteBuffer srcBuffer
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
            0    1     1  srcBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      srcBuffer  final

  public void renegotiate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 196
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.renegotiate:()V
         1: .line 197
            return
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    Exceptions:
      throws java.io.IOException

  public void handshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 201
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshake:()V
         1: .line 202
            return
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 206
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.close:()V
         1: .line 207
            return
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    Exceptions:
      throws java.io.IOException

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 211
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.isOpen:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public boolean shutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 216
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdown:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    Exceptions:
      throws java.io.IOException

  public boolean shutdownReceived();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 221
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;

  public boolean shutdownSent();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
         0: .line 226
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel.impl:Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
}
SourceFile: "ClientTlsChannel.java"
NestMembers:
  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$1  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$2
InnerClasses:
  public final Builder = com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder of com.mongodb.internal.connection.tlschannel.ClientTlsChannel