final class java.util.ArraysParallelSortHelpers$FJObject$Sorter<T> extends java.util.concurrent.CountedCompleter<java.lang.Void>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.ArraysParallelSortHelpers$FJObject$Sorter
  super_class: java.util.concurrent.CountedCompleter
{
  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2446542900576103244

  final T[] a;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Signature: [TT;

  final T[] w;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Signature: [TT;

  final int base;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int size;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int wbase;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int gran;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  java.util.Comparator<? super T> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0000) 
    Signature: Ljava/util/Comparator<-TT;>;

  void <init>(java.util.concurrent.CountedCompleter<?>, T[], T[], int, int, int, int, java.util.Comparator<? super T>);
    descriptor: (Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=9, args_size=9
        start local 0 // java.util.ArraysParallelSortHelpers$FJObject$Sorter this
        start local 1 // java.util.concurrent.CountedCompleter par
        start local 2 // java.lang.Object[] a
        start local 3 // java.lang.Object[] w
        start local 4 // int base
        start local 5 // int size
        start local 6 // int wbase
        start local 7 // int gran
        start local 8 // java.util.Comparator comparator
         0: .line 121
            aload 0 /* this */
            aload 1 /* par */
            invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
         1: .line 122
            aload 0 /* this */
            aload 2 /* a */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.a:[Ljava/lang/Object;
            aload 0 /* this */
            aload 3 /* w */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.w:[Ljava/lang/Object;
            aload 0 /* this */
            iload 4 /* base */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.base:I
            aload 0 /* this */
            iload 5 /* size */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.size:I
         2: .line 123
            aload 0 /* this */
            iload 6 /* wbase */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.wbase:I
            aload 0 /* this */
            iload 7 /* gran */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.gran:I
         3: .line 124
            aload 0 /* this */
            aload 8 /* comparator */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.comparator:Ljava/util/Comparator;
         4: .line 125
            return
        end local 8 // java.util.Comparator comparator
        end local 7 // int gran
        end local 6 // int wbase
        end local 5 // int size
        end local 4 // int base
        end local 3 // java.lang.Object[] w
        end local 2 // java.lang.Object[] a
        end local 1 // java.util.concurrent.CountedCompleter par
        end local 0 // java.util.ArraysParallelSortHelpers$FJObject$Sorter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljava/util/ArraysParallelSortHelpers$FJObject$Sorter<TT;>;
            0    5     1         par  Ljava/util/concurrent/CountedCompleter<*>;
            0    5     2           a  [Ljava/lang/Object;
            0    5     3           w  [Ljava/lang/Object;
            0    5     4        base  I
            0    5     5        size  I
            0    5     6       wbase  I
            0    5     7        gran  I
            0    5     8  comparator  Ljava/util/Comparator<-TT;>;
    Signature: (Ljava/util/concurrent/CountedCompleter<*>;[TT;[TT;IIIILjava/util/Comparator<-TT;>;)V
    MethodParameters:
            Name  Flags
      par         
      a           
      w           
      base        
      size        
      wbase       
      gran        
      comparator  

  public final void compute();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=14, locals=15, args_size=1
        start local 0 // java.util.ArraysParallelSortHelpers$FJObject$Sorter this
         0: .line 127
            aload 0 /* this */
            astore 1 /* s */
        start local 1 // java.util.concurrent.CountedCompleter s
         1: .line 128
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.comparator:Ljava/util/Comparator;
            astore 2 /* c */
        start local 2 // java.util.Comparator c
         2: .line 129
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.a:[Ljava/lang/Object;
            astore 3 /* a */
        start local 3 // java.lang.Object[] a
         3: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.w:[Ljava/lang/Object;
            astore 4 /* w */
        start local 4 // java.lang.Object[] w
         4: .line 130
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.base:I
            istore 5 /* b */
        start local 5 // int b
         5: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.size:I
            istore 6 /* n */
        start local 6 // int n
         6: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.wbase:I
            istore 7 /* wb */
        start local 7 // int wb
         7: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Sorter.gran:I
            istore 8 /* g */
        start local 8 // int g
         8: .line 131
            goto 26
         9: .line 132
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Sorter java.util.concurrent.CountedCompleter java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int
      StackMap stack:
            iload 6 /* n */
            iconst_1
            iushr
            istore 9 /* h */
        start local 9 // int h
        10: iload 9 /* h */
            iconst_1
            iushr
            istore 10 /* q */
        start local 10 // int q
        11: iload 9 /* h */
            iload 10 /* q */
            iadd
            istore 11 /* u */
        start local 11 // int u
        12: .line 133
            new java.util.ArraysParallelSortHelpers$Relay
            dup
            new java.util.ArraysParallelSortHelpers$FJObject$Merger
            dup
            aload 1 /* s */
            aload 4 /* w */
            aload 3 /* a */
            iload 7 /* wb */
            iload 9 /* h */
        13: .line 134
            iload 7 /* wb */
            iload 9 /* h */
            iadd
            iload 6 /* n */
            iload 9 /* h */
            isub
            iload 5 /* b */
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Merger.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIIIILjava/util/Comparator;)V
        14: .line 133
            invokespecial java.util.ArraysParallelSortHelpers$Relay.<init>:(Ljava/util/concurrent/CountedCompleter;)V
            astore 12 /* fc */
        start local 12 // java.util.ArraysParallelSortHelpers$Relay fc
        15: .line 135
            new java.util.ArraysParallelSortHelpers$Relay
            dup
            new java.util.ArraysParallelSortHelpers$FJObject$Merger
            dup
            aload 12 /* fc */
            aload 3 /* a */
            aload 4 /* w */
            iload 5 /* b */
            iload 9 /* h */
            iadd
            iload 10 /* q */
        16: .line 136
            iload 5 /* b */
            iload 11 /* u */
            iadd
            iload 6 /* n */
            iload 11 /* u */
            isub
            iload 7 /* wb */
            iload 9 /* h */
            iadd
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Merger.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIIIILjava/util/Comparator;)V
        17: .line 135
            invokespecial java.util.ArraysParallelSortHelpers$Relay.<init>:(Ljava/util/concurrent/CountedCompleter;)V
            astore 13 /* rc */
        start local 13 // java.util.ArraysParallelSortHelpers$Relay rc
        18: .line 137
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
            aload 13 /* rc */
            aload 3 /* a */
            aload 4 /* w */
            iload 5 /* b */
            iload 11 /* u */
            iadd
            iload 6 /* n */
            iload 11 /* u */
            isub
            iload 7 /* wb */
            iload 11 /* u */
            iadd
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.fork:()Ljava/util/concurrent/ForkJoinTask;
            pop
        19: .line 138
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
            aload 13 /* rc */
            aload 3 /* a */
            aload 4 /* w */
            iload 5 /* b */
            iload 9 /* h */
            iadd
            iload 10 /* q */
            iload 7 /* wb */
            iload 9 /* h */
            iadd
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.fork:()Ljava/util/concurrent/ForkJoinTask;
            pop
        20: .line 139
            new java.util.ArraysParallelSortHelpers$Relay
            dup
            new java.util.ArraysParallelSortHelpers$FJObject$Merger
            dup
            aload 12 /* fc */
            aload 3 /* a */
            aload 4 /* w */
            iload 5 /* b */
            iload 10 /* q */
        21: .line 140
            iload 5 /* b */
            iload 10 /* q */
            iadd
            iload 9 /* h */
            iload 10 /* q */
            isub
            iload 7 /* wb */
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Merger.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIIIILjava/util/Comparator;)V
        22: .line 139
            invokespecial java.util.ArraysParallelSortHelpers$Relay.<init>:(Ljava/util/concurrent/CountedCompleter;)V
            astore 14 /* bc */
        start local 14 // java.util.ArraysParallelSortHelpers$Relay bc
        23: .line 141
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
            aload 14 /* bc */
            aload 3 /* a */
            aload 4 /* w */
            iload 5 /* b */
            iload 10 /* q */
            iadd
            iload 9 /* h */
            iload 10 /* q */
            isub
            iload 7 /* wb */
            iload 10 /* q */
            iadd
            iload 8 /* g */
            aload 2 /* c */
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.fork:()Ljava/util/concurrent/ForkJoinTask;
            pop
        24: .line 142
            new java.util.ArraysParallelSortHelpers$EmptyCompleter
            dup
            aload 14 /* bc */
            invokespecial java.util.ArraysParallelSortHelpers$EmptyCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
            astore 1 /* s */
        25: .line 143
            iload 10 /* q */
            istore 6 /* n */
        end local 14 // java.util.ArraysParallelSortHelpers$Relay bc
        end local 13 // java.util.ArraysParallelSortHelpers$Relay rc
        end local 12 // java.util.ArraysParallelSortHelpers$Relay fc
        end local 11 // int u
        end local 10 // int q
        end local 9 // int h
        26: .line 131
      StackMap locals:
      StackMap stack:
            iload 6 /* n */
            iload 8 /* g */
            if_icmpgt 9
        27: .line 145
            aload 3 /* a */
            iload 5 /* b */
            iload 5 /* b */
            iload 6 /* n */
            iadd
            aload 2 /* c */
            aload 4 /* w */
            iload 7 /* wb */
            iload 6 /* n */
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
        28: .line 146
            aload 1 /* s */
            invokevirtual java.util.concurrent.CountedCompleter.tryComplete:()V
        29: .line 147
            return
        end local 8 // int g
        end local 7 // int wb
        end local 6 // int n
        end local 5 // int b
        end local 4 // java.lang.Object[] w
        end local 3 // java.lang.Object[] a
        end local 2 // java.util.Comparator c
        end local 1 // java.util.concurrent.CountedCompleter s
        end local 0 // java.util.ArraysParallelSortHelpers$FJObject$Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   30     0  this  Ljava/util/ArraysParallelSortHelpers$FJObject$Sorter<TT;>;
            1   30     1     s  Ljava/util/concurrent/CountedCompleter<*>;
            2   30     2     c  Ljava/util/Comparator<-TT;>;
            3   30     3     a  [Ljava/lang/Object;
            4   30     4     w  [Ljava/lang/Object;
            5   30     5     b  I
            6   30     6     n  I
            7   30     7    wb  I
            8   30     8     g  I
           10   26     9     h  I
           11   26    10     q  I
           12   26    11     u  I
           15   26    12    fc  Ljava/util/ArraysParallelSortHelpers$Relay;
           18   26    13    rc  Ljava/util/ArraysParallelSortHelpers$Relay;
           23   26    14    bc  Ljava/util/ArraysParallelSortHelpers$Relay;
}
Signature: <T:Ljava/lang/Object;>Ljava/util/concurrent/CountedCompleter<Ljava/lang/Void;>;
SourceFile: "ArraysParallelSortHelpers.java"
NestHost: java.util.ArraysParallelSortHelpers
InnerClasses:
  final EmptyCompleter = java.util.ArraysParallelSortHelpers$EmptyCompleter of java.util.ArraysParallelSortHelpers
  final FJObject = java.util.ArraysParallelSortHelpers$FJObject of java.util.ArraysParallelSortHelpers
  final Merger = java.util.ArraysParallelSortHelpers$FJObject$Merger of java.util.ArraysParallelSortHelpers$FJObject
  final Sorter = java.util.ArraysParallelSortHelpers$FJObject$Sorter of java.util.ArraysParallelSortHelpers$FJObject
  final Relay = java.util.ArraysParallelSortHelpers$Relay of java.util.ArraysParallelSortHelpers