class org.apache.cassandra.utils.IntervalTree$IntervalNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.utils.IntervalTree$IntervalNode
  super_class: java.lang.Object
{
  final C center;
    descriptor: Ljava/lang/Comparable;
    flags: (0x0010) ACC_FINAL
    Signature: TC;

  final C low;
    descriptor: Ljava/lang/Comparable;
    flags: (0x0010) ACC_FINAL
    Signature: TC;

  final C high;
    descriptor: Ljava/lang/Comparable;
    flags: (0x0010) ACC_FINAL
    Signature: TC;

  final java.util.List<I> intersectsLeft;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<TI;>;

  final java.util.List<I> intersectsRight;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<TI;>;

  final org.apache.cassandra.utils.IntervalTree<C, D, I>.IntervalNode left;
    descriptor: Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
    flags: (0x0010) ACC_FINAL
    Signature: Lorg/apache/cassandra/utils/IntervalTree<TC;TD;TI;>.IntervalNode;

  final org.apache.cassandra.utils.IntervalTree<C, D, I>.IntervalNode right;
    descriptor: Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
    flags: (0x0010) ACC_FINAL
    Signature: Lorg/apache/cassandra/utils/IntervalTree<TC;TD;TI;>.IntervalNode;

  final org.apache.cassandra.utils.IntervalTree this$0;
    descriptor: Lorg/apache/cassandra/utils/IntervalTree;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 146
            ldc Lorg/apache/cassandra/utils/IntervalTree;
            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.utils.IntervalTree$IntervalNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.Collection<I>);
    descriptor: (Lorg/apache/cassandra/utils/IntervalTree;Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.apache.cassandra.utils.IntervalTree$IntervalNode this
        start local 2 // java.util.Collection toBisect
         0: .line 159
            aload 0 /* this */
            aload 1
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.this$0:Lorg/apache/cassandra/utils/IntervalTree;
         1: .line 158
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 160
            getstatic org.apache.cassandra.utils.IntervalTree$IntervalNode.$assertionsDisabled:Z
            ifne 3
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 161
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection
      StackMap stack:
            getstatic org.apache.cassandra.utils.IntervalTree.logger:Lorg/slf4j/Logger;
            ldc "Creating IntervalNode from {}"
            aload 2 /* toBisect */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 165
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpne 15
         5: .line 167
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            astore 3 /* interval */
        start local 3 // org.apache.cassandra.utils.Interval interval
         6: .line 168
            aload 0 /* this */
            aload 3 /* interval */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.low:Ljava/lang/Comparable;
         7: .line 169
            aload 0 /* this */
            aload 3 /* interval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
         8: .line 170
            aload 0 /* this */
            aload 3 /* interval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.high:Ljava/lang/Comparable;
         9: .line 171
            aload 3 /* interval */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* l */
        start local 4 // java.util.List l
        10: .line 172
            aload 0 /* this */
            aload 4 /* l */
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsLeft:Ljava/util/List;
        11: .line 173
            aload 0 /* this */
            aload 4 /* l */
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
        12: .line 174
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
        13: .line 175
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
        end local 4 // java.util.List l
        end local 3 // org.apache.cassandra.utils.Interval interval
        14: .line 176
            goto 50
        15: .line 180
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.size:()I
            iconst_2
            imul
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* allEndpoints */
        start local 3 // java.util.List allEndpoints
        16: .line 181
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List top java.util.Iterator
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            astore 4 /* interval */
        start local 4 // org.apache.cassandra.utils.Interval interval
        18: .line 183
            aload 3 /* allEndpoints */
            aload 4 /* interval */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            checkcast java.lang.Comparable
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 184
            aload 3 /* allEndpoints */
            aload 4 /* interval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            checkcast java.lang.Comparable
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.cassandra.utils.Interval interval
        20: .line 181
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 187
            aload 3 /* allEndpoints */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        22: .line 189
            aload 0 /* this */
            aload 3 /* allEndpoints */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.low:Ljava/lang/Comparable;
        23: .line 190
            aload 0 /* this */
            aload 3 /* allEndpoints */
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.size:()I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
        24: .line 191
            aload 0 /* this */
            aload 3 /* allEndpoints */
            aload 3 /* allEndpoints */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Comparable
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.high:Ljava/lang/Comparable;
        25: .line 194
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* intersects */
        start local 4 // java.util.List intersects
        26: .line 195
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* leftSegment */
        start local 5 // java.util.List leftSegment
        27: .line 196
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* rightSegment */
        start local 6 // java.util.List rightSegment
        28: .line 198
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 35
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        29: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            astore 7 /* candidate */
        start local 7 // org.apache.cassandra.utils.Interval candidate
        30: .line 200
            aload 7 /* candidate */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            checkcast java.lang.Comparable
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifge 32
        31: .line 201
            aload 5 /* leftSegment */
            aload 7 /* candidate */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
            goto 35
        32: .line 202
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List org.apache.cassandra.utils.Interval java.util.Iterator
      StackMap stack:
            aload 7 /* candidate */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            checkcast java.lang.Comparable
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifle 34
        33: .line 203
            aload 6 /* rightSegment */
            aload 7 /* candidate */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
            goto 35
        34: .line 205
      StackMap locals:
      StackMap stack:
            aload 4 /* intersects */
            aload 7 /* candidate */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.cassandra.utils.Interval candidate
        35: .line 198
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        36: .line 208
            aload 0 /* this */
            invokestatic org.apache.cassandra.utils.Interval.minOrdering:()Lorg/apache/cassandra/utils/AsymmetricOrdering;
            aload 4 /* intersects */
            invokevirtual org.apache.cassandra.utils.AsymmetricOrdering.sortedCopy:(Ljava/lang/Iterable;)Ljava/util/List;
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsLeft:Ljava/util/List;
        37: .line 209
            aload 0 /* this */
            invokestatic org.apache.cassandra.utils.Interval.maxOrdering:()Lorg/apache/cassandra/utils/AsymmetricOrdering;
            aload 4 /* intersects */
            invokevirtual org.apache.cassandra.utils.AsymmetricOrdering.sortedCopy:(Ljava/lang/Iterable;)Ljava/util/List;
            putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
        38: .line 210
            aload 0 /* this */
            aload 5 /* leftSegment */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 39
            aconst_null
            goto 40
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List
      StackMap stack: org.apache.cassandra.utils.IntervalTree$IntervalNode
        39: new org.apache.cassandra.utils.IntervalTree$IntervalNode
            dup
            aload 1
            aload 5 /* leftSegment */
            invokespecial org.apache.cassandra.utils.IntervalTree$IntervalNode.<init>:(Lorg/apache/cassandra/utils/IntervalTree;Ljava/util/Collection;)V
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List
      StackMap stack: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree$IntervalNode
        40: putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
        41: .line 211
            aload 0 /* this */
            aload 6 /* rightSegment */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 42
            aconst_null
            goto 43
      StackMap locals:
      StackMap stack: org.apache.cassandra.utils.IntervalTree$IntervalNode
        42: new org.apache.cassandra.utils.IntervalTree$IntervalNode
            dup
            aload 1
            aload 6 /* rightSegment */
            invokespecial org.apache.cassandra.utils.IntervalTree$IntervalNode.<init>:(Lorg/apache/cassandra/utils/IntervalTree;Ljava/util/Collection;)V
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection java.util.List java.util.List java.util.List java.util.List
      StackMap stack: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree$IntervalNode
        43: putfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
        44: .line 213
            getstatic org.apache.cassandra.utils.IntervalTree$IntervalNode.$assertionsDisabled:Z
            ifne 50
            aload 4 /* intersects */
            invokeinterface java.util.List.size:()I
            aload 5 /* leftSegment */
            invokeinterface java.util.List.size:()I
            iadd
            aload 6 /* rightSegment */
            invokeinterface java.util.List.size:()I
            iadd
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.size:()I
            if_icmpeq 50
            new java.lang.AssertionError
            dup
        45: .line 214
            new java.lang.StringBuilder
            dup
            ldc "intersects ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* intersects */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        46: .line 215
            ldc ") + leftSegment ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* leftSegment */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .line 216
            ldc ") + rightSegment ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* rightSegment */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 217
            ldc ") != toBisect ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* toBisect */
            invokeinterface java.util.Collection.size:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 214
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 6 // java.util.List rightSegment
        end local 5 // java.util.List leftSegment
        end local 4 // java.util.List intersects
        end local 3 // java.util.List allEndpoints
        50: .line 219
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.IntervalTree java.util.Collection
      StackMap stack:
            return
        end local 2 // java.util.Collection toBisect
        end local 0 // org.apache.cassandra.utils.IntervalTree$IntervalNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   51     0          this  Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            0   51     2      toBisect  Ljava/util/Collection<TI;>;
            6   14     3      interval  TI;
           10   14     4             l  Ljava/util/List<TI;>;
           16   50     3  allEndpoints  Ljava/util/List<TC;>;
           18   20     4      interval  TI;
           26   50     4    intersects  Ljava/util/List<TI;>;
           27   50     5   leftSegment  Ljava/util/List<TI;>;
           28   50     6  rightSegment  Ljava/util/List<TI;>;
           30   35     7     candidate  TI;
    Signature: (Ljava/util/Collection<TI;>;)V
    MethodParameters:
          Name  Flags
      this$0    final
      toBisect  

  void searchInternal(org.apache.cassandra.utils.Interval<C, D>, java.util.List<D>);
    descriptor: (Lorg/apache/cassandra/utils/Interval;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.cassandra.utils.IntervalTree$IntervalNode this
        start local 1 // org.apache.cassandra.utils.Interval searchInterval
        start local 2 // java.util.List results
         0: .line 223
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifge 9
         1: .line 225
            invokestatic org.apache.cassandra.utils.Interval.maxOrdering:()Lorg/apache/cassandra/utils/AsymmetricOrdering;
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            checkcast java.lang.Comparable
            getstatic org.apache.cassandra.utils.AsymmetricOrdering$Op.CEIL:Lorg/apache/cassandra/utils/AsymmetricOrdering$Op;
            invokevirtual org.apache.cassandra.utils.AsymmetricOrdering.binarySearchAsymmetric:(Ljava/util/List;Ljava/lang/Object;Lorg/apache/cassandra/utils/AsymmetricOrdering$Op;)I
            istore 3 /* i */
        start local 3 // int i
         2: .line 226
            iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpne 5
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.high:Ljava/lang/Comparable;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.min:Ljava/lang/Object;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifge 5
         3: .line 227
            return
         4: .line 230
      StackMap locals: int
      StackMap stack:
            aload 2 /* results */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
            iload 3 /* i */
            iinc 3 /* i */ 1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            getfield org.apache.cassandra.utils.Interval.data:Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 229
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsRight:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 4
         6: .line 232
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            ifnull 29
         7: .line 233
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            aload 1 /* searchInterval */
            aload 2 /* results */
            invokevirtual org.apache.cassandra.utils.IntervalTree$IntervalNode.searchInternal:(Lorg/apache/cassandra/utils/Interval;Ljava/util/List;)V
        end local 3 // int i
         8: .line 234
            goto 29
         9: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.center:Ljava/lang/Comparable;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifle 21
        10: .line 237
            invokestatic org.apache.cassandra.utils.Interval.minOrdering:()Lorg/apache/cassandra/utils/AsymmetricOrdering;
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsLeft:Ljava/util/List;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            checkcast java.lang.Comparable
            getstatic org.apache.cassandra.utils.AsymmetricOrdering$Op.HIGHER:Lorg/apache/cassandra/utils/AsymmetricOrdering$Op;
            invokevirtual org.apache.cassandra.utils.AsymmetricOrdering.binarySearchAsymmetric:(Ljava/util/List;Ljava/lang/Object;Lorg/apache/cassandra/utils/AsymmetricOrdering$Op;)I
            istore 3 /* j */
        start local 3 // int j
        11: .line 238
            iload 3 /* j */
            ifne 13
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.low:Ljava/lang/Comparable;
            aload 1 /* searchInterval */
            getfield org.apache.cassandra.utils.Interval.max:Ljava/lang/Object;
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifle 13
        12: .line 239
            return
        13: .line 241
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        14: goto 17
        15: .line 242
      StackMap locals: int
      StackMap stack:
            aload 2 /* results */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsLeft:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            getfield org.apache.cassandra.utils.Interval.data:Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 241
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            iload 3 /* j */
            if_icmplt 15
        end local 4 // int i
        18: .line 244
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            ifnull 29
        19: .line 245
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            aload 1 /* searchInterval */
            aload 2 /* results */
            invokevirtual org.apache.cassandra.utils.IntervalTree$IntervalNode.searchInternal:(Lorg/apache/cassandra/utils/Interval;Ljava/util/List;)V
        end local 3 // int j
        20: .line 246
            goto 29
        21: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.intersectsLeft:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 24
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.Interval java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Interval
            astore 3 /* interval */
        start local 3 // org.apache.cassandra.utils.Interval interval
        23: .line 252
            aload 2 /* results */
            aload 3 /* interval */
            getfield org.apache.cassandra.utils.Interval.data:Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.cassandra.utils.Interval interval
        24: .line 251
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 254
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            ifnull 27
        26: .line 255
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.left:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            aload 1 /* searchInterval */
            aload 2 /* results */
            invokevirtual org.apache.cassandra.utils.IntervalTree$IntervalNode.searchInternal:(Lorg/apache/cassandra/utils/Interval;Ljava/util/List;)V
        27: .line 256
      StackMap locals: org.apache.cassandra.utils.IntervalTree$IntervalNode org.apache.cassandra.utils.Interval java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            ifnull 29
        28: .line 257
            aload 0 /* this */
            getfield org.apache.cassandra.utils.IntervalTree$IntervalNode.right:Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            aload 1 /* searchInterval */
            aload 2 /* results */
            invokevirtual org.apache.cassandra.utils.IntervalTree$IntervalNode.searchInternal:(Lorg/apache/cassandra/utils/Interval;Ljava/util/List;)V
        29: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.List results
        end local 1 // org.apache.cassandra.utils.Interval searchInterval
        end local 0 // org.apache.cassandra.utils.IntervalTree$IntervalNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0            this  Lorg/apache/cassandra/utils/IntervalTree$IntervalNode;
            0   30     1  searchInterval  Lorg/apache/cassandra/utils/Interval<TC;TD;>;
            0   30     2         results  Ljava/util/List<TD;>;
            2    8     3               i  I
           11   20     3               j  I
           14   18     4               i  I
           23   24     3        interval  Lorg/apache/cassandra/utils/Interval<TC;TD;>;
    Signature: (Lorg/apache/cassandra/utils/Interval<TC;TD;>;Ljava/util/List<TD;>;)V
    MethodParameters:
                Name  Flags
      searchInterval  
      results         
}
SourceFile: "IntervalTree.java"
NestHost: org.apache.cassandra.utils.IntervalTree
InnerClasses:
  public final Op = org.apache.cassandra.utils.AsymmetricOrdering$Op of org.apache.cassandra.utils.AsymmetricOrdering
  private IntervalNode = org.apache.cassandra.utils.IntervalTree$IntervalNode of org.apache.cassandra.utils.IntervalTree