final class okhttp3.internal.http2.Http2Stream$FramingSource implements okio.Source
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: okhttp3.internal.http2.Http2Stream$FramingSource
  super_class: java.lang.Object
{
  private final okio.Buffer receiveBuffer;
    descriptor: Lokio/Buffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final okio.Buffer readBuffer;
    descriptor: Lokio/Buffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long maxByteCount;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  boolean closed;
    descriptor: Z
    flags: (0x0000) 

  boolean finished;
    descriptor: Z
    flags: (0x0000) 

  final okhttp3.internal.http2.Http2Stream this$0;
    descriptor: Lokhttp3/internal/http2/Http2Stream;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  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 329
            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$FramingSource.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(okhttp3.internal.http2.Http2Stream, long);
    descriptor: (Lokhttp3/internal/http2/Http2Stream;J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
        start local 2 // long maxByteCount
         0: .line 348
            aload 0 /* this */
            aload 1
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 331
            aload 0 /* this */
            new okio.Buffer
            dup
            invokespecial okio.Buffer.<init>:()V
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.receiveBuffer:Lokio/Buffer;
         2: .line 334
            aload 0 /* this */
            new okio.Buffer
            dup
            invokespecial okio.Buffer.<init>:()V
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
         3: .line 349
            aload 0 /* this */
            lload 2 /* maxByteCount */
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.maxByteCount:J
         4: .line 350
            return
        end local 2 // long maxByteCount
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lokhttp3/internal/http2/Http2Stream$FramingSource;
            0    5     2  maxByteCount  J
    MethodParameters:
              Name  Flags
      this$0        final
      maxByteCount  

  public long read(okio.Buffer, long);
    descriptor: (Lokio/Buffer;J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
        start local 1 // okio.Buffer sink
        start local 2 // long byteCount
         0: .line 353
            lload 2 /* byteCount */
            lconst_0
            lcmp
            ifge 1
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "byteCount < 0: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* byteCount */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 356
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* headersToDeliver */
        start local 4 // okhttp3.Headers headersToDeliver
         2: .line 357
            aconst_null
            astore 5 /* headersListenerToNotify */
        start local 5 // okhttp3.internal.http2.Header$Listener headersListenerToNotify
         3: .line 358
            ldc -1
            lstore 6 /* readBytesDelivered */
        start local 6 // long readBytesDelivered
         4: .line 359
            aconst_null
            astore 8 /* errorCodeToDeliver */
        start local 8 // okhttp3.internal.http2.ErrorCode errorCodeToDeliver
         5: .line 363
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 9
            monitorenter
         6: .line 364
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
         7: .line 366
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 9
         8: .line 368
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            astore 8 /* errorCodeToDeliver */
         9: .line 371
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource okio.Buffer long okhttp3.Headers okhttp3.internal.http2.Header$Listener long okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.closed:Z
            ifeq 11
        10: .line 372
            new java.io.IOException
            dup
            ldc "stream closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 15
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersListener:Lokhttp3/internal/http2/Header$Listener;
            ifnull 15
        12: .line 376
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
            checkcast okhttp3.Headers
            astore 4 /* headersToDeliver */
        13: .line 377
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersListener:Lokhttp3/internal/http2/Header$Listener;
            astore 5 /* headersListenerToNotify */
        14: .line 379
            goto 32
      StackMap locals:
      StackMap stack:
        15: aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lconst_0
            lcmp
            ifle 24
        16: .line 381
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            aload 1 /* sink */
            lload 2 /* byteCount */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            invokestatic java.lang.Math.min:(JJ)J
            invokevirtual okio.Buffer.read:(Lokio/Buffer;J)J
            lstore 6 /* readBytesDelivered */
        17: .line 382
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            getfield okhttp3.internal.http2.Http2Stream.unacknowledgedBytesRead:J
            lload 6 /* readBytesDelivered */
            ladd
            putfield okhttp3.internal.http2.Http2Stream.unacknowledgedBytesRead:J
        18: .line 384
            aload 8 /* errorCodeToDeliver */
            ifnonnull 32
        19: .line 385
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.unacknowledgedBytesRead:J
        20: .line 386
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
            invokevirtual okhttp3.internal.http2.Settings.getInitialWindowSize:()I
            iconst_2
            idiv
            i2l
            lcmp
            iflt 32
        21: .line 389
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.id:I
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.unacknowledgedBytesRead:J
            invokevirtual okhttp3.internal.http2.Http2Connection.writeWindowUpdateLater:(IJ)V
        22: .line 390
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            lconst_0
            putfield okhttp3.internal.http2.Http2Stream.unacknowledgedBytesRead:J
        23: .line 392
            goto 32
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
            ifne 32
            aload 8 /* errorCodeToDeliver */
            ifnonnull 32
        25: .line 394
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.waitForIo:()V
        26: .line 398
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        27: .line 395
            aload 9
            monitorexit
        28: goto 1
        29: .line 397
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        30: .line 398
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        31: .line 399
            aload 10
            athrow
        32: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.readTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        33: .line 363
            aload 9
            monitorexit
        34: goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: aload 9
            monitorexit
        36: athrow
        37: .line 404
      StackMap locals:
      StackMap stack:
            aload 4 /* headersToDeliver */
            ifnull 40
            aload 5 /* headersListenerToNotify */
            ifnull 40
        38: .line 405
            aload 5 /* headersListenerToNotify */
            aload 4 /* headersToDeliver */
            invokeinterface okhttp3.internal.http2.Header$Listener.onHeaders:(Lokhttp3/Headers;)V
        39: .line 406
            goto 1
        40: .line 409
      StackMap locals:
      StackMap stack:
            lload 6 /* readBytesDelivered */
            ldc -1
            lcmp
            ifeq 43
        41: .line 411
            aload 0 /* this */
            lload 6 /* readBytesDelivered */
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSource.updateConnectionFlowControl:(J)V
        42: .line 412
            lload 6 /* readBytesDelivered */
            lreturn
        43: .line 415
      StackMap locals:
      StackMap stack:
            aload 8 /* errorCodeToDeliver */
            ifnull 45
        44: .line 420
            new okhttp3.internal.http2.StreamResetException
            dup
            aload 8 /* errorCodeToDeliver */
            invokespecial okhttp3.internal.http2.StreamResetException.<init>:(Lokhttp3/internal/http2/ErrorCode;)V
            athrow
        45: .line 423
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        end local 8 // okhttp3.internal.http2.ErrorCode errorCodeToDeliver
        end local 6 // long readBytesDelivered
        end local 5 // okhttp3.internal.http2.Header$Listener headersListenerToNotify
        end local 4 // okhttp3.Headers headersToDeliver
        end local 2 // long byteCount
        end local 1 // okio.Buffer sink
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   46     0                     this  Lokhttp3/internal/http2/Http2Stream$FramingSource;
            0   46     1                     sink  Lokio/Buffer;
            0   46     2                byteCount  J
            2   46     4         headersToDeliver  Lokhttp3/Headers;
            3   46     5  headersListenerToNotify  Lokhttp3/internal/http2/Header$Listener;
            4   46     6       readBytesDelivered  J
            5   46     8       errorCodeToDeliver  Lokhttp3/internal/http2/ErrorCode;
      Exception table:
        from    to  target  type
           7    26      29  any
           6    28      35  any
          29    34      35  any
          35    36      35  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      sink       
      byteCount  

  private void updateConnectionFlowControl(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
        start local 1 // long read
         0: .line 428
            getstatic okhttp3.internal.http2.Http2Stream$FramingSource.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            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 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            lload 1 /* read */
            invokevirtual okhttp3.internal.http2.Http2Connection.updateConnectionFlowControl:(J)V
         2: .line 430
            return
        end local 1 // long read
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lokhttp3/internal/http2/Http2Stream$FramingSource;
            0    3     1  read  J
    MethodParameters:
      Name  Flags
      read  

  void receive(okio.BufferedSource, long);
    descriptor: (Lokio/BufferedSource;J)V
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
        start local 1 // okio.BufferedSource in
        start local 2 // long byteCount
         0: .line 433
            getstatic okhttp3.internal.http2.Http2Stream$FramingSource.$assertionsDisabled:Z
            ifne 31
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 6
            monitorenter
         2: .line 439
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.finished:Z
            istore 4 /* finished */
        start local 4 // boolean finished
         3: .line 440
            lload 2 /* byteCount */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            ladd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.maxByteCount:J
            lcmp
            ifle 4
            iconst_1
            goto 5
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource okio.BufferedSource long int top okhttp3.internal.http2.Http2Stream
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* flowControlError */
        start local 5 // boolean flowControlError
         6: .line 438
            aload 6
            monitorexit
         7: goto 10
        end local 5 // boolean flowControlError
        end local 4 // boolean finished
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource okio.BufferedSource long top top okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
         8: aload 6
            monitorexit
         9: athrow
        start local 4 // boolean finished
        start local 5 // boolean flowControlError
        10: .line 444
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource okio.BufferedSource long int int
      StackMap stack:
            iload 5 /* flowControlError */
            ifeq 14
        11: .line 445
            aload 1 /* in */
            lload 2 /* byteCount */
            invokeinterface okio.BufferedSource.skip:(J)V
        12: .line 446
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getstatic okhttp3.internal.http2.ErrorCode.FLOW_CONTROL_ERROR:Lokhttp3/internal/http2/ErrorCode;
            invokevirtual okhttp3.internal.http2.Http2Stream.closeLater:(Lokhttp3/internal/http2/ErrorCode;)V
        13: .line 447
            return
        14: .line 451
      StackMap locals:
      StackMap stack:
            iload 4 /* finished */
            ifeq 17
        15: .line 452
            aload 1 /* in */
            lload 2 /* byteCount */
            invokeinterface okio.BufferedSource.skip:(J)V
        16: .line 453
            return
        17: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.receiveBuffer:Lokio/Buffer;
            lload 2 /* byteCount */
            invokeinterface okio.BufferedSource.read:(Lokio/Buffer;J)J
            lstore 6 /* read */
        start local 6 // long read
        18: .line 458
            lload 6 /* read */
            ldc -1
            lcmp
            ifne 19
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
        19: .line 459
      StackMap locals: long
      StackMap stack:
            lload 2 /* byteCount */
            lload 6 /* read */
            lsub
            lstore 2 /* byteCount */
        20: .line 462
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 8
            monitorenter
        21: .line 463
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lconst_0
            lcmp
            ifne 22
            iconst_1
            goto 23
      StackMap locals: okhttp3.internal.http2.Http2Stream
      StackMap stack:
        22: iconst_0
      StackMap locals:
      StackMap stack: int
        23: istore 9 /* wasEmpty */
        start local 9 // boolean wasEmpty
        24: .line 464
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.receiveBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.writeAll:(Lokio/Source;)J
            pop2
        25: .line 465
            iload 9 /* wasEmpty */
            ifeq 27
        26: .line 466
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual java.lang.Object.notifyAll:()V
        end local 9 // boolean wasEmpty
        27: .line 462
      StackMap locals:
      StackMap stack:
            aload 8
            monitorexit
        28: goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: aload 8
            monitorexit
        30: athrow
        end local 6 // long read
        end local 5 // boolean flowControlError
        end local 4 // boolean finished
        31: .line 435
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource okio.BufferedSource long
      StackMap stack:
            lload 2 /* byteCount */
            lconst_0
            lcmp
            ifgt 1
        32: .line 470
            return
        end local 2 // long byteCount
        end local 1 // okio.BufferedSource in
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   33     0              this  Lokhttp3/internal/http2/Http2Stream$FramingSource;
            0   33     1                in  Lokio/BufferedSource;
            0   33     2         byteCount  J
            3    8     4          finished  Z
           10   31     4          finished  Z
            6    8     5  flowControlError  Z
           10   31     5  flowControlError  Z
           18   31     6              read  J
           24   27     9          wasEmpty  Z
      Exception table:
        from    to  target  type
           2     7       8  any
           8     9       8  any
          21    28      29  any
          29    30      29  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      in         
      byteCount  

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

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
         0: .line 478
            aconst_null
            astore 3 /* headersToDeliver */
        start local 3 // java.util.List headersToDeliver
         1: .line 479
            aconst_null
            astore 4 /* headersListenerToNotify */
        start local 4 // okhttp3.internal.http2.Header$Listener headersListenerToNotify
         2: .line 480
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 5
            monitorenter
         3: .line 481
            aload 0 /* this */
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream$FramingSource.closed:Z
         4: .line 482
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lstore 1 /* bytesDiscarded */
        start local 1 // long bytesDiscarded
         5: .line 483
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.readBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.clear:()V
         6: .line 484
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 10
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersListener:Lokhttp3/internal/http2/Header$Listener;
            ifnull 10
         7: .line 485
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* headersToDeliver */
         8: .line 486
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersQueue:Ljava/util/Deque;
            invokeinterface java.util.Deque.clear:()V
         9: .line 487
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.headersListener:Lokhttp3/internal/http2/Header$Listener;
            astore 4 /* headersListenerToNotify */
        10: .line 489
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource long java.util.List okhttp3.internal.http2.Header$Listener okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual java.lang.Object.notifyAll:()V
        11: .line 480
            aload 5
            monitorexit
        12: goto 15
        end local 1 // long bytesDiscarded
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource top top java.util.List okhttp3.internal.http2.Header$Listener okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
        13: aload 5
            monitorexit
        14: athrow
        start local 1 // long bytesDiscarded
        15: .line 491
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource long java.util.List okhttp3.internal.http2.Header$Listener
      StackMap stack:
            lload 1 /* bytesDiscarded */
            lconst_0
            lcmp
            ifle 17
        16: .line 492
            aload 0 /* this */
            lload 1 /* bytesDiscarded */
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSource.updateConnectionFlowControl:(J)V
        17: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSource.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary:()V
        18: .line 495
            aload 4 /* headersListenerToNotify */
            ifnull 23
        19: .line 496
            aload 3 /* headersToDeliver */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource long java.util.List okhttp3.internal.http2.Header$Listener top java.util.Iterator
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast okhttp3.Headers
            astore 5 /* headers */
        start local 5 // okhttp3.Headers headers
        21: .line 497
            aload 4 /* headersListenerToNotify */
            aload 5 /* headers */
            invokeinterface okhttp3.internal.http2.Header$Listener.onHeaders:(Lokhttp3/Headers;)V
        end local 5 // okhttp3.Headers headers
        22: .line 496
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 500
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSource long java.util.List okhttp3.internal.http2.Header$Listener
      StackMap stack:
            return
        end local 4 // okhttp3.internal.http2.Header$Listener headersListenerToNotify
        end local 3 // java.util.List headersToDeliver
        end local 1 // long bytesDiscarded
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSource this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   24     0                     this  Lokhttp3/internal/http2/Http2Stream$FramingSource;
            5   13     1           bytesDiscarded  J
           15   24     1           bytesDiscarded  J
            1   24     3         headersToDeliver  Ljava/util/List<Lokhttp3/Headers;>;
            2   24     4  headersListenerToNotify  Lokhttp3/internal/http2/Header$Listener;
           21   22     5                  headers  Lokhttp3/Headers;
      Exception table:
        from    to  target  type
           3    12      13  any
          13    14      13  any
    Exceptions:
      throws java.io.IOException
}
SourceFile: "Http2Stream.java"
NestHost: okhttp3.internal.http2.Http2Stream
InnerClasses:
  abstract Listener = okhttp3.internal.http2.Header$Listener of okhttp3.internal.http2.Header
  private final FramingSource = okhttp3.internal.http2.Http2Stream$FramingSource of okhttp3.internal.http2.Http2Stream
  StreamTimeout = okhttp3.internal.http2.Http2Stream$StreamTimeout of okhttp3.internal.http2.Http2Stream