class org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer extends org.apache.lucene.search.Scorer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer
  super_class: org.apache.lucene.search.Scorer
{
  private final org.apache.lucene.search.Scorer childScorer;
    descriptor: Lorg/apache/lucene/search/Scorer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.util.BitSet parentBits;
    descriptor: Lorg/apache/lucene/util/BitSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.join.ScoreMode scoreMode;
    descriptor: Lorg/apache/lucene/search/join/ScoreMode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.DocIdSetIterator childApproximation;
    descriptor: Lorg/apache/lucene/search/DocIdSetIterator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.TwoPhaseIterator childTwoPhase;
    descriptor: Lorg/apache/lucene/search/TwoPhaseIterator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation parentApproximation;
    descriptor: Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentTwoPhase parentTwoPhase;
    descriptor: Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private float score;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$apache$lucene$search$join$ScoreMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(org.apache.lucene.search.Weight, org.apache.lucene.search.Scorer, org.apache.lucene.util.BitSet, org.apache.lucene.search.join.ScoreMode);
    descriptor: (Lorg/apache/lucene/search/Weight;Lorg/apache/lucene/search/Scorer;Lorg/apache/lucene/util/BitSet;Lorg/apache/lucene/search/join/ScoreMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
        start local 1 // org.apache.lucene.search.Weight weight
        start local 2 // org.apache.lucene.search.Scorer childScorer
        start local 3 // org.apache.lucene.util.BitSet parentBits
        start local 4 // org.apache.lucene.search.join.ScoreMode scoreMode
         0: .line 287
            aload 0 /* this */
            aload 1 /* weight */
            invokespecial org.apache.lucene.search.Scorer.<init>:(Lorg/apache/lucene/search/Weight;)V
         1: .line 289
            aload 0 /* this */
            aload 3 /* parentBits */
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentBits:Lorg/apache/lucene/util/BitSet;
         2: .line 290
            aload 0 /* this */
            aload 2 /* childScorer */
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
         3: .line 291
            aload 0 /* this */
            aload 4 /* scoreMode */
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
         4: .line 292
            aload 0 /* this */
            aload 2 /* childScorer */
            invokevirtual org.apache.lucene.search.Scorer.twoPhaseIterator:()Lorg/apache/lucene/search/TwoPhaseIterator;
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
         5: .line 293
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            ifnonnull 10
         6: .line 294
            aload 0 /* this */
            aload 2 /* childScorer */
            invokevirtual org.apache.lucene.search.Scorer.iterator:()Lorg/apache/lucene/search/DocIdSetIterator;
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
         7: .line 295
            aload 0 /* this */
            new org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation
            dup
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
            aload 3 /* parentBits */
            invokespecial org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.<init>:(Lorg/apache/lucene/search/DocIdSetIterator;Lorg/apache/lucene/util/BitSet;)V
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
         8: .line 296
            aload 0 /* this */
            aconst_null
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentTwoPhase:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
         9: .line 297
            goto 13
        10: .line 298
      StackMap locals: org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer org.apache.lucene.search.Weight org.apache.lucene.search.Scorer org.apache.lucene.util.BitSet org.apache.lucene.search.join.ScoreMode
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            invokevirtual org.apache.lucene.search.TwoPhaseIterator.approximation:()Lorg/apache/lucene/search/DocIdSetIterator;
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
        11: .line 299
            aload 0 /* this */
            new org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation
            dup
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            invokevirtual org.apache.lucene.search.TwoPhaseIterator.approximation:()Lorg/apache/lucene/search/DocIdSetIterator;
            aload 3 /* parentBits */
            invokespecial org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.<init>:(Lorg/apache/lucene/search/DocIdSetIterator;Lorg/apache/lucene/util/BitSet;)V
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
        12: .line 300
            aload 0 /* this */
            new org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentTwoPhase
            dup
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            invokespecial org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentTwoPhase.<init>:(Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;Lorg/apache/lucene/search/TwoPhaseIterator;)V
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentTwoPhase:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
        13: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.apache.lucene.search.join.ScoreMode scoreMode
        end local 3 // org.apache.lucene.util.BitSet parentBits
        end local 2 // org.apache.lucene.search.Scorer childScorer
        end local 1 // org.apache.lucene.search.Weight weight
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
            0   14     1       weight  Lorg/apache/lucene/search/Weight;
            0   14     2  childScorer  Lorg/apache/lucene/search/Scorer;
            0   14     3   parentBits  Lorg/apache/lucene/util/BitSet;
            0   14     4    scoreMode  Lorg/apache/lucene/search/join/ScoreMode;
    MethodParameters:
             Name  Flags
      weight       
      childScorer  
      parentBits   
      scoreMode    

  public java.util.Collection<org.apache.lucene.search.Scorable$ChildScorable> getChildren();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 306
            new org.apache.lucene.search.Scorable$ChildScorable
            dup
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            ldc "BLOCK_JOIN"
            invokespecial org.apache.lucene.search.Scorable$ChildScorable.<init>:(Lorg/apache/lucene/search/Scorable;Ljava/lang/String;)V
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            areturn
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
    Signature: ()Ljava/util/Collection<Lorg/apache/lucene/search/Scorable$ChildScorable;>;

  public org.apache.lucene.search.DocIdSetIterator iterator();
    descriptor: ()Lorg/apache/lucene/search/DocIdSetIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 311
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentTwoPhase:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
            ifnonnull 2
         1: .line 313
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            areturn
         2: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentTwoPhase:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
            invokestatic org.apache.lucene.search.TwoPhaseIterator.asDocIdSetIterator:(Lorg/apache/lucene/search/TwoPhaseIterator;)Lorg/apache/lucene/search/DocIdSetIterator;
            areturn
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;

  public org.apache.lucene.search.TwoPhaseIterator twoPhaseIterator();
    descriptor: ()Lorg/apache/lucene/search/TwoPhaseIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 321
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentTwoPhase:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentTwoPhase;
            areturn
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;

  public int docID();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 326
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            ireturn
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;

  public float score();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 331
            aload 0 /* this */
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.setScoreAndFreq:()V
         1: .line 332
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.score:F
            freturn
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
    Exceptions:
      throws java.io.IOException

  public float getMaxScore(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
        start local 1 // int upTo
         0: .line 337
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            getstatic org.apache.lucene.search.join.ScoreMode.None:Lorg/apache/lucene/search/join/ScoreMode;
            if_acmpne 2
         1: .line 338
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            iload 1 /* upTo */
            invokevirtual org.apache.lucene.search.Scorer.getMaxScore:(I)F
            freturn
         2: .line 340
      StackMap locals:
      StackMap stack:
            ldc Infinity
            freturn
        end local 1 // int upTo
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
            0    3     1  upTo  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      upTo  

  public void setMinCompetitiveScore(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
        start local 1 // float minScore
         0: .line 345
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            getstatic org.apache.lucene.search.join.ScoreMode.None:Lorg/apache/lucene/search/join/ScoreMode;
            if_acmpne 2
         1: .line 346
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            fload 1 /* minScore */
            invokevirtual org.apache.lucene.search.Scorer.setMinCompetitiveScore:(F)V
         2: .line 348
      StackMap locals:
      StackMap stack:
            return
        end local 1 // float minScore
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
            0    3     1  minScore  F
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      minScore  

  private void setScoreAndFreq();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
         0: .line 351
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
            invokevirtual org.apache.lucene.search.DocIdSetIterator.docID:()I
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            if_icmplt 2
         1: .line 352
            return
         2: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            getstatic org.apache.lucene.search.join.ScoreMode.None:Lorg/apache/lucene/search/join/ScoreMode;
            if_acmpne 3
            fconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            invokevirtual org.apache.lucene.search.Scorer.score:()F
      StackMap locals:
      StackMap stack: float
         4: f2d
            dstore 1 /* score */
        start local 1 // double score
         5: .line 355
            iconst_1
            istore 3 /* freq */
        start local 3 // int freq
         6: .line 356
            goto 21
         7: .line 357
      StackMap locals: double int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            ifnull 8
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            invokevirtual org.apache.lucene.search.TwoPhaseIterator.matches:()Z
            ifeq 21
         8: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            getstatic org.apache.lucene.search.join.ScoreMode.None:Lorg/apache/lucene/search/join/ScoreMode;
            if_acmpne 9
            fconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            invokevirtual org.apache.lucene.search.Scorer.score:()F
      StackMap locals:
      StackMap stack: float
        10: fstore 4 /* childScore */
        start local 4 // float childScore
        11: .line 359
            iinc 3 /* freq */ 1
        12: .line 360
            invokestatic org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.$SWITCH_TABLE$org$apache$lucene$search$join$ScoreMode:()[I
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 19
                    2: 13
                    3: 17
                    4: 13
                    5: 15
              default: 20
          }
        13: .line 363
      StackMap locals: float
      StackMap stack:
            dload 1 /* score */
            fload 4 /* childScore */
            f2d
            dadd
            dstore 1 /* score */
        14: .line 364
            goto 21
        15: .line 366
      StackMap locals:
      StackMap stack:
            dload 1 /* score */
            fload 4 /* childScore */
            f2d
            invokestatic java.lang.Math.min:(DD)D
            dstore 1 /* score */
        16: .line 367
            goto 21
        17: .line 369
      StackMap locals:
      StackMap stack:
            dload 1 /* score */
            fload 4 /* childScore */
            f2d
            invokestatic java.lang.Math.max:(DD)D
            dstore 1 /* score */
        18: .line 370
            goto 21
        19: .line 372
      StackMap locals:
      StackMap stack:
            goto 21
        20: .line 374
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // float childScore
        21: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
            invokevirtual org.apache.lucene.search.DocIdSetIterator.nextDoc:()I
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            if_icmplt 7
        22: .line 378
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childApproximation:Lorg/apache/lucene/search/DocIdSetIterator;
            invokevirtual org.apache.lucene.search.DocIdSetIterator.docID:()I
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            if_icmpne 26
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            ifnull 23
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childTwoPhase:Lorg/apache/lucene/search/TwoPhaseIterator;
            invokevirtual org.apache.lucene.search.TwoPhaseIterator.matches:()Z
            ifeq 26
        23: .line 379
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Child query must not match same docs with parent filter. Combine them as must clauses (+) to find a problem doc. docId="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 381
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.childScorer:Lorg/apache/lucene/search/Scorer;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 379
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.scoreMode:Lorg/apache/lucene/search/join/ScoreMode;
            getstatic org.apache.lucene.search.join.ScoreMode.Avg:Lorg/apache/lucene/search/join/ScoreMode;
            if_acmpne 28
        27: .line 384
            dload 1 /* score */
            iload 3 /* freq */
            i2d
            ddiv
            dstore 1 /* score */
        28: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dload 1 /* score */
            d2f
            putfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.score:F
        29: .line 387
            return
        end local 3 // int freq
        end local 1 // double score
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
            5   30     1       score  D
            6   30     3        freq  I
           11   21     4  childScore  F
    Exceptions:
      throws java.io.IOException

  public org.apache.lucene.search.Explanation explain(org.apache.lucene.index.LeafReaderContext, org.apache.lucene.search.Weight);
    descriptor: (Lorg/apache/lucene/index/LeafReaderContext;Lorg/apache/lucene/search/Weight;)Lorg/apache/lucene/search/Explanation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
        start local 1 // org.apache.lucene.index.LeafReaderContext context
        start local 2 // org.apache.lucene.search.Weight childWeight
         0: .line 390
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentBits:Lorg/apache/lucene/util/BitSet;
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            iconst_1
            isub
            invokevirtual org.apache.lucene.util.BitSet.prevSetBit:(I)I
            istore 3 /* prevParentDoc */
        start local 3 // int prevParentDoc
         1: .line 391
            aload 1 /* context */
            getfield org.apache.lucene.index.LeafReaderContext.docBase:I
            iload 3 /* prevParentDoc */
            iadd
            iconst_1
            iadd
            istore 4 /* start */
        start local 4 // int start
         2: .line 392
            aload 1 /* context */
            getfield org.apache.lucene.index.LeafReaderContext.docBase:I
            aload 0 /* this */
            getfield org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.parentApproximation:Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$ParentApproximation;
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation.docID:()I
            iadd
            iconst_1
            isub
            istore 5 /* end */
        start local 5 // int end
         3: .line 394
            aconst_null
            astore 6 /* bestChild */
        start local 6 // org.apache.lucene.search.Explanation bestChild
         4: .line 395
            iconst_0
            istore 7 /* matches */
        start local 7 // int matches
         5: .line 396
            iload 4 /* start */
            istore 8 /* childDoc */
        start local 8 // int childDoc
         6: goto 13
         7: .line 397
      StackMap locals: org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer org.apache.lucene.index.LeafReaderContext org.apache.lucene.search.Weight int int int org.apache.lucene.search.Explanation int int
      StackMap stack:
            aload 2 /* childWeight */
            aload 1 /* context */
            iload 8 /* childDoc */
            aload 1 /* context */
            getfield org.apache.lucene.index.LeafReaderContext.docBase:I
            isub
            invokevirtual org.apache.lucene.search.Weight.explain:(Lorg/apache/lucene/index/LeafReaderContext;I)Lorg/apache/lucene/search/Explanation;
            astore 9 /* child */
        start local 9 // org.apache.lucene.search.Explanation child
         8: .line 398
            aload 9 /* child */
            invokevirtual org.apache.lucene.search.Explanation.isMatch:()Z
            ifeq 12
         9: .line 399
            iinc 7 /* matches */ 1
        10: .line 400
            aload 6 /* bestChild */
            ifnull 11
            aload 9 /* child */
            invokevirtual org.apache.lucene.search.Explanation.getValue:()Ljava/lang/Number;
            invokevirtual java.lang.Number.floatValue:()F
            aload 6 /* bestChild */
            invokevirtual org.apache.lucene.search.Explanation.getValue:()Ljava/lang/Number;
            invokevirtual java.lang.Number.floatValue:()F
            fcmpl
            ifle 12
        11: .line 401
      StackMap locals: org.apache.lucene.search.Explanation
      StackMap stack:
            aload 9 /* child */
            astore 6 /* bestChild */
        end local 9 // org.apache.lucene.search.Explanation child
        12: .line 396
      StackMap locals:
      StackMap stack:
            iinc 8 /* childDoc */ 1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* childDoc */
            iload 5 /* end */
            if_icmple 7
        end local 8 // int childDoc
        14: .line 406
            aload 0 /* this */
            invokevirtual org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.score:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
        15: .line 407
            ldc "Score based on %d child docs in range from %d to %d, best match:"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 7 /* matches */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 4 /* start */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 5 /* end */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        16: .line 406
            invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray org.apache.lucene.search.Explanation
            dup
            iconst_0
        17: .line 407
            aload 6 /* bestChild */
            aastore
        18: .line 406
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            areturn
        end local 7 // int matches
        end local 6 // org.apache.lucene.search.Explanation bestChild
        end local 5 // int end
        end local 4 // int start
        end local 3 // int prevParentDoc
        end local 2 // org.apache.lucene.search.Weight childWeight
        end local 1 // org.apache.lucene.index.LeafReaderContext context
        end local 0 // org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/apache/lucene/search/join/ToParentBlockJoinQuery$BlockJoinScorer;
            0   19     1        context  Lorg/apache/lucene/index/LeafReaderContext;
            0   19     2    childWeight  Lorg/apache/lucene/search/Weight;
            1   19     3  prevParentDoc  I
            2   19     4          start  I
            3   19     5            end  I
            4   19     6      bestChild  Lorg/apache/lucene/search/Explanation;
            5   19     7        matches  I
            6   14     8       childDoc  I
            8   12     9          child  Lorg/apache/lucene/search/Explanation;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      context      
      childWeight  

  static int[] $SWITCH_TABLE$org$apache$lucene$search$join$ScoreMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 276
            getstatic org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.$SWITCH_TABLE$org$apache$lucene$search$join$ScoreMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.lucene.search.join.ScoreMode.values:()[Lorg/apache/lucene/search/join/ScoreMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.lucene.search.join.ScoreMode.Avg:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.lucene.search.join.ScoreMode.Max:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.lucene.search.join.ScoreMode.Min:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.lucene.search.join.ScoreMode.None:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.lucene.search.join.ScoreMode.Total:Lorg/apache/lucene/search/join/ScoreMode;
            invokevirtual org.apache.lucene.search.join.ScoreMode.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.$SWITCH_TABLE$org$apache$lucene$search$join$ScoreMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "ToParentBlockJoinQuery.java"
NestHost: org.apache.lucene.search.join.ToParentBlockJoinQuery
InnerClasses:
  public ChildScorable = org.apache.lucene.search.Scorable$ChildScorable of org.apache.lucene.search.Scorable
  BlockJoinScorer = org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer of org.apache.lucene.search.join.ToParentBlockJoinQuery
  private ParentApproximation = org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentApproximation of org.apache.lucene.search.join.ToParentBlockJoinQuery
  private ParentTwoPhase = org.apache.lucene.search.join.ToParentBlockJoinQuery$ParentTwoPhase of org.apache.lucene.search.join.ToParentBlockJoinQuery