public class net.bytebuddy.implementation.EqualsMethod implements net.bytebuddy.implementation.Implementation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.bytebuddy.implementation.EqualsMethod
  super_class: java.lang.Object
{
  private static final net.bytebuddy.description.method.MethodDescription$InDefinedShape EQUALS;
    descriptor: Lnet/bytebuddy/description/method/MethodDescription$InDefinedShape;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final net.bytebuddy.implementation.EqualsMethod$SuperClassCheck superClassCheck;
    descriptor: Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck typeCompatibilityCheck;
    descriptor: Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final net.bytebuddy.matcher.ElementMatcher$Junction<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape> ignored;
    descriptor: Lnet/bytebuddy/matcher/ElementMatcher$Junction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;

  private final net.bytebuddy.matcher.ElementMatcher$Junction<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape> nonNullable;
    descriptor: Lnet/bytebuddy/matcher/ElementMatcher$Junction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;

  private final java.util.Comparator<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 58
            getstatic net.bytebuddy.description.type.TypeDescription.OBJECT:Lnet/bytebuddy/description/type/TypeDescription;
         1: .line 59
            invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredMethods:()Lnet/bytebuddy/description/method/MethodList;
         2: .line 60
            invokestatic net.bytebuddy.matcher.ElementMatchers.isEquals:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            invokeinterface net.bytebuddy.description.method.MethodList.filter:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/FilterableList;
            checkcast net.bytebuddy.description.method.MethodList
         3: .line 61
            invokeinterface net.bytebuddy.description.method.MethodList.getOnly:()Ljava/lang/Object;
            checkcast net.bytebuddy.description.method.MethodDescription$InDefinedShape
         4: .line 58
            putstatic net.bytebuddy.implementation.EqualsMethod.EQUALS:Lnet/bytebuddy/description/method/MethodDescription$InDefinedShape;
         5: .line 61
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(net.bytebuddy.implementation.EqualsMethod$SuperClassCheck);
    descriptor: (Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.implementation.EqualsMethod$SuperClassCheck superClassCheck
         0: .line 94
            aload 0 /* this */
            aload 1 /* superClassCheck */
            getstatic net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck.EXACT:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            invokestatic net.bytebuddy.matcher.ElementMatchers.none:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            invokestatic net.bytebuddy.matcher.ElementMatchers.none:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            getstatic net.bytebuddy.implementation.EqualsMethod$NaturalOrderComparator.INSTANCE:Lnet/bytebuddy/implementation/EqualsMethod$NaturalOrderComparator;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
         1: .line 95
            return
        end local 1 // net.bytebuddy.implementation.EqualsMethod$SuperClassCheck superClassCheck
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    2     1  superClassCheck  Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
    MethodParameters:
                 Name  Flags
      superClassCheck  

  private void <init>(net.bytebuddy.implementation.EqualsMethod$SuperClassCheck, net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck, net.bytebuddy.matcher.ElementMatcher$Junction<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>, net.bytebuddy.matcher.ElementMatcher$Junction<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>, java.util.Comparator<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
    descriptor: (Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.implementation.EqualsMethod$SuperClassCheck superClassCheck
        start local 2 // net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck typeCompatibilityCheck
        start local 3 // net.bytebuddy.matcher.ElementMatcher$Junction ignored
        start local 4 // net.bytebuddy.matcher.ElementMatcher$Junction nonNullable
        start local 5 // java.util.Comparator comparator
         0: .line 106
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            aload 1 /* superClassCheck */
            putfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
         2: .line 112
            aload 0 /* this */
            aload 2 /* typeCompatibilityCheck */
            putfield net.bytebuddy.implementation.EqualsMethod.typeCompatibilityCheck:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
         3: .line 113
            aload 0 /* this */
            aload 3 /* ignored */
            putfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
         4: .line 114
            aload 0 /* this */
            aload 4 /* nonNullable */
            putfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
         5: .line 115
            aload 0 /* this */
            aload 5 /* comparator */
            putfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
         6: .line 116
            return
        end local 5 // java.util.Comparator comparator
        end local 4 // net.bytebuddy.matcher.ElementMatcher$Junction nonNullable
        end local 3 // net.bytebuddy.matcher.ElementMatcher$Junction ignored
        end local 2 // net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck typeCompatibilityCheck
        end local 1 // net.bytebuddy.implementation.EqualsMethod$SuperClassCheck superClassCheck
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    7     1         superClassCheck  Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            0    7     2  typeCompatibilityCheck  Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            0    7     3                 ignored  Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
            0    7     4             nonNullable  Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
            0    7     5              comparator  Ljava/util/Comparator<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    Signature: (Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;Lnet/bytebuddy/matcher/ElementMatcher$Junction<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;Ljava/util/Comparator<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)V
    MethodParameters:
                        Name  Flags
      superClassCheck         
      typeCompatibilityCheck  
      ignored                 
      nonNullable             
      comparator              

  public static net.bytebuddy.implementation.EqualsMethod requiringSuperClassEquality();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 124
            new net.bytebuddy.implementation.EqualsMethod
            dup
            getstatic net.bytebuddy.implementation.EqualsMethod$SuperClassCheck.ENABLED:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static net.bytebuddy.implementation.EqualsMethod isolated();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 133
            new net.bytebuddy.implementation.EqualsMethod
            dup
            getstatic net.bytebuddy.implementation.EqualsMethod$SuperClassCheck.DISABLED:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public net.bytebuddy.implementation.EqualsMethod withIgnoredFields(net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
    descriptor: (Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.matcher.ElementMatcher ignored
         0: .line 144
            new net.bytebuddy.implementation.EqualsMethod
            dup
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.typeCompatibilityCheck:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 1 /* ignored */
            invokeinterface net.bytebuddy.matcher.ElementMatcher$Junction.or:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
            areturn
        end local 1 // net.bytebuddy.matcher.ElementMatcher ignored
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    1     1  ignored  Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    Signature: (Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)Lnet/bytebuddy/implementation/EqualsMethod;
    MethodParameters:
         Name  Flags
      ignored  

  public net.bytebuddy.implementation.EqualsMethod withNonNullableFields(net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
    descriptor: (Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.matcher.ElementMatcher nonNullable
         0: .line 156
            new net.bytebuddy.implementation.EqualsMethod
            dup
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.typeCompatibilityCheck:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 1 /* nonNullable */
            invokeinterface net.bytebuddy.matcher.ElementMatcher$Junction.or:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
            areturn
        end local 1 // net.bytebuddy.matcher.ElementMatcher nonNullable
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    1     1  nonNullable  Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    Signature: (Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)Lnet/bytebuddy/implementation/EqualsMethod;
    MethodParameters:
             Name  Flags
      nonNullable  

  public net.bytebuddy.implementation.EqualsMethod withPrimitiveTypedFieldsFirst();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
         0: .line 165
            aload 0 /* this */
            getstatic net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator.FOR_PRIMITIVE_TYPES:Lnet/bytebuddy/implementation/EqualsMethod$TypePropertyComparator;
            invokevirtual net.bytebuddy.implementation.EqualsMethod.withFieldOrder:(Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
            areturn
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/bytebuddy/implementation/EqualsMethod;

  public net.bytebuddy.implementation.EqualsMethod withEnumerationTypedFieldsFirst();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
         0: .line 174
            aload 0 /* this */
            getstatic net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator.FOR_ENUMERATION_TYPES:Lnet/bytebuddy/implementation/EqualsMethod$TypePropertyComparator;
            invokevirtual net.bytebuddy.implementation.EqualsMethod.withFieldOrder:(Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
            areturn
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/bytebuddy/implementation/EqualsMethod;

  public net.bytebuddy.implementation.EqualsMethod withPrimitiveWrapperTypedFieldsFirst();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
         0: .line 183
            aload 0 /* this */
            getstatic net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator.FOR_PRIMITIVE_WRAPPER_TYPES:Lnet/bytebuddy/implementation/EqualsMethod$TypePropertyComparator;
            invokevirtual net.bytebuddy.implementation.EqualsMethod.withFieldOrder:(Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
            areturn
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/bytebuddy/implementation/EqualsMethod;

  public net.bytebuddy.implementation.EqualsMethod withStringTypedFieldsFirst();
    descriptor: ()Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
         0: .line 192
            aload 0 /* this */
            getstatic net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator.FOR_STRING_TYPES:Lnet/bytebuddy/implementation/EqualsMethod$TypePropertyComparator;
            invokevirtual net.bytebuddy.implementation.EqualsMethod.withFieldOrder:(Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
            areturn
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/bytebuddy/implementation/EqualsMethod;

  public net.bytebuddy.implementation.EqualsMethod withFieldOrder(java.util.Comparator<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
    descriptor: (Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // java.util.Comparator comparator
         0: .line 204
            new net.bytebuddy.implementation.EqualsMethod
            dup
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.typeCompatibilityCheck:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            new net.bytebuddy.implementation.EqualsMethod$CompoundComparator
            dup
            iconst_2
            anewarray java.util.Comparator
            dup
            iconst_0
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
            aastore
            dup
            iconst_1
            aload 1 /* comparator */
            aastore
            invokespecial net.bytebuddy.implementation.EqualsMethod$CompoundComparator.<init>:([Ljava/util/Comparator;)V
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
            areturn
        end local 1 // java.util.Comparator comparator
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    1     1  comparator  Ljava/util/Comparator<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    Signature: (Ljava/util/Comparator<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)Lnet/bytebuddy/implementation/EqualsMethod;
    MethodParameters:
            Name  Flags
      comparator  

  public net.bytebuddy.implementation.Implementation withSubclassEquality();
    descriptor: ()Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
         0: .line 215
            new net.bytebuddy.implementation.EqualsMethod
            dup
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            getstatic net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck.SUBCLASS:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
            invokespecial net.bytebuddy.implementation.EqualsMethod.<init>:(Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Lnet/bytebuddy/matcher/ElementMatcher$Junction;Ljava/util/Comparator;)V
            areturn
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/bytebuddy/implementation/EqualsMethod;

  public net.bytebuddy.dynamic.scaffold.InstrumentedType prepare(net.bytebuddy.dynamic.scaffold.InstrumentedType);
    descriptor: (Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;)Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.dynamic.scaffold.InstrumentedType instrumentedType
         0: .line 222
            aload 1 /* instrumentedType */
            areturn
        end local 1 // net.bytebuddy.dynamic.scaffold.InstrumentedType instrumentedType
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lnet/bytebuddy/implementation/EqualsMethod;
            0    1     1  instrumentedType  Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;
    MethodParameters:
                  Name  Flags
      instrumentedType  

  public net.bytebuddy.implementation.bytecode.ByteCodeAppender appender(net.bytebuddy.implementation.Implementation$Target);
    descriptor: (Lnet/bytebuddy/implementation/Implementation$Target;)Lnet/bytebuddy/implementation/bytecode/ByteCodeAppender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=3, args_size=2
        start local 0 // net.bytebuddy.implementation.EqualsMethod this
        start local 1 // net.bytebuddy.implementation.Implementation$Target implementationTarget
         0: .line 229
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            invokeinterface net.bytebuddy.description.type.TypeDescription.isInterface:()Z
            ifeq 2
         1: .line 230
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot implement meaningful equals method for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 232
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
         3: .line 233
            invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredFields:()Lnet/bytebuddy/description/field/FieldList;
         4: .line 234
            invokestatic net.bytebuddy.matcher.ElementMatchers.isStatic:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.ignored:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            invokeinterface net.bytebuddy.matcher.ElementMatcher$Junction.or:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            invokestatic net.bytebuddy.matcher.ElementMatchers.not:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
            invokeinterface net.bytebuddy.description.field.FieldList.filter:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/FilterableList;
         5: .line 232
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* fields */
        start local 2 // java.util.List fields
         6: .line 235
            aload 2 /* fields */
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.comparator:Ljava/util/Comparator;
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         7: .line 236
            new net.bytebuddy.implementation.EqualsMethod$Appender
            dup
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            new net.bytebuddy.implementation.bytecode.StackManipulation$Compound
            dup
            iconst_5
            anewarray net.bytebuddy.implementation.bytecode.StackManipulation
            dup
            iconst_0
         8: .line 237
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.superClassCheck:Lnet/bytebuddy/implementation/EqualsMethod$SuperClassCheck;
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            invokevirtual net.bytebuddy.implementation.EqualsMethod$SuperClassCheck.resolve:(Lnet/bytebuddy/description/type/TypeDescription;)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            aastore
            dup
            iconst_1
         9: .line 238
            invokestatic net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.loadThis:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            aastore
            dup
            iconst_2
        10: .line 239
            getstatic net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.REFERENCE:Lnet/bytebuddy/implementation/bytecode/member/MethodVariableAccess;
            iconst_1
            invokevirtual net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.loadFrom:(I)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            aastore
            dup
            iconst_3
        11: .line 240
            invokestatic net.bytebuddy.implementation.EqualsMethod$ConditionalReturn.onIdentity:()Lnet/bytebuddy/implementation/EqualsMethod$ConditionalReturn;
            invokevirtual net.bytebuddy.implementation.EqualsMethod$ConditionalReturn.returningTrue:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            aastore
            dup
            iconst_4
        12: .line 241
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.typeCompatibilityCheck:Lnet/bytebuddy/implementation/EqualsMethod$TypeCompatibilityCheck;
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            invokevirtual net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck.resolve:(Lnet/bytebuddy/description/type/TypeDescription;)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            aastore
            invokespecial net.bytebuddy.implementation.bytecode.StackManipulation$Compound.<init>:([Lnet/bytebuddy/implementation/bytecode/StackManipulation;)V
        13: .line 242
            aload 2 /* fields */
            aload 0 /* this */
            getfield net.bytebuddy.implementation.EqualsMethod.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher$Junction;
        14: .line 236
            invokespecial net.bytebuddy.implementation.EqualsMethod$Appender.<init>:(Lnet/bytebuddy/description/type/TypeDescription;Lnet/bytebuddy/implementation/bytecode/StackManipulation;Ljava/util/List;Lnet/bytebuddy/matcher/ElementMatcher;)V
            areturn
        end local 2 // java.util.List fields
        end local 1 // net.bytebuddy.implementation.Implementation$Target implementationTarget
        end local 0 // net.bytebuddy.implementation.EqualsMethod this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   15     0                  this  Lnet/bytebuddy/implementation/EqualsMethod;
            0   15     1  implementationTarget  Lnet/bytebuddy/implementation/Implementation$Target;
            6   15     2                fields  Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    MethodParameters:
                      Name  Flags
      implementationTarget  
}
SourceFile: "EqualsMethod.java"
NestMembers:
  net.bytebuddy.implementation.EqualsMethod$Appender  net.bytebuddy.implementation.EqualsMethod$CompoundComparator  net.bytebuddy.implementation.EqualsMethod$ConditionalReturn  net.bytebuddy.implementation.EqualsMethod$NaturalOrderComparator  net.bytebuddy.implementation.EqualsMethod$NullValueGuard  net.bytebuddy.implementation.EqualsMethod$NullValueGuard$NoOp  net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump  net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump$AfterInstruction  net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump$BeforeInstruction  net.bytebuddy.implementation.EqualsMethod$SuperClassCheck  net.bytebuddy.implementation.EqualsMethod$SuperClassCheck$1  net.bytebuddy.implementation.EqualsMethod$SuperClassCheck$2  net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck  net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck$1  net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck$2  net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator  net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator$1  net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator$2  net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator$3  net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator$4  net.bytebuddy.implementation.EqualsMethod$ValueComparator  net.bytebuddy.implementation.EqualsMethod$ValueComparator$1  net.bytebuddy.implementation.EqualsMethod$ValueComparator$10  net.bytebuddy.implementation.EqualsMethod$ValueComparator$11  net.bytebuddy.implementation.EqualsMethod$ValueComparator$12  net.bytebuddy.implementation.EqualsMethod$ValueComparator$13  net.bytebuddy.implementation.EqualsMethod$ValueComparator$2  net.bytebuddy.implementation.EqualsMethod$ValueComparator$3  net.bytebuddy.implementation.EqualsMethod$ValueComparator$4  net.bytebuddy.implementation.EqualsMethod$ValueComparator$5  net.bytebuddy.implementation.EqualsMethod$ValueComparator$6  net.bytebuddy.implementation.EqualsMethod$ValueComparator$7  net.bytebuddy.implementation.EqualsMethod$ValueComparator$8  net.bytebuddy.implementation.EqualsMethod$ValueComparator$9
InnerClasses:
  public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
  public abstract OfByteCodeElement = net.bytebuddy.description.ModifierReviewable$OfByteCodeElement of net.bytebuddy.description.ModifierReviewable
  public abstract InDefinedShape = net.bytebuddy.description.field.FieldDescription$InDefinedShape of net.bytebuddy.description.field.FieldDescription
  public abstract InDefinedShape = net.bytebuddy.description.method.MethodDescription$InDefinedShape of net.bytebuddy.description.method.MethodDescription
  protected Appender = net.bytebuddy.implementation.EqualsMethod$Appender of net.bytebuddy.implementation.EqualsMethod
  protected CompoundComparator = net.bytebuddy.implementation.EqualsMethod$CompoundComparator of net.bytebuddy.implementation.EqualsMethod
  protected ConditionalReturn = net.bytebuddy.implementation.EqualsMethod$ConditionalReturn of net.bytebuddy.implementation.EqualsMethod
  protected final NaturalOrderComparator = net.bytebuddy.implementation.EqualsMethod$NaturalOrderComparator of net.bytebuddy.implementation.EqualsMethod
  protected abstract NullValueGuard = net.bytebuddy.implementation.EqualsMethod$NullValueGuard of net.bytebuddy.implementation.EqualsMethod
  protected abstract SuperClassCheck = net.bytebuddy.implementation.EqualsMethod$SuperClassCheck of net.bytebuddy.implementation.EqualsMethod
  protected abstract TypeCompatibilityCheck = net.bytebuddy.implementation.EqualsMethod$TypeCompatibilityCheck of net.bytebuddy.implementation.EqualsMethod
  protected abstract TypePropertyComparator = net.bytebuddy.implementation.EqualsMethod$TypePropertyComparator of net.bytebuddy.implementation.EqualsMethod
  protected abstract ValueComparator = net.bytebuddy.implementation.EqualsMethod$ValueComparator of net.bytebuddy.implementation.EqualsMethod
  public abstract Target = net.bytebuddy.implementation.Implementation$Target of net.bytebuddy.implementation.Implementation
  public Compound = net.bytebuddy.implementation.bytecode.StackManipulation$Compound of net.bytebuddy.implementation.bytecode.StackManipulation
  public abstract Junction = net.bytebuddy.matcher.ElementMatcher$Junction of net.bytebuddy.matcher.ElementMatcher
    RuntimeVisibleAnnotations: 
      net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()