public class org.aspectj.weaver.WeaverStateInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.WeaverStateInfo
  super_class: java.lang.Object
{
  private java.util.List<org.aspectj.weaver.WeaverStateInfo$Entry> typeMungers;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/aspectj/weaver/WeaverStateInfo$Entry;>;

  private boolean oldStyle;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean reweavable;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean reweavableCompressedMode;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean reweavableDiffMode;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.lang.String> aspectsAffectingType;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private byte[] unwovenClassFile;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private static boolean reweavableDefault;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean reweavableCompressedModeDefault;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean reweavableDiffModeDefault;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static byte[] key;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private boolean unwovenClassFileIsADiff;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private static final int UNTOUCHED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int WOVEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int EXTENDED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final byte REWEAVABLE_BIT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final byte REWEAVABLE_COMPRESSION_BIT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final byte REWEAVABLE_DIFF_BIT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private static final byte[] NO_BYTES;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 57
            iconst_1
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableDefault:Z
         1: .line 58
            iconst_0
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableCompressedModeDefault:Z
         2: .line 59
            iconst_1
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableDiffModeDefault:Z
         3: .line 66
            bipush 16
            newarray 8
            dup
            iconst_0
            bipush -51
            bastore
            dup
            iconst_1
            bipush 34
            bastore
            dup
            iconst_2
            bipush 105
            bastore
            dup
            iconst_3
            bipush 56
            bastore
            dup
            iconst_4
            bipush -34
            bastore
            dup
            iconst_5
            bipush 65
            bastore
            dup
            bipush 6
            bipush 45
            bastore
            dup
            bipush 7
            bipush 78
            bastore
            dup
            bipush 8
            bipush -26
            bastore
            dup
            bipush 9
            bipush 125
            bastore
            dup
            bipush 10
            bipush 114
            bastore
            dup
            bipush 11
            bipush 97
            bastore
            dup
            bipush 12
            bipush 98
            bastore
            dup
            bipush 13
            iconst_1
            bastore
            dup
            bipush 14
            iconst_m1
            bastore
            dup
            bipush 15
            bipush -42
            bastore
            putstatic org.aspectj.weaver.WeaverStateInfo.key:[B
         4: .line 235
            iconst_0
            newarray 8
            putstatic org.aspectj.weaver.WeaverStateInfo.NO_BYTES:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void checkCompressionEnabled();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 72
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
            ifne 8
         1: .line 74
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
         2: .line 76
            ldc "aspectj.compression.weaverstateinfo"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* value */
        start local 1 // java.lang.String value
         3: .line 77
            aload 1 /* value */
            ldc "true"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         4: .line 78
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "ASPECTJ: aspectj.compression.weaverstateinfo=true: compressing weaverstateinfo"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 79
            aload 0 /* this */
            iconst_2
            putfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
        end local 1 // java.lang.String value
         6: .line 81
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: pop
         8: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/aspectj/weaver/WeaverStateInfo;
            3    6     1  value  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.Throwable

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFileIsADiff:Z
         2: .line 69
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
         3: .line 89
            return
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // boolean reweavable
         0: .line 92
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            iconst_0
            iload 1 /* reweavable */
            getstatic org.aspectj.weaver.WeaverStateInfo.reweavableCompressedModeDefault:Z
            getstatic org.aspectj.weaver.WeaverStateInfo.reweavableDiffModeDefault:Z
            invokespecial org.aspectj.weaver.WeaverStateInfo.<init>:(Ljava/util/List;ZZZZ)V
         1: .line 93
            return
        end local 1 // boolean reweavable
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1  reweavable  Z
    MethodParameters:
            Name  Flags
      reweavable  

  private void <init>(java.util.List<org.aspectj.weaver.WeaverStateInfo$Entry>, boolean, boolean, boolean, );
    descriptor: (Ljava/util/List;ZZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // java.util.List typeMungers
        start local 2 // boolean oldStyle
        start local 3 // boolean reweavableMode
        start local 4 // boolean reweavableCompressedMode
        start local 5 // boolean reweavableDiffMode
         0: .line 95
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFileIsADiff:Z
         2: .line 69
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
         3: .line 97
            aload 0 /* this */
            aload 1 /* typeMungers */
            putfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
         4: .line 98
            aload 0 /* this */
            iload 2 /* oldStyle */
            putfield org.aspectj.weaver.WeaverStateInfo.oldStyle:Z
         5: .line 99
            aload 0 /* this */
            iload 3 /* reweavableMode */
            putfield org.aspectj.weaver.WeaverStateInfo.reweavable:Z
         6: .line 100
            aload 0 /* this */
            iload 4 /* reweavableCompressedMode */
            putfield org.aspectj.weaver.WeaverStateInfo.reweavableCompressedMode:Z
         7: .line 101
            aload 0 /* this */
            iload 3 /* reweavableMode */
            ifeq 8
            iload 5 /* reweavableDiffMode */
            goto 9
      StackMap locals: org.aspectj.weaver.WeaverStateInfo java.util.List int int int int
      StackMap stack: org.aspectj.weaver.WeaverStateInfo
         8: iconst_0
      StackMap locals: org.aspectj.weaver.WeaverStateInfo java.util.List int int int int
      StackMap stack: org.aspectj.weaver.WeaverStateInfo int
         9: putfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
        10: .line 102
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
        11: .line 103
            aload 0 /* this */
            aconst_null
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
        12: .line 104
            return
        end local 5 // boolean reweavableDiffMode
        end local 4 // boolean reweavableCompressedMode
        end local 3 // boolean reweavableMode
        end local 2 // boolean oldStyle
        end local 1 // java.util.List typeMungers
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   13     0                      this  Lorg/aspectj/weaver/WeaverStateInfo;
            0   13     1               typeMungers  Ljava/util/List<Lorg/aspectj/weaver/WeaverStateInfo$Entry;>;
            0   13     2                  oldStyle  Z
            0   13     3            reweavableMode  Z
            0   13     4  reweavableCompressedMode  Z
            0   13     5        reweavableDiffMode  Z
    Signature: (Ljava/util/List<Lorg/aspectj/weaver/WeaverStateInfo$Entry;>;ZZZZ)V
    MethodParameters:
                          Name  Flags
      typeMungers               
      oldStyle                  
      reweavableMode            
      reweavableCompressedMode  
      reweavableDiffMode        

  public static void setReweavableModeDefaults(boolean, boolean, boolean);
    descriptor: (ZZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // boolean mode
        start local 1 // boolean compress
        start local 2 // boolean diff
         0: .line 107
            iload 0 /* mode */
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableDefault:Z
         1: .line 108
            iload 1 /* compress */
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableCompressedModeDefault:Z
         2: .line 109
            iload 2 /* diff */
            putstatic org.aspectj.weaver.WeaverStateInfo.reweavableDiffModeDefault:Z
         3: .line 110
            return
        end local 2 // boolean diff
        end local 1 // boolean compress
        end local 0 // boolean mode
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      mode  Z
            0    4     1  compress  Z
            0    4     2      diff  Z
    MethodParameters:
          Name  Flags
      mode      
      compress  
      diff      

  public static final org.aspectj.weaver.WeaverStateInfo read(org.aspectj.weaver.VersionedDataInputStream, org.aspectj.weaver.ISourceContext);
    descriptor: (Lorg/aspectj/weaver/VersionedDataInputStream;Lorg/aspectj/weaver/ISourceContext;)Lorg/aspectj/weaver/WeaverStateInfo;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=7, locals=13, args_size=2
        start local 0 // org.aspectj.weaver.VersionedDataInputStream s
        start local 1 // org.aspectj.weaver.ISourceContext context
         0: .line 121
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readByte:()B
            istore 2 /* b */
        start local 2 // byte b
         1: .line 123
            iload 2 /* b */
            bipush 16
            iand
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* isReweavable */
        start local 3 // boolean isReweavable
         4: .line 124
            iload 3 /* isReweavable */
            ifeq 6
         5: .line 125
            iload 2 /* b */
            bipush 16
            isub
            i2b
            istore 2 /* b */
         6: .line 128
      StackMap locals: int
      StackMap stack:
            iload 2 /* b */
            bipush 32
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* isReweavableCompressed */
        start local 4 // boolean isReweavableCompressed
         9: .line 129
            iload 4 /* isReweavableCompressed */
            ifeq 11
        10: .line 130
            iload 2 /* b */
            bipush 32
            isub
            i2b
            istore 2 /* b */
        11: .line 133
      StackMap locals: int
      StackMap stack:
            iload 2 /* b */
            bipush 64
            iand
            ifeq 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 5 /* isReweavableDiff */
        start local 5 // boolean isReweavableDiff
        14: .line 134
            iload 5 /* isReweavableDiff */
            ifeq 16
        15: .line 135
            iload 2 /* b */
            bipush 64
            isub
            i2b
            istore 2 /* b */
        16: .line 138
      StackMap locals: int
      StackMap stack:
            iload 2 /* b */
            tableswitch { // 0 - 3
                    0: 17
                    1: 43
                    2: 18
                    3: 19
              default: 43
          }
        17: .line 140
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "unexpected UNWOVEN"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 142
      StackMap locals:
      StackMap stack:
            new org.aspectj.weaver.WeaverStateInfo
            dup
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_1
            iload 3 /* isReweavable */
            iload 4 /* isReweavableCompressed */
            iload 5 /* isReweavableDiff */
            invokespecial org.aspectj.weaver.WeaverStateInfo.<init>:(Ljava/util/List;ZZZZ)V
            areturn
        19: .line 144
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* isCompressed */
        start local 6 // boolean isCompressed
        20: .line 145
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.isAtLeast169:()Z
            ifeq 22
        21: .line 146
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readBoolean:()Z
            istore 6 /* isCompressed */
        22: .line 149
      StackMap locals: int
      StackMap stack:
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readShort:()S
            istore 7 /* n */
        start local 7 // int n
        23: .line 150
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* l */
        start local 8 // java.util.List l
        24: .line 151
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        25: goto 39
        26: .line 153
      StackMap locals: int java.util.List int
      StackMap stack:
            aconst_null
            astore 10 /* aspectType */
        start local 10 // org.aspectj.weaver.UnresolvedType aspectType
        27: .line 154
            iload 6 /* isCompressed */
            ifeq 35
        28: .line 155
            aload 0 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readShort:()S
            istore 11 /* cpIndex */
        start local 11 // int cpIndex
        29: .line 156
            aload 0 /* s */
            iload 11 /* cpIndex */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readUtf8:(I)Ljava/lang/String;
            astore 12 /* signature */
        start local 12 // java.lang.String signature
        30: .line 157
            aload 12 /* signature */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 64
            if_icmpne 33
        31: .line 158
            getstatic org.aspectj.weaver.ResolvedType.MISSING:Lorg/aspectj/weaver/ResolvedType$Missing;
            astore 10 /* aspectType */
        32: .line 159
            goto 36
        33: .line 160
      StackMap locals: org.aspectj.weaver.UnresolvedType int java.lang.String
      StackMap stack:
            aload 12 /* signature */
            invokestatic org.aspectj.weaver.UnresolvedType.forSignature:(Ljava/lang/String;)Lorg/aspectj/weaver/UnresolvedType;
            astore 10 /* aspectType */
        end local 12 // java.lang.String signature
        end local 11 // int cpIndex
        34: .line 162
            goto 36
        35: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            invokestatic org.aspectj.weaver.UnresolvedType.read:(Ljava/io/DataInputStream;)Lorg/aspectj/weaver/UnresolvedType;
            astore 10 /* aspectType */
        36: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            aload 1 /* context */
            invokestatic org.aspectj.weaver.ResolvedTypeMunger.read:(Lorg/aspectj/weaver/VersionedDataInputStream;Lorg/aspectj/weaver/ISourceContext;)Lorg/aspectj/weaver/ResolvedTypeMunger;
            astore 11 /* typeMunger */
        start local 11 // org.aspectj.weaver.ResolvedTypeMunger typeMunger
        37: .line 166
            aload 8 /* l */
            new org.aspectj.weaver.WeaverStateInfo$Entry
            dup
            aload 10 /* aspectType */
            aload 11 /* typeMunger */
            invokespecial org.aspectj.weaver.WeaverStateInfo$Entry.<init>:(Lorg/aspectj/weaver/UnresolvedType;Lorg/aspectj/weaver/ResolvedTypeMunger;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.aspectj.weaver.ResolvedTypeMunger typeMunger
        end local 10 // org.aspectj.weaver.UnresolvedType aspectType
        38: .line 151
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 9 /* i */
            iload 7 /* n */
            if_icmplt 26
        end local 9 // int i
        40: .line 168
            new org.aspectj.weaver.WeaverStateInfo
            dup
            aload 8 /* l */
            iconst_0
            iload 3 /* isReweavable */
            iload 4 /* isReweavableCompressed */
            iload 5 /* isReweavableDiff */
            invokespecial org.aspectj.weaver.WeaverStateInfo.<init>:(Ljava/util/List;ZZZZ)V
            astore 9 /* wsi */
        start local 9 // org.aspectj.weaver.WeaverStateInfo wsi
        41: .line 169
            aload 9 /* wsi */
            aload 0 /* s */
            iload 6 /* isCompressed */
            invokestatic org.aspectj.weaver.WeaverStateInfo.readAnyReweavableData:(Lorg/aspectj/weaver/WeaverStateInfo;Lorg/aspectj/weaver/VersionedDataInputStream;Z)V
        42: .line 170
            aload 9 /* wsi */
            areturn
        end local 9 // org.aspectj.weaver.WeaverStateInfo wsi
        end local 8 // java.util.List l
        end local 7 // int n
        end local 6 // boolean isCompressed
        43: .line 172
      StackMap locals: org.aspectj.weaver.VersionedDataInputStream org.aspectj.weaver.ISourceContext int int int int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad WeaverState.Kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* b */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ".  File was :"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        44: .line 173
            aload 1 /* context */
            ifnonnull 45
            ldc "unknown"
            goto 46
      StackMap locals: org.aspectj.weaver.VersionedDataInputStream org.aspectj.weaver.ISourceContext int int int int
      StackMap stack: new 43 new 43 java.lang.StringBuilder
        45: aload 1 /* context */
            iconst_0
            iconst_0
            invokeinterface org.aspectj.weaver.ISourceContext.makeSourceLocation:(II)Lorg/aspectj/bridge/ISourceLocation;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals: org.aspectj.weaver.VersionedDataInputStream org.aspectj.weaver.ISourceContext int int int int
      StackMap stack: new 43 new 43 java.lang.StringBuilder java.lang.String
        46: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        47: .line 172
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // boolean isReweavableDiff
        end local 4 // boolean isReweavableCompressed
        end local 3 // boolean isReweavable
        end local 2 // byte b
        end local 1 // org.aspectj.weaver.ISourceContext context
        end local 0 // org.aspectj.weaver.VersionedDataInputStream s
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   48     0                       s  Lorg/aspectj/weaver/VersionedDataInputStream;
            0   48     1                 context  Lorg/aspectj/weaver/ISourceContext;
            1   48     2                       b  B
            4   48     3            isReweavable  Z
            9   48     4  isReweavableCompressed  Z
           14   48     5        isReweavableDiff  Z
           20   43     6            isCompressed  Z
           23   43     7                       n  I
           24   43     8                       l  Ljava/util/List<Lorg/aspectj/weaver/WeaverStateInfo$Entry;>;
           25   40     9                       i  I
           27   38    10              aspectType  Lorg/aspectj/weaver/UnresolvedType;
           29   34    11                 cpIndex  I
           30   34    12               signature  Ljava/lang/String;
           37   38    11              typeMunger  Lorg/aspectj/weaver/ResolvedTypeMunger;
           41   43     9                     wsi  Lorg/aspectj/weaver/WeaverStateInfo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      s        
      context  

  public void write(org.aspectj.weaver.CompressingDataOutputStream);
    descriptor: (Lorg/aspectj/weaver/CompressingDataOutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // org.aspectj.weaver.CompressingDataOutputStream s
         0: .line 197
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.checkCompressionEnabled:()V
         1: .line 198
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.oldStyle:Z
            ifne 2
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableCompressedMode:Z
            ifeq 3
         2: .line 199
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "shouldn't be writing this"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 202
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* weaverStateInfoKind */
        start local 2 // byte weaverStateInfoKind
         4: .line 203
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavable:Z
            ifeq 6
         5: .line 204
            iload 2 /* weaverStateInfoKind */
            bipush 16
            ior
            i2b
            istore 2 /* weaverStateInfoKind */
         6: .line 207
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
            ifeq 9
         7: .line 208
            aload 1 /* s */
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.write:([B)V
         8: .line 209
            iload 2 /* weaverStateInfoKind */
            bipush 64
            ior
            i2b
            istore 2 /* weaverStateInfoKind */
         9: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 2 /* weaverStateInfoKind */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeByte:(I)V
        10: .line 216
            aload 1 /* s */
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.compressionEnabled:I
            iconst_2
            if_icmpne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: org.aspectj.weaver.CompressingDataOutputStream
        11: iconst_0
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int
      StackMap stack: org.aspectj.weaver.CompressingDataOutputStream int
        12: putfield org.aspectj.weaver.CompressingDataOutputStream.compressionEnabled:Z
        13: .line 217
            aload 1 /* s */
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.canCompress:()Z
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeBoolean:(Z)V
        14: .line 219
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 3 /* n */
        start local 3 // int n
        15: .line 220
            aload 1 /* s */
            iload 3 /* n */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeShort:(I)V
        16: .line 221
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 23
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int int top java.util.Iterator
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.WeaverStateInfo$Entry
            astore 4 /* e */
        start local 4 // org.aspectj.weaver.WeaverStateInfo$Entry e
        18: .line 222
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.canCompress:()Z
            ifeq 21
        19: .line 223
            aload 1 /* s */
            aload 4 /* e */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.aspectType:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.UnresolvedType.getSignature:()Ljava/lang/String;
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeCompressedSignature:(Ljava/lang/String;)V
        20: .line 224
            goto 22
        21: .line 225
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int int org.aspectj.weaver.WeaverStateInfo$Entry java.util.Iterator
      StackMap stack:
            aload 4 /* e */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.aspectType:Lorg/aspectj/weaver/UnresolvedType;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.UnresolvedType.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
        22: .line 227
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.typeMunger:Lorg/aspectj/weaver/ResolvedTypeMunger;
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.ResolvedTypeMunger.write:(Lorg/aspectj/weaver/CompressingDataOutputStream;)V
        end local 4 // org.aspectj.weaver.WeaverStateInfo$Entry e
        23: .line 221
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        24: .line 229
            aload 0 /* this */
            aload 1 /* s */
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.canCompress:()Z
            invokestatic org.aspectj.weaver.WeaverStateInfo.writeAnyReweavableData:(Lorg/aspectj/weaver/WeaverStateInfo;Lorg/aspectj/weaver/CompressingDataOutputStream;Z)V
        end local 3 // int n
        25: .line 230
            goto 29
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int
      StackMap stack: java.lang.Throwable
        26: astore 6
        27: .line 231
            aload 1 /* s */
            iconst_1
            putfield org.aspectj.weaver.CompressingDataOutputStream.compressionEnabled:Z
        28: .line 232
            aload 6
            athrow
        29: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iconst_1
            putfield org.aspectj.weaver.CompressingDataOutputStream.compressionEnabled:Z
        30: .line 233
            return
        end local 2 // byte weaverStateInfoKind
        end local 1 // org.aspectj.weaver.CompressingDataOutputStream s
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   31     0                 this  Lorg/aspectj/weaver/WeaverStateInfo;
            0   31     1                    s  Lorg/aspectj/weaver/CompressingDataOutputStream;
            4   31     2  weaverStateInfoKind  B
           15   25     3                    n  I
           18   23     4                    e  Lorg/aspectj/weaver/WeaverStateInfo$Entry;
      Exception table:
        from    to  target  type
          10    26      26  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  public void markOverweavingInUse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 246
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
         1: .line 247
            aload 0 /* this */
            getstatic org.aspectj.weaver.WeaverStateInfo.NO_BYTES:[B
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
         2: .line 248
            return
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public void addConcreteMunger(org.aspectj.weaver.ConcreteTypeMunger);
    descriptor: (Lorg/aspectj/weaver/ConcreteTypeMunger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // org.aspectj.weaver.ConcreteTypeMunger munger
         0: .line 251
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
            new org.aspectj.weaver.WeaverStateInfo$Entry
            dup
            aload 1 /* munger */
            invokevirtual org.aspectj.weaver.ConcreteTypeMunger.getAspectType:()Lorg/aspectj/weaver/ResolvedType;
            aload 1 /* munger */
            invokevirtual org.aspectj.weaver.ConcreteTypeMunger.getMunger:()Lorg/aspectj/weaver/ResolvedTypeMunger;
            invokespecial org.aspectj.weaver.WeaverStateInfo$Entry.<init>:(Lorg/aspectj/weaver/UnresolvedType;Lorg/aspectj/weaver/ResolvedTypeMunger;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 252
            return
        end local 1 // org.aspectj.weaver.ConcreteTypeMunger munger
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1  munger  Lorg/aspectj/weaver/ConcreteTypeMunger;
    MethodParameters:
        Name  Flags
      munger  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 255
            new java.lang.StringBuilder
            dup
            ldc "WeaverStateInfo(aspectsAffectingType="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.oldStyle:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public java.util.List<org.aspectj.weaver.ConcreteTypeMunger> getTypeMungers(org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // org.aspectj.weaver.ResolvedType onType
         0: .line 259
            aload 1 /* onType */
            invokevirtual org.aspectj.weaver.ResolvedType.getWorld:()Lorg/aspectj/weaver/World;
            astore 2 /* world */
        start local 2 // org.aspectj.weaver.World world
         1: .line 260
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ret */
        start local 3 // java.util.List ret
         2: .line 261
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.typeMungers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.ResolvedType org.aspectj.weaver.World java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.WeaverStateInfo$Entry
            astore 4 /* entry */
        start local 4 // org.aspectj.weaver.WeaverStateInfo$Entry entry
         4: .line 262
            aload 2 /* world */
            aload 4 /* entry */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.aspectType:Lorg/aspectj/weaver/UnresolvedType;
            iconst_1
            invokevirtual org.aspectj.weaver.World.resolve:(Lorg/aspectj/weaver/UnresolvedType;Z)Lorg/aspectj/weaver/ResolvedType;
            astore 6 /* aspectType */
        start local 6 // org.aspectj.weaver.ResolvedType aspectType
         5: .line 263
            aload 6 /* aspectType */
            invokevirtual org.aspectj.weaver.ResolvedType.isMissing:()Z
            ifeq 10
         6: .line 264
            aload 2 /* world */
            getstatic org.aspectj.bridge.IMessage.ERROR:Lorg/aspectj/bridge/IMessage$Kind;
            ldc "aspectNeeded"
            aload 4 /* entry */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.aspectType:Lorg/aspectj/weaver/UnresolvedType;
            aload 1 /* onType */
            invokestatic org.aspectj.weaver.WeaverMessages.format:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
         7: .line 265
            aload 1 /* onType */
            invokevirtual org.aspectj.weaver.ResolvedType.getSourceLocation:()Lorg/aspectj/bridge/ISourceLocation;
            aconst_null
         8: .line 264
            invokevirtual org.aspectj.weaver.World.showMessage:(Lorg/aspectj/bridge/IMessage$Kind;Ljava/lang/String;Lorg/aspectj/bridge/ISourceLocation;Lorg/aspectj/bridge/ISourceLocation;)V
         9: .line 266
            goto 11
        10: .line 269
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.ResolvedType org.aspectj.weaver.World java.util.List org.aspectj.weaver.WeaverStateInfo$Entry java.util.Iterator org.aspectj.weaver.ResolvedType
      StackMap stack:
            aload 3 /* ret */
            new org.aspectj.weaver.TemporaryTypeMunger
            dup
            aload 4 /* entry */
            getfield org.aspectj.weaver.WeaverStateInfo$Entry.typeMunger:Lorg/aspectj/weaver/ResolvedTypeMunger;
            aload 6 /* aspectType */
            invokespecial org.aspectj.weaver.TemporaryTypeMunger.<init>:(Lorg/aspectj/weaver/ResolvedTypeMunger;Lorg/aspectj/weaver/ResolvedType;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.aspectj.weaver.ResolvedType aspectType
        end local 4 // org.aspectj.weaver.WeaverStateInfo$Entry entry
        11: .line 261
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.ResolvedType org.aspectj.weaver.World java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        12: .line 271
            aload 3 /* ret */
            areturn
        end local 3 // java.util.List ret
        end local 2 // org.aspectj.weaver.World world
        end local 1 // org.aspectj.weaver.ResolvedType onType
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/aspectj/weaver/WeaverStateInfo;
            0   13     1      onType  Lorg/aspectj/weaver/ResolvedType;
            1   13     2       world  Lorg/aspectj/weaver/World;
            2   13     3         ret  Ljava/util/List<Lorg/aspectj/weaver/ConcreteTypeMunger;>;
            4   11     4       entry  Lorg/aspectj/weaver/WeaverStateInfo$Entry;
            5   11     6  aspectType  Lorg/aspectj/weaver/ResolvedType;
    Signature: (Lorg/aspectj/weaver/ResolvedType;)Ljava/util/List<Lorg/aspectj/weaver/ConcreteTypeMunger;>;
    MethodParameters:
        Name  Flags
      onType  

  public boolean isOldStyle();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 275
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.oldStyle:Z
            ireturn
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public byte[] getUnwovenClassFileData();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 279
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            areturn
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public byte[] getUnwovenClassFileData(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // byte[] wovenClassFile
         0: .line 283
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFileIsADiff:Z
            ifeq 3
         1: .line 284
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* wovenClassFile */
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            invokevirtual org.aspectj.weaver.WeaverStateInfo.applyDiff:([B[B)[B
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
         2: .line 285
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFileIsADiff:Z
         3: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            areturn
        end local 1 // byte[] wovenClassFile
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    4     1  wovenClassFile  [B
    MethodParameters:
                Name  Flags
      wovenClassFile  

  public void setUnwovenClassFileData(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // byte[] data
         0: .line 291
            aload 0 /* this */
            aload 1 /* data */
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
         1: .line 292
            return
        end local 1 // byte[] data
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1  data  [B
    MethodParameters:
      Name  Flags
      data  

  public boolean isReweavable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 295
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavable:Z
            ireturn
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/WeaverStateInfo;

  public void setReweavable(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // boolean rw
         0: .line 299
            aload 0 /* this */
            iload 1 /* rw */
            putfield org.aspectj.weaver.WeaverStateInfo.reweavable:Z
         1: .line 300
            return
        end local 1 // boolean rw
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1    rw  Z
    MethodParameters:
      Name  Flags
      rw    

  public void addAspectsAffectingType(java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // java.util.Collection aspects
         0: .line 303
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            aload 1 /* aspects */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         1: .line 304
            return
        end local 1 // java.util.Collection aspects
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1  aspects  Ljava/util/Collection<Ljava/lang/String;>;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      aspects  

  public void addAspectAffectingType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // java.lang.String aspectSignature
         0: .line 307
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            aload 1 /* aspectSignature */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 308
            return
        end local 1 // java.lang.String aspectSignature
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    2     1  aspectSignature  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      aspectSignature  

  public java.util.Set<java.lang.String> getAspectsAffectingType();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
         0: .line 311
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            areturn
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/WeaverStateInfo;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static void readAnyReweavableData(org.aspectj.weaver.WeaverStateInfo, org.aspectj.weaver.VersionedDataInputStream, boolean);
    descriptor: (Lorg/aspectj/weaver/WeaverStateInfo;Lorg/aspectj/weaver/VersionedDataInputStream;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.aspectj.weaver.WeaverStateInfo wsi
        start local 1 // org.aspectj.weaver.VersionedDataInputStream s
        start local 2 // boolean compressed
         0: .line 316
            aload 0 /* wsi */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.isReweavable:()Z
            ifeq 43
         1: .line 318
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readShort:()S
            istore 3 /* numberAspectsAffectingType */
        start local 3 // int numberAspectsAffectingType
         2: .line 319
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 15
         4: .line 320
      StackMap locals: int int
      StackMap stack:
            aconst_null
            astore 5 /* str */
        start local 5 // java.lang.String str
         5: .line 321
            iload 2 /* compressed */
            ifeq 8
         6: .line 322
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readSignature:()Ljava/lang/String;
            astore 5 /* str */
         7: .line 323
            goto 13
         8: .line 324
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readUTF:()Ljava/lang/String;
            astore 5 /* str */
         9: .line 327
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.getMajorVersion:()I
            bipush 7
            if_icmpge 13
        10: .line 329
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* sb */
        start local 6 // java.lang.StringBuilder sb
        11: .line 330
            aload 6 /* sb */
            ldc "L"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* str */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 331
            aload 6 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* str */
        end local 6 // java.lang.StringBuilder sb
        13: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* wsi */
            aload 5 /* str */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.addAspectAffectingType:(Ljava/lang/String;)V
        end local 5 // java.lang.String str
        14: .line 319
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 3 /* numberAspectsAffectingType */
            if_icmplt 4
        end local 4 // int i
        16: .line 337
            aload 1 /* s */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.readInt:()I
            istore 4 /* unwovenClassFileSize */
        start local 4 // int unwovenClassFileSize
        17: .line 338
            aconst_null
            astore 5 /* classData */
        start local 5 // byte[] classData
        18: .line 340
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableCompressedMode:Z
            ifeq 34
        19: .line 341
            iload 4 /* unwovenClassFileSize */
            newarray 8
            astore 5 /* classData */
        20: .line 342
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* s */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
        21: .line 343
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            pop
        22: .line 344
            iconst_0
            istore 7 /* current */
        start local 7 // int current
        23: .line 345
            iload 4 /* unwovenClassFileSize */
            istore 8 /* bytesToGo */
        start local 8 // int bytesToGo
        24: .line 346
            goto 28
        25: .line 347
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.VersionedDataInputStream int int int byte[] java.util.zip.ZipInputStream int int
      StackMap stack:
            aload 6 /* zis */
            aload 5 /* classData */
            iload 7 /* current */
            iload 8 /* bytesToGo */
            invokevirtual java.util.zip.ZipInputStream.read:([BII)I
            istore 9 /* amount */
        start local 9 // int amount
        26: .line 348
            iload 7 /* current */
            iload 9 /* amount */
            iadd
            istore 7 /* current */
        27: .line 349
            iload 8 /* bytesToGo */
            iload 9 /* amount */
            isub
            istore 8 /* bytesToGo */
        end local 9 // int amount
        28: .line 346
      StackMap locals:
      StackMap stack:
            iload 8 /* bytesToGo */
            ifgt 25
        29: .line 351
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
        30: .line 352
            iload 8 /* bytesToGo */
            ifeq 41
        31: .line 353
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ERROR whilst reading compressed reweavable data, expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* unwovenClassFileSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        32: .line 354
            ldc " bytes, only found "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* current */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 353
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int bytesToGo
        end local 7 // int current
        end local 6 // java.util.zip.ZipInputStream zis
        34: .line 357
      StackMap locals:
      StackMap stack:
            iload 4 /* unwovenClassFileSize */
            newarray 8
            astore 5 /* classData */
        35: .line 358
            iload 4 /* unwovenClassFileSize */
            ifeq 41
        36: .line 359
            aload 1 /* s */
            aload 5 /* classData */
            invokevirtual org.aspectj.weaver.VersionedDataInputStream.read:([B)I
            istore 6 /* bytesread */
        start local 6 // int bytesread
        37: .line 360
            iload 6 /* bytesread */
            iload 4 /* unwovenClassFileSize */
            if_icmpeq 41
        38: .line 361
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ERROR whilst reading reweavable data, expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* unwovenClassFileSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        39: .line 362
            ldc " bytes, only found "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* bytesread */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 361
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // int bytesread
        41: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* wsi */
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
            putfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFileIsADiff:Z
        42: .line 370
            aload 0 /* wsi */
            aload 5 /* classData */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.setUnwovenClassFileData:([B)V
        end local 5 // byte[] classData
        end local 4 // int unwovenClassFileSize
        end local 3 // int numberAspectsAffectingType
        43: .line 372
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean compressed
        end local 1 // org.aspectj.weaver.VersionedDataInputStream s
        end local 0 // org.aspectj.weaver.WeaverStateInfo wsi
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   44     0                         wsi  Lorg/aspectj/weaver/WeaverStateInfo;
            0   44     1                           s  Lorg/aspectj/weaver/VersionedDataInputStream;
            0   44     2                  compressed  Z
            2   43     3  numberAspectsAffectingType  I
            3   16     4                           i  I
            5   14     5                         str  Ljava/lang/String;
           11   13     6                          sb  Ljava/lang/StringBuilder;
           17   43     4        unwovenClassFileSize  I
           18   43     5                   classData  [B
           21   34     6                         zis  Ljava/util/zip/ZipInputStream;
           23   34     7                     current  I
           24   34     8                   bytesToGo  I
           26   28     9                      amount  I
           37   41     6                   bytesread  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      wsi         
      s           
      compressed  

  public byte[] replaceKeyWithDiff(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // byte[] wovenClassFile
         0: .line 383
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
            ifeq 23
         1: .line 384
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* arrayStream */
        start local 2 // java.io.ByteArrayOutputStream arrayStream
         2: .line 385
            new java.io.DataOutputStream
            dup
            aload 2 /* arrayStream */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* s */
        start local 3 // java.io.DataOutputStream s
         3: .line 387
            aload 1 /* wovenClassFile */
            invokestatic org.aspectj.weaver.WeaverStateInfo.findEndOfKey:([B)I
            istore 4 /* endOfKey */
        start local 4 // int endOfKey
         4: .line 388
            iload 4 /* endOfKey */
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            arraylength
            isub
            istore 5 /* startOfKey */
        start local 5 // int startOfKey
         5: .line 392
            iload 5 /* startOfKey */
            iconst_4
            isub
            istore 6 /* oldLengthLocation */
        start local 6 // int oldLengthLocation
         6: .line 393
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            invokestatic org.aspectj.weaver.WeaverStateInfo.readInt:([BI)I
            istore 7 /* oldLength */
        start local 7 // int oldLength
         7: .line 394
            aload 1 /* wovenClassFile */
            iload 5 /* startOfKey */
            iload 4 /* endOfKey */
            invokestatic org.aspectj.weaver.WeaverStateInfo.deleteInArray:([BII)[B
            astore 1 /* wovenClassFile */
         8: .line 396
            iload 6 /* oldLengthLocation */
            newarray 8
            astore 8 /* wovenClassFileUpToWSI */
        start local 8 // byte[] wovenClassFileUpToWSI
         9: .line 397
            aload 1 /* wovenClassFile */
            iconst_0
            aload 8 /* wovenClassFileUpToWSI */
            iconst_0
            iload 6 /* oldLengthLocation */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 399
            aload 0 /* this */
            aload 8 /* wovenClassFileUpToWSI */
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            invokevirtual org.aspectj.weaver.WeaverStateInfo.generateDiff:([B[B)[B
            astore 9 /* diff */
        start local 9 // byte[] diff
        11: .line 401
            aload 3 /* s */
            aload 9 /* diff */
            arraylength
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        12: .line 402
            aload 3 /* s */
            aload 9 /* diff */
            invokevirtual java.io.DataOutputStream.write:([B)V
        13: .line 403
            goto 15
      StackMap locals: org.aspectj.weaver.WeaverStateInfo byte[] java.io.ByteArrayOutputStream java.io.DataOutputStream int int int int byte[] byte[]
      StackMap stack: java.io.IOException
        14: pop
        15: .line 405
      StackMap locals:
      StackMap stack:
            aload 2 /* arrayStream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 9 /* diff */
        16: .line 409
            iload 7 /* oldLength */
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            arraylength
            isub
            aload 9 /* diff */
            arraylength
            iadd
            istore 10 /* newLength */
        start local 10 // int newLength
        17: .line 410
            aload 0 /* this */
            iload 10 /* newLength */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.serializeInt:(I)[B
            astore 11 /* newLengthBytes */
        start local 11 // byte[] newLengthBytes
        18: .line 413
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            aload 11 /* newLengthBytes */
            iconst_0
            baload
            bastore
        19: .line 414
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            iconst_1
            iadd
            aload 11 /* newLengthBytes */
            iconst_1
            baload
            bastore
        20: .line 415
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            iconst_2
            iadd
            aload 11 /* newLengthBytes */
            iconst_2
            baload
            bastore
        21: .line 416
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            iconst_3
            iadd
            aload 11 /* newLengthBytes */
            iconst_3
            baload
            bastore
        22: .line 419
            aload 9 /* diff */
            aload 1 /* wovenClassFile */
            iload 6 /* oldLengthLocation */
            iconst_4
            iadd
            iload 7 /* oldLength */
            iadd
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            arraylength
            isub
            invokestatic org.aspectj.weaver.WeaverStateInfo.insertArray:([B[BI)[B
            astore 1 /* wovenClassFile */
        end local 11 // byte[] newLengthBytes
        end local 10 // int newLength
        end local 9 // byte[] diff
        end local 8 // byte[] wovenClassFileUpToWSI
        end local 7 // int oldLength
        end local 6 // int oldLengthLocation
        end local 5 // int startOfKey
        end local 4 // int endOfKey
        end local 3 // java.io.DataOutputStream s
        end local 2 // java.io.ByteArrayOutputStream arrayStream
        23: .line 421
      StackMap locals: org.aspectj.weaver.WeaverStateInfo byte[]
      StackMap stack:
            aload 1 /* wovenClassFile */
            areturn
        end local 1 // byte[] wovenClassFile
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   24     0                   this  Lorg/aspectj/weaver/WeaverStateInfo;
            0   24     1         wovenClassFile  [B
            2   23     2            arrayStream  Ljava/io/ByteArrayOutputStream;
            3   23     3                      s  Ljava/io/DataOutputStream;
            4   23     4               endOfKey  I
            5   23     5             startOfKey  I
            6   23     6      oldLengthLocation  I
            7   23     7              oldLength  I
            9   23     8  wovenClassFileUpToWSI  [B
           11   23     9                   diff  [B
           17   23    10              newLength  I
           18   23    11         newLengthBytes  [B
      Exception table:
        from    to  target  type
          11    13      14  Class java.io.IOException
    MethodParameters:
                Name  Flags
      wovenClassFile  

  private static final int findEndOfKey(byte[]);
    descriptor: ([B)I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // byte[] wovenClassFile
         0: .line 426
            aload 0 /* wovenClassFile */
            arraylength
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
         1: goto 5
         2: .line 427
      StackMap locals: int
      StackMap stack:
            aload 0 /* wovenClassFile */
            iload 1 /* i */
            invokestatic org.aspectj.weaver.WeaverStateInfo.endOfKeyHere:([BI)Z
            ifeq 4
         3: .line 428
            iload 1 /* i */
            iconst_1
            iadd
            ireturn
         4: .line 426
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            ifgt 2
        end local 1 // int i
         6: .line 431
            new java.lang.RuntimeException
            dup
            ldc "key not found in wovenClassFile"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // byte[] wovenClassFile
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  wovenClassFile  [B
            1    6     1               i  I
    MethodParameters:
                Name  Flags
      wovenClassFile  

  private static final boolean endOfKeyHere(byte[], int);
    descriptor: ([BI)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // byte[] lookIn
        start local 1 // int i
         0: .line 435
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 5
         2: .line 436
      StackMap locals: int
      StackMap stack:
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            arraylength
            iconst_1
            isub
            iload 2 /* j */
            isub
            baload
            aload 0 /* lookIn */
            iload 1 /* i */
            iload 2 /* j */
            isub
            baload
            if_icmpeq 4
         3: .line 437
            iconst_0
            ireturn
         4: .line 435
      StackMap locals:
      StackMap stack:
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* j */
            getstatic org.aspectj.weaver.WeaverStateInfo.key:[B
            arraylength
            if_icmplt 2
        end local 2 // int j
         6: .line 440
            iconst_1
            ireturn
        end local 1 // int i
        end local 0 // byte[] lookIn
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  lookIn  [B
            0    7     1       i  I
            1    6     2       j  I
    MethodParameters:
        Name  Flags
      lookIn  
      i       

  private static final byte[] insertArray(byte[], byte[], int);
    descriptor: ([B[BI)[B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // byte[] toInsert
        start local 1 // byte[] original
        start local 2 // int offset
         0: .line 444
            aload 1 /* original */
            arraylength
            aload 0 /* toInsert */
            arraylength
            iadd
            newarray 8
            astore 3 /* result */
        start local 3 // byte[] result
         1: .line 445
            aload 1 /* original */
            iconst_0
            aload 3 /* result */
            iconst_0
            iload 2 /* offset */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 446
            aload 0 /* toInsert */
            iconst_0
            aload 3 /* result */
            iload 2 /* offset */
            aload 0 /* toInsert */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 447
            aload 1 /* original */
            iload 2 /* offset */
            aload 3 /* result */
            iload 2 /* offset */
            aload 0 /* toInsert */
            arraylength
            iadd
            aload 1 /* original */
            arraylength
            iload 2 /* offset */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 448
            aload 3 /* result */
            areturn
        end local 3 // byte[] result
        end local 2 // int offset
        end local 1 // byte[] original
        end local 0 // byte[] toInsert
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  toInsert  [B
            0    5     1  original  [B
            0    5     2    offset  I
            1    5     3    result  [B
    MethodParameters:
          Name  Flags
      toInsert  
      original  
      offset    

  private static final int readInt(byte[], int);
    descriptor: ([BI)I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // byte[] a
        start local 1 // int offset
         0: .line 452
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* a */
            iload 1 /* offset */
            iconst_4
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            astore 2 /* b */
        start local 2 // java.io.ByteArrayInputStream b
         1: .line 453
            new java.io.DataInputStream
            dup
            aload 2 /* b */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* d */
        start local 3 // java.io.DataInputStream d
         2: .line 454
            iconst_m1
            istore 4 /* length */
        start local 4 // int length
         3: .line 456
            aload 3 /* d */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 4 /* length */
         4: .line 457
            goto 7
      StackMap locals: byte[] int java.io.ByteArrayInputStream java.io.DataInputStream int
      StackMap stack: java.io.IOException
         5: pop
         6: .line 458
            new java.lang.RuntimeException
            dup
            ldc "readInt called with a bad array or offset"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 460
      StackMap locals:
      StackMap stack:
            iload 4 /* length */
            ireturn
        end local 4 // int length
        end local 3 // java.io.DataInputStream d
        end local 2 // java.io.ByteArrayInputStream b
        end local 1 // int offset
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [B
            0    8     1  offset  I
            1    8     2       b  Ljava/io/ByteArrayInputStream;
            2    8     3       d  Ljava/io/DataInputStream;
            3    8     4  length  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    MethodParameters:
        Name  Flags
      a       
      offset  

  private static final byte[] deleteInArray(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // byte[] a
        start local 1 // int start
        start local 2 // int end
         0: .line 464
            iload 2 /* end */
            iload 1 /* start */
            isub
            istore 3 /* lengthToDelete */
        start local 3 // int lengthToDelete
         1: .line 465
            aload 0 /* a */
            arraylength
            iload 3 /* lengthToDelete */
            isub
            newarray 8
            astore 4 /* result */
        start local 4 // byte[] result
         2: .line 466
            aload 0 /* a */
            iconst_0
            aload 4 /* result */
            iconst_0
            iload 1 /* start */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 467
            aload 0 /* a */
            iload 2 /* end */
            aload 4 /* result */
            iload 1 /* start */
            aload 0 /* a */
            arraylength
            iload 2 /* end */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 468
            aload 4 /* result */
            areturn
        end local 4 // byte[] result
        end local 3 // int lengthToDelete
        end local 2 // int end
        end local 1 // int start
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0               a  [B
            0    5     1           start  I
            0    5     2             end  I
            1    5     3  lengthToDelete  I
            2    5     4          result  [B
    MethodParameters:
       Name  Flags
      a      
      start  
      end    

  byte[] generateDiff(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // byte[] wovenClassFile
        start local 2 // byte[] unWovenClassFile
         0: .line 490
            bipush 10
            istore 3 /* lookingAt */
        start local 3 // int lookingAt
         1: .line 491
            aload 1 /* wovenClassFile */
            arraylength
            aload 2 /* unWovenClassFile */
            arraylength
            if_icmpge 2
            aload 1 /* wovenClassFile */
            arraylength
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 2 /* unWovenClassFile */
            arraylength
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* shorterLength */
        start local 4 // int shorterLength
         4: .line 492
            goto 6
         5: .line 493
      StackMap locals: int
      StackMap stack:
            iinc 3 /* lookingAt */ 1
         6: .line 492
      StackMap locals:
      StackMap stack:
            iload 3 /* lookingAt */
            iload 4 /* shorterLength */
            if_icmpge 7
            aload 1 /* wovenClassFile */
            iload 3 /* lookingAt */
            baload
            aload 2 /* unWovenClassFile */
            iload 3 /* lookingAt */
            baload
            if_icmpeq 5
         7: .line 495
      StackMap locals:
      StackMap stack:
            iload 3 /* lookingAt */
            bipush 10
            isub
            istore 5 /* lengthInCommon */
        start local 5 // int lengthInCommon
         8: .line 496
            aload 2 /* unWovenClassFile */
            arraylength
            iconst_4
            isub
            iload 5 /* lengthInCommon */
            isub
            newarray 8
            astore 6 /* diff */
        start local 6 // byte[] diff
         9: .line 499
            aload 6 /* diff */
            iconst_0
            aload 2 /* unWovenClassFile */
            bipush 8
            baload
            bastore
        10: .line 500
            aload 6 /* diff */
            iconst_1
            aload 2 /* unWovenClassFile */
            bipush 9
            baload
            bastore
        11: .line 503
            aload 0 /* this */
            iload 5 /* lengthInCommon */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.serializeInt:(I)[B
            astore 7 /* lengthInCommonBytes */
        start local 7 // byte[] lengthInCommonBytes
        12: .line 504
            aload 6 /* diff */
            iconst_2
            aload 7 /* lengthInCommonBytes */
            iconst_0
            baload
            bastore
        13: .line 505
            aload 6 /* diff */
            iconst_3
            aload 7 /* lengthInCommonBytes */
            iconst_1
            baload
            bastore
        14: .line 506
            aload 6 /* diff */
            iconst_4
            aload 7 /* lengthInCommonBytes */
            iconst_2
            baload
            bastore
        15: .line 507
            aload 6 /* diff */
            iconst_5
            aload 7 /* lengthInCommonBytes */
            iconst_3
            baload
            bastore
        16: .line 510
            aload 2 /* unWovenClassFile */
            bipush 10
            iload 5 /* lengthInCommon */
            iadd
            aload 6 /* diff */
            bipush 6
            aload 6 /* diff */
            arraylength
            bipush 6
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 512
            aload 6 /* diff */
            areturn
        end local 7 // byte[] lengthInCommonBytes
        end local 6 // byte[] diff
        end local 5 // int lengthInCommon
        end local 4 // int shorterLength
        end local 3 // int lookingAt
        end local 2 // byte[] unWovenClassFile
        end local 1 // byte[] wovenClassFile
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   18     0                 this  Lorg/aspectj/weaver/WeaverStateInfo;
            0   18     1       wovenClassFile  [B
            0   18     2     unWovenClassFile  [B
            1   18     3            lookingAt  I
            4   18     4        shorterLength  I
            8   18     5       lengthInCommon  I
            9   18     6                 diff  [B
           12   18     7  lengthInCommonBytes  [B
    MethodParameters:
                  Name  Flags
      wovenClassFile    
      unWovenClassFile  

  byte[] applyDiff(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // byte[] wovenClassFile
        start local 2 // byte[] diff
         0: .line 517
            aload 2 /* diff */
            iconst_2
            invokestatic org.aspectj.weaver.WeaverStateInfo.readInt:([BI)I
            istore 3 /* lengthInCommon */
        start local 3 // int lengthInCommon
         1: .line 518
            iconst_4
            aload 2 /* diff */
            arraylength
            iadd
            iload 3 /* lengthInCommon */
            iadd
            newarray 8
            astore 4 /* unWovenClassFile */
        start local 4 // byte[] unWovenClassFile
         2: .line 521
            aload 1 /* wovenClassFile */
            iconst_0
            aload 4 /* unWovenClassFile */
            iconst_0
            bipush 8
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 524
            aload 4 /* unWovenClassFile */
            bipush 8
            aload 2 /* diff */
            iconst_0
            baload
            bastore
         4: .line 525
            aload 4 /* unWovenClassFile */
            bipush 9
            aload 2 /* diff */
            iconst_1
            baload
            bastore
         5: .line 528
            aload 1 /* wovenClassFile */
            bipush 10
            aload 4 /* unWovenClassFile */
            bipush 10
            iload 3 /* lengthInCommon */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 531
            aload 2 /* diff */
            bipush 6
            aload 4 /* unWovenClassFile */
            bipush 10
            iload 3 /* lengthInCommon */
            iadd
            aload 2 /* diff */
            arraylength
            bipush 6
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 533
            aload 4 /* unWovenClassFile */
            areturn
        end local 4 // byte[] unWovenClassFile
        end local 3 // int lengthInCommon
        end local 2 // byte[] diff
        end local 1 // byte[] wovenClassFile
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    8     1    wovenClassFile  [B
            0    8     2              diff  [B
            1    8     3    lengthInCommon  I
            2    8     4  unWovenClassFile  [B
    MethodParameters:
                Name  Flags
      wovenClassFile  
      diff            

  private byte[] serializeInt(int);
    descriptor: (I)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // int i
         0: .line 537
            new java.io.ByteArrayOutputStream
            dup
            iconst_4
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 2 /* bos */
        start local 2 // java.io.ByteArrayOutputStream bos
         1: .line 538
            new java.io.DataOutputStream
            dup
            aload 2 /* bos */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* dos */
        start local 3 // java.io.DataOutputStream dos
         2: .line 540
            aload 3 /* dos */
            iload 1 /* i */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 541
            goto 5
      StackMap locals: org.aspectj.weaver.WeaverStateInfo int java.io.ByteArrayOutputStream java.io.DataOutputStream
      StackMap stack: java.io.IOException
         4: pop
         5: .line 543
      StackMap locals:
      StackMap stack:
            aload 2 /* bos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 3 // java.io.DataOutputStream dos
        end local 2 // java.io.ByteArrayOutputStream bos
        end local 1 // int i
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    6     1     i  I
            1    6     2   bos  Ljava/io/ByteArrayOutputStream;
            2    6     3   dos  Ljava/io/DataOutputStream;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    MethodParameters:
      Name  Flags
      i     

  private static void writeAnyReweavableData(org.aspectj.weaver.WeaverStateInfo, org.aspectj.weaver.CompressingDataOutputStream, boolean);
    descriptor: (Lorg/aspectj/weaver/WeaverStateInfo;Lorg/aspectj/weaver/CompressingDataOutputStream;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.WeaverStateInfo wsi
        start local 1 // org.aspectj.weaver.CompressingDataOutputStream s
        start local 2 // boolean compress
         0: .line 548
            aload 0 /* wsi */
            invokevirtual org.aspectj.weaver.WeaverStateInfo.isReweavable:()Z
            ifeq 13
         1: .line 550
            aload 1 /* s */
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeShort:(I)V
         2: .line 551
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* type */
        start local 3 // java.lang.String type
         4: .line 552
            iload 2 /* compress */
            ifeq 7
         5: .line 553
            aload 1 /* s */
            aload 3 /* type */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeCompressedSignature:(Ljava/lang/String;)V
         6: .line 554
            goto 8
         7: .line 555
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* s */
            aload 3 /* type */
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeUTF:(Ljava/lang/String;)V
        end local 3 // java.lang.String type
         8: .line 551
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 558
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            astore 3 /* data */
        start local 3 // byte[] data
        10: .line 561
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.reweavableDiffMode:Z
            ifne 13
        11: .line 562
            aload 1 /* s */
            aload 3 /* data */
            arraylength
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.writeInt:(I)V
        12: .line 563
            aload 1 /* s */
            aload 0 /* wsi */
            getfield org.aspectj.weaver.WeaverStateInfo.unwovenClassFile:[B
            invokevirtual org.aspectj.weaver.CompressingDataOutputStream.write:([B)V
        end local 3 // byte[] data
        13: .line 566
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.CompressingDataOutputStream int
      StackMap stack:
            return
        end local 2 // boolean compress
        end local 1 // org.aspectj.weaver.CompressingDataOutputStream s
        end local 0 // org.aspectj.weaver.WeaverStateInfo wsi
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0       wsi  Lorg/aspectj/weaver/WeaverStateInfo;
            0   14     1         s  Lorg/aspectj/weaver/CompressingDataOutputStream;
            0   14     2  compress  Z
            4    8     3      type  Ljava/lang/String;
           10   13     3      data  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      wsi       
      s         
      compress  

  public boolean isAspectAlreadyApplied(org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.aspectj.weaver.WeaverStateInfo this
        start local 1 // org.aspectj.weaver.ResolvedType someAspect
         0: .line 572
            aload 1 /* someAspect */
            invokevirtual org.aspectj.weaver.ResolvedType.getSignature:()Ljava/lang/String;
            astore 2 /* someAspectSignature */
        start local 2 // java.lang.String someAspectSignature
         1: .line 573
            aload 0 /* this */
            getfield org.aspectj.weaver.WeaverStateInfo.aspectsAffectingType:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.aspectj.weaver.WeaverStateInfo org.aspectj.weaver.ResolvedType java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* aspectSignature */
        start local 3 // java.lang.String aspectSignature
         3: .line 574
            aload 3 /* aspectSignature */
            aload 2 /* someAspectSignature */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 575
            iconst_1
            ireturn
        end local 3 // java.lang.String aspectSignature
         5: .line 573
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 578
            iconst_0
            ireturn
        end local 2 // java.lang.String someAspectSignature
        end local 1 // org.aspectj.weaver.ResolvedType someAspect
        end local 0 // org.aspectj.weaver.WeaverStateInfo this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/aspectj/weaver/WeaverStateInfo;
            0    7     1           someAspect  Lorg/aspectj/weaver/ResolvedType;
            1    7     2  someAspectSignature  Ljava/lang/String;
            3    5     3      aspectSignature  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      someAspect  
}
SourceFile: "WeaverStateInfo.java"
NestMembers:
  org.aspectj.weaver.WeaverStateInfo$Entry
InnerClasses:
  public final Kind = org.aspectj.bridge.IMessage$Kind of org.aspectj.bridge.IMessage
  private Entry = org.aspectj.weaver.WeaverStateInfo$Entry of org.aspectj.weaver.WeaverStateInfo