public class org.apache.commons.net.nntp.Threader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.net.nntp.Threader
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.net.nntp.Threader this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/net/nntp/Threader;

  public org.apache.commons.net.nntp.Threadable thread(java.util.List<? extends org.apache.commons.net.nntp.Threadable>);
    descriptor: (Ljava/util/List;)Lorg/apache/commons/net/nntp/Threadable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // java.util.List messages
         0: .line 45
            aload 0 /* this */
            aload 1 /* messages */
            invokevirtual org.apache.commons.net.nntp.Threader.thread:(Ljava/lang/Iterable;)Lorg/apache/commons/net/nntp/Threadable;
            areturn
        end local 1 // java.util.List messages
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/commons/net/nntp/Threader;
            0    1     1  messages  Ljava/util/List<+Lorg/apache/commons/net/nntp/Threadable;>;
    Signature: (Ljava/util/List<+Lorg/apache/commons/net/nntp/Threadable;>;)Lorg/apache/commons/net/nntp/Threadable;
    MethodParameters:
          Name  Flags
      messages  

  public org.apache.commons.net.nntp.Threadable thread(java.lang.Iterable<? extends org.apache.commons.net.nntp.Threadable>);
    descriptor: (Ljava/lang/Iterable;)Lorg/apache/commons/net/nntp/Threadable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // java.lang.Iterable messages
         0: .line 56
            aload 1 /* messages */
            ifnonnull 2
         1: .line 57
            aconst_null
            areturn
         2: .line 60
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* idTable */
        start local 2 // java.util.HashMap idTable
         3: .line 63
            aload 1 /* messages */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.apache.commons.net.nntp.Threader java.lang.Iterable java.util.HashMap top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.Threadable
            astore 3 /* t */
        start local 3 // org.apache.commons.net.nntp.Threadable t
         5: .line 64
            aload 3 /* t */
            invokeinterface org.apache.commons.net.nntp.Threadable.isDummy:()Z
            ifne 7
         6: .line 65
            aload 0 /* this */
            aload 3 /* t */
            aload 2 /* idTable */
            invokevirtual org.apache.commons.net.nntp.Threader.buildContainer:(Lorg/apache/commons/net/nntp/Threadable;Ljava/util/HashMap;)V
        end local 3 // org.apache.commons.net.nntp.Threadable t
         7: .line 63
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 69
            aload 2 /* idTable */
            invokevirtual java.util.HashMap.isEmpty:()Z
            ifeq 10
         9: .line 70
            aconst_null
            areturn
        10: .line 73
      StackMap locals: org.apache.commons.net.nntp.Threader java.lang.Iterable java.util.HashMap
      StackMap stack:
            aload 0 /* this */
            aload 2 /* idTable */
            invokevirtual org.apache.commons.net.nntp.Threader.findRootSet:(Ljava/util/HashMap;)Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 3 /* root */
        start local 3 // org.apache.commons.net.nntp.ThreadContainer root
        11: .line 74
            aload 2 /* idTable */
            invokevirtual java.util.HashMap.clear:()V
        12: .line 75
            aconst_null
            astore 2 /* idTable */
        13: .line 77
            aload 0 /* this */
            aload 3 /* root */
            invokevirtual org.apache.commons.net.nntp.Threader.pruneEmptyContainers:(Lorg/apache/commons/net/nntp/ThreadContainer;)V
        14: .line 79
            aload 3 /* root */
            invokevirtual org.apache.commons.net.nntp.ThreadContainer.reverseChildren:()V
        15: .line 80
            aload 0 /* this */
            aload 3 /* root */
            invokevirtual org.apache.commons.net.nntp.Threader.gatherSubjects:(Lorg/apache/commons/net/nntp/ThreadContainer;)V
        16: .line 82
            aload 3 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnull 18
        17: .line 83
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "root node has a next:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* root */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 86
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 3 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 4 /* r */
        start local 4 // org.apache.commons.net.nntp.ThreadContainer r
        19: goto 23
        20: .line 87
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 4 /* r */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 22
        21: .line 88
            aload 4 /* r */
            aload 4 /* r */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            invokeinterface org.apache.commons.net.nntp.Threadable.makeDummy:()Lorg/apache/commons/net/nntp/Threadable;
            putfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
        22: .line 86
      StackMap locals:
      StackMap stack:
            aload 4 /* r */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 4 /* r */
      StackMap locals:
      StackMap stack:
        23: aload 4 /* r */
            ifnonnull 20
        end local 4 // org.apache.commons.net.nntp.ThreadContainer r
        24: .line 92
            aload 3 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 25
            aconst_null
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 3 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
      StackMap locals:
      StackMap stack: org.apache.commons.net.nntp.Threadable
        26: astore 4 /* result */
        start local 4 // org.apache.commons.net.nntp.Threadable result
        27: .line 93
            aload 3 /* root */
            invokevirtual org.apache.commons.net.nntp.ThreadContainer.flush:()V
        28: .line 95
            aload 4 /* result */
            areturn
        end local 4 // org.apache.commons.net.nntp.Threadable result
        end local 3 // org.apache.commons.net.nntp.ThreadContainer root
        end local 2 // java.util.HashMap idTable
        end local 1 // java.lang.Iterable messages
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Lorg/apache/commons/net/nntp/Threader;
            0   29     1  messages  Ljava/lang/Iterable<+Lorg/apache/commons/net/nntp/Threadable;>;
            3   29     2   idTable  Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;
            5    7     3         t  Lorg/apache/commons/net/nntp/Threadable;
           11   29     3      root  Lorg/apache/commons/net/nntp/ThreadContainer;
           19   24     4         r  Lorg/apache/commons/net/nntp/ThreadContainer;
           27   29     4    result  Lorg/apache/commons/net/nntp/Threadable;
    Signature: (Ljava/lang/Iterable<+Lorg/apache/commons/net/nntp/Threadable;>;)Lorg/apache/commons/net/nntp/Threadable;
    MethodParameters:
          Name  Flags
      messages  

  private void buildContainer(org.apache.commons.net.nntp.Threadable, java.util.HashMap<java.lang.String, org.apache.commons.net.nntp.ThreadContainer>);
    descriptor: (Lorg/apache/commons/net/nntp/Threadable;Ljava/util/HashMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // org.apache.commons.net.nntp.Threadable threadable
        start local 2 // java.util.HashMap idTable
         0: .line 104
            aload 1 /* threadable */
            invokeinterface org.apache.commons.net.nntp.Threadable.messageThreadId:()Ljava/lang/String;
            astore 3 /* id */
        start local 3 // java.lang.String id
         1: .line 105
            aload 2 /* idTable */
            aload 3 /* id */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.ThreadContainer
            astore 4 /* container */
        start local 4 // org.apache.commons.net.nntp.ThreadContainer container
         2: .line 106
            iconst_0
            istore 5 /* bogusIdCount */
        start local 5 // int bogusIdCount
         3: .line 110
            aload 4 /* container */
            ifnull 10
         4: .line 111
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnull 9
         5: .line 112
            iinc 5 /* bogusIdCount */ 1
         6: .line 113
            new java.lang.StringBuilder
            dup
            ldc "<Bogus-id:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* bogusIdCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* id */
         7: .line 114
            aconst_null
            astore 4 /* container */
         8: .line 115
            goto 10
         9: .line 118
      StackMap locals: java.lang.String org.apache.commons.net.nntp.ThreadContainer int
      StackMap stack:
            aload 4 /* container */
            aload 1 /* threadable */
            putfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
        10: .line 123
      StackMap locals:
      StackMap stack:
            aload 4 /* container */
            ifnonnull 14
        11: .line 124
            new org.apache.commons.net.nntp.ThreadContainer
            dup
            invokespecial org.apache.commons.net.nntp.ThreadContainer.<init>:()V
            astore 4 /* container */
        12: .line 125
            aload 4 /* container */
            aload 1 /* threadable */
            putfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
        13: .line 126
            aload 2 /* idTable */
            aload 3 /* id */
            aload 4 /* container */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 131
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* parentRef */
        start local 6 // org.apache.commons.net.nntp.ThreadContainer parentRef
        15: .line 133
            aload 1 /* threadable */
            invokeinterface org.apache.commons.net.nntp.Threadable.messageThreadReferences:()[Ljava/lang/String;
            astore 7 /* references */
        start local 7 // java.lang.String[] references
        16: .line 134
            aload 7 /* references */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 31
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.Threadable java.util.HashMap java.lang.String org.apache.commons.net.nntp.ThreadContainer int org.apache.commons.net.nntp.ThreadContainer java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        17: aload 11
            iload 9
            aaload
            astore 8 /* refString */
        start local 8 // java.lang.String refString
        18: .line 136
            aload 2 /* idTable */
            aload 8 /* refString */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.ThreadContainer
            astore 12 /* ref */
        start local 12 // org.apache.commons.net.nntp.ThreadContainer ref
        19: .line 139
            aload 12 /* ref */
            ifnonnull 22
        20: .line 140
            new org.apache.commons.net.nntp.ThreadContainer
            dup
            invokespecial org.apache.commons.net.nntp.ThreadContainer.<init>:()V
            astore 12 /* ref */
        21: .line 141
            aload 2 /* idTable */
            aload 8 /* refString */
            aload 12 /* ref */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 147
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.Threadable java.util.HashMap java.lang.String org.apache.commons.net.nntp.ThreadContainer int org.apache.commons.net.nntp.ThreadContainer java.lang.String[] java.lang.String int int java.lang.String[] org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 6 /* parentRef */
            ifnull 29
        23: .line 148
            aload 12 /* ref */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 29
        24: .line 149
            aload 6 /* parentRef */
            aload 12 /* ref */
            if_acmpeq 29
        25: .line 150
            aload 12 /* ref */
            aload 6 /* parentRef */
            invokevirtual org.apache.commons.net.nntp.ThreadContainer.findChild:(Lorg/apache/commons/net/nntp/ThreadContainer;)Z
            ifne 29
        26: .line 152
            aload 12 /* ref */
            aload 6 /* parentRef */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        27: .line 153
            aload 12 /* ref */
            aload 6 /* parentRef */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        28: .line 154
            aload 6 /* parentRef */
            aload 12 /* ref */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        29: .line 156
      StackMap locals:
      StackMap stack:
            aload 12 /* ref */
            astore 6 /* parentRef */
        end local 12 // org.apache.commons.net.nntp.ThreadContainer ref
        end local 8 // java.lang.String refString
        30: .line 134
            iinc 9 1
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.Threadable java.util.HashMap java.lang.String org.apache.commons.net.nntp.ThreadContainer int org.apache.commons.net.nntp.ThreadContainer java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        31: iload 9
            iload 10
            if_icmplt 17
        end local 7 // java.lang.String[] references
        32: .line 162
            aload 6 /* parentRef */
            ifnull 35
        33: .line 163
            aload 6 /* parentRef */
            aload 4 /* container */
            if_acmpeq 34
            aload 4 /* container */
            aload 6 /* parentRef */
            invokevirtual org.apache.commons.net.nntp.ThreadContainer.findChild:(Lorg/apache/commons/net/nntp/ThreadContainer;)Z
            ifeq 35
        34: .line 165
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.Threadable java.util.HashMap java.lang.String org.apache.commons.net.nntp.ThreadContainer int org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aconst_null
            astore 6 /* parentRef */
        35: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnull 57
        36: .line 174
            aconst_null
            astore 8 /* prev */
        start local 8 // org.apache.commons.net.nntp.ThreadContainer prev
        37: aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 7 /* rest */
        start local 7 // org.apache.commons.net.nntp.ThreadContainer rest
        38: .line 175
            goto 42
        39: .line 177
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 7 /* rest */
            aload 4 /* container */
            if_acmpne 41
        40: .line 178
            goto 43
        41: .line 176
      StackMap locals:
      StackMap stack:
            aload 7 /* rest */
            astore 8 /* prev */
            aload 7 /* rest */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 7 /* rest */
        42: .line 175
      StackMap locals:
      StackMap stack:
            aload 7 /* rest */
            ifnonnull 39
        43: .line 182
      StackMap locals:
      StackMap stack:
            aload 7 /* rest */
            ifnonnull 51
        44: .line 183
            new java.lang.RuntimeException
            dup
        45: .line 184
            new java.lang.StringBuilder
            dup
            ldc "Didnt find "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        46: .line 185
            aload 4 /* container */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        47: .line 186
            ldc " in parent"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 187
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        49: .line 184
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 183
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 191
      StackMap locals:
      StackMap stack:
            aload 8 /* prev */
            ifnonnull 54
        52: .line 192
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        53: .line 193
            goto 55
        54: .line 194
      StackMap locals:
      StackMap stack:
            aload 8 /* prev */
            aload 4 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        55: .line 197
      StackMap locals:
      StackMap stack:
            aload 4 /* container */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        56: .line 198
            aload 4 /* container */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        end local 8 // org.apache.commons.net.nntp.ThreadContainer prev
        end local 7 // org.apache.commons.net.nntp.ThreadContainer rest
        57: .line 202
      StackMap locals:
      StackMap stack:
            aload 6 /* parentRef */
            ifnull 61
        58: .line 203
            aload 4 /* container */
            aload 6 /* parentRef */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        59: .line 204
            aload 4 /* container */
            aload 6 /* parentRef */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        60: .line 205
            aload 6 /* parentRef */
            aload 4 /* container */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        61: .line 207
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.apache.commons.net.nntp.ThreadContainer parentRef
        end local 5 // int bogusIdCount
        end local 4 // org.apache.commons.net.nntp.ThreadContainer container
        end local 3 // java.lang.String id
        end local 2 // java.util.HashMap idTable
        end local 1 // org.apache.commons.net.nntp.Threadable threadable
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   62     0          this  Lorg/apache/commons/net/nntp/Threader;
            0   62     1    threadable  Lorg/apache/commons/net/nntp/Threadable;
            0   62     2       idTable  Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;
            1   62     3            id  Ljava/lang/String;
            2   62     4     container  Lorg/apache/commons/net/nntp/ThreadContainer;
            3   62     5  bogusIdCount  I
           15   62     6     parentRef  Lorg/apache/commons/net/nntp/ThreadContainer;
           16   32     7    references  [Ljava/lang/String;
           18   30     8     refString  Ljava/lang/String;
           19   30    12           ref  Lorg/apache/commons/net/nntp/ThreadContainer;
           38   57     7          rest  Lorg/apache/commons/net/nntp/ThreadContainer;
           37   57     8          prev  Lorg/apache/commons/net/nntp/ThreadContainer;
    Signature: (Lorg/apache/commons/net/nntp/Threadable;Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;)V
    MethodParameters:
            Name  Flags
      threadable  
      idTable     

  private org.apache.commons.net.nntp.ThreadContainer findRootSet(java.util.HashMap<java.lang.String, org.apache.commons.net.nntp.ThreadContainer>);
    descriptor: (Ljava/util/HashMap;)Lorg/apache/commons/net/nntp/ThreadContainer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // java.util.HashMap idTable
         0: .line 215
            new org.apache.commons.net.nntp.ThreadContainer
            dup
            invokespecial org.apache.commons.net.nntp.ThreadContainer.<init>:()V
            astore 2 /* root */
        start local 2 // org.apache.commons.net.nntp.ThreadContainer root
         1: .line 216
            aload 1 /* idTable */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         2: .line 218
            goto 12
         3: .line 219
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         4: .line 220
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.ThreadContainer
            astore 5 /* c */
        start local 5 // org.apache.commons.net.nntp.ThreadContainer c
         5: .line 221
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 12
         6: .line 222
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnull 10
         7: .line 223
            new java.lang.RuntimeException
            dup
         8: .line 224
            new java.lang.StringBuilder
            dup
            ldc "c.next is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 223
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 226
      StackMap locals: java.util.Map$Entry org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 5 /* c */
            aload 2 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        11: .line 227
            aload 2 /* root */
            aload 5 /* c */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        end local 5 // org.apache.commons.net.nntp.ThreadContainer c
        end local 4 // java.util.Map$Entry entry
        12: .line 218
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 230
            aload 2 /* root */
            areturn
        end local 3 // java.util.Iterator iter
        end local 2 // org.apache.commons.net.nntp.ThreadContainer root
        end local 1 // java.util.HashMap idTable
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/apache/commons/net/nntp/Threader;
            0   14     1  idTable  Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;
            1   14     2     root  Lorg/apache/commons/net/nntp/ThreadContainer;
            2   14     3     iter  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;>;
            4   12     4    entry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;
            5   12     5        c  Lorg/apache/commons/net/nntp/ThreadContainer;
    Signature: (Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;)Lorg/apache/commons/net/nntp/ThreadContainer;
    MethodParameters:
         Name  Flags
      idTable  

  private void pruneEmptyContainers(org.apache.commons.net.nntp.ThreadContainer);
    descriptor: (Lorg/apache/commons/net/nntp/ThreadContainer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // org.apache.commons.net.nntp.ThreadContainer parent
         0: .line 239
            aconst_null
            astore 3 /* prev */
        start local 3 // org.apache.commons.net.nntp.ThreadContainer prev
         1: aload 1 /* parent */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 2 /* container */
        start local 2 // org.apache.commons.net.nntp.ThreadContainer container
         2: aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 4 /* next */
        start local 4 // org.apache.commons.net.nntp.ThreadContainer next
         3: .line 240
            goto 37
         4: .line 246
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 11
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 11
         5: .line 247
            aload 3 /* prev */
            ifnonnull 8
         6: .line 248
            aload 1 /* parent */
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
         7: .line 249
            goto 9
         8: .line 250
      StackMap locals:
      StackMap stack:
            aload 3 /* prev */
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
         9: .line 254
      StackMap locals:
      StackMap stack:
            aload 3 /* prev */
            astore 2 /* container */
        10: .line 255
            goto 32
        11: .line 259
      StackMap locals:
      StackMap stack:
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 30
        12: .line 260
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnull 30
        13: .line 261
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 15
        14: .line 262
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 30
        15: .line 265
      StackMap locals:
      StackMap stack:
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 6 /* kids */
        start local 6 // org.apache.commons.net.nntp.ThreadContainer kids
        16: .line 268
            aload 3 /* prev */
            ifnonnull 19
        17: .line 269
            aload 1 /* parent */
            aload 6 /* kids */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        18: .line 270
            goto 20
        19: .line 271
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer top org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 3 /* prev */
            aload 6 /* kids */
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        20: .line 277
      StackMap locals:
      StackMap stack:
            aload 6 /* kids */
            astore 5 /* tail */
        start local 5 // org.apache.commons.net.nntp.ThreadContainer tail
        21: goto 24
        22: .line 278
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 5 /* tail */
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        23: .line 277
            aload 5 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 5 /* tail */
      StackMap locals:
      StackMap stack:
        24: aload 5 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 22
        25: .line 281
            aload 5 /* tail */
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        26: .line 282
            aload 5 /* tail */
            aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        27: .line 286
            aload 6 /* kids */
            astore 4 /* next */
        28: .line 289
            aload 3 /* prev */
            astore 2 /* container */
        end local 6 // org.apache.commons.net.nntp.ThreadContainer kids
        end local 5 // org.apache.commons.net.nntp.ThreadContainer tail
        29: .line 290
            goto 32
      StackMap locals:
      StackMap stack:
        30: aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnull 32
        31: .line 293
            aload 0 /* this */
            aload 2 /* container */
            invokevirtual org.apache.commons.net.nntp.Threader.pruneEmptyContainers:(Lorg/apache/commons/net/nntp/ThreadContainer;)V
        32: .line 241
      StackMap locals:
      StackMap stack:
            aload 2 /* container */
            astore 3 /* prev */
        33: .line 242
            aload 4 /* next */
            astore 2 /* container */
        34: .line 243
            aload 2 /* container */
            ifnonnull 35
            aconst_null
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 2 /* container */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
      StackMap locals:
      StackMap stack: org.apache.commons.net.nntp.ThreadContainer
        36: astore 4 /* next */
        37: .line 240
      StackMap locals:
      StackMap stack:
            aload 2 /* container */
            ifnonnull 4
        38: .line 296
            return
        end local 4 // org.apache.commons.net.nntp.ThreadContainer next
        end local 3 // org.apache.commons.net.nntp.ThreadContainer prev
        end local 2 // org.apache.commons.net.nntp.ThreadContainer container
        end local 1 // org.apache.commons.net.nntp.ThreadContainer parent
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   39     0       this  Lorg/apache/commons/net/nntp/Threader;
            0   39     1     parent  Lorg/apache/commons/net/nntp/ThreadContainer;
            2   39     2  container  Lorg/apache/commons/net/nntp/ThreadContainer;
            1   39     3       prev  Lorg/apache/commons/net/nntp/ThreadContainer;
            3   39     4       next  Lorg/apache/commons/net/nntp/ThreadContainer;
           21   29     5       tail  Lorg/apache/commons/net/nntp/ThreadContainer;
           16   29     6       kids  Lorg/apache/commons/net/nntp/ThreadContainer;
    MethodParameters:
        Name  Flags
      parent  

  private void gatherSubjects(org.apache.commons.net.nntp.ThreadContainer);
    descriptor: (Lorg/apache/commons/net/nntp/ThreadContainer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // org.apache.commons.net.nntp.ThreadContainer root
         0: .line 305
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 307
            aload 1 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 3 /* c */
        start local 3 // org.apache.commons.net.nntp.ThreadContainer c
         2: goto 5
         3: .line 308
      StackMap locals: int org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            iinc 2 /* count */ 1
         4: .line 307
            aload 3 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 3 /* c */
      StackMap locals:
      StackMap stack:
         5: aload 3 /* c */
            ifnonnull 3
        end local 3 // org.apache.commons.net.nntp.ThreadContainer c
         6: .line 312
            new java.util.HashMap
            dup
            iload 2 /* count */
            i2d
            ldc 1.2
            dmul
            d2i
            ldc 0.9
            invokespecial java.util.HashMap.<init>:(IF)V
            astore 3 /* subjectTable */
        start local 3 // java.util.HashMap subjectTable
         7: .line 313
            iconst_0
            istore 2 /* count */
         8: .line 315
            aload 1 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 4 /* c */
        start local 4 // org.apache.commons.net.nntp.ThreadContainer c
         9: goto 26
        10: .line 316
      StackMap locals: org.apache.commons.net.nntp.Threader org.apache.commons.net.nntp.ThreadContainer int java.util.HashMap org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            astore 5 /* threadable */
        start local 5 // org.apache.commons.net.nntp.Threadable threadable
        11: .line 321
            aload 5 /* threadable */
            ifnonnull 13
        12: .line 322
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            astore 5 /* threadable */
        13: .line 325
      StackMap locals: org.apache.commons.net.nntp.Threadable
      StackMap stack:
            aload 5 /* threadable */
            invokeinterface org.apache.commons.net.nntp.Threadable.simplifiedSubject:()Ljava/lang/String;
            astore 6 /* subj */
        start local 6 // java.lang.String subj
        14: .line 327
            aload 6 /* subj */
            ifnull 25
            aload 6 /* subj */
            invokevirtual java.lang.String.length:()I
            ifne 16
        15: .line 328
            goto 25
        16: .line 331
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* subjectTable */
            aload 6 /* subj */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.ThreadContainer
            astore 7 /* old */
        start local 7 // org.apache.commons.net.nntp.ThreadContainer old
        17: .line 340
            aload 7 /* old */
            ifnull 23
        18: .line 341
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 19
            aload 7 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 23
        19: .line 342
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 7 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnull 25
        20: .line 343
            aload 7 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            invokeinterface org.apache.commons.net.nntp.Threadable.subjectIsReply:()Z
            ifeq 25
        21: .line 344
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnull 25
        22: .line 345
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            invokeinterface org.apache.commons.net.nntp.Threadable.subjectIsReply:()Z
            ifne 25
        23: .line 346
      StackMap locals:
      StackMap stack:
            aload 3 /* subjectTable */
            aload 6 /* subj */
            aload 4 /* c */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 347
            iinc 2 /* count */ 1
        end local 7 // org.apache.commons.net.nntp.ThreadContainer old
        end local 6 // java.lang.String subj
        end local 5 // org.apache.commons.net.nntp.Threadable threadable
        25: .line 315
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 4 /* c */
      StackMap locals:
      StackMap stack:
        26: aload 4 /* c */
            ifnonnull 10
        end local 4 // org.apache.commons.net.nntp.ThreadContainer c
        27: .line 352
            iload 2 /* count */
            ifne 29
        28: .line 353
            return
        29: .line 359
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* prev */
        start local 4 // org.apache.commons.net.nntp.ThreadContainer prev
        30: aload 1 /* root */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 5 /* c */
        start local 5 // org.apache.commons.net.nntp.ThreadContainer c
        31: aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 6 /* rest */
        start local 6 // org.apache.commons.net.nntp.ThreadContainer rest
        32: .line 360
            goto 86
        33: .line 362
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            astore 7 /* threadable */
        start local 7 // org.apache.commons.net.nntp.Threadable threadable
        34: .line 365
            aload 7 /* threadable */
            ifnonnull 36
        35: .line 366
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            astore 7 /* threadable */
        36: .line 369
      StackMap locals: org.apache.commons.net.nntp.Threadable
      StackMap stack:
            aload 7 /* threadable */
            invokeinterface org.apache.commons.net.nntp.Threadable.simplifiedSubject:()Ljava/lang/String;
            astore 8 /* subj */
        start local 8 // java.lang.String subj
        37: .line 372
            aload 8 /* subj */
            ifnull 83
            aload 8 /* subj */
            invokevirtual java.lang.String.length:()I
            ifne 39
        38: .line 373
            goto 83
        39: .line 376
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* subjectTable */
            aload 8 /* subj */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.net.nntp.ThreadContainer
            astore 9 /* old */
        start local 9 // org.apache.commons.net.nntp.ThreadContainer old
        40: .line 378
            aload 9 /* old */
            aload 5 /* c */
            if_acmpne 42
        41: .line 379
            goto 83
        42: .line 384
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 4 /* prev */
            ifnonnull 45
        43: .line 385
            aload 1 /* root */
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        44: .line 386
            goto 46
        45: .line 387
      StackMap locals:
      StackMap stack:
            aload 4 /* prev */
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        46: .line 389
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        47: .line 391
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 60
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnonnull 60
        48: .line 394
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 10 /* tail */
        start local 10 // org.apache.commons.net.nntp.ThreadContainer tail
        49: .line 395
            goto 51
        50: .line 396
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 10 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 10 /* tail */
        51: .line 395
      StackMap locals:
      StackMap stack:
            aload 10 /* tail */
            ifnull 52
            aload 10 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            ifnonnull 50
        52: .line 400
      StackMap locals:
      StackMap stack:
            aload 10 /* tail */
            ifnull 54
        53: .line 401
            aload 10 /* tail */
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        54: .line 404
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 10 /* tail */
            goto 57
        55: .line 405
      StackMap locals:
      StackMap stack:
            aload 10 /* tail */
            aload 9 /* old */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        56: .line 404
            aload 10 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 10 /* tail */
      StackMap locals:
      StackMap stack:
        57: aload 10 /* tail */
            ifnonnull 55
        58: .line 408
            aload 5 /* c */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        end local 10 // org.apache.commons.net.nntp.ThreadContainer tail
        59: .line 409
            goto 82
        60: .line 410
      StackMap locals:
      StackMap stack:
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnull 64
        61: .line 411
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            ifnull 68
        62: .line 412
            aload 5 /* c */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            invokeinterface org.apache.commons.net.nntp.Threadable.subjectIsReply:()Z
            ifeq 68
        63: .line 413
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            invokeinterface org.apache.commons.net.nntp.Threadable.subjectIsReply:()Z
            ifne 68
        64: .line 415
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            aload 9 /* old */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        65: .line 416
            aload 5 /* c */
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        66: .line 417
            aload 9 /* old */
            aload 5 /* c */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        67: .line 418
            goto 82
        68: .line 421
      StackMap locals:
      StackMap stack:
            new org.apache.commons.net.nntp.ThreadContainer
            dup
            invokespecial org.apache.commons.net.nntp.ThreadContainer.<init>:()V
            astore 10 /* newc */
        start local 10 // org.apache.commons.net.nntp.ThreadContainer newc
        69: .line 422
            aload 10 /* newc */
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
            putfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
        70: .line 423
            aload 10 /* newc */
            aload 9 /* old */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        71: .line 425
            aload 10 /* newc */
            getfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 11 /* tail */
        start local 11 // org.apache.commons.net.nntp.ThreadContainer tail
        72: .line 426
            goto 75
        73: .line 429
      StackMap locals: org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.ThreadContainer
      StackMap stack:
            aload 11 /* tail */
            aload 10 /* newc */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        74: .line 427
            aload 11 /* tail */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
            astore 11 /* tail */
        75: .line 426
      StackMap locals:
      StackMap stack:
            aload 11 /* tail */
            ifnonnull 73
        end local 11 // org.apache.commons.net.nntp.ThreadContainer tail
        76: .line 432
            aload 9 /* old */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.threadable:Lorg/apache/commons/net/nntp/Threadable;
        77: .line 433
            aload 9 /* old */
            aconst_null
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        78: .line 435
            aload 5 /* c */
            aload 9 /* old */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        79: .line 436
            aload 10 /* newc */
            aload 9 /* old */
            putfield org.apache.commons.net.nntp.ThreadContainer.parent:Lorg/apache/commons/net/nntp/ThreadContainer;
        80: .line 439
            aload 9 /* old */
            aload 5 /* c */
            putfield org.apache.commons.net.nntp.ThreadContainer.child:Lorg/apache/commons/net/nntp/ThreadContainer;
        81: .line 440
            aload 5 /* c */
            aload 10 /* newc */
            putfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
        end local 10 // org.apache.commons.net.nntp.ThreadContainer newc
        82: .line 443
      StackMap locals:
      StackMap stack:
            aload 4 /* prev */
            astore 5 /* c */
        end local 9 // org.apache.commons.net.nntp.ThreadContainer old
        end local 8 // java.lang.String subj
        end local 7 // org.apache.commons.net.nntp.Threadable threadable
        83: .line 361
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            astore 4 /* prev */
            aload 6 /* rest */
            astore 5 /* c */
            aload 6 /* rest */
            ifnonnull 84
            aconst_null
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 6 /* rest */
            getfield org.apache.commons.net.nntp.ThreadContainer.next:Lorg/apache/commons/net/nntp/ThreadContainer;
      StackMap locals:
      StackMap stack: org.apache.commons.net.nntp.ThreadContainer
        85: astore 6 /* rest */
        86: .line 360
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            ifnonnull 33
        87: .line 446
            aload 3 /* subjectTable */
            invokevirtual java.util.HashMap.clear:()V
        88: .line 447
            aconst_null
            astore 3 /* subjectTable */
        89: .line 449
            return
        end local 6 // org.apache.commons.net.nntp.ThreadContainer rest
        end local 5 // org.apache.commons.net.nntp.ThreadContainer c
        end local 4 // org.apache.commons.net.nntp.ThreadContainer prev
        end local 3 // java.util.HashMap subjectTable
        end local 2 // int count
        end local 1 // org.apache.commons.net.nntp.ThreadContainer root
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   90     0          this  Lorg/apache/commons/net/nntp/Threader;
            0   90     1          root  Lorg/apache/commons/net/nntp/ThreadContainer;
            1   90     2         count  I
            2    6     3             c  Lorg/apache/commons/net/nntp/ThreadContainer;
            7   90     3  subjectTable  Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/commons/net/nntp/ThreadContainer;>;
            9   27     4             c  Lorg/apache/commons/net/nntp/ThreadContainer;
           11   25     5    threadable  Lorg/apache/commons/net/nntp/Threadable;
           14   25     6          subj  Ljava/lang/String;
           17   25     7           old  Lorg/apache/commons/net/nntp/ThreadContainer;
           30   90     4          prev  Lorg/apache/commons/net/nntp/ThreadContainer;
           31   90     5             c  Lorg/apache/commons/net/nntp/ThreadContainer;
           32   90     6          rest  Lorg/apache/commons/net/nntp/ThreadContainer;
           34   83     7    threadable  Lorg/apache/commons/net/nntp/Threadable;
           37   83     8          subj  Ljava/lang/String;
           40   83     9           old  Lorg/apache/commons/net/nntp/ThreadContainer;
           49   59    10          tail  Lorg/apache/commons/net/nntp/ThreadContainer;
           69   82    10          newc  Lorg/apache/commons/net/nntp/ThreadContainer;
           72   76    11          tail  Lorg/apache/commons/net/nntp/ThreadContainer;
    MethodParameters:
      Name  Flags
      root  

  public org.apache.commons.net.nntp.Threadable thread(org.apache.commons.net.nntp.Threadable[]);
    descriptor: ([Lorg/apache/commons/net/nntp/Threadable;)Lorg/apache/commons/net/nntp/Threadable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.net.nntp.Threader this
        start local 1 // org.apache.commons.net.nntp.Threadable[] messages
         0: .line 463
            aload 1 /* messages */
            ifnonnull 2
         1: .line 464
            aconst_null
            areturn
         2: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* messages */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual org.apache.commons.net.nntp.Threader.thread:(Ljava/util/List;)Lorg/apache/commons/net/nntp/Threadable;
            areturn
        end local 1 // org.apache.commons.net.nntp.Threadable[] messages
        end local 0 // org.apache.commons.net.nntp.Threader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/commons/net/nntp/Threader;
            0    3     1  messages  [Lorg/apache/commons/net/nntp/Threadable;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      messages  
}
SourceFile: "Threader.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map