// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.math.vector;

import com.hypixel.hytale.math.util.HashUtil;
import javax.annotation.Nullable;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.builder.BuilderCodec;

public class Vector2i
{
    @Nonnull
    public static final BuilderCodec<Vector2i> CODEC;
    public static final Vector2i ZERO;
    public static final Vector2i UP;
    public static final Vector2i POS_Y;
    public static final Vector2i DOWN;
    public static final Vector2i NEG_Y;
    public static final Vector2i RIGHT;
    public static final Vector2i POS_X;
    public static final Vector2i LEFT;
    public static final Vector2i NEG_X;
    public static final Vector2i ALL_ONES;
    public static final Vector2i[] DIRECTIONS;
    public int x;
    public int y;
    private transient int hash;
    
    public Vector2i() {
        this(0, 0);
    }
    
    public Vector2i(@Nonnull final Vector2i v) {
        this(v.x, v.y);
    }
    
    public Vector2i(final int x, final int y) {
        this.x = x;
        this.y = y;
        this.hash = 0;
    }
    
    public int getX() {
        return this.x;
    }
    
    public void setX(final int x) {
        this.x = x;
        this.hash = 0;
    }
    
    public int getY() {
        return this.y;
    }
    
    public void setY(final int y) {
        this.y = y;
        this.hash = 0;
    }
    
    @Nonnull
    public Vector2i assign(@Nonnull final Vector2i v) {
        this.x = v.x;
        this.y = v.y;
        this.hash = v.hash;
        return this;
    }
    
