// 
// 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 Vector3i
{
    @Nonnull
    public static final BuilderCodec<Vector3i> CODEC;
    public static final Vector3i ZERO;
    public static final Vector3i UP;
    public static final Vector3i POS_Y;
    public static final Vector3i DOWN;
    public static final Vector3i NEG_Y;
    public static final Vector3i FORWARD;
    public static final Vector3i NEG_Z;
    public static final Vector3i NORTH;
    public static final Vector3i BACKWARD;
    public static final Vector3i POS_Z;
    public static final Vector3i SOUTH;
    public static final Vector3i RIGHT;
    public static final Vector3i POS_X;
    public static final Vector3i EAST;
    public static final Vector3i LEFT;
    public static final Vector3i NEG_X;
    public static final Vector3i WEST;
    public static final Vector3i ALL_ONES;
    public static final Vector3i MIN;
    public static final Vector3i MAX;
    public static final Vector3i[] BLOCK_SIDES;
    public static final Vector3i[] BLOCK_EDGES;
    public static final Vector3i[] BLOCK_CORNERS;
    public static final Vector3i[][] BLOCK_PARTS;
    public static final Vector3i[] CARDINAL_DIRECTIONS;
    public int x;
    public int y;
    public int z;
    private transient int hash;
    
    public Vector3i() {
        this(0, 0, 0);
    }
    
    public Vector3i(@Nonnull final Vector3i v) {
        this(v.x, v.y, v.z);
    }
    
    public Vector3i(final int x, final int y, final int z) {
        this.x = x;
        this.y = y;
        this.z = z;
        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;
    }
    
    public int getZ() {
        return this.z;
    }
    
    public void setZ(final int z) {
        this.z = z;
        this.hash = 0;
    }
    
    @Nonnull
    public Vector3i assign(@Nonnull final Vector3i v) {
        this.x = v.x;
        this.y = v.y;
        this.z = v.z;
        this.hash = v.hash;
        return this;
    }
    
    @Nonnull
    public Vector3i assign(final int v) {
        this.x = v;
        this.y = v;
        this.z = v;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i assign(@Nonnull final int[] v) {
        this.x = v[0];
        this.y = v[1];
        this.z = v[2];
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i assign(final int x, final int y, final int z) {
        this.x = x;
        this.y = y;
        this.z = z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i add(@Nonnull final Vector3i v) {
        this.x += v.x;
        this.y += v.y;
        this.z += v.z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i add(final int x, final int y, final int z) {
        this.x += x;
        this.y += y;
        this.z += z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i addScaled(@Nonnull final Vector3i v, final int s) {
        this.x += v.x * s;
        this.y += v.y * s;
        this.z += v.z * s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i subtract(@Nonnull final Vector3i v) {
        this.x -= v.x;
        this.y -= v.y;
        this.z -= v.z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i subtract(final int x, final int y, final int z) {
        this.x -= x;
        this.y -= y;
        this.z -= z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i negate() {
        this.x = -this.x;
        this.y = -this.y;
        this.z = -this.z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i scale(final int s) {
        this.x *= s;
        this.y *= s;
        this.z *= s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i scale(final double s) {
        this.x *= (int)s;
        this.y *= (int)s;
        this.z *= (int)s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i scale(@Nonnull final Vector3i p) {
        this.x *= p.x;
        this.y *= p.y;
        this.z *= p.z;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i cross(@Nonnull final Vector3i v) {
        final int x0 = this.y * v.z - this.z * v.y;
        final int y0 = this.z * v.x - this.x * v.z;
        final int z0 = this.x * v.y - this.y * v.x;
        return new Vector3i(x0, y0, z0);
    }
    
    @Nonnull
    public Vector3i cross(@Nonnull final Vector3i v, @Nonnull final Vector3i res) {
        res.assign(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x);
        return this;
    }
    
    public int dot(@Nonnull final Vector3i other) {
        return this.x * other.x + this.y * other.y + this.z * other.z;
    }
    
    public double distanceTo(@Nonnull final Vector3i v) {
        return Math.sqrt(this.distanceSquaredTo(v));
    }
    
    public double distanceTo(final int x, final int y, final int z) {
        return Math.sqrt(this.distanceSquaredTo(x, y, z));
    }
    
    public int distanceSquaredTo(@Nonnull final Vector3i v) {
        final int x0 = v.x - this.x;
        final int y0 = v.y - this.y;
        final int z0 = v.z - this.z;
        return x0 * x0 + y0 * y0 + z0 * z0;
    }
    
    public int distanceSquaredTo(final int x, final int y, final int z) {
        final int dx = x - this.x;
        final int dy = y - this.y;
        final int dz = z - this.z;
        return dx * dx + dy * dy + dz * dz;
    }
    
    @Nonnull
    public Vector3i normalize() {
        return this.setLength(1);
    }
    
    public double length() {
        return Math.sqrt(this.squaredLength());
    }
    
    public int squaredLength() {
        return this.x * this.x + this.y * this.y + this.z * this.z;
    }
    
    @Nonnull
    public Vector3i setLength(final int newLen) {
        return this.scale(newLen / this.length());
    }
    
    @Nonnull
    public Vector3i clampLength(final int maxLength) {
        final double length = this.length();
        if (maxLength > length) {
            return this;
        }
        return this.scale(maxLength / length);
    }
    
    @Nonnull
    public Vector3i dropHash() {
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector3i clone() {
        return new Vector3i(this.x, this.y, this.z);
    }
    
    @Nonnull
    public Vector3d toVector3d() {
        return new Vector3d(this.x, this.y, this.z);
    }
    
    @Nonnull
    public Vector3f toVector3f() {
        return new Vector3f((float)this.x, (float)this.y, (float)this.z);
    }
    
    @Nonnull
    public Vector3l toVector3l() {
        return new Vector3l(this.x, this.y, this.z);
    }
    
    @Override
    public boolean equals(@Nullable final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || this.getClass() != o.getClass()) {
            return false;
        }
        final Vector3i vector3i = (Vector3i)o;
        return vector3i.x == this.x && vector3i.y == this.y && vector3i.z == this.z;
    }
    
    @Override
    public int hashCode() {
        if (this.hash == 0) {
            this.hash = (int)HashUtil.hash(this.x, this.y, this.z);
        }
        return this.hash;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "Vector3i{x=" + this.x + ", y=" + this.y + ", z=" + this.z;
    }
    
    @Nonnull
    public static Vector3i max(@Nonnull final Vector3i a, @Nonnull final Vector3i b) {
        return new Vector3i(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z));
    }
    
    @Nonnull
    public static Vector3i min(@Nonnull final Vector3i a, @Nonnull final Vector3i b) {
        return new Vector3i(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z));
    }
    
    @Nonnull
    public static Vector3i directionTo(@Nonnull final Vector3i from, @Nonnull final Vector3i to) {
        return to.clone().subtract(from).normalize();
    }
    
    @Nonnull
    public static Vector3i add(@Nonnull final Vector3i one, @Nonnull final Vector3i two) {
        return new Vector3i().add(one).add(two);
    }
    
    @Nonnull
    public static Vector3i add(@Nonnull final Vector3i one, @Nonnull final Vector3i two, @Nonnull final Vector3i three) {
        return new Vector3i().add(one).add(two).add(three);
    }
    
    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: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   106: dup            
        //   107: ldc             "Z"
        //   109: getstatic       com/hypixel/hytale/codec/Codec.INTEGER:Lcom/hypixel/hytale/codec/codecs/simple/IntegerCodec;
        //   112: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   115: invokedynamic   BootstrapMethod #8, accept:()Ljava/util/function/BiConsumer;
        //   120: invokedynamic   BootstrapMethod #9, apply:()Ljava/util/function/Function;
        //   125: invokedynamic   BootstrapMethod #10, accept:()Ljava/util/function/BiConsumer;
        //   130: 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;
        //   133: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //   136: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   139: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   142: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   145: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.build:()Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   148: putstatic       com/hypixel/hytale/math/vector/Vector3i.CODEC:Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   151: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   154: dup            
        //   155: iconst_0       
        //   156: iconst_0       
        //   157: iconst_0       
        //   158: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   161: putstatic       com/hypixel/hytale/math/vector/Vector3i.ZERO:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   164: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   167: dup            
        //   168: iconst_0       
        //   169: iconst_1       
        //   170: iconst_0       
        //   171: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   174: putstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   177: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   180: putstatic       com/hypixel/hytale/math/vector/Vector3i.POS_Y:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   183: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   186: dup            
        //   187: iconst_0       
        //   188: iconst_m1      
        //   189: iconst_0       
        //   190: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   193: putstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   196: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   199: putstatic       com/hypixel/hytale/math/vector/Vector3i.NEG_Y:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   202: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   205: dup            
        //   206: iconst_0       
        //   207: iconst_0       
        //   208: iconst_m1      
        //   209: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   212: putstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   215: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   218: putstatic       com/hypixel/hytale/math/vector/Vector3i.NEG_Z:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   221: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   224: putstatic       com/hypixel/hytale/math/vector/Vector3i.NORTH:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   227: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   230: dup            
        //   231: iconst_0       
        //   232: iconst_0       
        //   233: iconst_1       
        //   234: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   237: putstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   240: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   243: putstatic       com/hypixel/hytale/math/vector/Vector3i.POS_Z:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   246: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   249: putstatic       com/hypixel/hytale/math/vector/Vector3i.SOUTH:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   252: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   255: dup            
        //   256: iconst_1       
        //   257: iconst_0       
        //   258: iconst_0       
        //   259: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   262: putstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   265: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   268: putstatic       com/hypixel/hytale/math/vector/Vector3i.POS_X:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   271: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   274: putstatic       com/hypixel/hytale/math/vector/Vector3i.EAST:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   277: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   280: dup            
        //   281: iconst_m1      
        //   282: iconst_0       
        //   283: iconst_0       
        //   284: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   287: putstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   290: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   293: putstatic       com/hypixel/hytale/math/vector/Vector3i.NEG_X:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   296: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   299: putstatic       com/hypixel/hytale/math/vector/Vector3i.WEST:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   302: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   305: dup            
        //   306: iconst_1       
        //   307: iconst_1       
        //   308: iconst_1       
        //   309: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   312: putstatic       com/hypixel/hytale/math/vector/Vector3i.ALL_ONES:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   315: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   318: dup            
        //   319: ldc             -2147483648
        //   321: ldc             -2147483648
        //   323: ldc             -2147483648
        //   325: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   328: putstatic       com/hypixel/hytale/math/vector/Vector3i.MIN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   331: new             Lcom/hypixel/hytale/math/vector/Vector3i;
        //   334: dup            
        //   335: ldc_w           2147483647
        //   338: ldc_w           2147483647
        //   341: ldc_w           2147483647
        //   344: invokespecial   com/hypixel/hytale/math/vector/Vector3i.<init>:(III)V
        //   347: putstatic       com/hypixel/hytale/math/vector/Vector3i.MAX:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   350: bipush          6
        //   352: anewarray       Lcom/hypixel/hytale/math/vector/Vector3i;
        //   355: dup            
        //   356: iconst_0       
        //   357: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   360: aastore        
        //   361: dup            
        //   362: iconst_1       
        //   363: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   366: aastore        
        //   367: dup            
        //   368: iconst_2       
        //   369: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   372: aastore        
        //   373: dup            
        //   374: iconst_3       
        //   375: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   378: aastore        
        //   379: dup            
        //   380: iconst_4       
        //   381: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   384: aastore        
        //   385: dup            
        //   386: iconst_5       
        //   387: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   390: aastore        
        //   391: putstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_SIDES:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   394: bipush          12
        //   396: anewarray       Lcom/hypixel/hytale/math/vector/Vector3i;
        //   399: dup            
        //   400: iconst_0       
        //   401: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   404: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   407: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   410: aastore        
        //   411: dup            
        //   412: iconst_1       
        //   413: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   416: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   419: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   422: aastore        
        //   423: dup            
        //   424: iconst_2       
        //   425: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   428: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   431: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   434: aastore        
        //   435: dup            
        //   436: iconst_3       
        //   437: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   440: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   443: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   446: aastore        
        //   447: dup            
        //   448: iconst_4       
        //   449: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   452: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   455: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   458: aastore        
        //   459: dup            
        //   460: iconst_5       
        //   461: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   464: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   467: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   470: aastore        
        //   471: dup            
        //   472: bipush          6
        //   474: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   477: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   480: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   483: aastore        
        //   484: dup            
        //   485: bipush          7
        //   487: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   490: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   493: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   496: aastore        
        //   497: dup            
        //   498: bipush          8
        //   500: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   503: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   506: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   509: aastore        
        //   510: dup            
        //   511: bipush          9
        //   513: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   516: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   519: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   522: aastore        
        //   523: dup            
        //   524: bipush          10
        //   526: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   529: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   532: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   535: aastore        
        //   536: dup            
        //   537: bipush          11
        //   539: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   542: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   545: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   548: aastore        
        //   549: putstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_EDGES:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   552: bipush          8
        //   554: anewarray       Lcom/hypixel/hytale/math/vector/Vector3i;
        //   557: dup            
        //   558: iconst_0       
        //   559: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   562: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   565: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   568: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   571: aastore        
        //   572: dup            
        //   573: iconst_1       
        //   574: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   577: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   580: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   583: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   586: aastore        
        //   587: dup            
        //   588: iconst_2       
        //   589: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   592: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   595: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   598: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   601: aastore        
        //   602: dup            
        //   603: iconst_3       
        //   604: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   607: getstatic       com/hypixel/hytale/math/vector/Vector3i.FORWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   610: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   613: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   616: aastore        
        //   617: dup            
        //   618: iconst_4       
        //   619: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   622: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   625: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   628: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   631: aastore        
        //   632: dup            
        //   633: iconst_5       
        //   634: getstatic       com/hypixel/hytale/math/vector/Vector3i.UP:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   637: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   640: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   643: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   646: aastore        
        //   647: dup            
        //   648: bipush          6
        //   650: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   653: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   656: getstatic       com/hypixel/hytale/math/vector/Vector3i.LEFT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   659: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   662: aastore        
        //   663: dup            
        //   664: bipush          7
        //   666: getstatic       com/hypixel/hytale/math/vector/Vector3i.DOWN:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   669: getstatic       com/hypixel/hytale/math/vector/Vector3i.BACKWARD:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   672: getstatic       com/hypixel/hytale/math/vector/Vector3i.RIGHT:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   675: invokestatic    com/hypixel/hytale/math/vector/Vector3i.add:(Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;Lcom/hypixel/hytale/math/vector/Vector3i;)Lcom/hypixel/hytale/math/vector/Vector3i;
        //   678: aastore        
        //   679: putstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_CORNERS:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   682: iconst_3       
        //   683: anewarray       [Lcom/hypixel/hytale/math/vector/Vector3i;
        //   686: dup            
        //   687: iconst_0       
        //   688: getstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_SIDES:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   691: aastore        
        //   692: dup            
        //   693: iconst_1       
        //   694: getstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_EDGES:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   697: aastore        
        //   698: dup            
        //   699: iconst_2       
        //   700: getstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_CORNERS:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   703: aastore        
        //   704: putstatic       com/hypixel/hytale/math/vector/Vector3i.BLOCK_PARTS:[[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   707: iconst_4       
        //   708: anewarray       Lcom/hypixel/hytale/math/vector/Vector3i;
        //   711: dup            
        //   712: iconst_0       
        //   713: getstatic       com/hypixel/hytale/math/vector/Vector3i.NORTH:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   716: aastore        
        //   717: dup            
        //   718: iconst_1       
        //   719: getstatic       com/hypixel/hytale/math/vector/Vector3i.SOUTH:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   722: aastore        
        //   723: dup            
        //   724: iconst_2       
        //   725: getstatic       com/hypixel/hytale/math/vector/Vector3i.EAST:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   728: aastore        
        //   729: dup            
        //   730: iconst_3       
        //   731: getstatic       com/hypixel/hytale/math/vector/Vector3i.WEST:Lcom/hypixel/hytale/math/vector/Vector3i;
        //   734: aastore        
        //   735: putstatic       com/hypixel/hytale/math/vector/Vector3i.CARDINAL_DIRECTIONS:[Lcom/hypixel/hytale/math/vector/Vector3i;
        //   738: 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.");
    }
}
