public final class okhttp3.internal.http2.Http2Stream
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: okhttp3.internal.http2.Http2Stream
  super_class: java.lang.Object
{
  long unacknowledgedBytesRead;
    descriptor: J
    flags: (0x0000) 

  long bytesLeftInWriteWindow;
    descriptor: J
    flags: (0x0000) 

  final int id;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final okhttp3.internal.http2.Http2Connection connection;
    descriptor: Lokhttp3/internal/http2/Http2Connection;
    flags: (0x0010) ACC_FINAL

  private final java.util.Deque<okhttp3.Headers> headersQueue;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lokhttp3/Headers;>;

  private okhttp3.internal.http2.Header$Listener headersListener;
    descriptor: Lokhttp3/internal/http2/Header$Listener;
    flags: (0x0002) ACC_PRIVATE

  private boolean hasResponseHeaders;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final okhttp3.internal.http2.Http2Stream$FramingSource source;
    descriptor: Lokhttp3/internal/http2/Http2Stream$FramingSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final okhttp3.internal.http2.Http2Stream$FramingSink sink;
    descriptor: Lokhttp3/internal/http2/Http2Stream$FramingSink;
    flags: (0x0010) ACC_FINAL

  final okhttp3.internal.http2.Http2Stream$StreamTimeout readTimeout;
    descriptor: Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
    flags: (0x0010) ACC_FINAL

  final okhttp3.internal.http2.Http2Stream$StreamTimeout writeTimeout;
    descriptor: Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
    flags: (0x0010) ACC_FINAL

  okhttp3.internal.http2.ErrorCode errorCode;
    descriptor: Lokhttp3/internal/http2/ErrorCode;
    flags: (0x0000) 

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 37
            ldc Lokhttp3/internal/http2/Http2Stream;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(int, okhttp3.internal.http2.Http2Connection, boolean, boolean, okhttp3.Headers);
    descriptor: (ILokhttp3/internal/http2/Http2Connection;ZZLokhttp3/Headers;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 26
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import javax.annotation.Nullable cannot be resolved\n\tNullable cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;
    RuntimeInvisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        Nullable()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
        Nullable()
    MethodParameters:
             Name  Flags
      id           
      connection   
      outFinished  
      inFinished   
      headers      

  public int getId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 105
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            ireturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public synchronized boolean isOpen();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 120
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 2
         1: .line 121
            iconst_0
            ireturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
            ifne 3
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.closed:Z
            ifeq 6
         3: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifne 4
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
            ifeq 6
         4: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.hasResponseHeaders:Z
            ifeq 6
         5: .line 126
            iconst_0
            ireturn
         6: .line 128
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lokhttp3/internal/http2/Http2Stream;

  public boolean isLocallyInitiated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 133
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            iconst_1
            iand
            iconst_1
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* streamIsClient */
        start local 1 // boolean streamIsClient
         3: .line 134
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            getfield okhttp3.internal.http2.Http2Connection.client:Z
            iload 1 /* streamIsClient */
            if_icmpne 4
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // boolean streamIsClient
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lokhttp3/internal/http2/Http2Stream;
            3    5     1  streamIsClient  Z

  public okhttp3.internal.http2.Http2Connection getConnection();
    descriptor: ()Lokhttp3/internal/http2/Http2Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 138
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public synchronized okhttp3.Headers takeHeaders();
    descriptor: ()Lokhttp3/Headers;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 147
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
         1: .line 149
            goto 3
         2: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Http2Stream.waitForIo:()V
         3: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 8
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 2
         4: .line 152
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 1
         6: .line 153
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
         7: .line 154
            aload 1
            athrow
         8: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
         9: .line 155
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 11
        10: .line 156
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
            checkcast okhttp3.Headers
            areturn
        11: .line 158
      StackMap locals:
      StackMap stack:
            new okhttp3.internal.http2.StreamResetException
            dup
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            invokespecial okhttp3.internal.http2.StreamResetException.<init>:(Lokhttp3/internal/http2/ErrorCode;)V
            athrow
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lokhttp3/internal/http2/Http2Stream;
      Exception table:
        from    to  target  type
           1     5       5  any
    Exceptions:
      throws java.io.IOException

  public synchronized okhttp3.internal.http2.ErrorCode getErrorCode();
    descriptor: ()Lokhttp3/internal/http2/ErrorCode;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 166
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public void writeHeaders(java.util.List<okhttp3.internal.http2.Header>, );
    descriptor: (Ljava/util/List;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // java.util.List responseHeaders
        start local 2 // boolean out
         0: .line 176
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* responseHeaders */
            ifnonnull 3
         2: .line 178
            new java.lang.NullPointerException
            dup
            ldc "headers == null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 180
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* outFinished */
        start local 3 // boolean outFinished
         4: .line 181
            iconst_0
            istore 4 /* flushHeaders */
        start local 4 // boolean flushHeaders
         5: .line 182
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         6: .line 183
            aload 0 /* this */
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream.hasResponseHeaders:Z
         7: .line 184
            iload 2 /* out */
            ifne 11
         8: .line 185
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
         9: .line 186
            iconst_1
            istore 4 /* flushHeaders */
        10: .line 187
            iconst_1
            istore 3 /* outFinished */
        11: .line 182
      StackMap locals: int int okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 5
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 5
            monitorexit
        14: athrow
        15: .line 193
      StackMap locals:
      StackMap stack:
            iload 4 /* flushHeaders */
            ifne 24
        16: .line 194
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            dup
            astore 5
            monitorenter
        17: .line 195
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            getfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
            lconst_0
            lcmp
            ifne 18
            iconst_1
            goto 19
      StackMap locals: okhttp3.internal.http2.Http2Connection
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 4 /* flushHeaders */
        20: .line 194
            aload 5
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 5
            monitorexit
        23: athrow
        24: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            iload 3 /* outFinished */
            aload 1 /* responseHeaders */
            invokevirtual okhttp3.internal.http2.Http2Connection.writeSynReply:(IZLjava/util/List;)V
        25: .line 202
            iload 4 /* flushHeaders */
            ifeq 27
        26: .line 203
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            invokevirtual okhttp3.internal.http2.Http2Connection.flush:()V
        27: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean flushHeaders
        end local 3 // boolean outFinished
        end local 2 // boolean out
        end local 1 // java.util.List responseHeaders
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lokhttp3/internal/http2/Http2Stream;
            0   28     1  responseHeaders  Ljava/util/List<Lokhttp3/internal/http2/Header;>;
            0   28     2              out  Z
            4   28     3      outFinished  Z
            5   28     4     flushHeaders  Z
      Exception table:
        from    to  target  type
           6    12      13  any
          13    14      13  any
          17    21      22  any
          22    23      22  any
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/List<Lokhttp3/internal/http2/Header;>;Z)V
    MethodParameters:
                 Name  Flags
      responseHeaders  
      out              

  public okio.Timeout readTimeout();
    descriptor: ()Lokio/Timeout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 208
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public okio.Timeout writeTimeout();
    descriptor: ()Lokio/Timeout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 212
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public okio.Source getSource();
    descriptor: ()Lokio/Source;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 217
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream;

  public okio.Sink getSink();
    descriptor: ()Lokio/Sink;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 227
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 228
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.hasResponseHeaders:Z
            ifne 3
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Http2Stream.isLocallyInitiated:()Z
            ifne 3
         2: .line 229
            new java.lang.IllegalStateException
            dup
            ldc "reply before requesting the sink"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 227
      StackMap locals: okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 1
            monitorexit
         4: goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lokhttp3/internal/http2/Http2Stream;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public void close(okhttp3.internal.http2.ErrorCode);
    descriptor: (Lokhttp3/internal/http2/ErrorCode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okhttp3.internal.http2.ErrorCode rstStatusCode
         0: .line 240
            aload 0 /* this */
            aload 1 /* rstStatusCode */
            invokevirtual okhttp3.internal.http2.Http2Stream.closeInternal:(Lokhttp3/internal/http2/ErrorCode;)Z
            ifne 2
         1: .line 241
            return
         2: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            aload 1 /* rstStatusCode */
            invokevirtual okhttp3.internal.http2.Http2Connection.writeSynReset:(ILokhttp3/internal/http2/ErrorCode;)V
         3: .line 244
            return
        end local 1 // okhttp3.internal.http2.ErrorCode rstStatusCode
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lokhttp3/internal/http2/Http2Stream;
            0    4     1  rstStatusCode  Lokhttp3/internal/http2/ErrorCode;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      rstStatusCode  

  public void closeLater(okhttp3.internal.http2.ErrorCode);
    descriptor: (Lokhttp3/internal/http2/ErrorCode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okhttp3.internal.http2.ErrorCode errorCode
         0: .line 251
            aload 0 /* this */
            aload 1 /* errorCode */
            invokevirtual okhttp3.internal.http2.Http2Stream.closeInternal:(Lokhttp3/internal/http2/ErrorCode;)Z
            ifne 2
         1: .line 252
            return
         2: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            aload 1 /* errorCode */
            invokevirtual okhttp3.internal.http2.Http2Connection.writeSynResetLater:(ILokhttp3/internal/http2/ErrorCode;)V
         3: .line 255
            return
        end local 1 // okhttp3.internal.http2.ErrorCode errorCode
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lokhttp3/internal/http2/Http2Stream;
            0    4     1  errorCode  Lokhttp3/internal/http2/ErrorCode;
    MethodParameters:
           Name  Flags
      errorCode  

  private boolean closeInternal(okhttp3.internal.http2.ErrorCode);
    descriptor: (Lokhttp3/internal/http2/ErrorCode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okhttp3.internal.http2.ErrorCode errorCode
         0: .line 259
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 261
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 5
         3: .line 262
            aload 2
            monitorexit
         4: iconst_0
            ireturn
         5: .line 264
      StackMap locals: okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
            ifeq 8
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifeq 8
         6: .line 265
            aload 2
            monitorexit
         7: iconst_0
            ireturn
         8: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* errorCode */
            putfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
         9: .line 268
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        10: .line 260
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            invokevirtual okhttp3.internal.http2.Http2Connection.removeStream:(I)Lokhttp3/internal/http2/Http2Stream;
            pop
        15: .line 271
            iconst_1
            ireturn
        end local 1 // okhttp3.internal.http2.ErrorCode errorCode
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lokhttp3/internal/http2/Http2Stream;
            0   16     1  errorCode  Lokhttp3/internal/http2/ErrorCode;
      Exception table:
        from    to  target  type
           2     4      12  any
           5     7      12  any
           8    11      12  any
          12    13      12  any
    MethodParameters:
           Name  Flags
      errorCode  

  void receiveHeaders(java.util.List<okhttp3.internal.http2.Header>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // java.util.List headers
         0: .line 279
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         2: .line 282
            aload 0 /* this */
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream.hasResponseHeaders:Z
         3: .line 283
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            aload 1 /* headers */
            invokestatic okhttp3.internal.Util.toHeaders:(Ljava/util/List;)Lokhttp3/Headers;
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         4: .line 284
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Http2Stream.isOpen:()Z
            istore 2 /* open */
        start local 2 // boolean open
         5: .line 285
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         6: .line 281
            aload 3
            monitorexit
         7: goto 10
        end local 2 // boolean open
      StackMap locals: okhttp3.internal.http2.Http2Stream java.util.List top okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        start local 2 // boolean open
        10: .line 287
      StackMap locals: okhttp3.internal.http2.Http2Stream java.util.List int
      StackMap stack:
            iload 2 /* open */
            ifne 12
        11: .line 288
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            invokevirtual okhttp3.internal.http2.Http2Connection.removeStream:(I)Lokhttp3/internal/http2/Http2Stream;
            pop
        12: .line 290
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean open
        end local 1 // java.util.List headers
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lokhttp3/internal/http2/Http2Stream;
            0   13     1  headers  Ljava/util/List<Lokhttp3/internal/http2/Header;>;
            5    8     2     open  Z
           10   13     2     open  Z
      Exception table:
        from    to  target  type
           2     7       8  any
           8     9       8  any
    Signature: (Ljava/util/List<Lokhttp3/internal/http2/Header;>;)V
    MethodParameters:
         Name  Flags
      headers  

  void receiveData(okio.BufferedSource, int);
    descriptor: (Lokio/BufferedSource;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okio.BufferedSource in
        start local 2 // int length
         0: .line 293
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            aload 1 /* in */
            iload 2 /* length */
            i2l
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSource.receive:(Lokio/BufferedSource;J)V
         2: .line 295
            return
        end local 2 // int length
        end local 1 // okio.BufferedSource in
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lokhttp3/internal/http2/Http2Stream;
            0    3     1      in  Lokio/BufferedSource;
            0    3     2  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      length  

  void receiveFin();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 298
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 301
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
         3: .line 302
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Http2Stream.isOpen:()Z
            istore 1 /* open */
        start local 1 // boolean open
         4: .line 303
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 300
            aload 2
            monitorexit
         6: goto 9
        end local 1 // boolean open
      StackMap locals: okhttp3.internal.http2.Http2Stream top okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
        start local 1 // boolean open
         9: .line 305
      StackMap locals: okhttp3.internal.http2.Http2Stream int
      StackMap stack:
            iload 1 /* open */
            ifne 11
        10: .line 306
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            invokevirtual okhttp3.internal.http2.Http2Connection.removeStream:(I)Lokhttp3/internal/http2/Http2Stream;
            pop
        11: .line 308
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean open
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lokhttp3/internal/http2/Http2Stream;
            4    7     1  open  Z
            9   12     1  open  Z
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  synchronized void receiveRstStream(okhttp3.internal.http2.ErrorCode);
    descriptor: (Lokhttp3/internal/http2/ErrorCode;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okhttp3.internal.http2.ErrorCode errorCode
         0: .line 311
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnonnull 3
         1: .line 312
            aload 0 /* this */
            aload 1 /* errorCode */
            putfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
         2: .line 313
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         3: .line 315
      StackMap locals:
      StackMap stack:
            return
        end local 1 // okhttp3.internal.http2.ErrorCode errorCode
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lokhttp3/internal/http2/Http2Stream;
            0    4     1  errorCode  Lokhttp3/internal/http2/ErrorCode;
    MethodParameters:
           Name  Flags
      errorCode  

  public synchronized void setHeadersListener(okhttp3.internal.http2.Header$Listener);
    descriptor: (Lokhttp3/internal/http2/Header$Listener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // okhttp3.internal.http2.Header$Listener headersListener
         0: .line 318
            aload 0 /* this */
            aload 1 /* headersListener */
            putfield okhttp3.internal.http2.Http2Stream.headersListener:Lokhttp3/internal/http2/Header$Listener;
         1: .line 319
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 3
            aload 1 /* headersListener */
            ifnull 3
         2: .line 320
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         3: .line 322
      StackMap locals:
      StackMap stack:
            return
        end local 1 // okhttp3.internal.http2.Header$Listener headersListener
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lokhttp3/internal/http2/Http2Stream;
            0    4     1  headersListener  Lokhttp3/internal/http2/Header$Listener;
    MethodParameters:
                 Name  Flags
      headersListener  

  void cancelStreamIfNecessary();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 504
            getstatic okhttp3.internal.http2.Http2Stream.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         2: .line 508
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
            ifne 4
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.source:Lokhttp3/internal/http2/Http2Stream$FramingSource;
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.closed:Z
            ifeq 4
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifne 3
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
            ifeq 4
      StackMap locals: okhttp3.internal.http2.Http2Stream top top okhttp3.internal.http2.Http2Stream
      StackMap stack:
         3: iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* cancel */
        start local 2 // boolean cancel
         6: .line 509
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Http2Stream.isOpen:()Z
            istore 1 /* open */
        start local 1 // boolean open
         7: .line 507
            aload 3
            monitorexit
         8: goto 11
        end local 2 // boolean cancel
        end local 1 // boolean open
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        start local 1 // boolean open
        start local 2 // boolean cancel
        11: .line 511
      StackMap locals: okhttp3.internal.http2.Http2Stream int int
      StackMap stack:
            iload 2 /* cancel */
            ifeq 14
        12: .line 516
            aload 0 /* this */
            getstatic okhttp3.internal.http2.ErrorCode.CANCEL:Lokhttp3/internal/http2/ErrorCode;
            invokevirtual okhttp3.internal.http2.Http2Stream.close:(Lokhttp3/internal/http2/ErrorCode;)V
        13: .line 517
            goto 16
      StackMap locals:
      StackMap stack:
        14: iload 1 /* open */
            ifne 16
        15: .line 518
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.id:I
            invokevirtual okhttp3.internal.http2.Http2Connection.removeStream:(I)Lokhttp3/internal/http2/Http2Stream;
            pop
        16: .line 520
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean cancel
        end local 1 // boolean open
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lokhttp3/internal/http2/Http2Stream;
            7    9     1    open  Z
           11   17     1    open  Z
            6    9     2  cancel  Z
           11   17     2  cancel  Z
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException

  void addBytesToWriteWindow(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream this
        start local 1 // long delta
         0: .line 619
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
            lload 1 /* delta */
            ladd
            putfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
         1: .line 620
            lload 1 /* delta */
            lconst_0
            lcmp
            ifle 2
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         2: .line 621
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long delta
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lokhttp3/internal/http2/Http2Stream;
            0    3     1  delta  J
    MethodParameters:
       Name  Flags
      delta  

  void checkOutNotClosed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 624
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
            ifeq 2
         1: .line 625
            new java.io.IOException
            dup
            ldc "stream closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifeq 4
         3: .line 627
            new java.io.IOException
            dup
            ldc "stream finished"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 6
         5: .line 629
            new okhttp3.internal.http2.StreamResetException
            dup
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            invokespecial okhttp3.internal.http2.StreamResetException.<init>:(Lokhttp3/internal/http2/ErrorCode;)V
            athrow
         6: .line 631
      StackMap locals:
      StackMap stack:
            return
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lokhttp3/internal/http2/Http2Stream;
    Exceptions:
      throws java.io.IOException

  void waitForIo();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream this
         0: .line 639
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         1: .line 640
            goto 5
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         2: pop
         3: .line 641
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         4: .line 642
            new java.io.InterruptedIOException
            dup
            invokespecial java.io.InterruptedIOException.<init>:()V
            athrow
         5: .line 644
      StackMap locals:
      StackMap stack:
            return
        end local 0 // okhttp3.internal.http2.Http2Stream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lokhttp3/internal/http2/Http2Stream;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException
    Exceptions:
      throws java.io.InterruptedIOException
}
SourceFile: "Http2Stream.java"
NestMembers:
  okhttp3.internal.http2.Http2Stream$FramingSink  okhttp3.internal.http2.Http2Stream$FramingSource  okhttp3.internal.http2.Http2Stream$StreamTimeout
InnerClasses:
  abstract Listener = okhttp3.internal.http2.Header$Listener of okhttp3.internal.http2.Header
  final FramingSink = okhttp3.internal.http2.Http2Stream$FramingSink of okhttp3.internal.http2.Http2Stream
  private final FramingSource = okhttp3.internal.http2.Http2Stream$FramingSource of okhttp3.internal.http2.Http2Stream
  StreamTimeout = okhttp3.internal.http2.Http2Stream$StreamTimeout of okhttp3.internal.http2.Http2Stream