final class okhttp3.internal.http2.Hpack$Writer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: okhttp3.internal.http2.Hpack$Writer
  super_class: java.lang.Object
{
  private static final int SETTINGS_HEADER_TABLE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private static final int SETTINGS_HEADER_TABLE_SIZE_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

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

  private final boolean useCompression;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  int headerTableSizeSetting;
    descriptor: I
    flags: (0x0000) 

  int maxDynamicTableByteCount;
    descriptor: I
    flags: (0x0000) 

  okhttp3.internal.http2.Header[] dynamicTable;
    descriptor: [Lokhttp3/internal/http2/Header;
    flags: (0x0000) 

  int nextHeaderIndex;
    descriptor: I
    flags: (0x0000) 

  int headerCount;
    descriptor: I
    flags: (0x0000) 

  int dynamicTableByteCount;
    descriptor: I
    flags: (0x0000) 

  void <init>(okio.Buffer);
    descriptor: (Lokio/Buffer;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // okio.Buffer out
         0: .line 397
            aload 0 /* this */
            sipush 4096
            iconst_1
            aload 1 /* out */
            invokespecial okhttp3.internal.http2.Hpack$Writer.<init>:(IZLokio/Buffer;)V
         1: .line 398
            return
        end local 1 // okio.Buffer out
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lokhttp3/internal/http2/Hpack$Writer;
            0    2     1   out  Lokio/Buffer;
    MethodParameters:
      Name  Flags
      out   

  void <init>(int, boolean, okio.Buffer);
    descriptor: (IZLokio/Buffer;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // int headerTableSizeSetting
        start local 2 // boolean useCompression
        start local 3 // okio.Buffer out
         0: .line 400
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 383
            aload 0 /* this */
            ldc 2147483647
            putfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
         2: .line 390
            aload 0 /* this */
            bipush 8
            anewarray okhttp3.internal.http2.Header
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
         3: .line 392
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            iconst_1
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
         4: .line 393
            aload 0 /* this */
            iconst_0
            putfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
         5: .line 394
            aload 0 /* this */
            iconst_0
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
         6: .line 401
            aload 0 /* this */
            iload 1 /* headerTableSizeSetting */
            putfield okhttp3.internal.http2.Hpack$Writer.headerTableSizeSetting:I
         7: .line 402
            aload 0 /* this */
            iload 1 /* headerTableSizeSetting */
            putfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
         8: .line 403
            aload 0 /* this */
            iload 2 /* useCompression */
            putfield okhttp3.internal.http2.Hpack$Writer.useCompression:Z
         9: .line 404
            aload 0 /* this */
            aload 3 /* out */
            putfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
        10: .line 405
            return
        end local 3 // okio.Buffer out
        end local 2 // boolean useCompression
        end local 1 // int headerTableSizeSetting
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   11     0                    this  Lokhttp3/internal/http2/Hpack$Writer;
            0   11     1  headerTableSizeSetting  I
            0   11     2          useCompression  Z
            0   11     3                     out  Lokio/Buffer;
    MethodParameters:
                        Name  Flags
      headerTableSizeSetting  
      useCompression          
      out                     

  private void clearDynamicTable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
         0: .line 408
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 409
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            iconst_1
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
         2: .line 410
            aload 0 /* this */
            iconst_0
            putfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
         3: .line 411
            aload 0 /* this */
            iconst_0
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
         4: .line 412
            return
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lokhttp3/internal/http2/Hpack$Writer;

  private int evictToRecoverBytes(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // int bytesToRecover
         0: .line 416
            iconst_0
            istore 2 /* entriesToEvict */
        start local 2 // int entriesToEvict
         1: .line 417
            iload 1 /* bytesToRecover */
            ifle 15
         2: .line 419
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            iconst_1
            isub
            istore 3 /* j */
        start local 3 // int j
         3: goto 9
         4: .line 420
      StackMap locals: int int
      StackMap stack:
            iload 1 /* bytesToRecover */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iload 3 /* j */
            aaload
            getfield okhttp3.internal.http2.Header.hpackSize:I
            isub
            istore 1 /* bytesToRecover */
         5: .line 421
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iload 3 /* j */
            aaload
            getfield okhttp3.internal.http2.Header.hpackSize:I
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
         6: .line 422
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
            iconst_1
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
         7: .line 423
            iinc 2 /* entriesToEvict */ 1
         8: .line 419
            iinc 3 /* j */ -1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* j */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            if_icmplt 10
            iload 1 /* bytesToRecover */
            ifgt 4
        end local 3 // int j
        10: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iconst_1
            iadd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
        11: .line 426
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iconst_1
            iadd
            iload 2 /* entriesToEvict */
            iadd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
        12: .line 425
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 427
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iconst_1
            iadd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iconst_1
            iadd
            iload 2 /* entriesToEvict */
            iadd
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
        14: .line 428
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iload 2 /* entriesToEvict */
            iadd
            putfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
        15: .line 430
      StackMap locals:
      StackMap stack:
            iload 2 /* entriesToEvict */
            ireturn
        end local 2 // int entriesToEvict
        end local 1 // int bytesToRecover
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lokhttp3/internal/http2/Hpack$Writer;
            0   16     1  bytesToRecover  I
            1   16     2  entriesToEvict  I
            3   10     3               j  I
    MethodParameters:
                Name  Flags
      bytesToRecover  

  private void insertIntoDynamicTable(okhttp3.internal.http2.Header);
    descriptor: (Lokhttp3/internal/http2/Header;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // okhttp3.internal.http2.Header entry
         0: .line 434
            aload 1 /* entry */
            getfield okhttp3.internal.http2.Header.hpackSize:I
            istore 2 /* delta */
        start local 2 // int delta
         1: .line 437
            iload 2 /* delta */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            if_icmple 4
         2: .line 438
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.clearDynamicTable:()V
         3: .line 439
            return
         4: .line 443
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
            iload 2 /* delta */
            iadd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            isub
            istore 3 /* bytesToRecover */
        start local 3 // int bytesToRecover
         5: .line 444
            aload 0 /* this */
            iload 3 /* bytesToRecover */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.evictToRecoverBytes:(I)I
            pop
         6: .line 446
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
            iconst_1
            iadd
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            if_icmple 11
         7: .line 447
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            iconst_2
            imul
            anewarray okhttp3.internal.http2.Header
            astore 4 /* doubled */
        start local 4 // okhttp3.internal.http2.Header[] doubled
         8: .line 448
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iconst_0
            aload 4 /* doubled */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 449
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            iconst_1
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
        10: .line 450
            aload 0 /* this */
            aload 4 /* doubled */
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
        end local 4 // okhttp3.internal.http2.Header[] doubled
        11: .line 452
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            dup_x1
            iconst_1
            isub
            putfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            istore 4 /* index */
        start local 4 // int index
        12: .line 453
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iload 4 /* index */
            aload 1 /* entry */
            aastore
        13: .line 454
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
            iconst_1
            iadd
            putfield okhttp3.internal.http2.Hpack$Writer.headerCount:I
        14: .line 455
            aload 0 /* this */
            dup
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
            iload 2 /* delta */
            iadd
            putfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
        15: .line 456
            return
        end local 4 // int index
        end local 3 // int bytesToRecover
        end local 2 // int delta
        end local 1 // okhttp3.internal.http2.Header entry
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lokhttp3/internal/http2/Hpack$Writer;
            0   16     1           entry  Lokhttp3/internal/http2/Header;
            1   16     2           delta  I
            5   16     3  bytesToRecover  I
            8   11     4         doubled  [Lokhttp3/internal/http2/Header;
           12   16     4           index  I
    MethodParameters:
       Name  Flags
      entry  

  void writeHeaders(java.util.List<okhttp3.internal.http2.Header>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // java.util.List headerBlock
         0: .line 461
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.emitDynamicTableSizeUpdate:Z
            ifeq 6
         1: .line 462
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            if_icmpge 3
         2: .line 464
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
            bipush 31
            bipush 32
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
         3: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield okhttp3.internal.http2.Hpack$Writer.emitDynamicTableSizeUpdate:Z
         4: .line 467
            aload 0 /* this */
            ldc 2147483647
            putfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
         5: .line 468
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            bipush 31
            bipush 32
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
         6: .line 471
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: aload 1 /* headerBlock */
            invokeinterface java.util.List.size:()I
            istore 3 /* size */
        start local 3 // int size
         8: goto 52
         9: .line 472
      StackMap locals: int int
      StackMap stack:
            aload 1 /* headerBlock */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast okhttp3.internal.http2.Header
            astore 4 /* header */
        start local 4 // okhttp3.internal.http2.Header header
        10: .line 473
            aload 4 /* header */
            getfield okhttp3.internal.http2.Header.name:Lokio/ByteString;
            invokevirtual okio.ByteString.toAsciiLowercase:()Lokio/ByteString;
            astore 5 /* name */
        start local 5 // okio.ByteString name
        11: .line 474
            aload 4 /* header */
            getfield okhttp3.internal.http2.Header.value:Lokio/ByteString;
            astore 6 /* value */
        start local 6 // okio.ByteString value
        12: .line 475
            iconst_m1
            istore 7 /* headerIndex */
        start local 7 // int headerIndex
        13: .line 476
            iconst_m1
            istore 8 /* headerNameIndex */
        start local 8 // int headerNameIndex
        14: .line 478
            getstatic okhttp3.internal.http2.Hpack.NAME_TO_FIRST_INDEX:Ljava/util/Map;
            aload 5 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 9 /* staticIndex */
        start local 9 // java.lang.Integer staticIndex
        15: .line 479
            aload 9 /* staticIndex */
            ifnull 23
        16: .line 480
            aload 9 /* staticIndex */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            istore 8 /* headerNameIndex */
        17: .line 481
            iload 8 /* headerNameIndex */
            iconst_1
            if_icmple 23
            iload 8 /* headerNameIndex */
            bipush 8
            if_icmpge 23
        18: .line 486
            getstatic okhttp3.internal.http2.Hpack.STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
            iload 8 /* headerNameIndex */
            iconst_1
            isub
            aaload
            getfield okhttp3.internal.http2.Header.value:Lokio/ByteString;
            aload 6 /* value */
            invokestatic okhttp3.internal.Util.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 21
        19: .line 487
            iload 8 /* headerNameIndex */
            istore 7 /* headerIndex */
        20: .line 488
            goto 23
      StackMap locals: okhttp3.internal.http2.Hpack$Writer java.util.List int int okhttp3.internal.http2.Header okio.ByteString okio.ByteString int int java.lang.Integer
      StackMap stack:
        21: getstatic okhttp3.internal.http2.Hpack.STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
            iload 8 /* headerNameIndex */
            aaload
            getfield okhttp3.internal.http2.Header.value:Lokio/ByteString;
            aload 6 /* value */
            invokestatic okhttp3.internal.Util.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 23
        22: .line 489
            iload 8 /* headerNameIndex */
            iconst_1
            iadd
            istore 7 /* headerIndex */
        23: .line 494
      StackMap locals:
      StackMap stack:
            iload 7 /* headerIndex */
            iconst_m1
            if_icmpne 35
        24: .line 495
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            iconst_1
            iadd
            istore 10 /* j */
        start local 10 // int j
        25: aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            arraylength
            istore 11 /* length */
        start local 11 // int length
        26: goto 34
        27: .line 496
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iload 10 /* j */
            aaload
            getfield okhttp3.internal.http2.Header.name:Lokio/ByteString;
            aload 5 /* name */
            invokestatic okhttp3.internal.Util.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 33
        28: .line 497
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTable:[Lokhttp3/internal/http2/Header;
            iload 10 /* j */
            aaload
            getfield okhttp3.internal.http2.Header.value:Lokio/ByteString;
            aload 6 /* value */
            invokestatic okhttp3.internal.Util.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 31
        29: .line 498
            iload 10 /* j */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            isub
            getstatic okhttp3.internal.http2.Hpack.STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
            arraylength
            iadd
            istore 7 /* headerIndex */
        30: .line 499
            goto 35
        31: .line 500
      StackMap locals:
      StackMap stack:
            iload 8 /* headerNameIndex */
            iconst_m1
            if_icmpne 33
        32: .line 501
            iload 10 /* j */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.nextHeaderIndex:I
            isub
            getstatic okhttp3.internal.http2.Hpack.STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header;
            arraylength
            iadd
            istore 8 /* headerNameIndex */
        33: .line 495
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 10 /* j */
            iload 11 /* length */
            if_icmplt 27
        end local 11 // int length
        end local 10 // int j
        35: .line 507
      StackMap locals:
      StackMap stack:
            iload 7 /* headerIndex */
            iconst_m1
            if_icmpeq 38
        36: .line 509
            aload 0 /* this */
            iload 7 /* headerIndex */
            bipush 127
            sipush 128
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
        37: .line 510
            goto 51
      StackMap locals:
      StackMap stack:
        38: iload 8 /* headerNameIndex */
            iconst_m1
            if_icmpne 44
        39: .line 512
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            bipush 64
            invokevirtual okio.Buffer.writeByte:(I)Lokio/Buffer;
            pop
        40: .line 513
            aload 0 /* this */
            aload 5 /* name */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeByteString:(Lokio/ByteString;)V
        41: .line 514
            aload 0 /* this */
            aload 6 /* value */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeByteString:(Lokio/ByteString;)V
        42: .line 515
            aload 0 /* this */
            aload 4 /* header */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.insertIntoDynamicTable:(Lokhttp3/internal/http2/Header;)V
        43: .line 516
            goto 51
      StackMap locals:
      StackMap stack:
        44: aload 5 /* name */
            getstatic okhttp3.internal.http2.Header.PSEUDO_PREFIX:Lokio/ByteString;
            invokevirtual okio.ByteString.startsWith:(Lokio/ByteString;)Z
            ifeq 48
            getstatic okhttp3.internal.http2.Header.TARGET_AUTHORITY:Lokio/ByteString;
            aload 5 /* name */
            invokevirtual okio.ByteString.equals:(Ljava/lang/Object;)Z
            ifne 48
        45: .line 519
            aload 0 /* this */
            iload 8 /* headerNameIndex */
            bipush 15
            iconst_0
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
        46: .line 520
            aload 0 /* this */
            aload 6 /* value */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeByteString:(Lokio/ByteString;)V
        47: .line 521
            goto 51
        48: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* headerNameIndex */
            bipush 63
            bipush 64
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
        49: .line 524
            aload 0 /* this */
            aload 6 /* value */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeByteString:(Lokio/ByteString;)V
        50: .line 525
            aload 0 /* this */
            aload 4 /* header */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.insertIntoDynamicTable:(Lokhttp3/internal/http2/Header;)V
        end local 9 // java.lang.Integer staticIndex
        end local 8 // int headerNameIndex
        end local 7 // int headerIndex
        end local 6 // okio.ByteString value
        end local 5 // okio.ByteString name
        end local 4 // okhttp3.internal.http2.Header header
        51: .line 471
      StackMap locals: okhttp3.internal.http2.Hpack$Writer java.util.List int int
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 2 /* i */
            iload 3 /* size */
            if_icmplt 9
        end local 3 // int size
        end local 2 // int i
        53: .line 528
            return
        end local 1 // java.util.List headerBlock
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   54     0             this  Lokhttp3/internal/http2/Hpack$Writer;
            0   54     1      headerBlock  Ljava/util/List<Lokhttp3/internal/http2/Header;>;
            7   53     2                i  I
            8   53     3             size  I
           10   51     4           header  Lokhttp3/internal/http2/Header;
           11   51     5             name  Lokio/ByteString;
           12   51     6            value  Lokio/ByteString;
           13   51     7      headerIndex  I
           14   51     8  headerNameIndex  I
           15   51     9      staticIndex  Ljava/lang/Integer;
           25   35    10                j  I
           26   35    11           length  I
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/List<Lokhttp3/internal/http2/Header;>;)V
    MethodParameters:
             Name  Flags
      headerBlock  

  void writeInt(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // int value
        start local 2 // int prefixMask
        start local 3 // int bits
         0: .line 533
            iload 1 /* value */
            iload 2 /* prefixMask */
            if_icmpge 3
         1: .line 534
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            iload 3 /* bits */
            iload 1 /* value */
            ior
            invokevirtual okio.Buffer.writeByte:(I)Lokio/Buffer;
            pop
         2: .line 535
            return
         3: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            iload 3 /* bits */
            iload 2 /* prefixMask */
            ior
            invokevirtual okio.Buffer.writeByte:(I)Lokio/Buffer;
            pop
         4: .line 540
            iload 1 /* value */
            iload 2 /* prefixMask */
            isub
            istore 1 /* value */
         5: .line 543
            goto 9
         6: .line 544
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            bipush 127
            iand
            istore 4 /* b */
        start local 4 // int b
         7: .line 545
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            iload 4 /* b */
            sipush 128
            ior
            invokevirtual okio.Buffer.writeByte:(I)Lokio/Buffer;
            pop
         8: .line 546
            iload 1 /* value */
            bipush 7
            iushr
            istore 1 /* value */
        end local 4 // int b
         9: .line 543
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            sipush 128
            if_icmpge 6
        10: .line 548
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            iload 1 /* value */
            invokevirtual okio.Buffer.writeByte:(I)Lokio/Buffer;
            pop
        11: .line 549
            return
        end local 3 // int bits
        end local 2 // int prefixMask
        end local 1 // int value
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lokhttp3/internal/http2/Hpack$Writer;
            0   12     1       value  I
            0   12     2  prefixMask  I
            0   12     3        bits  I
            7    9     4           b  I
    MethodParameters:
            Name  Flags
      value       
      prefixMask  
      bits        

  void writeByteString(okio.ByteString);
    descriptor: (Lokio/ByteString;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // okio.ByteString data
         0: .line 552
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.useCompression:Z
            ifeq 7
            invokestatic okhttp3.internal.http2.Huffman.get:()Lokhttp3/internal/http2/Huffman;
            aload 1 /* data */
            invokevirtual okhttp3.internal.http2.Huffman.encodedLength:(Lokio/ByteString;)I
            aload 1 /* data */
            invokevirtual okio.ByteString.size:()I
            if_icmpge 7
         1: .line 553
            new okio.Buffer
            dup
            invokespecial okio.Buffer.<init>:()V
            astore 2 /* huffmanBuffer */
        start local 2 // okio.Buffer huffmanBuffer
         2: .line 554
            invokestatic okhttp3.internal.http2.Huffman.get:()Lokhttp3/internal/http2/Huffman;
            aload 1 /* data */
            aload 2 /* huffmanBuffer */
            invokevirtual okhttp3.internal.http2.Huffman.encode:(Lokio/ByteString;Lokio/BufferedSink;)V
         3: .line 555
            aload 2 /* huffmanBuffer */
            invokevirtual okio.Buffer.readByteString:()Lokio/ByteString;
            astore 3 /* huffmanBytes */
        start local 3 // okio.ByteString huffmanBytes
         4: .line 556
            aload 0 /* this */
            aload 3 /* huffmanBytes */
            invokevirtual okio.ByteString.size:()I
            bipush 127
            sipush 128
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
         5: .line 557
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            aload 3 /* huffmanBytes */
            invokevirtual okio.Buffer.write:(Lokio/ByteString;)Lokio/Buffer;
            pop
        end local 3 // okio.ByteString huffmanBytes
        end local 2 // okio.Buffer huffmanBuffer
         6: .line 558
            goto 9
         7: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            invokevirtual okio.ByteString.size:()I
            bipush 127
            iconst_0
            invokevirtual okhttp3.internal.http2.Hpack$Writer.writeInt:(III)V
         8: .line 560
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.out:Lokio/Buffer;
            aload 1 /* data */
            invokevirtual okio.Buffer.write:(Lokio/ByteString;)Lokio/Buffer;
            pop
         9: .line 562
      StackMap locals:
      StackMap stack:
            return
        end local 1 // okio.ByteString data
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lokhttp3/internal/http2/Hpack$Writer;
            0   10     1           data  Lokio/ByteString;
            2    6     2  huffmanBuffer  Lokio/Buffer;
            4    6     3   huffmanBytes  Lokio/ByteString;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  void setHeaderTableSizeSetting(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
        start local 1 // int headerTableSizeSetting
         0: .line 565
            aload 0 /* this */
            iload 1 /* headerTableSizeSetting */
            putfield okhttp3.internal.http2.Hpack$Writer.headerTableSizeSetting:I
         1: .line 566
            iload 1 /* headerTableSizeSetting */
         2: .line 567
            sipush 16384
         3: .line 566
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* effectiveHeaderTableSize */
        start local 2 // int effectiveHeaderTableSize
         4: .line 569
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            iload 2 /* effectiveHeaderTableSize */
            if_icmpne 5
            return
         5: .line 571
      StackMap locals: int
      StackMap stack:
            iload 2 /* effectiveHeaderTableSize */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            if_icmpge 9
         6: .line 572
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
         7: .line 573
            iload 2 /* effectiveHeaderTableSize */
         8: .line 572
            invokestatic java.lang.Math.min:(II)I
            putfield okhttp3.internal.http2.Hpack$Writer.smallestHeaderTableSizeSetting:I
         9: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield okhttp3.internal.http2.Hpack$Writer.emitDynamicTableSizeUpdate:Z
        10: .line 576
            aload 0 /* this */
            iload 2 /* effectiveHeaderTableSize */
            putfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
        11: .line 577
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.adjustDynamicTableByteCount:()V
        12: .line 578
            return
        end local 2 // int effectiveHeaderTableSize
        end local 1 // int headerTableSizeSetting
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   13     0                      this  Lokhttp3/internal/http2/Hpack$Writer;
            0   13     1    headerTableSizeSetting  I
            4   13     2  effectiveHeaderTableSize  I
    MethodParameters:
                        Name  Flags
      headerTableSizeSetting  

  private void adjustDynamicTableByteCount();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Hpack$Writer this
         0: .line 581
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
            if_icmpge 5
         1: .line 582
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            ifne 4
         2: .line 583
            aload 0 /* this */
            invokevirtual okhttp3.internal.http2.Hpack$Writer.clearDynamicTable:()V
         3: .line 584
            goto 5
         4: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.dynamicTableByteCount:I
            aload 0 /* this */
            getfield okhttp3.internal.http2.Hpack$Writer.maxDynamicTableByteCount:I
            isub
            invokevirtual okhttp3.internal.http2.Hpack$Writer.evictToRecoverBytes:(I)I
            pop
         5: .line 588
      StackMap locals:
      StackMap stack:
            return
        end local 0 // okhttp3.internal.http2.Hpack$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lokhttp3/internal/http2/Hpack$Writer;
}
SourceFile: "Hpack.java"
NestHost: okhttp3.internal.http2.Hpack
InnerClasses:
  final Writer = okhttp3.internal.http2.Hpack$Writer of okhttp3.internal.http2.Hpack