public class org.apache.cassandra.io.sstable.IndexSummaryBuilder implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.sstable.IndexSummaryBuilder
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.lang.String defaultExpectedKeySizeName;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "cassandra.index_summary_expected_key_size"

  static long defaultExpectedKeySize;
    descriptor: J
    flags: (0x0008) ACC_STATIC

  private final org.apache.cassandra.io.util.SafeMemoryWriter offsets;
    descriptor: Lorg/apache/cassandra/io/util/SafeMemoryWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.io.util.SafeMemoryWriter entries;
    descriptor: Lorg/apache/cassandra/io/util/SafeMemoryWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minIndexInterval;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int samplingLevel;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] startPoints;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private java.util.TreeMap<java.lang.Long, org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary> lastReadableByData;
    descriptor: Ljava/util/TreeMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/TreeMap<Ljava/lang/Long;Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;>;

  private java.util.TreeMap<java.lang.Long, org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary> lastReadableByIndex;
    descriptor: Ljava/util/TreeMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/TreeMap<Ljava/lang/Long;Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;>;

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

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

  private org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary lastReadableBoundary;
    descriptor: Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
    flags: (0x0002) ACC_PRIVATE

  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=2, locals=0, args_size=0
         0: .line 37
            ldc Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            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 org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
         3: .line 39
            ldc Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.logger:Lorg/slf4j/Logger;
         4: .line 42
            ldc "cassandra.index_summary_expected_key_size"
            ldc "64"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
            putstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.defaultExpectedKeySize:J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(long, int, int);
    descriptor: (JII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // long expectedKeys
        start local 3 // int minIndexInterval
        start local 4 // int samplingLevel
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            lconst_0
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
         2: .line 52
            aload 0 /* this */
            lconst_0
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexIntervalMatches:J
         3: .line 58
            aload 0 /* this */
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByData:Ljava/util/TreeMap;
         4: .line 62
            aload 0 /* this */
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByIndex:Ljava/util/TreeMap;
         5: .line 102
            aload 0 /* this */
            iload 4 /* samplingLevel */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.samplingLevel:I
         6: .line 103
            aload 0 /* this */
            sipush 128
            iload 4 /* samplingLevel */
            invokestatic org.apache.cassandra.io.sstable.Downsampling.getStartPoints:(II)[I
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.startPoints:[I
         7: .line 105
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.defaultExpectedKeySize:J
            invokestatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.getEntrySize:(J)J
            lstore 5 /* expectedEntrySize */
        start local 5 // long expectedEntrySize
         8: .line 106
            lload 1 /* expectedKeys */
            iload 3 /* minIndexInterval */
            i2l
            ldiv
            lstore 7 /* maxExpectedEntries */
        start local 7 // long maxExpectedEntries
         9: .line 107
            lload 7 /* maxExpectedEntries */
            lload 5 /* expectedEntrySize */
            lmul
            lstore 9 /* maxExpectedEntriesSize */
        start local 9 // long maxExpectedEntriesSize
        10: .line 108
            lload 9 /* maxExpectedEntriesSize */
            ldc 2147483647
            lcmp
            ifle 20
        11: .line 111
            lload 1 /* expectedKeys */
            lload 5 /* expectedEntrySize */
            lmul
            l2d
            ldc 2.147483647E9
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 11 /* effectiveMinInterval */
        start local 11 // int effectiveMinInterval
        12: .line 112
            lload 1 /* expectedKeys */
            iload 11 /* effectiveMinInterval */
            i2l
            ldiv
            lstore 7 /* maxExpectedEntries */
        13: .line 113
            lload 7 /* maxExpectedEntries */
            lload 5 /* expectedEntrySize */
            lmul
            lstore 9 /* maxExpectedEntriesSize */
        14: .line 114
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 15
            lload 9 /* maxExpectedEntriesSize */
            ldc 2147483647
            lcmp
            ifle 15
            new java.lang.AssertionError
            dup
            lload 9 /* maxExpectedEntriesSize */
            invokespecial java.lang.AssertionError.<init>:(J)V
            athrow
        15: .line 115
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummaryBuilder long int int long long long int
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.logger:Lorg/slf4j/Logger;
            ldc "min_index_interval of {} is too low for {} expected keys of avg size {}; using interval of {} instead"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 116
            iload 3 /* minIndexInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            lload 1 /* expectedKeys */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.defaultExpectedKeySize:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            iload 11 /* effectiveMinInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        17: .line 115
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
        18: .line 117
            aload 0 /* this */
            iload 11 /* effectiveMinInterval */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.minIndexInterval:I
        end local 11 // int effectiveMinInterval
        19: .line 118
            goto 21
        20: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* minIndexInterval */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.minIndexInterval:I
        21: .line 125
      StackMap locals:
      StackMap stack:
            lconst_1
            lload 7 /* maxExpectedEntries */
            iload 4 /* samplingLevel */
            i2l
            lmul
            ldc 128
            ldiv
            invokestatic java.lang.Math.max:(JJ)J
            lstore 7 /* maxExpectedEntries */
        22: .line 126
            aload 0 /* this */
            new org.apache.cassandra.io.util.SafeMemoryWriter
            dup
            ldc 4
            lload 7 /* maxExpectedEntries */
            lmul
            invokespecial org.apache.cassandra.io.util.SafeMemoryWriter.<init>:(J)V
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.order:(Ljava/nio/ByteOrder;)Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
        23: .line 127
            aload 0 /* this */
            new org.apache.cassandra.io.util.SafeMemoryWriter
            dup
            lload 5 /* expectedEntrySize */
            lload 7 /* maxExpectedEntries */
            lmul
            invokespecial org.apache.cassandra.io.util.SafeMemoryWriter.<init>:(J)V
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.order:(Ljava/nio/ByteOrder;)Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
        24: .line 130
            aload 0 /* this */
            lconst_0
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.nextSamplePosition:J
        25: .line 131
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexIntervalMatches:J
            lconst_1
            ladd
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexIntervalMatches:J
        26: .line 132
            return
        end local 9 // long maxExpectedEntriesSize
        end local 7 // long maxExpectedEntries
        end local 5 // long expectedEntrySize
        end local 4 // int samplingLevel
        end local 3 // int minIndexInterval
        end local 1 // long expectedKeys
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   27     0                    this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0   27     1            expectedKeys  J
            0   27     3        minIndexInterval  I
            0   27     4           samplingLevel  I
            8   27     5       expectedEntrySize  J
            9   27     7      maxExpectedEntries  J
           10   27     9  maxExpectedEntriesSize  J
           12   19    11    effectiveMinInterval  I
    MethodParameters:
                  Name  Flags
      expectedKeys      
      minIndexInterval  
      samplingLevel     

  private static long getEntrySize(org.apache.cassandra.db.DecoratedKey);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.DecoratedKey key
         0: .line 139
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            invokestatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.getEntrySize:(J)J
            lreturn
        end local 0 // org.apache.cassandra.db.DecoratedKey key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Lorg/apache/cassandra/db/DecoratedKey;
    MethodParameters:
      Name  Flags
      key   

  private static long getEntrySize(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long keySize
         0: .line 148
            lload 0 /* keySize */
            lconst_0
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
            i2l
            ladd
            lreturn
        end local 0 // long keySize
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  keySize  J
    MethodParameters:
         Name  Flags
      keySize  

  public void markIndexSynced(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // long upToPosition
         0: .line 154
            aload 0 /* this */
            lload 1 /* upToPosition */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexSyncPosition:J
         1: .line 155
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummaryBuilder.refreshReadableBoundary:()V
         2: .line 156
            return
        end local 1 // long upToPosition
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0    3     1  upToPosition  J
    MethodParameters:
              Name  Flags
      upToPosition  

  public void markDataSynced(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // long upToPosition
         0: .line 161
            aload 0 /* this */
            lload 1 /* upToPosition */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.dataSyncPosition:J
         1: .line 162
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummaryBuilder.refreshReadableBoundary:()V
         2: .line 163
            return
        end local 1 // long upToPosition
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0    3     1  upToPosition  J
    MethodParameters:
              Name  Flags
      upToPosition  

  private void refreshReadableBoundary();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
         0: .line 168
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByData:Ljava/util/TreeMap;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.dataSyncPosition:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.TreeMap.floorEntry:(Ljava/lang/Object;)Ljava/util/Map$Entry;
            astore 1 /* byData */
        start local 1 // java.util.Map$Entry byData
         1: .line 169
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByIndex:Ljava/util/TreeMap;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexSyncPosition:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.TreeMap.floorEntry:(Ljava/lang/Object;)Ljava/util/Map$Entry;
            astore 2 /* byIndex */
        start local 2 // java.util.Map$Entry byIndex
         2: .line 170
            aload 1 /* byData */
            ifnull 3
            aload 2 /* byIndex */
            ifnonnull 4
         3: .line 171
      StackMap locals: java.util.Map$Entry java.util.Map$Entry
      StackMap stack:
            return
         4: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* byIndex */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.indexLength:J
            aload 1 /* byData */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.indexLength:J
            lcmp
            ifge 6
         5: .line 175
            aload 2 /* byIndex */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
            goto 7
      StackMap locals:
      StackMap stack: org.apache.cassandra.io.sstable.IndexSummaryBuilder
         6: aload 1 /* byData */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
         7: .line 174
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummaryBuilder java.util.Map$Entry java.util.Map$Entry
      StackMap stack: org.apache.cassandra.io.sstable.IndexSummaryBuilder org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableBoundary:Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
         8: .line 178
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByData:Ljava/util/TreeMap;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableBoundary:Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.dataLength:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_0
            invokevirtual java.util.TreeMap.headMap:(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
            invokeinterface java.util.NavigableMap.clear:()V
         9: .line 179
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByIndex:Ljava/util/TreeMap;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableBoundary:Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.indexLength:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_0
            invokevirtual java.util.TreeMap.headMap:(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
            invokeinterface java.util.NavigableMap.clear:()V
        10: .line 180
            return
        end local 2 // java.util.Map$Entry byIndex
        end local 1 // java.util.Map$Entry byData
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            1   11     1   byData  Ljava/util/Map$Entry<*Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;>;
            2   11     2  byIndex  Ljava/util/Map$Entry<*Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;>;

  public org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary getLastReadableBoundary();
    descriptor: ()Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
         0: .line 184
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableBoundary:Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;

  public org.apache.cassandra.io.sstable.IndexSummaryBuilder maybeAddEntry(org.apache.cassandra.db.DecoratedKey, long);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;J)Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // org.apache.cassandra.db.DecoratedKey decoratedKey
        start local 2 // long indexStart
         0: .line 189
            aload 0 /* this */
            aload 1 /* decoratedKey */
            lload 2 /* indexStart */
            lconst_0
            lconst_0
            invokevirtual org.apache.cassandra.io.sstable.IndexSummaryBuilder.maybeAddEntry:(Lorg/apache/cassandra/db/DecoratedKey;JJJ)Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            areturn
        end local 2 // long indexStart
        end local 1 // org.apache.cassandra.db.DecoratedKey decoratedKey
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0    1     1  decoratedKey  Lorg/apache/cassandra/db/DecoratedKey;
            0    1     2    indexStart  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      decoratedKey  
      indexStart    

  public org.apache.cassandra.io.sstable.IndexSummaryBuilder maybeAddEntry(org.apache.cassandra.db.DecoratedKey, long, long, long);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;JJJ)Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=9, args_size=5
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // org.apache.cassandra.db.DecoratedKey decoratedKey
        start local 2 // long indexStart
        start local 4 // long indexEnd
        start local 6 // long dataEnd
         0: .line 202
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.nextSamplePosition:J
            lcmp
            ifne 9
         1: .line 204
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            aload 1 /* decoratedKey */
            invokestatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.getEntrySize:(Lorg/apache/cassandra/db/DecoratedKey;)J
            ladd
            ldc 2147483647
            lcmp
            ifgt 7
         2: .line 206
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            l2i
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.writeInt:(I)V
         3: .line 207
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            aload 1 /* decoratedKey */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.write:(Ljava/nio/ByteBuffer;)V
         4: .line 208
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            lload 2 /* indexStart */
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.writeLong:(J)V
         5: .line 209
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
            invokevirtual org.apache.cassandra.io.sstable.IndexSummaryBuilder.setNextSamplePosition:(J)V
         6: .line 210
            goto 13
         7: .line 214
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.logger:Lorg/slf4j/Logger;
            ldc "Memory capacity of index summary exceeded (2GB), index summary will not cover full sstable, you should increase min_sampling_level"
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
         8: .line 217
            goto 13
         9: .line 218
      StackMap locals:
      StackMap stack:
            lload 6 /* dataEnd */
            lconst_0
            lcmp
            ifeq 13
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
            lconst_1
            ladd
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.nextSamplePosition:J
            lcmp
            ifne 13
        10: .line 221
            new org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
            dup
            aload 1 /* decoratedKey */
            lload 4 /* indexEnd */
            lload 6 /* dataEnd */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            ldc 4
            ldiv
            l2i
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            invokespecial org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.<init>:(Lorg/apache/cassandra/db/DecoratedKey;JJIJ)V
            astore 8 /* boundary */
        start local 8 // org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary boundary
        11: .line 222
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByData:Ljava/util/TreeMap;
            lload 6 /* dataEnd */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 8 /* boundary */
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 223
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.lastReadableByIndex:Ljava/util/TreeMap;
            lload 4 /* indexEnd */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 8 /* boundary */
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary boundary
        13: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
            lconst_1
            ladd
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
        14: .line 227
            aload 0 /* this */
            areturn
        end local 6 // long dataEnd
        end local 4 // long indexEnd
        end local 2 // long indexStart
        end local 1 // org.apache.cassandra.db.DecoratedKey decoratedKey
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0   15     1  decoratedKey  Lorg/apache/cassandra/db/DecoratedKey;
            0   15     2    indexStart  J
            0   15     4      indexEnd  J
            0   15     6       dataEnd  J
           11   13     8      boundary  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      decoratedKey  
      indexStart    
      indexEnd      
      dataEnd       

  private void setNextSamplePosition(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // long position
         0: .line 235
      StackMap locals:
      StackMap stack:
            lload 1 /* position */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.minIndexInterval:I
            i2l
            ladd
            lstore 1 /* position */
         1: .line 236
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexIntervalMatches:J
            dup2_x1
            lconst_1
            ladd
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.indexIntervalMatches:J
            lstore 3 /* test */
        start local 3 // long test
         2: .line 237
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.startPoints:[I
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummaryBuilder long long top int int int[]
      StackMap stack:
         3: aload 8
            iload 6
            iaload
            istore 5 /* start */
        start local 5 // int start
         4: .line 238
            lload 3 /* test */
            iload 5 /* start */
            i2l
            lsub
            ldc 128
            lrem
            lconst_0
            lcmp
            ifne 6
         5: .line 239
            goto 0
        end local 5 // int start
         6: .line 237
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
         8: .line 241
            aload 0 /* this */
            lload 1 /* position */
            putfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.nextSamplePosition:J
         9: .line 242
            return
        end local 3 // long test
        end local 1 // long position
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0   10     1  position  J
            2   10     3      test  J
            4    6     5     start  I
    MethodParameters:
          Name  Flags
      position  

  public void prepareToCommit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
         0: .line 250
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.trim:()V
         1: .line 251
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.trim:()V
         2: .line 252
            return
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;

  public org.apache.cassandra.io.sstable.IndexSummary build(org.apache.cassandra.dht.IPartitioner);
    descriptor: (Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/io/sstable/IndexSummary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // org.apache.cassandra.dht.IPartitioner partitioner
         0: .line 256
            aload 0 /* this */
            aload 1 /* partitioner */
            aconst_null
            invokevirtual org.apache.cassandra.io.sstable.IndexSummaryBuilder.build:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;)Lorg/apache/cassandra/io/sstable/IndexSummary;
            areturn
        end local 1 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0    1     1  partitioner  Lorg/apache/cassandra/dht/IPartitioner;
    MethodParameters:
             Name  Flags
      partitioner  

  public org.apache.cassandra.io.sstable.IndexSummary build(org.apache.cassandra.dht.IPartitioner, org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary);
    descriptor: (Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;)Lorg/apache/cassandra/io/sstable/IndexSummary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=7, args_size=3
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // org.apache.cassandra.dht.IPartitioner partitioner
        start local 2 // org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary boundary
         0: .line 263
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            lconst_0
            lcmp
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            ldc 4
            ldiv
            l2i
            istore 3 /* count */
        start local 3 // int count
         2: .line 266
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.length:()J
            lstore 4 /* entriesLength */
        start local 4 // long entriesLength
         3: .line 267
            aload 2 /* boundary */
            ifnull 6
         4: .line 269
            aload 2 /* boundary */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.summaryCount:I
            istore 3 /* count */
         5: .line 270
            aload 2 /* boundary */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary.entriesLength:J
            lstore 4 /* entriesLength */
         6: .line 273
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.keysWritten:J
            l2d
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.minIndexInterval:I
            i2d
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 6 /* sizeAtFullSampling */
        start local 6 // int sizeAtFullSampling
         7: .line 274
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 8
            iload 3 /* count */
            ifgt 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 275
      StackMap locals: int
      StackMap stack:
            new org.apache.cassandra.io.sstable.IndexSummary
            dup
            aload 1 /* partitioner */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.currentBuffer:()Lorg/apache/cassandra/io/util/SafeMemory;
            invokevirtual org.apache.cassandra.io.util.SafeMemory.sharedCopy:()Lorg/apache/cassandra/io/util/SafeMemory;
         9: .line 276
            iload 3 /* count */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.currentBuffer:()Lorg/apache/cassandra/io/util/SafeMemory;
            invokevirtual org.apache.cassandra.io.util.SafeMemory.sharedCopy:()Lorg/apache/cassandra/io/util/SafeMemory;
            lload 4 /* entriesLength */
        10: .line 277
            iload 6 /* sizeAtFullSampling */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.minIndexInterval:I
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.samplingLevel:I
        11: .line 275
            invokespecial org.apache.cassandra.io.sstable.IndexSummary.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/io/util/Memory;ILorg/apache/cassandra/io/util/Memory;JIII)V
            areturn
        end local 6 // int sizeAtFullSampling
        end local 4 // long entriesLength
        end local 3 // int count
        end local 2 // org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary boundary
        end local 1 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0   12     1         partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            0   12     2            boundary  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder$ReadableBoundary;
            2   12     3               count  I
            3   12     4       entriesLength  J
            7   12     6  sizeAtFullSampling  I
    MethodParameters:
             Name  Flags
      partitioner  
      boundary     

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
         0: .line 283
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.close:()V
         1: .line 284
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.close:()V
         2: .line 285
            return
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;

  public java.lang.Throwable close(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
        start local 1 // java.lang.Throwable accumulate
         0: .line 289
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.entries:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            aload 1 /* accumulate */
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.close:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 1 /* accumulate */
         1: .line 290
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.IndexSummaryBuilder.offsets:Lorg/apache/cassandra/io/util/SafeMemoryWriter;
            aload 1 /* accumulate */
            invokevirtual org.apache.cassandra.io.util.SafeMemoryWriter.close:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 1 /* accumulate */
         2: .line 291
            aload 1 /* accumulate */
            areturn
        end local 1 // java.lang.Throwable accumulate
        end local 0 // org.apache.cassandra.io.sstable.IndexSummaryBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/cassandra/io/sstable/IndexSummaryBuilder;
            0    3     1  accumulate  Ljava/lang/Throwable;
    MethodParameters:
            Name  Flags
      accumulate  

  static int entriesAtSamplingLevel(int, int);
    descriptor: (II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int samplingLevel
        start local 1 // int maxSummarySize
         0: .line 296
            iload 0 /* samplingLevel */
            iload 1 /* maxSummarySize */
            imul
            i2d
            ldc 128.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 1 // int maxSummarySize
        end local 0 // int samplingLevel
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0   samplingLevel  I
            0    1     1  maxSummarySize  I
    MethodParameters:
                Name  Flags
      samplingLevel   
      maxSummarySize  

  static int calculateSamplingLevel(int, int, long, int, int);
    descriptor: (IIJII)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // int currentSamplingLevel
        start local 1 // int currentNumEntries
        start local 2 // long targetNumEntries
        start local 4 // int minIndexInterval
        start local 5 // int maxIndexInterval
         0: .line 304
            iconst_1
            sipush 128
            iload 4 /* minIndexInterval */
            imul
            i2d
            iload 5 /* maxIndexInterval */
            i2d
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* effectiveMinSamplingLevel */
        start local 6 // int effectiveMinSamplingLevel
         1: .line 312
            lload 2 /* targetNumEntries */
            iload 0 /* currentSamplingLevel */
            i2l
            lmul
            l2i
            iload 1 /* currentNumEntries */
            idiv
            istore 7 /* newSamplingLevel */
        start local 7 // int newSamplingLevel
         2: .line 313
            sipush 128
            iload 6 /* effectiveMinSamplingLevel */
            iload 7 /* newSamplingLevel */
            invokestatic java.lang.Math.max:(II)I
            invokestatic java.lang.Math.min:(II)I
            ireturn
        end local 7 // int newSamplingLevel
        end local 6 // int effectiveMinSamplingLevel
        end local 5 // int maxIndexInterval
        end local 4 // int minIndexInterval
        end local 2 // long targetNumEntries
        end local 1 // int currentNumEntries
        end local 0 // int currentSamplingLevel
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    3     0       currentSamplingLevel  I
            0    3     1          currentNumEntries  I
            0    3     2           targetNumEntries  J
            0    3     4           minIndexInterval  I
            0    3     5           maxIndexInterval  I
            1    3     6  effectiveMinSamplingLevel  I
            2    3     7           newSamplingLevel  I
    MethodParameters:
                      Name  Flags
      currentSamplingLevel  
      currentNumEntries     
      targetNumEntries      
      minIndexInterval      
      maxIndexInterval      

  public static org.apache.cassandra.io.sstable.IndexSummary downsample(org.apache.cassandra.io.sstable.IndexSummary, int, int, org.apache.cassandra.dht.IPartitioner);
    descriptor: (Lorg/apache/cassandra/io/sstable/IndexSummary;IILorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/io/sstable/IndexSummary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=19, args_size=4
        start local 0 // org.apache.cassandra.io.sstable.IndexSummary existing
        start local 1 // int newSamplingLevel
        start local 2 // int minIndexInterval
        start local 3 // org.apache.cassandra.dht.IPartitioner partitioner
         0: .line 332
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getSamplingLevel:()I
            istore 4 /* currentSamplingLevel */
        start local 4 // int currentSamplingLevel
         1: .line 333
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 2
            iload 4 /* currentSamplingLevel */
            iload 1 /* newSamplingLevel */
            if_icmpgt 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 334
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 3
            iload 2 /* minIndexInterval */
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getMinIndexInterval:()I
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 337
      StackMap locals:
      StackMap stack:
            iload 4 /* currentSamplingLevel */
            iload 1 /* newSamplingLevel */
            invokestatic org.apache.cassandra.io.sstable.Downsampling.getStartPoints:(II)[I
            astore 5 /* startPoints */
        start local 5 // int[] startPoints
         4: .line 340
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.size:()I
            istore 6 /* newKeyCount */
        start local 6 // int newKeyCount
         5: .line 341
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getEntriesLength:()J
            lstore 7 /* newEntriesLength */
        start local 7 // long newEntriesLength
         6: .line 342
            aload 5 /* startPoints */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 16
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long top int int int[]
      StackMap stack:
         7: aload 12
            iload 10
            iaload
            istore 9 /* start */
        start local 9 // int start
         8: .line 344
            iload 9 /* start */
            istore 13 /* j */
        start local 13 // int j
         9: goto 14
        10: .line 346
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long int int int int[] int
      StackMap stack:
            iinc 6 /* newKeyCount */ -1
        11: .line 347
            aload 0 /* existing */
            iload 13 /* j */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getEndInSummary:(I)J
            aload 0 /* existing */
            iload 13 /* j */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getPositionInSummary:(I)I
            i2l
            lsub
            lstore 14 /* length */
        start local 14 // long length
        12: .line 348
            lload 7 /* newEntriesLength */
            lload 14 /* length */
            lsub
            lstore 7 /* newEntriesLength */
        end local 14 // long length
        13: .line 344
            iload 13 /* j */
            iload 4 /* currentSamplingLevel */
            iadd
            istore 13 /* j */
      StackMap locals:
      StackMap stack:
        14: iload 13 /* j */
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.size:()I
            if_icmplt 10
        end local 13 // int j
        end local 9 // int start
        15: .line 342
            iinc 10 1
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long top int int int[]
      StackMap stack:
        16: iload 10
            iload 11
            if_icmplt 7
        17: .line 352
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getEntries:()Lorg/apache/cassandra/io/util/Memory;
            astore 9 /* oldEntries */
        start local 9 // org.apache.cassandra.io.util.Memory oldEntries
        18: .line 353
            iload 6 /* newKeyCount */
            iconst_4
            imul
            i2l
            invokestatic org.apache.cassandra.io.util.Memory.allocate:(J)Lorg/apache/cassandra/io/util/Memory;
            astore 10 /* newOffsets */
        start local 10 // org.apache.cassandra.io.util.Memory newOffsets
        19: .line 354
            lload 7 /* newEntriesLength */
            invokestatic org.apache.cassandra.io.util.Memory.allocate:(J)Lorg/apache/cassandra/io/util/Memory;
            astore 11 /* newEntries */
        start local 11 // org.apache.cassandra.io.util.Memory newEntries
        20: .line 357
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        21: .line 358
            iconst_0
            istore 13 /* newEntriesOffset */
        start local 13 // int newEntriesOffset
        22: .line 360
            iconst_0
            istore 14 /* oldSummaryIndex */
        start local 14 // int oldSummaryIndex
        23: goto 37
        24: .line 364
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory int int int
      StackMap stack:
            aload 5 /* startPoints */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 29
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory int int int top int int int[]
      StackMap stack:
        25: aload 18
            iload 16
            iaload
            istore 15 /* start */
        start local 15 // int start
        26: .line 366
            iload 14 /* oldSummaryIndex */
            iload 15 /* start */
            isub
            iload 4 /* currentSamplingLevel */
            irem
            ifne 28
        27: .line 367
            goto 36
        end local 15 // int start
        28: .line 364
      StackMap locals:
      StackMap stack:
            iinc 16 1
      StackMap locals:
      StackMap stack:
        29: iload 16
            iload 17
            if_icmplt 25
        30: .line 371
            aload 10 /* newOffsets */
            iload 12 /* i */
            iconst_4
            imul
            i2l
            iload 13 /* newEntriesOffset */
            invokevirtual org.apache.cassandra.io.util.Memory.setInt:(JI)V
        31: .line 372
            iinc 12 /* i */ 1
        32: .line 373
            aload 0 /* existing */
            iload 14 /* oldSummaryIndex */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getPositionInSummary:(I)I
            i2l
            lstore 15 /* start */
        start local 15 // long start
        33: .line 374
            aload 0 /* existing */
            iload 14 /* oldSummaryIndex */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getEndInSummary:(I)J
            lload 15 /* start */
            lsub
            lstore 17 /* length */
        start local 17 // long length
        34: .line 375
            aload 11 /* newEntries */
            iload 13 /* newEntriesOffset */
            i2l
            aload 9 /* oldEntries */
            lload 15 /* start */
            lload 17 /* length */
            invokevirtual org.apache.cassandra.io.util.Memory.put:(JLorg/apache/cassandra/io/util/Memory;JJ)V
        35: .line 376
            iload 13 /* newEntriesOffset */
            i2l
            lload 17 /* length */
            ladd
            l2i
            istore 13 /* newEntriesOffset */
        end local 17 // long length
        end local 15 // long start
        36: .line 360
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary int int org.apache.cassandra.dht.IPartitioner int int[] int long org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory int int int
      StackMap stack:
            iinc 14 /* oldSummaryIndex */ 1
      StackMap locals:
      StackMap stack:
        37: iload 14 /* oldSummaryIndex */
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.size:()I
            if_icmplt 24
        end local 14 // int oldSummaryIndex
        38: .line 378
            getstatic org.apache.cassandra.io.sstable.IndexSummaryBuilder.$assertionsDisabled:Z
            ifne 39
            iload 13 /* newEntriesOffset */
            i2l
            lload 7 /* newEntriesLength */
            lcmp
            ifeq 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        39: .line 379
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.io.sstable.IndexSummary
            dup
            aload 3 /* partitioner */
            aload 10 /* newOffsets */
            iload 6 /* newKeyCount */
            aload 11 /* newEntries */
            lload 7 /* newEntriesLength */
        40: .line 380
            aload 0 /* existing */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getMaxNumberOfEntries:()I
            iload 2 /* minIndexInterval */
            iload 1 /* newSamplingLevel */
        41: .line 379
            invokespecial org.apache.cassandra.io.sstable.IndexSummary.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/io/util/Memory;ILorg/apache/cassandra/io/util/Memory;JIII)V
            areturn
        end local 13 // int newEntriesOffset
        end local 12 // int i
        end local 11 // org.apache.cassandra.io.util.Memory newEntries
        end local 10 // org.apache.cassandra.io.util.Memory newOffsets
        end local 9 // org.apache.cassandra.io.util.Memory oldEntries
        end local 7 // long newEntriesLength
        end local 6 // int newKeyCount
        end local 5 // int[] startPoints
        end local 4 // int currentSamplingLevel
        end local 3 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 2 // int minIndexInterval
        end local 1 // int newSamplingLevel
        end local 0 // org.apache.cassandra.io.sstable.IndexSummary existing
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   42     0              existing  Lorg/apache/cassandra/io/sstable/IndexSummary;
            0   42     1      newSamplingLevel  I
            0   42     2      minIndexInterval  I
            0   42     3           partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            1   42     4  currentSamplingLevel  I
            4   42     5           startPoints  [I
            5   42     6           newKeyCount  I
            6   42     7      newEntriesLength  J
            8   15     9                 start  I
            9   15    13                     j  I
           12   13    14                length  J
           18   42     9            oldEntries  Lorg/apache/cassandra/io/util/Memory;
           19   42    10            newOffsets  Lorg/apache/cassandra/io/util/Memory;
           20   42    11            newEntries  Lorg/apache/cassandra/io/util/Memory;
           21   42    12                     i  I
           22   42    13      newEntriesOffset  I
           23   38    14       oldSummaryIndex  I
           26   28    15                 start  I
           33   36    15                 start  J
           34   36    17                length  J
    MethodParameters:
                  Name  Flags
      existing          
      newSamplingLevel  
      minIndexInterval  
      partitioner       
}
SourceFile: "IndexSummaryBuilder.java"
NestMembers:
  org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public ReadableBoundary = org.apache.cassandra.io.sstable.IndexSummaryBuilder$ReadableBoundary of org.apache.cassandra.io.sstable.IndexSummaryBuilder