abstract class com.google.common.collect.MapMakerInternalMap$HashIterator<T> implements java.util.Iterator<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.collect.MapMakerInternalMap$HashIterator
  super_class: java.lang.Object
{
  int nextSegmentIndex;
    descriptor: I
    flags: (0x0000) 

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

  com.google.common.collect.MapMakerInternalMap$Segment<K, V, E, S> currentSegment;
    descriptor: Lcom/google/common/collect/MapMakerInternalMap$Segment;
    flags: (0x0000) 
    Signature: Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  java.util.concurrent.atomic.AtomicReferenceArray<E> currentTable;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceArray;
    flags: (0x0000) 
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  E nextEntry;
    descriptor: Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
    flags: (0x0000) 
    Signature: TE;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry nextExternal;
    descriptor: Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
    flags: (0x0000) 
    Signature: Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;
    RuntimeVisibleTypeAnnotations: 
      FIELD, location=[INNER_TYPE]
        org.checkerframework.checker.nullness.qual.Nullable()

  com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry lastReturned;
    descriptor: Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
    flags: (0x0000) 
    Signature: Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;
    RuntimeVisibleTypeAnnotations: 
      FIELD, location=[INNER_TYPE]
        org.checkerframework.checker.nullness.qual.Nullable()

  final com.google.common.collect.MapMakerInternalMap this$0;
    descriptor: Lcom/google/common/collect/MapMakerInternalMap;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.google.common.collect.MapMakerInternalMap);
    descriptor: (Lcom/google/common/collect/MapMakerInternalMap;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2509
            aload 0 /* this */
            aload 1
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2510
            aload 0 /* this */
            aload 1
            getfield com.google.common.collect.MapMakerInternalMap.segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
            arraylength
            iconst_1
            isub
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
         2: .line 2511
            aload 0 /* this */
            iconst_m1
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
         3: .line 2512
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advance:()V
         4: .line 2513
            return
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
    MethodParameters:
        Name  Flags
      this$0  final

  public abstract T next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()TT;

  final void advance();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2519
            aload 0 /* this */
            aconst_null
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
         1: .line 2521
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInChain:()Z
            ifeq 3
         2: .line 2522
            return
         3: .line 2525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInTable:()Z
            ifeq 11
         4: .line 2526
            return
         5: .line 2530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
            getfield com.google.common.collect.MapMakerInternalMap.segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
            aload 0 /* this */
            dup
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
            dup_x1
            iconst_1
            isub
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
            aaload
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
         6: .line 2531
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
            getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
            ifeq 11
         7: .line 2532
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
            getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
         8: .line 2533
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
            invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
            iconst_1
            isub
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
         9: .line 2534
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInTable:()Z
            ifeq 11
        10: .line 2535
            return
        11: .line 2529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
            ifge 5
        12: .line 2539
            return
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;

  boolean nextInChain();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2543
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            ifnull 6
         1: .line 2544
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            goto 5
         2: .line 2545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advanceTo:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
            ifeq 4
         3: .line 2546
            iconst_1
            ireturn
         4: .line 2544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            ifnonnull 2
         6: .line 2550
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;

  boolean nextInTable();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2555
            goto 4
         1: .line 2556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
            aload 0 /* this */
            dup
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
            dup_x1
            iconst_1
            isub
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
            invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
            checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
            dup_x1
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            ifnull 4
         2: .line 2557
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advanceTo:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
            ifne 3
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInChain:()Z
            ifeq 4
         3: .line 2558
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 2555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
            ifge 1
         5: .line 2562
            iconst_0
            ireturn
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;

  boolean advanceTo();
    descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
        start local 1 // com.google.common.collect.MapMakerInternalMap$InternalEntry entry
         0: .line 2571
            aload 1 /* entry */
            invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
            astore 2 /* key */
        start local 2 // java.lang.Object key
         1: .line 2572
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
            aload 1 /* entry */
            invokevirtual com.google.common.collect.MapMakerInternalMap.getLiveValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         2: .line 2573
            aload 3 /* value */
            ifnull 6
         3: .line 2574
            aload 0 /* this */
            new com.google.common.collect.MapMakerInternalMap$WriteThroughEntry
            dup
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
            aload 2 /* key */
            aload 3 /* value */
            invokespecial com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.<init>:(Lcom/google/common/collect/MapMakerInternalMap;Ljava/lang/Object;Ljava/lang/Object;)V
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
         4: .line 2581
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
            invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
         5: .line 2575
            iconst_1
            ireturn
         6: .line 2581
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
            invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
         7: .line 2578
            iconst_0
            ireturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
         8: .line 2580
      StackMap locals: com.google.common.collect.MapMakerInternalMap$HashIterator com.google.common.collect.MapMakerInternalMap$InternalEntry
      StackMap stack: java.lang.Throwable
            astore 4
         9: .line 2581
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
            invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
        10: .line 2582
            aload 4
            athrow
        end local 1 // com.google.common.collect.MapMakerInternalMap$InternalEntry entry
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
            0   11     1  entry  TE;
            1    8     2    key  TK;
            2    8     3  value  TV;
      Exception table:
        from    to  target  type
           0     4       8  any
    Signature: (TE;)Z
    MethodParameters:
       Name  Flags
      entry  

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2587
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;

  com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry nextEntry();
    descriptor: ()Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2591
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            ifnonnull 2
         1: .line 2592
            new java.util.NoSuchElementException
            dup
            invokespecial java.util.NoSuchElementException.<init>:()V
            athrow
         2: .line 2594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
         3: .line 2595
            aload 0 /* this */
            invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advance:()V
         4: .line 2596
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            areturn
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
    Signature: ()Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;

  public void remove();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
         0: .line 2601
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic com.google.common.collect.CollectPreconditions.checkRemove:(Z)V
         3: .line 2602
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
            aload 0 /* this */
            getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
            invokevirtual com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey:()Ljava/lang/Object;
            invokevirtual com.google.common.collect.MapMakerInternalMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2603
            aload 0 /* this */
            aconst_null
            putfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
         5: .line 2604
            return
        end local 0 // com.google.common.collect.MapMakerInternalMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TT;>;
SourceFile: "MapMakerInternalMap.java"
NestHost: com.google.common.collect.MapMakerInternalMap
InnerClasses:
  abstract HashIterator = com.google.common.collect.MapMakerInternalMap$HashIterator of com.google.common.collect.MapMakerInternalMap
  abstract InternalEntry = com.google.common.collect.MapMakerInternalMap$InternalEntry of com.google.common.collect.MapMakerInternalMap
  abstract Segment = com.google.common.collect.MapMakerInternalMap$Segment of com.google.common.collect.MapMakerInternalMap
  final WriteThroughEntry = com.google.common.collect.MapMakerInternalMap$WriteThroughEntry of com.google.common.collect.MapMakerInternalMap