    @Nonnull
    public Vector2i assign(final int v) {
        this.x = v;
        this.y = v;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i assign(@Nonnull final int[] v) {
        this.x = v[0];
        this.y = v[1];
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i assign(final int x, final int y) {
        this.x = x;
        this.y = y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i add(@Nonnull final Vector2i v) {
        this.x += v.x;
        this.y += v.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i add(final int x, final int y) {
        this.x += x;
        this.y += y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i addScaled(@Nonnull final Vector2i v, final int s) {
        this.x += v.x * s;
        this.y += v.y * s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i subtract(@Nonnull final Vector2i v) {
        this.x -= v.x;
        this.y -= v.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i subtract(final int x, final int y) {
        this.x -= x;
        this.y -= y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i negate() {
        this.x = -this.x;
        this.y = -this.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i scale(final int s) {
        this.x *= s;
        this.y *= s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i scale(@Nonnull final Vector2i p) {
        this.x *= p.x;
        this.y *= p.y;
        this.hash = 0;
        return this;
    }
    
    public int dot(@Nonnull final Vector2i other) {
        return this.x * other.x + this.y * other.y;
    }
    
    public double distanceTo(@Nonnull final Vector2i v) {
        return Math.sqrt(this.distanceSquaredTo(v));
    }
    
    public double distanceTo(final int x, final int y) {
        return Math.sqrt(this.distanceSquaredTo(x, y));
    }
    
    public int distanceSquaredTo(@Nonnull final Vector2i v) {
        final int x0 = v.x - this.x;
        final int y0 = v.y - this.y;
        return x0 * x0 + y0 * y0;
    }
    
    public int distanceSquaredTo(int x, int y) {
        x -= this.x;
        y -= this.y;
        return x * x + y * y;
    }
    
    @Nonnull
    public Vector2i normalize() {
        return this.setLength(1);
    }
    
    public double length() {
        return Math.sqrt(this.squaredLength());
    }
    
    public double squaredLength() {
        return this.x * this.x + this.y * this.y;
    }
    
    @Nonnull
    public Vector2i setLength(final int newLen) {
        final double scale = newLen / this.length();
        this.x *= (int)scale;
        this.y *= (int)scale;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i clampLength(final int maxLength) {
        final double length = this.length();
        if (maxLength > length) {
            return this;
        }
        final double scale = maxLength / length;
        this.x *= (int)scale;
        this.y *= (int)scale;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i dropHash() {
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2i clone() {
        return new Vector2i(this.x, this.y);
    }
    
    @Override
    public boolean equals(@Nullable final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || this.getClass() != o.getClass()) {
            return false;
        }
        final Vector2i vector2i = (Vector2i)o;
        return vector2i.x == this.x && vector2i.y == this.y;
    }
    
    @Override
    public int hashCode() {
        if (this.hash == 0) {
            this.hash = (int)HashUtil.hash(this.x, this.y);
        }
        return this.hash;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "Vector2i{x=" + this.x + ", y=" + this.y;
    }
    
    @Nonnull
    public static Vector2i max(@Nonnull final Vector2i a, @Nonnull final Vector2i b) {
        return new Vector2i(Math.max(a.x, b.x), Math.max(a.y, b.y));
    }
    
    @Nonnull
    public static Vector2i min(@Nonnull final Vector2i a, @Nonnull final Vector2i b) {
        return new Vector2i(Math.min(a.x, b.x), Math.min(a.y, b.y));
    }
    
    static {
        // 
        // This method could not be decompiled.
        // 
        // Original Bytecode:
        // 
        //     2: invokedynamic   BootstrapMethod #1, get:()Ljava/util/function/Supplier;
        //     7: invokestatic    com/hypixel/hytale/codec/builder/BuilderCodec.builder:(Ljava/lang/Class;Ljava/util/function/Supplier;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    10: getstatic       com/hypixel/hytale/codec/schema/metadata/ui/UIDisplayMode.COMPACT:Lcom/hypixel/hytale/codec/schema/metadata/ui/UIDisplayMode;
        //    13: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.metadata:(Lcom/hypixel/hytale/codec/schema/metadata/Metadata;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    16: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    19: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    22: dup            
        //    23: ldc             "X"
        //    25: getstatic       com/hypixel/hytale/codec/Codec.INTEGER:Lcom/hypixel/hytale/codec/codecs/simple/IntegerCodec;
        //    28: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    31: invokedynamic   BootstrapMethod #2, accept:()Ljava/util/function/BiConsumer;
        //    36: invokedynamic   BootstrapMethod #3, apply:()Ljava/util/function/Function;
        //    41: invokedynamic   BootstrapMethod #4, accept:()Ljava/util/function/BiConsumer;
        //    46: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.appendInherited:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;Ljava/util/function/BiConsumer;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    49: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //    52: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    55: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    58: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    61: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    64: dup            
        //    65: ldc             "Y"
        //    67: getstatic       com/hypixel/hytale/codec/Codec.INTEGER:Lcom/hypixel/hytale/codec/codecs/simple/IntegerCodec;
        //    70: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    73: invokedynamic   BootstrapMethod #5, accept:()Ljava/util/function/BiConsumer;
        //    78: invokedynamic   BootstrapMethod #6, apply:()Ljava/util/function/Function;
        //    83: invokedynamic   BootstrapMethod #7, accept:()Ljava/util/function/BiConsumer;
        //    88: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.appendInherited:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;Ljava/util/function/BiConsumer;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    91: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //    94: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    97: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   100: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   103: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.build:()Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   106: putstatic       com/hypixel/hytale/math/vector/Vector2i.CODEC:Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   109: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   112: dup            
        //   113: iconst_0       
        //   114: iconst_0       
        //   115: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   118: putstatic       com/hypixel/hytale/math/vector/Vector2i.ZERO:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   121: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   124: dup            
        //   125: iconst_0       
        //   126: iconst_1       
        //   127: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   130: putstatic       com/hypixel/hytale/math/vector/Vector2i.UP:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   133: getstatic       com/hypixel/hytale/math/vector/Vector2i.UP:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   136: putstatic       com/hypixel/hytale/math/vector/Vector2i.POS_Y:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   139: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   142: dup            
        //   143: iconst_0       
        //   144: iconst_m1      
        //   145: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   148: putstatic       com/hypixel/hytale/math/vector/Vector2i.DOWN:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   151: getstatic       com/hypixel/hytale/math/vector/Vector2i.DOWN:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   154: putstatic       com/hypixel/hytale/math/vector/Vector2i.NEG_Y:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   157: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   160: dup            
        //   161: iconst_1       
        //   162: iconst_0       
        //   163: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   166: putstatic       com/hypixel/hytale/math/vector/Vector2i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   169: getstatic       com/hypixel/hytale/math/vector/Vector2i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   172: putstatic       com/hypixel/hytale/math/vector/Vector2i.POS_X:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   175: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   178: dup            
        //   179: iconst_m1      
        //   180: iconst_0       
        //   181: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   184: putstatic       com/hypixel/hytale/math/vector/Vector2i.LEFT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   187: getstatic       com/hypixel/hytale/math/vector/Vector2i.LEFT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   190: putstatic       com/hypixel/hytale/math/vector/Vector2i.NEG_X:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   193: new             Lcom/hypixel/hytale/math/vector/Vector2i;
        //   196: dup            
        //   197: iconst_1       
        //   198: iconst_1       
        //   199: invokespecial   com/hypixel/hytale/math/vector/Vector2i.<init>:(II)V
        //   202: putstatic       com/hypixel/hytale/math/vector/Vector2i.ALL_ONES:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   205: iconst_4       
        //   206: anewarray       Lcom/hypixel/hytale/math/vector/Vector2i;
        //   209: dup            
        //   210: iconst_0       
        //   211: getstatic       com/hypixel/hytale/math/vector/Vector2i.UP:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   214: aastore        
        //   215: dup            
        //   216: iconst_1       
        //   217: getstatic       com/hypixel/hytale/math/vector/Vector2i.DOWN:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   220: aastore        
        //   221: dup            
        //   222: iconst_2       
        //   223: getstatic       com/hypixel/hytale/math/vector/Vector2i.LEFT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   226: aastore        
        //   227: dup            
        //   228: iconst_3       
        //   229: getstatic       com/hypixel/hytale/math/vector/Vector2i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2i;
        //   232: aastore        
        //   233: putstatic       com/hypixel/hytale/math/vector/Vector2i.DIRECTIONS:[Lcom/hypixel/hytale/math/vector/Vector2i;
        //   236: return         
        // 
        // The error that occurred was:
        // 
        // java.lang.UnsupportedOperationException: The requested operation is not supported.
        //     at com.strobel.util.ContractUtils.unsupported(ContractUtils.java:27)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:284)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:279)
        //     at com.strobel.assembler.metadata.TypeReference.makeGenericType(TypeReference.java:154)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:225)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:25)
        //     at com.strobel.assembler.metadata.ParameterizedType.accept(ParameterizedType.java:103)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visit(TypeSubstitutionVisitor.java:40)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:211)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:25)
        //     at com.strobel.assembler.metadata.ParameterizedType.accept(ParameterizedType.java:103)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visit(TypeSubstitutionVisitor.java:40)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitMethod(TypeSubstitutionVisitor.java:314)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2611)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1083)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:684)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:667)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:373)
        //     at com.strobel.decompiler.ast.TypeAnalysis.run(TypeAnalysis.java:95)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:344)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:206)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:93)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:868)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:761)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:638)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:605)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:195)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:162)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:137)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
        //     at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:333)
        //     at com.strobel.decompiler.DecompilerDriver.decompileJar(DecompilerDriver.java:254)
        //     at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:129)
        // 
        throw new IllegalStateException("An error occurred while decompiling this method.");
    }
}
