public final class io.netty.handler.codec.http2.UniformStreamByteDistributor implements io.netty.handler.codec.http2.StreamByteDistributor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.codec.http2.UniformStreamByteDistributor
  super_class: java.lang.Object
{
  private final io.netty.handler.codec.http2.Http2Connection$PropertyKey stateKey;
    descriptor: Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Deque<io.netty.handler.codec.http2.UniformStreamByteDistributor$State> queue;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;>;

  private int minAllocationChunk;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long totalStreamableBytes;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>(io.netty.handler.codec.http2.Http2Connection);
    descriptor: (Lio/netty/handler/codec/http2/Http2Connection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // io.netty.handler.codec.http2.Http2Connection connection
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 39
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            iconst_4
            invokespecial java.util.ArrayDeque.<init>:(I)V
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
         2: .line 45
            aload 0 /* this */
            sipush 1024
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
         3: .line 50
            aload 0 /* this */
            aload 1 /* connection */
            invokeinterface io.netty.handler.codec.http2.Http2Connection.newKey:()Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
         4: .line 51
            aload 1 /* connection */
            invokeinterface io.netty.handler.codec.http2.Http2Connection.connectionStream:()Lio/netty/handler/codec/http2/Http2Stream;
            astore 2 /* connectionStream */
        start local 2 // io.netty.handler.codec.http2.Http2Stream connectionStream
         5: .line 52
            aload 2 /* connectionStream */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
            new io.netty.handler.codec.http2.UniformStreamByteDistributor$State
            dup
            aload 0 /* this */
            aload 2 /* connectionStream */
            invokespecial io.netty.handler.codec.http2.UniformStreamByteDistributor$State.<init>:(Lio/netty/handler/codec/http2/UniformStreamByteDistributor;Lio/netty/handler/codec/http2/Http2Stream;)V
            invokeinterface io.netty.handler.codec.http2.Http2Stream.setProperty:(Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 55
            aload 1 /* connection */
            new io.netty.handler.codec.http2.UniformStreamByteDistributor$1
            dup
            aload 0 /* this */
            invokespecial io.netty.handler.codec.http2.UniformStreamByteDistributor$1.<init>:(Lio/netty/handler/codec/http2/UniformStreamByteDistributor;)V
            invokeinterface io.netty.handler.codec.http2.Http2Connection.addListener:(Lio/netty/handler/codec/http2/Http2Connection$Listener;)V
         7: .line 66
            return
        end local 2 // io.netty.handler.codec.http2.Http2Stream connectionStream
        end local 1 // io.netty.handler.codec.http2.Http2Connection connection
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0    8     1        connection  Lio/netty/handler/codec/http2/Http2Connection;
            5    8     2  connectionStream  Lio/netty/handler/codec/http2/Http2Stream;
    MethodParameters:
            Name  Flags
      connection  

  public void minAllocationChunk(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // int minAllocationChunk
         0: .line 75
            iload 1 /* minAllocationChunk */
            ifgt 2
         1: .line 76
            new java.lang.IllegalArgumentException
            dup
            ldc "minAllocationChunk must be > 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* minAllocationChunk */
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
         3: .line 79
            return
        end local 1 // int minAllocationChunk
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0    4     1  minAllocationChunk  I
    MethodParameters:
                    Name  Flags
      minAllocationChunk  

  public void updateStreamableBytes(io.netty.handler.codec.http2.StreamByteDistributor$StreamState);
    descriptor: (Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // io.netty.handler.codec.http2.StreamByteDistributor$StreamState streamState
         0: .line 83
            aload 0 /* this */
            aload 1 /* streamState */
            invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.stream:()Lio/netty/handler/codec/http2/Http2Stream;
            invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor.state:(Lio/netty/handler/codec/http2/Http2Stream;)Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
            aload 1 /* streamState */
            invokestatic io.netty.handler.codec.http2.Http2CodecUtil.streamableBytes:(Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;)I
         1: .line 84
            aload 1 /* streamState */
            invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.hasFrame:()Z
         2: .line 85
            aload 1 /* streamState */
            invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.windowSize:()I
         3: .line 83
            invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor$State.updateStreamableBytes:(IZI)V
         4: .line 86
            return
        end local 1 // io.netty.handler.codec.http2.StreamByteDistributor$StreamState streamState
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0    5     1  streamState  Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;
    MethodParameters:
             Name  Flags
      streamState  

  public void updateDependencyTree(int, int, short, boolean);
    descriptor: (IISZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // int childStreamId
        start local 2 // int parentStreamId
        start local 3 // short weight
        start local 4 // boolean exclusive
         0: .line 91
            return
        end local 4 // boolean exclusive
        end local 3 // short weight
        end local 2 // int parentStreamId
        end local 1 // int childStreamId
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0    1     1   childStreamId  I
            0    1     2  parentStreamId  I
            0    1     3          weight  S
            0    1     4       exclusive  Z
    MethodParameters:
                Name  Flags
      childStreamId   
      parentStreamId  
      weight          
      exclusive       

  public boolean distribute(int, io.netty.handler.codec.http2.StreamByteDistributor$Writer);
    descriptor: (ILio/netty/handler/codec/http2/StreamByteDistributor$Writer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // int maxBytes
        start local 2 // io.netty.handler.codec.http2.StreamByteDistributor$Writer writer
         0: .line 95
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
            invokeinterface java.util.Deque.size:()I
            istore 3 /* size */
        start local 3 // int size
         1: .line 96
            iload 3 /* size */
            ifne 4
         2: .line 97
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.totalStreamableBytes:J
            lconst_0
            lcmp
            ifle 3
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
            iload 1 /* maxBytes */
            iload 3 /* size */
            idiv
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* chunkSize */
        start local 4 // int chunkSize
         5: .line 102
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
            invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
            astore 5 /* state */
        start local 5 // io.netty.handler.codec.http2.UniformStreamByteDistributor$State state
         6: .line 104
      StackMap locals: int io.netty.handler.codec.http2.UniformStreamByteDistributor$State
      StackMap stack:
            aload 5 /* state */
            iconst_0
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.enqueued:Z
         7: .line 105
            aload 5 /* state */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.windowNegative:Z
            ifeq 9
         8: .line 106
            goto 16
         9: .line 108
      StackMap locals:
      StackMap stack:
            iload 1 /* maxBytes */
            ifne 13
            aload 5 /* state */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.streamableBytes:I
            ifle 13
        10: .line 112
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
            aload 5 /* state */
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
        11: .line 113
            aload 5 /* state */
            iconst_1
            putfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.enqueued:Z
        12: .line 114
            goto 17
        13: .line 118
      StackMap locals:
      StackMap stack:
            iload 4 /* chunkSize */
            iload 1 /* maxBytes */
            aload 5 /* state */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.streamableBytes:I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* chunk */
        start local 6 // int chunk
        14: .line 119
            iload 1 /* maxBytes */
            iload 6 /* chunk */
            isub
            istore 1 /* maxBytes */
        15: .line 122
            aload 5 /* state */
            iload 6 /* chunk */
            aload 2 /* writer */
            invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor$State.write:(ILio/netty/handler/codec/http2/StreamByteDistributor$Writer;)V
        end local 6 // int chunk
        16: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
            invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
            dup
            astore 5 /* state */
            ifnonnull 6
        17: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.totalStreamableBytes:J
            lconst_0
            lcmp
            ifle 18
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
        end local 5 // io.netty.handler.codec.http2.UniformStreamByteDistributor$State state
        end local 4 // int chunkSize
        end local 3 // int size
        end local 2 // io.netty.handler.codec.http2.StreamByteDistributor$Writer writer
        end local 1 // int maxBytes
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0   19     1   maxBytes  I
            0   19     2     writer  Lio/netty/handler/codec/http2/StreamByteDistributor$Writer;
            1   19     3       size  I
            5   19     4  chunkSize  I
            6   19     5      state  Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
           14   16     6      chunk  I
    Exceptions:
      throws io.netty.handler.codec.http2.Http2Exception
    MethodParameters:
          Name  Flags
      maxBytes  
      writer    

  private io.netty.handler.codec.http2.UniformStreamByteDistributor$State state(io.netty.handler.codec.http2.Http2Stream);
    descriptor: (Lio/netty/handler/codec/http2/Http2Stream;)Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
        start local 1 // io.netty.handler.codec.http2.Http2Stream stream
         0: .line 129
            aload 1 /* stream */
            ldc "stream"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast io.netty.handler.codec.http2.Http2Stream
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
            invokeinterface io.netty.handler.codec.http2.Http2Stream.getProperty:(Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;)Ljava/lang/Object;
            checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
            areturn
        end local 1 // io.netty.handler.codec.http2.Http2Stream stream
        end local 0 // io.netty.handler.codec.http2.UniformStreamByteDistributor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
            0    1     1  stream  Lio/netty/handler/codec/http2/Http2Stream;
    MethodParameters:
        Name  Flags
      stream  
}
SourceFile: "UniformStreamByteDistributor.java"
NestMembers:
  io.netty.handler.codec.http2.UniformStreamByteDistributor$1  io.netty.handler.codec.http2.UniformStreamByteDistributor$State
InnerClasses:
  public abstract Listener = io.netty.handler.codec.http2.Http2Connection$Listener of io.netty.handler.codec.http2.Http2Connection
  public abstract PropertyKey = io.netty.handler.codec.http2.Http2Connection$PropertyKey of io.netty.handler.codec.http2.Http2Connection
  public abstract StreamState = io.netty.handler.codec.http2.StreamByteDistributor$StreamState of io.netty.handler.codec.http2.StreamByteDistributor
  public abstract Writer = io.netty.handler.codec.http2.StreamByteDistributor$Writer of io.netty.handler.codec.http2.StreamByteDistributor
  io.netty.handler.codec.http2.UniformStreamByteDistributor$1
  private final State = io.netty.handler.codec.http2.UniformStreamByteDistributor$State of io.netty.handler.codec.http2.UniformStreamByteDistributor